From 9e579eda4601ed7b492b9d19a24e8146f6ebdf8d Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期六, 19 四月 2025 19:50:43 +0800 Subject: [PATCH] 优化空托出入库逻辑 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs | 78 ++++++++++++++++++++++++++++++--------- 1 files changed, 60 insertions(+), 18 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs" index faceb44..9f44e13 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs" @@ -1,8 +1,10 @@ -锘縰sing System; +锘縰sing SqlSugar; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.StockEnum; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; @@ -18,29 +20,42 @@ public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal) : base(BaseDal) { } - + /// <summary> + /// 娣诲姞鍑哄簱璇︽儏 + /// </summary> + /// <param name="outboundOrder"></param> + /// <param name="outboundOrderDetail"></param> + /// <param name="outStocks"></param> + /// <param name="taskNum"></param> + /// <returns></returns> public List<Dt_OutStockLockInfo> GetOutStockLockInfos(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, List<Dt_StockInfo> outStocks, int? taskNum = null) { List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); - + var OutStockLockInfos = GetByOrderDetailId(outboundOrderDetail.Id); foreach (var item in outStocks) { - Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo() + Dt_OutStockLockInfo outStockLockInfo = OutStockLockInfos.FirstOrDefault(x => x.StockId == item.Id && x.OrderDetailId == outboundOrderDetail.Id); + if (outStockLockInfo == null) { - PalletCode = item.PalletCode, - AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity), - MaterielCode = outboundOrderDetail.MaterielCode, - BatchNo = outboundOrderDetail.BatchNo, - LocationCode = item.LocationCode, - MaterielName = outboundOrderDetail.MaterielName, - OrderDetailId = outboundOrderDetail.Id, - OrderNo = outboundOrder.OrderNo, - OrderType = outboundOrder.OrderType, - OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity), - Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt(), - StockId = item.Id, - TaskNum = taskNum - }; + outStockLockInfo = new Dt_OutStockLockInfo() + { + PalletCode = item.PalletCode, + AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity), + MaterielCode = outboundOrderDetail.MaterielCode, + BatchNo = item.Details.Select(x => x.BatchNo).FirstOrDefault(), + //BatchNo = outboundOrderDetail.BatchNo, + LocationCode = item.LocationCode, + MaterielName = outboundOrderDetail.MaterielName, + OrderDetailId = outboundOrderDetail.Id, + OrderNo = outboundOrder.OrderNo, + OrderType = outboundOrder.OrderType, + OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity), + //Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt(), + StockId = item.Id, + TaskNum = taskNum + }; + } + outStockLockInfo.Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt(); outStockLockInfos.Add(outStockLockInfo); } @@ -60,5 +75,32 @@ { return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId && x.Status == outStockStatus.ObjToInt()); } + + public List<Dt_OutStockLockInfo> GetOutStockLockInfo(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail item, List<Dt_StockInfo> dt_StockInfos, int? taskNum = null, string BatchNo = null) + { + List<Dt_OutStockLockInfo> OutStockLockInfos = new List<Dt_OutStockLockInfo>(); + foreach (var dt in dt_StockInfos) + { + Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo() + { + PalletCode = dt.PalletCode, + AssignQuantity = 1, + MaterielCode = item.MaterielCode, + BatchNo = BatchNo, + LocationCode = dt.LocationCode, + MaterielName = item.MaterielName, + OrderDetailId = item.Id, + OrderNo = outboundOrder.OrderNo, + OrderType = outboundOrder.OrderType, + OriginalQuantity = 1, + Status = taskNum == null ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(), + StockId = dt.Id, + TaskNum = taskNum, + OrderQuantity = item.OrderQuantity + }; + OutStockLockInfos.Add(outStockLockInfo); + } + return OutStockLockInfos; + } } } -- Gitblit v1.9.3