diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index 63717129..ff17c7f6 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -67,6 +67,8 @@ namespace Tnb.WarehouseMgr VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSOUTSTOCK_ID, true); await _runService.Create(templateEntity, input); + //判断目标库位是否自动签收 + var loc = await _db.Queryable().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString()); var carryIds = new List(); //tablefield120 出库物料明细 @@ -140,6 +142,7 @@ namespace Tnb.WarehouseMgr if (carrys?.Count > 0) { List preTasks = new(); + List locIds = new(); foreach (var carry in carrys) { WmsPointH sPoint = null; @@ -155,6 +158,7 @@ namespace Tnb.WarehouseMgr if (sPoint != null && ePoint != null) { var points = await _wareHouseService.PathAlgorithms(sPoint.id, ePoint.id); + locIds.AddRange(points.Select(x => x.location_id).ToList()!); //根据获取的路径点生成预任务,生成顺序必须预路径算法返回的起终点的顺序一致(预任务顺序) if (points?.Count > 0) { @@ -186,13 +190,19 @@ namespace Tnb.WarehouseMgr preTask.create_time = DateTime.Now; return preTask; }).ToList(); + if (loc.is_sign == 0) + { + curPreTasks[^1].is_sign = 0; // 修改最后一个元素的是否签收值 + } preTasks.AddRange(curPreTasks); + } } } var isOk = await _wareHouseService.GenPreTask(preTasks, null); GenPreTaskUpInput genPreTaskAfterUpInput = new(); genPreTaskAfterUpInput.CarryIds = preTasks.Select(x => x.carry_id).ToList(); + genPreTaskAfterUpInput.LocationIds = new HashSet(locIds).ToList(); await _wareHouseService.GenInStockTaskHandleAfter(genPreTaskAfterUpInput, it => new WmsCarryH { is_lock = 1 }, it => new BasLocation { is_lock = 1 }); }