更改FTP文件导入

This commit is contained in:
2026-01-28 15:04:16 +08:00
parent f65fa21760
commit b940170607
44 changed files with 2748 additions and 271 deletions

View File

@@ -137,29 +137,36 @@ namespace FATrace.WPLApp.Services
{
new NavItemDto
{
Name = "工厂-入库",
CmdPar = "工厂-入库",
Name = "工厂-原料入库",
CmdPar = "工厂-原料入库",
Icon = "\uea25",
IsParent = false,
},
new NavItemDto
{
Name = "工厂-领料",
CmdPar = "工厂-领料",
Name = "工厂-原料出库",
CmdPar = "工厂-原料出库",
Icon = "\uea25",
IsParent = false,
},
new NavItemDto
{
Name = "工厂-出入库",
CmdPar = "工厂-出入库",
Name = "工厂-原料出入库",
CmdPar = "工厂-原料出入库",
Icon = "\uea25",
IsParent = false,
},
new NavItemDto
{
Name = "工厂-原料生产信息",
CmdPar = "工厂-原料生产信息",
Name = "工厂-包袋生产",
CmdPar = "工厂-包袋生产",
Icon = "\uea25",
IsParent = false,
},
new NavItemDto
{
Name = "工厂-成品入库",
CmdPar = "工厂-成品入库",
Icon = "\uea25",
IsParent = false,
},
@@ -169,6 +176,13 @@ namespace FATrace.WPLApp.Services
CmdPar = "工厂-成品出库",
Icon = "\uea25",
IsParent = false,
},
new NavItemDto
{
Name = "工厂-成品入库与出库",
CmdPar = "工厂-成品入库与出库",
Icon = "\uea25",
IsParent = false,
}
}
},
@@ -205,8 +219,8 @@ namespace FATrace.WPLApp.Services
},
new NavItemDto
{
Name = "OEM-原料使用信息",
CmdPar = "OEM-原料使用信息",
Name = "OEM-原料使用",
CmdPar = "OEM-原料使用",
Icon = "\ueab4",
IsParent = false,
}

View File

