外协提升二楼入库、erp包材入库同步、erp重发调拨出库处理、电梯优化

This commit is contained in:
2024-08-28 16:03:35 +08:00
parent 7809aefb9b
commit 68f4b5c5af
16 changed files with 485 additions and 14 deletions

View File

@@ -1047,7 +1047,7 @@ namespace Tnb.WarehouseMgr
WmsErpWarehouserelaH wmsErpWarehouserelaH = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_instock).FirstAsync();
if (wmsErpWarehouserelaH == null)
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_instock}对应wms系统的映射关系");
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】不存在erp仓库类型{input.warehouse_instock}对应wms系统的映射关系");
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_instock}对应wms系统的映射关系", 500);
}
@@ -1056,7 +1056,7 @@ namespace Tnb.WarehouseMgr
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_instock_code).FirstAsync();
if (warehouse_instock == null)
{
_LoggerErp2Mes.LogWarning($"【TransferOrder】无法查询到入库仓库{warehouse_instock_code}的档案记录!");
_LoggerErp2Mes.LogWarning($"【TransferOutstock】无法查询到入库仓库{warehouse_instock_code}的档案记录!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到入库仓库{warehouse_instock_code}的档案记录!");
}
@@ -1083,6 +1083,25 @@ namespace Tnb.WarehouseMgr
{
case WmsWareHouseConst.WAREHOUSE_YCL_ID:
{
// 判断是否重复传输
WmsRawmatTransferinstockH wmsRawmatTransferinstockHRep = await db.Queryable<WmsRawmatTransferinstockH>().Where(r => r.erp_pk == input.erp_pk).FirstAsync();
if (wmsRawmatTransferinstockHRep != null)
{
// 判断单据是否已经下发
List<WmsRawmatTransferinstockD> wmsRawmatTransferinstockHs = await db.Queryable<WmsRawmatTransferinstockD>().Where(r => r.bill_id == wmsRawmatTransferinstockHRep.id).ToListAsync();
bool isxf = wmsRawmatTransferinstockHs.Where(r => r.bind_qty > 0).Any();
if (isxf)
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】wms已下发使用调拨出库单{input.transfer_order}");
throw new AppFriendlyException($@"wms已下发使用调拨出库单{input.transfer_order}", 500);
}
else // 删除数据重新插入
{
await db.Deleteable<WmsRawmatTransferinstockH>().Where(r => r.id == wmsRawmatTransferinstockHRep.id).ExecuteCommandAsync();
await db.Deleteable<WmsRawmatTransferinstockD>().Where(r => r.bill_id == wmsRawmatTransferinstockHRep.id).ExecuteCommandAsync();
}
}
WmsRawmatTransferinstockH wmsRawmatTransferinstockH = new WmsRawmatTransferinstockH();
Code = await _billRuleService.GetBillNumber("WmsRawMatTransferInstock");
@@ -1143,6 +1162,7 @@ namespace Tnb.WarehouseMgr
if (material != null)
{
msRawmatTransferinstockD.matcode_id = material.id;
msRawmatTransferinstockD.matname = material.name;
msRawmatTransferinstockD.matspecification = material.material_specification;
}
@@ -1155,6 +1175,25 @@ namespace Tnb.WarehouseMgr
}
case WmsWareHouseConst.WAREHOUSE_CP_ID:
{
// 判断是否重复传输
WmsTransferInstockH wmsTransferInstockHRep = await db.Queryable<WmsTransferInstockH>().Where(r => r.erp_pk == input.erp_pk).FirstAsync();
if (wmsTransferInstockHRep != null)
{
// 判断单据是否已经下发
List<WmsTransferInstockD> _wmsTransferInstockDs = await db.Queryable<WmsTransferInstockD>().Where(r => r.bill_id == wmsTransferInstockHRep.id).ToListAsync();
bool isxf = _wmsTransferInstockDs.Where(r => r.xf_qty > 0).Any();
if (isxf)
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】wms已下发使用调拨出库单{input.transfer_order}");
throw new AppFriendlyException($@"wms已下发使用调拨出库单{input.transfer_order}", 500);
}
else // 删除数据重新插入
{
await db.Deleteable<WmsTransferInstockH>().Where(r => r.id == wmsTransferInstockHRep.id).ExecuteCommandAsync();
await db.Deleteable<WmsTransferInstockD>().Where(r => r.bill_id == wmsTransferInstockHRep.id).ExecuteCommandAsync();
}
}
WmsTransferInstockH wmsTransferInstockH = new WmsTransferInstockH();
Code = await _billRuleService.GetBillNumber("transferInstock");
@@ -1213,6 +1252,7 @@ namespace Tnb.WarehouseMgr
if (material != null)
{
wmsTransferInstockD.material_id = material.id;
wmsTransferInstockD.material_code = material.code;
wmsTransferInstockD.material_desc = material.material_specification;
}
@@ -1221,6 +1261,94 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsTransferInstockDs).ExecuteCommandAsync();
break;
}
case WmsWareHouseConst.WAREHOUSE_JXK_ID:
{
// 判断是否重复传输
WmsPackInstockH wmsPackInstockHRep = await db.Queryable<WmsPackInstockH>().Where(r => r.erp_pk == input.erp_pk).FirstAsync();
if (wmsPackInstockHRep != null)
{
// 判断单据是否已经下发
List<WmsPackInstockD> _wmsPackInstocDs = await db.Queryable<WmsPackInstockD>().Where(r => r.bill_id == wmsPackInstockHRep.id).ToListAsync();
bool isxf = _wmsPackInstocDs.Where(r => r.xf_qty > 0).Any();
if (isxf)
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】wms已下发使用调拨出库单{input.transfer_order}");
throw new AppFriendlyException($@"wms已下发使用调拨出库单{input.transfer_order}", 500);
}
else // 删除数据重新插入
{
await db.Deleteable<WmsPackInstockH>().Where(r => r.id == wmsPackInstockHRep.id).ExecuteCommandAsync();
await db.Deleteable<WmsPackInstockD>().Where(r => r.bill_id == wmsPackInstockHRep.id).ExecuteCommandAsync();
}
}
WmsPackInstockH wmsPackInstockH = new WmsPackInstockH();
Code = await _billRuleService.GetBillNumber("WMSPACKINSTOCK");
wmsPackInstockH.bill_code = Code;
wmsPackInstockH.erp_bill_code = input.transfer_order;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_id).FirstAsync();
if (org_erpExtendField != null)
{
wmsPackInstockH.outstockorg_id = org_erpExtendField.pk_org_v;
wmsPackInstockH.outstockorg_code = org_erpExtendField.pk_org;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_id}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_id}在wms系统中未找到", 500);
}
wmsPackInstockH.incoming_ware = warehouse_instock.id;
wmsPackInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsPackInstockH.erp_pk = input.erp_pk;
wmsPackInstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsPackInstockH.bill_date = DateTime.Now;
wmsPackInstockH.create_time = DateTime.Now;
wmsPackInstockH.erp_wh_type = input.warehouse_instock;
await db.Insertable(wmsPackInstockH).ExecuteCommandAsync();
List<WmsPackInstockD> wmsPackInstockDs = new List<WmsPackInstockD>();
foreach (var detail in input.details)
{
WmsPackInstockD wmsPackInstockD = new WmsPackInstockD();
wmsPackInstockD.bill_id = wmsPackInstockH.id;
wmsPackInstockD.material_code = detail.material_code;
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)
{
wmsPackInstockD.unit_id = erpExtendField.Id;
wmsPackInstockD.unit_code = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsPackInstockD.pr_qty = detail.qty;
wmsPackInstockD.pi_code = detail.code_batch;
wmsPackInstockD.erp_line_pk = detail.erp_line_pk;
wmsPackInstockD.create_id = WmsWareHouseConst.ErpUserId;
wmsPackInstockD.create_time = DateTime.Now;
wmsPackInstockD.xf_qty = 0;
wmsPackInstockD.qty = 0;
wmsPackInstockD.lineno = detail.lineno;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsPackInstockD.material_id = material.id;
wmsPackInstockD.material_code = material.code;
wmsPackInstockD.material_desc = material.material_specification;
}
wmsPackInstockDs.Add(wmsPackInstockD);
}
await db.Insertable(wmsPackInstockDs).ExecuteCommandAsync();
break;
}
}