diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 0b6a3f23..d9f809b7 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -158,8 +158,6 @@ namespace Tnb.WarehouseMgr var items = new List(); try { - - //var stauts = (int)EnumCarryStatus.空闲; items = await _db.Queryable().Where(it => it.wh_id == input.warehouse_id && it.is_lock == 0 && it.is_type == "0" && it.is_use == ((int)EnumCarryStatus.空闲).ToString()).OrderBy(it => new { it.layers, it.loc_line, it.loc_column }, OrderByType.Asc).ToListAsync(); } @@ -185,47 +183,6 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task GenTaskExecute() { - //任务链属性处理内部函数 - async Task _taskChainAttrHandle(List items, List areaPreTasks, int moveNum) - { - var groupCode = await _billRullService.GetBillNumber(WmsWareHouseConst.WMS_TASK_EXECUTE_ENCODE); - await Task.Run(() => - { - if (moveNum == 1 || (moveNum > areaPreTasks.Count && areaPreTasks.Count == 1)) - { - items.ForEach(x => - { - x.is_chain = 0; - }); - items[0].groups = groupCode; - items[0].bill_code = $"{groupCode}-1"; - } - else if ((moveNum >= areaPreTasks.Count && areaPreTasks.Count > 1) || moveNum < areaPreTasks.Count) - { - items.ForEach(x => x.is_chain = 1); - var itemsCount = items.Count; - var mod = items.Count % moveNum > 0 ? itemsCount / moveNum + 1 : itemsCount / moveNum; - var start = 0; - var end = Math.Min(itemsCount, moveNum); - var arrary = items.ToArray(); - for (int i = 1; i <= mod; i++) - { - while (start < itemsCount) - { - var subArray = arrary[start..end]; - for (int j = 0, arrLen = subArray.Length; j < arrLen; j++) - { - subArray[j].groups = groupCode; - subArray[j].bill_code = $"{groupCode}-{i}"; - } - start = end; - end = Math.Min((end + moveNum), arrary.Length); - } - } - } - }); - } - //获取所有未下发的预任务申请 var preTasks = await _db.Queryable().InnerJoin((a, b) => a.startlocation_id == b.location_id && a.carry_id == b.id) .InnerJoin((a, b, c) => a.area_id == c.id) @@ -256,7 +213,49 @@ namespace Tnb.WarehouseMgr if (moveNum >= 1) { var areaPreTasks = itGroup.ToList(); - await _taskChainAttrHandle(items, areaPreTasks, moveNum); + var groupCode = await _billRullService.GetBillNumber(WmsWareHouseConst.WMS_TASK_EXECUTE_ENCODE); + if (moveNum == 1 || (moveNum > areaPreTasks.Count && areaPreTasks.Count == 1)) + { + items.ForEach(x => + { + x.is_chain = 0; + }); + items[0].groups = groupCode; + items[0].bill_code = $"{groupCode}-1"; + } + else if ((moveNum >= areaPreTasks.Count && areaPreTasks.Count > 1) || moveNum < areaPreTasks.Count) + { + items.ForEach(x => x.is_chain = 1); + var itemsCount = items.Count; + var mod = items.Count % moveNum > 0 ? itemsCount / moveNum + 1 : itemsCount / moveNum; + var start = 0; + var end = Math.Min(itemsCount, moveNum); + var arrary = items.ToArray(); + var dic = new Dictionary(); + for (int i = 1; i <= mod; i++) + { + while (start < itemsCount) + { + var subArray = arrary[start..end]; + dic[i] = subArray; + //for (int j = 0, arrLen = subArray.Length; j < arrLen; j++) + //{ + // subArray[j].groups = groupCode; + // subArray[j].bill_code = $"{groupCode}-{i}"; + //} + start = end; + end = Math.Min((end + moveNum), arrary.Length); + } + } + foreach (var (k, v) in dic) + { + foreach (var it in v) + { + it.groups = groupCode; + it.bill_code = $"{groupCode}-{k}"; + } + } + } } if (preTaskCodes?.Count > 0) { @@ -621,6 +620,7 @@ namespace Tnb.WarehouseMgr List results = new() { startObj }; if (points?.Count > 0) { + points.Where(it => result.Contains(it.id)); foreach (var i in result) { WmsPointH? point = points?.Find(x => x.id == i);