@@ -57,7 +57,7 @@ namespace FATrace.WPLApp.Services
}
// 每小时扫描一次3600000 ms如有需要可后续改为配置项
_timer = new System.Timers.Timer(TimeSpan.FromMinutes(1).TotalMilliseconds)//TimeSpan.FromHours(1).TotalMilliseconds
_timer = new System.Timers.Timer(TimeSpan.FromHours(1).TotalMilliseconds)
{
AutoReset = true,
Enabled = true
@@ -221,14 +221,17 @@ namespace FATrace.WPLApp.Services
IWorkbook workbook = new XSSFWorkbook(fs);
var formatter = new DataFormatter();
sheetStats["FactoryInbound"] = ImportFactoryInbound(workbook, formatter);
sheetStats["FactoryMaterialWithdrawal"] = ImportFactoryMaterialWithdrawal(workbook, formatter);
sheetStats["FactoryInventoryTransaction"] = ImportFactoryInventoryTransaction(workbook, formatter);
sheetStats["FactoryRawInbound"] = ImportFactoryRawInbound(workbook, formatter);
sheetStats["FactoryRawOutbound"] = ImportFactoryRawOutbound(workbook, formatter);
sheetStats["FactoryRawInOutbound"] = ImportFactoryRawInOutbound(workbook, formatter);
sheetStats["FactoryProductionRecord"] = ImportFactoryProductionRecord(workbook, formatter);
sheetStats["FactoryInbound"] = ImportFactoryInbound(workbook, formatter);
sheetStats["FactoryOutbound"] = ImportFactoryOutbound(workbook, formatter);
sheetStats["FactoryInOutbound"] = ImportFactoryInOutbound(workbook, formatter);
sheetStats["OEMInbound"] = ImportOEMInbound(workbook, formatter);
sheetStats["OEMOutbound"] = ImportOEMOutbound(workbook, formatter);
sheetStats["OEMInventoryTransaction"] = ImportOEMInventoryTransaction(workbook, formatter);
sheetStats["OEMInOutbound"] = ImportOEMInOutbound(workbook, formatter);
sheetStats["OEMRawUsageInfo"] = ImportOEMRawUsageInfo(workbook, formatter);
}
@@ -306,29 +309,27 @@ namespace FATrace.WPLApp.Services
return cell == null ? string.Empty : formatter.FormatCellValue(cell).Trim();
}
private int ImportFactoryInbound(IWorkbook workbook, DataFormatter formatter)
private int ImportFactoryRawInbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-入库");
var sheet = workbook.GetSheet("工厂-原料入库");
if (sheet == null) return 0;
var list = new List<FactoryInbound>();
var list = new List<FactoryRawInbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new FactoryInbound
var entity = new FactoryRawInbound
{
Origin = GetCellString(row, 0, formatter),
RawCode = GetCellString(row, 1, formatter),
RawName = GetCellString(row, 2, formatter),
Weight = GetCellString(row, 3, formatter),
LoginDate = GetCellString(row, 4, formatter),
LoginTime = GetCellString(row, 5, formatter),
LoginDateTime = GetCellString(row, 6, formatter)
LoginDateTime = GetCellString(row, 4, formatter)
};
if (IsAllEmpty(entity.Origin, entity.RawCode, entity.RawName, entity.Weight, entity.LoginDate, entity.LoginTime, entity.LoginDateTime))
if (IsAllEmpty(entity.Origin, entity.RawCode, entity.RawName, entity.Weight, entity.LoginDateTime))
continue;
list.Add(entity);
@@ -341,29 +342,27 @@ namespace FATrace.WPLApp.Services
return list.Count;
}
private int ImportFactoryMaterialWithdrawal(IWorkbook workbook, DataFormatter formatter)
private int ImportFactoryRawOutbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-领料");
var sheet = workbook.GetSheet("工厂-原料出库");
if (sheet == null) return 0;
var list = new List<FactoryMaterialWithdrawal>();
var list = new List<FactoryRawOutbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new FactoryMaterialWithdrawal
var entity = new FactoryRawOutbound
{
Origin = GetCellString(row, 0, formatter),
RawCode = GetCellString(row, 1, formatter),
RawName = GetCellString(row, 2, formatter),
Weight = GetCellString(row, 3, formatter),
LoginDate = GetCellString(row, 4, formatter),
LoginTime = GetCellString(row, 5, formatter),
LoginDateTime = GetCellString(row, 6, formatter)
LoginDateTime = GetCellString(row, 4, formatter)
};
if (IsAllEmpty(entity.Origin, entity.RawCode, entity.RawName, entity.Weight, entity.LoginDate, entity.LoginTime, entity.LoginDateTime))
if (IsAllEmpty(entity.Origin, entity.RawCode, entity.RawName, entity.Weight, entity.LoginDateTime))
continue;
list.Add(entity);
@@ -376,18 +375,18 @@ namespace FATrace.WPLApp.Services
return list.Count;
}
private int ImportFactoryInventoryTransaction(IWorkbook workbook, DataFormatter formatter)
private int ImportFactoryRawInOutbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-出入库");
var sheet = workbook.GetSheet("工厂-原料出入库");
if (sheet == null) return 0;
var list = new List<FactoryInventoryTransaction>();
var list = new List<FactoryRawInOutbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new FactoryInventoryTransaction
var entity = new FactoryRawInOutbound
{
InTime = GetCellString(row, 0, formatter),
OutTime = GetCellString(row, 1, formatter),
@@ -414,7 +413,7 @@ namespace FATrace.WPLApp.Services
private int ImportFactoryProductionRecord(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-原料生产信息");
var sheet = workbook.GetSheet("工厂-包袋生产信息");
if (sheet == null) return 0;
var list = new List<FactoryProductionRecord>();
@@ -457,9 +456,45 @@ namespace FATrace.WPLApp.Services
return list.Count;
}
private int ImportFactoryInbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-成品入库信息");
if (sheet == null) return 0;
var list = new List<FactoryInbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new FactoryInbound
{
Batch = GetCellString(row, 0, formatter),
Weight = GetCellString(row, 1, formatter),
ShelfLife = GetCellString(row, 2, formatter),
Origin = GetCellString(row, 3, formatter),
RawCode = GetCellString(row, 4, formatter),
RawName = GetCellString(row, 5, formatter),
SequenceNo = GetCellString(row, 6, formatter),
LoginDateTime = GetCellString(row, 7, formatter)
};
if (IsAllEmpty(entity.Batch, entity.Weight, entity.ShelfLife, entity.Origin, entity.RawCode, entity.RawName, entity.SequenceNo, entity.LoginDateTime))
continue;
list.Add(entity);
}
if (list.Count > 0)
{
_fsql.Insert(list).ExecuteAffrows();
}
return list.Count;
}
private int ImportFactoryOutbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-成品出库");
var sheet = workbook.GetSheet("工厂-成品出库信息");
if (sheet == null) return 0;
var list = new List<FactoryOutbound>();
@@ -477,13 +512,48 @@ namespace FATrace.WPLApp.Services
RawCode = GetCellString(row, 4, formatter),
RawName = GetCellString(row, 5, formatter),
SequenceNo = GetCellString(row, 6, formatter),
LoginDate = GetCellString(row, 7, formatter),
LoginTime = GetCellString(row, 8, formatter),
LoginDateTime = GetCellString(row, 9, formatter)
LoginDateTime = GetCellString(row, 7, formatter)
};
if (IsAllEmpty(entity.Batch, entity.Weight, entity.ShelfLife, entity.Origin, entity.RawCode, entity.RawName,
entity.SequenceNo, entity.LoginDate, entity.LoginTime, entity.LoginDateTime))
entity.SequenceNo, entity.LoginDateTime))
continue;
list.Add(entity);
}
if (list.Count > 0)
{
_fsql.Insert(list).ExecuteAffrows();
}
return list.Count;
}
private int ImportFactoryInOutbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("工厂-成品入库与出库信息");
if (sheet == null) return 0;
var list = new List<FactoryInOutbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new FactoryInOutbound
{
InTime = GetCellString(row, 0, formatter),
OutTime = GetCellString(row, 1, formatter),
Origin = GetCellString(row, 2, formatter),
Batch = GetCellString(row, 3, formatter),
RawCode = GetCellString(row, 4, formatter),
RawName = GetCellString(row, 5, formatter),
TotalInPcs = GetCellString(row, 6, formatter),
TotalOutPcs = GetCellString(row, 7, formatter),
RemainPcs = GetCellString(row, 8, formatter)
};
if (IsAllEmpty(entity.InTime, entity.OutTime, entity.Origin, entity.Batch, entity.RawCode, entity.RawName, entity.TotalInPcs, entity.TotalOutPcs, entity.RemainPcs))
continue;
list.Add(entity);
@@ -516,13 +586,11 @@ namespace FATrace.WPLApp.Services
RawCode = GetCellString(row, 4, formatter),
RawName = GetCellString(row, 5, formatter),
SequenceNo = GetCellString(row, 6, formatter),
LoginDate = GetCellString(row, 7, formatter),
LoginTime = GetCellString(row, 8, formatter),
LoginDateTime = GetCellString(row, 9, formatter)
LoginDateTime = GetCellString(row, 7, formatter)
};
if (IsAllEmpty(entity.Batch, entity.Weight, entity.ShelfLife, entity.Origin, entity.RawCode, entity.RawName,
entity.SequenceNo, entity.LoginDate, entity.LoginTime, entity.LoginDateTime))
entity.SequenceNo, entity.LoginDateTime))
continue;
list.Add(entity);
@@ -555,13 +623,11 @@ namespace FATrace.WPLApp.Services
RawCode = GetCellString(row, 4, formatter),
RawName = GetCellString(row, 5, formatter),
SequenceNo = GetCellString(row, 6, formatter),
LoginDate = GetCellString(row, 7, formatter),
LoginTime = GetCellString(row, 8, formatter),
LoginDateTime = GetCellString(row, 9, formatter)
LoginDateTime = GetCellString(row, 7, formatter)
};
if (IsAllEmpty(entity.Batch, entity.Weight, entity.ShelfLife, entity.Origin, entity.RawCode, entity.RawName,
entity.SequenceNo, entity.LoginDate, entity.LoginTime, entity.LoginDateTime))
entity.SequenceNo, entity.LoginDateTime))
continue;
list.Add(entity);
@@ -574,18 +640,18 @@ namespace FATrace.WPLApp.Services
return list.Count;
}
private int ImportOEMInventoryTransaction(IWorkbook workbook, DataFormatter formatter)
private int ImportOEMInOutbound(IWorkbook workbook, DataFormatter formatter)
{
var sheet = workbook.GetSheet("OEM-出入库");
if (sheet == null) return 0;
var list = new List<OEMInventoryTransaction>();
var list = new List<OEMInOutbound>();
for (int i = 1; i <= sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (IsRowEmpty(row, formatter)) continue;
var entity = new OEMInventoryTransaction
var entity = new OEMInOutbound
{
InTime = GetCellString(row, 0, formatter),
OutTime = GetCellString(row, 1, formatter),
@@ -629,11 +695,10 @@ namespace FATrace.WPLApp.Services
InBagCode = GetCellString(row, 1, formatter),
Origin = GetCellString(row, 2, formatter),
RawName = GetCellString(row, 3, formatter),
RawCode = GetCellString(row, 4, formatter),
VideoUrl = GetCellString(row, 5, formatter)
RawCode = GetCellString(row, 4, formatter)
};
if (IsAllEmpty(entity.RawUseTime, entity.InBagCode, entity.Origin, entity.RawName, entity.RawCode, entity.VideoUrl))
if (IsAllEmpty(entity.RawUseTime, entity.InBagCode, entity.Origin, entity.RawName, entity.RawCode))
continue;
list.Add(entity);