From 6b847305f775c05046f33f816f3a4988c0e1203b Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 6 Sep 2023 10:15:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=A2=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E8=B5=B7=E7=BB=88=E5=BA=93=E4=BD=8D=E7=9B=B8=E5=90=8C=E5=88=99?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AF=B9=E5=BA=94=E7=9A=84=E9=A2=84=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs | 9 +++++++-- .../Tnb.WarehouseMgr/WmsPDAScanInStockService.cs | 2 +- .../Tnb.WarehouseMgr/WmsTransferService.cs | 14 ++++++++------ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 09471778..c3359e3a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -75,7 +75,7 @@ namespace Tnb.WarehouseMgr _cacheManager = cacheManager; } - + /// /// 根据载具Id带出库位、仓库信息 /// @@ -519,7 +519,7 @@ namespace Tnb.WarehouseMgr { loc.is_use = ((int)EnumCarryStatus.占用).ToString(); } - + locIts.Add(loc); } @@ -581,6 +581,11 @@ namespace Tnb.WarehouseMgr /// public async Task GenPreTask(List preTasks, List preTaskCodes) { + //如果预任务出现起终库位相同,则删除对应预任务 + if (preTasks.FindAll(it => it.startlocation_id == it.endlocation_id)?.Count > 0) + { + preTasks.RemoveAll(it => it.startlocation_id == it.endlocation_id); + } var grpList = preTasks.OrderBy(o => o.bill_code).GroupBy(g => g.carry_id).ToList(); if (grpList?.Count > 0) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs index 3431adb9..ce45df01 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs @@ -144,7 +144,7 @@ namespace Tnb.WarehouseMgr if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); ePoint = await _db.Queryable().FirstAsync(it => it.location_id == endLocations[0].id); } - sPoint = await _db.Queryable().FirstAsync(it => it.location_id == loc.id && it.area_id == ePoint.area_id); + sPoint = await _db.Queryable().FirstAsync(it => it.location_id == loc.id); if (sPoint != null && ePoint != null) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs index 54990cfe..cc1fb206 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Channels; using System.Threading.Tasks; +using Aop.Api.Domain; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; @@ -75,15 +76,15 @@ namespace Tnb.WarehouseMgr // 计算路径,插入预任务申请 WmsPointH? sPoint = null; WmsPointH? ePoint = null; - if (input.data.ContainsKey(nameof(WmsTransfer.startlocation_id))) - { - sPoint = await _db.Queryable().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.startlocation_id)].ToString()); - } + if (input.data.ContainsKey(nameof(WmsTransfer.endlocation_id))) { ePoint = await _db.Queryable().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.endlocation_id)].ToString()); } - + if (input.data.ContainsKey(nameof(WmsTransfer.startlocation_id))) + { + sPoint = await _db.Queryable().FirstAsync(it => it.location_id == input.data[nameof(WmsTransfer.startlocation_id)].ToString()); + } if (sPoint != null && ePoint != null) { var points = await _wareHouseService.PathAlgorithms(sPoint.id, ePoint.id); @@ -91,11 +92,12 @@ namespace Tnb.WarehouseMgr if (points?.Count > 0) { if (points.Count <= 2) throw new AppFriendlyException("该路径不存在", 500); + var preTasks = points.Where(it => !it.location_id.IsNullOrEmpty()).GroupBy(g => g.area_code).Select(it => { var sPoint = it.FirstOrDefault(); var ePoint = it.LastOrDefault(); - + WmsPretaskH preTask = new(); preTask.org_id = _userManager.User.OrganizeId; preTask.startlocation_id = sPoint?.location_id!;