From 75b59f8bd0ce2610f8c77e3188926cab20c933a9 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 27 六月 2025 17:00:02 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs | 48 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 34 insertions(+), 14 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" index 662402c..9ea6759 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" @@ -1,5 +1,6 @@ 锘縰sing AutoMapper; using Castle.Core.Resource; +using Org.BouncyCastle.Asn1.Cmp; using System; using System.Collections.Generic; using System.Linq; @@ -764,19 +765,14 @@ .Select((master, detail) => detail) .ToList(); proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList(); - + List<int> stockIds = proStockInfoDetails.Select(x => x.ProStockId).Distinct().ToList(); + //鑾峰彇鎵�鏈夊钩搴撲富琛� + List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => stockIds.Contains(x.Id)).Includes(x => x.proStockInfoDetails).ToList(); List<Dt_ProStockInfo> delProStockInfos = new List<Dt_ProStockInfo>(); List<Dt_ProStockInfoDetail> delStockInfoDetails = new List<Dt_ProStockInfoDetail>(); foreach (var item in outProStocks) { - - //鑾峰彇搴撳瓨 - List<Dt_ProStockInfoDetail> outStocks = proStockInfoDetails.Where(x=>x.ProductCode==item.Partnum).ToList(); - if (outStocks.Count==0 || outStocks==null) - { - return content.Error($"{item.Partnum}浜у搧鍨嬪彿搴撳瓨涓嶅瓨鍦�"); - } - foreach (var itemOut in outStocks) + foreach (var itemOut in proStockInfoDetails.Where(x => x.ProductCode == item.Partnum).ToList()) { if (item.Quantity==0) { @@ -810,7 +806,17 @@ proOutOrderDetail.OverQtyPcs += item.Quantity; item.Quantity -= item.Quantity; float Range = itemOut.StockPcsQty / itemOut.SETQty; - itemOut.SETQty = item.Quantity / Range; + if (Range == 0) + { + return content.Error($"{itemOut.BagNo}鍗曞厓鏁伴噺杞崲澶辫触,璇锋鏌�"); + } + int outSet = (int)(item.Quantity / Range); + if (outSet == 0) + { + return content.Error($"{itemOut.BagNo}鍗曞厓鏁伴噺杞崲澶辫触,璇锋鏌�"); + } + itemOut.SETQty -= outSet; + itemOut.StockPcsQty -= item.Quantity; if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs) { @@ -826,6 +832,10 @@ } } } + if (item.Quantity>0) + { + return content.Error($"鏈壘鍒皗item.SoNumber}鍙墸鍑忓簱瀛�"); + } } if (proOutOrder.Details.Count == proOutOrder.Details.Where(x => x.ProOrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count()) { @@ -836,12 +846,22 @@ Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.ProOrderDetailStatus <= OrderDetailStatusEnum.Over.ObjToInt()); return content.Error($"{proOutOrderDetail?.SaleOrder}閿�鍞鍗曟暟閲忛渶鍑簕proOutOrderDetail?.QtyPcs},鍙嚭{proOutOrderDetail?.OverQtyPcs}"); } + //鑾峰彇鍒犻櫎鐨勫簱瀛樹富琛� + List<int> delStockIds = delStockInfoDetails.Select(x => x.ProStockId).Distinct().ToList(); + List<int> delStockDetailIds = delStockInfoDetails.Select(x => x.Id).ToList(); + foreach (var item in delStockIds) + { + Dt_ProStockInfo proStockInfo = proStockInfos.FirstOrDefault(x => x.Id == item); + Dt_ProStockInfoDetail? proStockInfoDetail = proStockInfo.proStockInfoDetails.FirstOrDefault(x => !delStockDetailIds.Contains(x.Id)); + if (proStockInfoDetail == null) + { + delProStockInfos.Add(proStockInfo); + } + } //鏇存柊鏁版嵁 _unitOfWorkManage.BeginTran(); - if (delStockInfoDetails.Count > 0) - { - _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delStockInfoDetails, OperateTypeEnum.鑷姩鍒犻櫎); - } + _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delStockInfoDetails, OperateTypeEnum.鑷姩鍒犻櫎); + _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(delProStockInfos, OperateTypeEnum.鑷姩瀹屾垚); _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfoDetails); BaseDal.UpdateData(proOutOrder); _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrder.Details); -- Gitblit v1.9.3