电梯并行优化,取消与重置任务逻辑优化

This commit is contained in:
2024-08-26 17:42:10 +08:00
parent f56c0ed321
commit 688e82e07e
7 changed files with 262 additions and 139 deletions

View File

@@ -1090,7 +1090,7 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferinstockH.contact_person = input.contact_person;
wmsRawmatTransferinstockH.tel = input.tel;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_id).FirstAsync();
if (org_erpExtendField != null)
{
wmsRawmatTransferinstockH.outstockorg_id = org_erpExtendField.pk_org_v;
@@ -1098,8 +1098,8 @@ namespace Tnb.WarehouseMgr
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_id}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_id}在wms系统中未找到", 500);
}
wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
@@ -1121,6 +1121,7 @@ namespace Tnb.WarehouseMgr
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => b.EnCode == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
msRawmatTransferinstockD.unit_id = erpExtendField.Id;
msRawmatTransferinstockD.unit = erpExtendField.EnCode;
}
else
@@ -1158,7 +1159,7 @@ namespace Tnb.WarehouseMgr
wmsTransferInstockH.bill_code = Code;
wmsTransferInstockH.erp_bill_code = input.transfer_order;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_id).FirstAsync();
if (org_erpExtendField != null)
{
wmsTransferInstockH.outstockorg_id = org_erpExtendField.pk_org_v;
@@ -1166,8 +1167,8 @@ namespace Tnb.WarehouseMgr
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_id}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_id}在wms系统中未找到", 500);
}
wmsTransferInstockH.incoming_ware = warehouse_instock.id;
wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
@@ -1290,7 +1291,7 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderH.create_time = DateTime.Now;
wmsTransferOrderH.org_id = WmsWareHouseConst.AdministratorOrgId;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.instockorg_code).FirstAsync();
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.instockorg_id).FirstAsync();
if (org_erpExtendField != null)
{
wmsTransferOrderH.instockorg_id = org_erpExtendField.pk_org_v;
@@ -1298,8 +1299,8 @@ namespace Tnb.WarehouseMgr
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.instockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.instockorg_code}在wms系统中未找到", 500);
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.instockorg_id}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.instockorg_id}在wms系统中未找到", 500);
}
var _erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id)
@@ -1315,55 +1316,15 @@ namespace Tnb.WarehouseMgr
}
await db.Insertable(wmsTransferOrderH).ExecuteCommandAsync();
List<WmsTransferOrderD> wmsTransferOrderDs = new List<WmsTransferOrderD>();
foreach (var detail in input.details)
{
WmsTransferOrderD wmsTransferOrderD = new WmsTransferOrderD();
wmsTransferOrderD.bill_id = wmsTransferOrderD.id;
wmsTransferOrderD.unit = detail.unit_code;
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsTransferOrderD.unit = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsTransferOrderD.qty = detail.qty;
wmsTransferOrderD.batchno = detail.code_batch;
wmsTransferOrderD.erp_line_pk = detail.erp_line_pk;
wmsTransferOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderD.create_time = DateTime.Now;
wmsTransferOrderD.lineno = detail.lineno;
wmsTransferOrderD.erp_wh_type = detail.warehouse_outstock;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsTransferOrderD.material_id = material.id;
wmsTransferOrderD.material_code = material.code;
wmsTransferOrderD.material_name = material.name;
wmsTransferOrderD.material_specification = material.material_specification;
}
wmsTransferOrderDs.Add(wmsTransferOrderD);
}
await db.Insertable(wmsTransferOrderDs).ExecuteCommandAsync();
Dictionary<string, object> dic_WmsErpWarehouseidrelaH = await db.Queryable<WmsErpWarehouserelaH>()
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.id);
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.id);
foreach (var key in dic_WmsErpWarehouseidrelaH.Keys)
{
if (dic_WmsErpWarehouseidrelaH[key] == null)
@@ -1383,8 +1344,52 @@ namespace Tnb.WarehouseMgr
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.whcode);
List<TransferOrderInputDetail> details_WAREHOUSE_YCL_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
List<TransferOrderInputDetail> details_WAREHOUSE_CP_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
List<TransferOrderInputDetail> details_WAREHOUSE_CP_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_CP_ID).ToList();
List<WmsTransferOrderD> wmsTransferOrderDs = new List<WmsTransferOrderD>();
foreach (var detail in input.details)
{
WmsTransferOrderD wmsTransferOrderD = new WmsTransferOrderD();
wmsTransferOrderD.bill_id = wmsTransferOrderD.id;
wmsTransferOrderD.unit = detail.unit_code;
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsTransferOrderD.unit_id = erpExtendField.Id;
wmsTransferOrderD.unit = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsTransferOrderD.qty = detail.qty;
wmsTransferOrderD.batchno = detail.code_batch;
wmsTransferOrderD.erp_line_pk = detail.erp_line_pk;
wmsTransferOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderD.create_time = DateTime.Now;
wmsTransferOrderD.lineno = detail.lineno;
wmsTransferOrderD.erp_wh_type = detail.warehouse_outstock;
wmsTransferOrderD.warehouse_code = dic_WmsErpWarehousecoderelaH[detail.warehouse_outstock].ToString();
wmsTransferOrderD.warehouse_instock_code = detail.warehouse_instock_id;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsTransferOrderD.material_id = material.id;
wmsTransferOrderD.material_code = material.code;
wmsTransferOrderD.material_name = material.name;
wmsTransferOrderD.material_specification = material.material_specification;
}
wmsTransferOrderDs.Add(wmsTransferOrderD);
}
await db.Insertable(wmsTransferOrderDs).ExecuteCommandAsync();
if (details_WAREHOUSE_YCL_ID.Count > 0)
{
WmsRawmatTransferoutstockH wmsRawmatTransferoutstockH = new WmsRawmatTransferoutstockH();
@@ -1394,7 +1399,6 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferoutstockH.create_time = DateTime.Now;
wmsRawmatTransferoutstockH.biller = input.biller;
wmsRawmatTransferoutstockH.dept_code = input.dept_code;
wmsRawmatTransferoutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_YCL_ID[0].warehouse_outstock].ToString();
wmsRawmatTransferoutstockH.erp_pk = input.erp_pk;
wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsRawmatTransferoutstockH.issuance_status = "0";
@@ -1411,6 +1415,7 @@ namespace Tnb.WarehouseMgr
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsRawmatTransferoutstockD.unit_id = erpExtendField.Id;
wmsRawmatTransferoutstockD.unit = erpExtendField.EnCode;
}
else
@@ -1420,6 +1425,8 @@ namespace Tnb.WarehouseMgr
}
wmsRawmatTransferoutstockD.erp_wh_type = detail.warehouse_outstock;
wmsRawmatTransferoutstockD.warehouse_code = dic_WmsErpWarehousecoderelaH[detail.warehouse_outstock].ToString();
wmsRawmatTransferoutstockD.warehouse_instock_code = detail.warehouse_instock_id;
wmsRawmatTransferoutstockD.qty = detail.qty;
wmsRawmatTransferoutstockD.code_batch = detail.code_batch;
wmsRawmatTransferoutstockD.erp_line_pk = detail.erp_line_pk;
@@ -1450,7 +1457,6 @@ namespace Tnb.WarehouseMgr
wmsTransferOutstockH.bill_code = code;
wmsTransferOutstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockH.create_time = DateTime.Now;
wmsTransferOutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_CP_ID[0].warehouse_outstock].ToString();
wmsTransferOutstockH.erp_pk = input.erp_pk;
wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsTransferOutstockH.issuance_status = "0";
@@ -1476,6 +1482,8 @@ namespace Tnb.WarehouseMgr
}
wmsTransferOutstockD.warehouse_code = dic_WmsErpWarehousecoderelaH[detail.warehouse_outstock].ToString();
wmsTransferOutstockD.warehouse_instock_code = detail.warehouse_instock_id;
wmsTransferOutstockD.pr_qty = detail.qty;
wmsTransferOutstockD.xf_qty = 0;
wmsTransferOutstockD.qty = 0;