From 1b9406225324a7ee7bbcf6715db0047ba4c620f7 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期日, 30 十一月 2025 17:04:44 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
index 27b0b60..a318a54 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
@@ -2468,7 +2468,7 @@
                    return WebResponseContent.Instance.Error($"鍑哄簱鍗曟槑缁嗘暟閲忔孩鍑簕matchedCode.LockQuantity - matchedCode.OrderQuantity}");
                 }
                 matchedDetail.OrderDetailStatus = OrderDetailStatusEnum.Inbounding.ObjToInt();
-                matchedCode.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
+                matchedCode.OrderDetailStatus = OrderDetailStatusEnum.AssignOver.ObjToInt();
 
                 _unitOfWorkManage.BeginTran();
                 _inboundOrderDetailService.UpdateData(matchedDetail);
@@ -2501,6 +2501,11 @@
                 }
                 matchedDetail.NoStockOutQty = 0;
 
+                if(matchedDetail.ReceiptQuantity==0 && matchedDetail.OverInQuantity==0)
+                {
+                    matchedDetail.OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt();
+                }
+
                 Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == noStockOut.outOder && x.OrderStatus != OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt()).Includes(x => x.Details).First();
                 if (outboundOrder == null)
                 {
@@ -2513,6 +2518,10 @@
                     return WebResponseContent.Instance.Error($"鍦ㄥ嚭搴撳崟鐨勭墿鏂欑紪鐮佷腑鏈壘鍒颁笌閲囪喘鍗曚腑鐨剓matchedDetail.MaterielCode} 瀵瑰簲鐨勭墿鏂欍��");
                 }
                 matchedCode.NoStockOutQty = 0;
+                if (matchedCode.LockQuantity == 0 && matchedCode.OverOutQuantity == 0)
+                {
+                    matchedCode.OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt();
+                }
                 _unitOfWorkManage.BeginTran();
                 _inboundOrderDetailService.UpdateData(matchedDetail);
                 _outboundOrderDetailService.UpdateData(matchedCode);
@@ -2572,17 +2581,27 @@
 
                 }
                 //鍒ゆ柇鍏ュ簱鍗曟嵁鏄庣粏鏄惁鍏ㄩ儴鏄畬鎴愮姸鎬�
-                bool inoderOver = inboundOrder.Details.Count() == inboundOrder.Details.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
+                int e = inboundOrder.Details.Count();
+                int w = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
+                bool inoderOver = inboundOrder.Details.Count() == inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
                 if (inoderOver)
                 {
                     inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
                 }
+                else
+                {
+                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+                }
                 //鍒ゆ柇鍑哄簱鍗曟嵁鏄庣粏鏄惁鍏ㄩ儴鏄畬鎴愮姸鎬�
-                bool outOderOver = outboundOrder.Details.Count() == outboundOrder.Details.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
+                bool outOderOver = outboundOrder.Details.Count() == outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count();
                 if (outOderOver)
                 {
                     outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
                 }
+                else
+                {
+                    outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
+                }
                 //鏁版嵁澶勭悊
                 _unitOfWorkManage.BeginTran();
                 _inboundOrderDetailService.UpdateData(inboundOrderDetails);

--
Gitblit v1.9.3