diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 53bea1a5..7ba0305c 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -3140,20 +3140,37 @@ namespace Tnb.WarehouseMgr await db.Updateable() .SetColumns(x => x.carry_status == carryStatus) - .Where(x => clearCarryIds.Contains(x.id)) - .ExecuteCommandAsync(); - Logger.Information($"【TaskComplate】 更新载具状态 {JsonConvert.SerializeObject(clearCarryIds)}成功"); - - await db.Updateable() .SetColumns(x => x.is_check == isCheck) .Where(x => clearCarryIds.Contains(x.id)) .ExecuteCommandAsync(); - Logger.Information($"【TaskComplate】 更新载具检验 {JsonConvert.SerializeObject(clearCarryIds)}成功"); //await QTRK2BIP(dt, db); // require_code是任务单 //string mo_task_code = dt.require_code; } + else if (dt.biz_type ==WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID)//长管签收 + { + //自动签收投料更新载具状态 + WmsCarryH carry = await db.Queryable().SingleAsync(x => x.id == dt.carry_id); + List clearCarryIds = new List(); + clearCarryIds.Add(carry.id); + List memberCarryIds = new List(); + if (carry.carrystd_id == WmsWareHouseConst.CARRY_ZYXCSTD_ID || + carry.carrystd_id == WmsWareHouseConst.CARRY_ZYLJSTD_ID) + { + } + else + { + memberCarryIds = await db.Queryable().Where(x=>x.carry_id==carry.id).Select(x=>x.membercarry_id).ToListAsync(); + clearCarryIds.AddRange(memberCarryIds); + } + + await db.Updateable() + .SetColumns(x => x.carry_status == carryStatus) + .SetColumns(x => x.is_check == isCheck) + .Where(x => clearCarryIds.Contains(x.id)) + .ExecuteCommandAsync(); + } else if (dt.biz_type == "erp_qtrk") { //await QTRK2BIP(dt, db); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs index a5e2f4c5..4a1d98ae 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs @@ -2606,6 +2606,8 @@ namespace Tnb.WarehouseMgr OrganizeEntity workshop = await _organizeService.GetAnyParentByWorkstationId(moTask.workstation_id, DictConst.RegionCategoryWorkshopCode); List insertHList = new List(); List insertDList = new List(); + List insertFHList = new List(); + List insertFDList = new List(); string orgId = WmsWareHouseConst.AdministratorOrgId; // string userId = moTask.worker_id; string userId = WmsWareHouseConst.AdministratorUserId; @@ -2635,6 +2637,26 @@ namespace Tnb.WarehouseMgr org_id = orgId }; insertHList.Add(prdMaterialReceiptH); + + string feedCode = await _billRullService.GetBillNumber(CodeTemplateConst.FEEDING_CODE); + PrdFeedingH prdFeedingH = new PrdFeedingH() + { + code = feedCode, + station_id = moTask.workstation_id, + mo_task_id = moTask.id, + process_id = moTask.process_id, + // equip_id = input.equip_id, + workshop_id = workshop?.Id, + carry_id = carry.id, + workline_id = moTask.workline_id, + carry_code = carry.carry_code, + // remark = input.remark, + mbom_process_id = moTask.mbom_process_id, + create_id = userId, + create_time = DateTime.Now, + org_id = orgId + }; + insertFHList.Add(prdFeedingH); List wmsCarryCodes = await _db.Queryable().Where(x => x.carry_id == carry.id).ToListAsync(); if (wmsCarryCodes != null && wmsCarryCodes.Count > 0) @@ -2643,7 +2665,7 @@ namespace Tnb.WarehouseMgr foreach (var item in wmsCarryCodes) { - insertDList.Add(new PrdMaterialReceiptD + PrdMaterialReceiptD dItem = new PrdMaterialReceiptD { material_receipt_id = prdMaterialReceiptH.id, material_id = item.material_id, @@ -2659,6 +2681,20 @@ namespace Tnb.WarehouseMgr supplier_id = item.supplier_id, instock_time = item.instock_time, // check_conclusion = item.check_conclusion, + }; + insertDList.Add(dItem); + + insertFDList.Add(new PrdFeedingD + { + feeding_id = prdFeedingH.id, + material_receipt_detail_id = dItem?.id, + material_id = item.material_id, + num = item.codeqty, + batch = item.code_batch, + unit_id = item.unit_id, + carry_id = carry.id, + status = "0", + use_num = 0, }); } } @@ -2666,6 +2702,24 @@ namespace Tnb.WarehouseMgr { throw Oops.Bah("未找到物料明细"); } + + if (carry.carrystd_id == WmsWareHouseConst.CARRY_ZYXCSTD_ID || carry.carrystd_id == WmsWareHouseConst.CARRY_ZYLJSTD_ID) + { + Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result = await _wmsCarryUnbindService.CarryCodeUnbindWithoutTran(new CarryCodeUnbindInput() + { + carry_id = carry.id + },_db); + + + if (result.code != HttpStatusCode.OK) + { + throw Oops.Bah(result.msg); + } + + //deleteCarryCodeIds.Add(carry.id); + // int row = await db.Deleteable().Where(r => r.carry_id == carry.id).ExecuteCommandAsync(); + // Log.Information($"载具{carry.id}已解绑,解绑条数{row}"); + } } @@ -2676,7 +2730,9 @@ namespace Tnb.WarehouseMgr int row1 = await _db.Insertable(insertHList).ExecuteCommandAsync(); int row2 = await _db.Insertable(insertDList).ExecuteCommandAsync(); - if (row1 <= 0 || row2 <= 0) + int row3 = await _db.Insertable(insertFHList).ExecuteCommandAsync(); + int row4 = await _db.Insertable(insertFDList).ExecuteCommandAsync(); + if (row1 <= 0 || row2 <= 0 || row3<=0 || row4<=0) { throw Oops.Bah(ErrorCode.COM1000); }