From ca2d4d7efb253c651b7eb6dc070ec8fae4d39a27 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 03 二月 2026 19:11:06 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs   |   39 +++++++++++--------
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs        |   11 +++++
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs |   12 ++++--
 3 files changed, 42 insertions(+), 20 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_AllocateService/AllocateService.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_AllocateService/AllocateService.cs"
index 5e198a5..35bbece 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_AllocateService/AllocateService.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_AllocateService/AllocateService.cs"
@@ -143,6 +143,7 @@
             try
             {
                 var allocateOrder = Db.Queryable<Dt_AllocateOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
+                var outOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
                 if (allocateOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟淇℃伅");
@@ -150,6 +151,10 @@
                 if (allocateOrder.Details == null || allocateOrder.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟鏄庣粏淇℃伅");
+                }
+                if (outOrder.OrderStatus != (int)OutOrderStatusEnum.鏈紑濮�)
+                {
+                    return WebResponseContent.Instance.Error($"璇ヨ鍗曠姸鎬佷笉鍏佽淇敼");
                 }
                 List<Dt_AllocateOrderDetail> allocateOrderDetails = new List<Dt_AllocateOrderDetail>();
                 List<Dt_AllocateOrderDetail> updateAllocateOrderDetails = new List<Dt_AllocateOrderDetail>();
@@ -254,6 +259,12 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟鏄庣粏淇℃伅");
                 }
+                var outOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
+
+                if (outOrder.OrderStatus != (int)OutOrderStatusEnum.鏈紑濮�)
+                {
+                    return WebResponseContent.Instance.Error($"璇ヨ鍗曠姸鎬佷笉鍏佽鍒犻櫎");
+                }
                 //Db.DeleteNav(Allocate).Include(x => x.Details).ExecuteCommand();
                 _unitOfWorkManage.BeginTran();
                 // BaseDal.DeleteAndMoveIntoHty(allocateOrder, OperateTypeEnum.鑷姩鍒犻櫎);
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/OutboundOrderService.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/OutboundOrderService.cs"
index 4319e11..f2260cb 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/OutboundOrderService.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/OutboundOrderService.cs"
@@ -161,22 +161,29 @@
                         {
                             return WebResponseContent.Instance.Error($"淇敼鐨勮鍙穥item.lineNo}鏁伴噺瓒呰繃浜嗘櫤浠撳嚭搴撻攣瀹氭暟閲忓姞涓婃尓鏂欐暟閲忥紝涓嶅厑璁镐慨鏀�");
                         }
-                        outboundOrderDetail.lineNo = item.lineNo;
-                        outboundOrderDetail.MaterielCode = item.MaterielCode;
-                        outboundOrderDetail.SupplyCode = item.SupplyCode;
-                        outboundOrderDetail.BatchNo = item.BatchNo;
-                        outboundOrderDetail.Unit = item.Unit;
-                        outboundOrderDetail.WarehouseCode = item.WarehouseCode;
-                        outboundOrderDetail.MoveQty = item.MoveQty;
-                        outboundOrderDetail.OrderQuantity = item.OrderQuantity;
-                        outboundOrderDetail.BarcodeMoveQty = item.MoveQty;
-                        outboundOrderDetail.BarcodeQty = item.OrderQuantity;
-                        outboundOrderDetail.BarcodeUnit = item.Unit;
-                        var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty);
-                        outboundOrderDetail.Unit = issueoStockResult.Unit;
-                        outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity;
-                        var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
-                        outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity;
+                        if(outboundOrderDetail.LockQuantity == 0)
+                        {
+                            outboundOrderDetail.lineNo = item.lineNo;
+                            outboundOrderDetail.MaterielCode = item.MaterielCode;
+                            outboundOrderDetail.SupplyCode = item.SupplyCode;
+                            outboundOrderDetail.BatchNo = item.BatchNo;
+                            outboundOrderDetail.Unit = item.Unit;
+                            outboundOrderDetail.WarehouseCode = item.WarehouseCode;
+                            outboundOrderDetail.MoveQty = item.MoveQty;
+                            outboundOrderDetail.OrderQuantity = item.OrderQuantity;
+                            outboundOrderDetail.BarcodeMoveQty = item.MoveQty;
+                            outboundOrderDetail.BarcodeQty = item.OrderQuantity;
+                            outboundOrderDetail.BarcodeUnit = item.Unit;
+                            var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty);
+                            outboundOrderDetail.Unit = issueoStockResult.Unit;
+                            outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity;
+                            var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
+                            outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity;
+                        }
+                        else
+                        {
+                            outboundOrderDetail.OrderQuantity = item.OrderQuantity;
+                        }
                         if (materielInfos.Any())
                         {
                             outboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
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 6d656bb..875719a 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"
@@ -2362,17 +2362,17 @@
             var detailLists = new List<Dt_InboundOrderDetail>();
             var matchedDetail = inboundOrder.Details.FirstOrDefault(detail =>
                 detail.Barcode == noStockOut.barCode &&
-                detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt());
+                detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt()&& detail.ReceiptQuantity == 0);
 
             if (matchedDetail == null)
             {
                 matchedDetail = inboundOrder.Details.FirstOrDefault(detail =>
                     detail.OutBoxbarcodes == noStockOut.barCode &&
-                    detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt());
+                    detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt() && detail.ReceiptQuantity == 0);
 
                 if (matchedDetail == null)
                 {
-                    return WebResponseContent.Instance.Error($"鍦ㄩ噰璐崟 {noStockOut.inOder} 涓湭鎵惧埌鏉$爜涓� {noStockOut.barCode} 鐨勬槑缁嗐��");
+                    return WebResponseContent.Instance.Error($"鍦ㄩ噰璐崟 {noStockOut.inOder} 涓湭鎵惧埌鏉$爜涓� {noStockOut.barCode} 鐨勫彲鍑哄簱鏄庣粏銆�");
                 }
                 else
                 {
@@ -2381,7 +2381,7 @@
                     {
                         if (detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt() &&
                             !string.IsNullOrEmpty(detail.Barcode) &&
-                            detail.OutBoxbarcodes == noStockOut.barCode)
+                            detail.OutBoxbarcodes == noStockOut.barCode && detail.OrderQuantity > detail.NoStockOutQty)
                         {
                             detailLists.Add(detail);
                         }
@@ -2395,6 +2395,10 @@
                     detailLists.Add(matchedDetail);
                 }
             }
+                if (!detailLists.Any())
+                {
+                    return WebResponseContent.Instance.Error("璇ユ潯鐮佸凡缁忔病鏈夊彲鍑哄簱鏁伴噺");
+                }
                 var outDetails = new List<Dt_OutboundOrderDetail>();
                 // 閬嶅巻姣忎釜鍏ュ簱鏄庣粏
                 foreach (var item in detailLists)

--
Gitblit v1.9.3