From ac3797e3740760a07ce0ff242f6824c4b4748610 Mon Sep 17 00:00:00 2001 From: chenwenkai <1084072318@qq.com> Date: Wed, 13 Nov 2024 16:25:39 +0800 Subject: [PATCH] =?UTF-8?q?bip=E8=B0=83=E6=8B=A8=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=8D=95=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9=EF=BC=9B=E4=BA=A7?= =?UTF-8?q?=E6=88=90=E5=93=81=E5=85=A5=E5=BA=93=E7=94=9F=E4=BA=A7=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=AD=90=E8=A1=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.BasicData/ThirdApiRecordService.cs | 46 --------------- .../Consts/WmsWareHouseConst.cs | 4 ++ .../Tnb.WarehouseMgr/ErpToWmsService.cs | 23 ++++---- .../Tnb.WarehouseMgr/WmsPrdInstockHService.cs | 58 ++++++++----------- 4 files changed, 40 insertions(+), 91 deletions(-) diff --git a/BasicData/Tnb.BasicData/ThirdApiRecordService.cs b/BasicData/Tnb.BasicData/ThirdApiRecordService.cs index 3816d32e..a3ede2cc 100644 --- a/BasicData/Tnb.BasicData/ThirdApiRecordService.cs +++ b/BasicData/Tnb.BasicData/ThirdApiRecordService.cs @@ -379,56 +379,10 @@ namespace Tnb.BasicData Log.Error($"产成品入库同步BIP后,更新生产入库记录失败,请求数据为空:{record.request_data}"); foreach (var reqData in requestDatas) { - var report_id = reqData["report_id"].ToString(); var prd_instock_h_id = reqData["prd_instock_h_id"].ToString(); - if (string.IsNullOrEmpty(report_id)) - { - Log.Error($"请求记录id{record.id},生产提报记录id为空"); - continue; - } - PrdReport prdReport = await db.Queryable().SingleAsync(r => r.id == report_id); - #region 修改生成入库记录主表数据为已同步bip - var wmsPrdInstockD = await db.Queryable().SingleAsync(r => r.prd_report_id == report_id); - if(wmsPrdInstockD==null) - { - Log.Error($"请求记录id{record.id},提报记录id{report_id}未找到对应的wms_prd_instock_d表中记录"); - continue; - } - WmsPrdInstockH wmsPrdInstockH = await db.Queryable().SingleAsync(r => r.id == wmsPrdInstockD.prd_instock_id); - - PrdMoTask prdMoTask = await db.Queryable().SingleAsync(x => x.id == prdReport.mo_task_id); - - if(prdMoTask==null) - { - Log.Error($"请求记录id{record.id},生产任务id{prdReport.mo_task_id}未找到对应的生产任务信息数据"); - continue; - } - await db.Updateable().SetColumns(r => r.is_sync_bip == 1).Where(r => r.id == prd_instock_h_id).ExecuteCommandAsync(); #endregion - - #region 生成入库记录子表数据 - List allInstockDetails = await db.Queryable().Where(it => it.prd_instockD_id == wmsPrdInstockD.id).OrderBy(x => x.id).ToListAsync(); - if (allInstockDetails == null) - continue; - foreach(var _detail in allInstockDetails) - { - PrdInstockD prdInstockD = new PrdInstockD(); - prdInstockD.id = SnowflakeIdHelper.NextId(); - prdInstockD.instock_id = prd_instock_h_id; - prdInstockD.material_id = wmsPrdInstockH.material_id; - prdInstockD.material_code= wmsPrdInstockH.material_code; - prdInstockD.unit_id = _detail.unit_id; - prdInstockD.quantity = _detail.pqty.HasValue ? Convert.ToInt32(_detail.pqty) : 0; - prdInstockD.code_batch= _detail.code_batch; - prdInstockD.barcode=prdReport.barcode; - prdInstockD.report_id = report_id; - prdInstockD.mo_task_code = prdMoTask?.mo_task_code; - await db.Insertable(prdInstockD).ExecuteCommandAsync(); - } - - #endregion } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs index bbc09d96..800ca8d6 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs @@ -130,6 +130,10 @@ namespace Tnb.WarehouseMgr.Entities.Consts /// 灭菌入库 /// public const string MATERIALTRANSFER_SterilizationInstock_CODE = "SterilizationInstock"; + /// + /// 调拨静置成品入库 + /// + public const string MATERIALTRANSFER_Transferstanding_CODE = "Transferstanding"; /// /// 出入库单据状态TypeID diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs index 39c71d9d..9a16f561 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs @@ -977,18 +977,21 @@ namespace Tnb.WarehouseMgr // 灭菌入库 else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_MJC_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_CP_ID) transfer_type = WmsWareHouseConst.MATERIALTRANSFER_SterilizationInstock_CODE; + //调拨静置成品入库 + else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_JXK_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_CP_ID) + transfer_type = WmsWareHouseConst.MATERIALTRANSFER_Transferstanding_CODE; #endregion - //var wmsMaterialTransferdsDistinct = input.details.Select(r => new - //{ - // material_id = r.material_code, - // code_batch = r.code_batch, - //}).Distinct(); - //if (wmsMaterialTransferdsDistinct.Count() < input.details.Count) - //{ - // _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在物料和批号重复的明细!"); - // throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500); - //} + //var wmsMaterialTransferdsDistinct = input.details.Select(r => new + //{ + // material_id = r.material_code, + // code_batch = r.code_batch, + //}).Distinct(); + //if (wmsMaterialTransferdsDistinct.Count() < input.details.Count) + //{ + // _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在物料和批号重复的明细!"); + // throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500); + //} await db.Ado.BeginTranAsync(); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs index 566cac83..8384b274 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs @@ -384,42 +384,30 @@ namespace Tnb.WarehouseMgr await _db.Insertable(prdInstockH).ExecuteCommandAsync(); - //prdInstockH = await _db.Queryable().Where(r => r.mo_task_id == prdReport.mo_task_id).FirstAsync(); - //if (prdInstockH != null) - //{ - // prdInstockH.bill_type = instock.type; - // prdInstockH.warehouse_id = wmsPrdInstockD.warehouse_id; - // prdInstockH.carry_code = wmsPrdInstockD.carry_id; - // prdInstockH.location_code = wmsPrdInstockD.startlocation_id; - // prdInstockH.create_id = prdReport?.create_id ?? wmsPrdInstockD.create_id; - // prdInstockH.org_id = instock.org_id; - // prdInstockH.station_id = prdMoTask?.workstation_id; - // prdInstockH.workline_id = prdMoTask?.workline_id; - // prdInstockH.mo_task_id = prdReport?.mo_task_id; - // prdInstockH.code = instock.bill_code; - // prdInstockH.is_sync_bip = 0; - // await _db.Updateable(prdInstockH).ExecuteCommandAsync(); - // Logger.LogInformation($"【WmsPrdInstockHService ModifyAsync】更新生产入库记录,id:{prdInstockH.id}"); - //} - //else - //{ - // prdInstockH.id = SnowflakeIdHelper.NextId(); - // prdInstockH.bill_type = instock.type; - // prdInstockH.warehouse_id = wmsPrdInstockD.warehouse_id; - // prdInstockH.carry_code = wmsPrdInstockD.carry_id; - // prdInstockH.location_code = wmsPrdInstockD.startlocation_id; - // prdInstockH.create_id = prdReport?.create_id ?? wmsPrdInstockD.create_id; - // prdInstockH.org_id = instock.org_id; - // prdInstockH.station_id = prdMoTask?.workstation_id; - // prdInstockH.workline_id = prdMoTask?.workline_id; - // prdInstockH.mo_task_id = prdReport?.mo_task_id; - // prdInstockH.code = instock.bill_code; - // prdInstockH.is_sync_bip = 0; - - // await _db.Insertable(prdInstockH).ExecuteCommandAsync(); - // Logger.LogInformation($"【WmsPrdInstockHService ModifyAsync】新增生产入库记录,id:{prdInstockH.id}"); - //} + #region 生成入库记录子表数据 + List wmsPrdInstockCodes = await _db.Queryable().Where(it => it.prd_instockD_id == wmsPrdInstockD.id).OrderBy(x => x.id).ToListAsync(); + if (wmsPrdInstockCodes != null) + { + var prdInstockDs = new List(); + foreach (var _detail in wmsPrdInstockCodes) + { + PrdInstockD prdInstockD = new PrdInstockD(); + prdInstockD.id = SnowflakeIdHelper.NextId(); + prdInstockD.instock_id = prdInstockH.id; + prdInstockD.material_id = instock.material_id; + prdInstockD.material_code = instock.material_code; + prdInstockD.unit_id = _detail.unit_id; + prdInstockD.quantity = _detail.pqty.HasValue ? Convert.ToInt32(_detail.pqty) : 0; + prdInstockD.code_batch = _detail.code_batch; + prdInstockD.barcode = prdReport.barcode; + prdInstockD.report_id = prdReport.id; + prdInstockD.mo_task_code = prdMoTask?.mo_task_code; + prdInstockDs.Add(prdInstockD); + } + await _db.Insertable(prdInstockDs).ExecuteCommandAsync(); + } + #endregion #endregion //来源erp才产成品入库 if (prdMo.mo_source != "1")