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")