From a9a3f943efb083de8ed88b293897886b3ef612a2 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 11 八月 2025 17:37:09 +0800
Subject: [PATCH] 功能增添优化
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs | 54 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 17 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..833e973 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;
@@ -94,7 +95,7 @@
}
else if (outOrderDTO.OType==2)
{
- warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
+ warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA71.ToString());
}
List<Dt_ProOutOrderDetail> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
Dictionary<string,string> keyValuePairs =new Dictionary<string, string>();
@@ -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)
{
@@ -808,10 +804,20 @@
//鏇存柊鍑哄簱鏄庣粏鍗曟暟閲�
proOutOrderDetail.OverQtyPcs += item.Quantity;
- item.Quantity -= item.Quantity;
- float Range = itemOut.StockPcsQty / itemOut.SETQty;
- itemOut.SETQty = item.Quantity / Range;
+ int Range = (int)itemOut.StockPcsQty / (int)itemOut.SETQty;
+ if (Range == 0)
+ {
+ return content.Error($"{itemOut.BagNo}鍗曞厓鏁伴噺杞崲澶辫触,璇锋鏌�,Range:{Range}");
+ }
+ int outSet =item.Quantity / Range;
+ if (outSet == 0)
+ {
+ return content.Error($"{itemOut.BagNo}鍗曞厓鏁伴噺杞崲澶辫触,璇锋鏌�,outSet:{outSet}");
+ }
+ itemOut.SETQty -= outSet;
+
itemOut.StockPcsQty -= item.Quantity;
+ item.Quantity = 0;
if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
{
return content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}閿�鍞鍗晎item.SoNumber}鏁伴噺婧㈠嚭{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