From 43d2d040be7416230db1c562526f2743e87d75ea Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期六, 22 十一月 2025 10:56:56 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs |  217 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 181 insertions(+), 36 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 a33a17c..df1fcf7 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"
@@ -148,7 +148,13 @@
         }
 
         #region 鏍稿績涓氬姟娴佺▼
-
+        /// <summary>
+        /// 鎷i��
+        /// </summary>
+        /// <param name="orderNo"></param>
+        /// <param name="palletCode"></param>
+        /// <param name="barcode"></param>
+        /// <returns></returns>
         public async Task<WebResponseContent> ConfirmPicking(string orderNo, string palletCode, string barcode)
         {
             try
@@ -189,11 +195,21 @@
                 return WebResponseContent.Instance.Error($"鎷i�夌‘璁ゅけ璐ワ細{ex.Message}");
             }
         }
-
+        /// <summary>
+        /// 鍙栨秷鎷i��
+        /// </summary>
+        /// <param name="orderNo"></param>
+        /// <param name="palletCode"></param>
+        /// <param name="barcode"></param>
+        /// <returns></returns>
         public async Task<WebResponseContent> CancelPicking(string orderNo, string palletCode, string barcode)
         {
             try
             {
+                if (await IsPalletReturned(palletCode))
+                {
+                    return WebResponseContent.Instance.Error($"鎵樼洏{palletCode}宸茬粡鍥炲簱锛屼笉鑳藉彇娑堝垎鎷�");
+                }
                 _unitOfWorkManage.BeginTran();
 
                 // 1. 鍓嶇疆楠岃瘉
@@ -217,7 +233,13 @@
                 return WebResponseContent.Instance.Error($"鍙栨秷鍒嗘嫞澶辫触锛歿ex.Message}");
             }
         }
-
+        /// <summary>
+        /// 鍥炲簱
+        /// </summary>
+        /// <param name="orderNo"></param>
+        /// <param name="palletCode"></param>
+        /// <param name="reason"></param>
+        /// <returns></returns>
         public async Task<WebResponseContent> ReturnRemaining(string orderNo, string palletCode, string reason)
         {
             try
@@ -229,8 +251,7 @@
                     return WebResponseContent.Instance.Error("璁㈠崟鍙峰拰鎵樼洏鐮佷笉鑳戒负绌�");
 
                 // 2. 鑾峰彇搴撳瓨鍜屼换鍔′俊鎭�
-                var stockInfo = await _stockInfoService.Db.Queryable<Dt_StockInfo>()
-                    .FirstAsync(x => x.PalletCode == palletCode);
+                var stockInfo = await _stockInfoService.Db.Queryable<Dt_StockInfo>().FirstAsync(x => x.PalletCode == palletCode);
 
                 if (stockInfo == null)
                     return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩� {palletCode} 瀵瑰簲鐨勫簱瀛樹俊鎭�");
@@ -242,7 +263,7 @@
                 // 3. 鍒嗘瀽闇�瑕佸洖搴撶殑璐х墿
                 var returnAnalysis = await AnalyzeReturnItems(orderNo, palletCode, stockInfo.Id);
                 if (!returnAnalysis.HasItemsToReturn)
-                    return await HandleNoReturnItems(orderNo, palletCode);
+                    return await HandleNoReturnItems(orderNo, palletCode,task);
 
                 // 4. 鎵ц鍥炲簱鎿嶄綔
                 await ExecuteReturnOperations(orderNo, palletCode, stockInfo, task, returnAnalysis);
@@ -301,7 +322,8 @@
 
             // 6. 鑾峰彇搴撳瓨鏄庣粏
             var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
-                .Where(x => x.Barcode == barcode && x.StockId == lockInfo.StockId)
+                .Where(x => x.Barcode == barcode && x.StockId == lockInfo.StockId &&
+                   x.Status != StockStatusEmun.鍏ュ簱纭.ObjToInt())
                 .FirstAsync();
 
             if (stockDetail == null)
@@ -333,18 +355,13 @@
                            it.Status == (int)OutLockStockStatusEnum.鍑哄簱涓� &&
                            it.PalletCode == palletCode &&
                            it.CurrentBarcode == barcode &&
-                           it.AssignQuantity > it.PickedQty)
-                .FirstAsync();
+                           it.AssignQuantity > it.PickedQty).FirstAsync();
 
             if (lockInfo == null)
             {
                 // 鏌ユ壘鍚屼竴璁㈠崟涓嬬殑璁板綍
                 lockInfo = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
-                    .Where(it => it.OrderNo == orderNo &&
-                               it.CurrentBarcode == barcode &&
-                               it.Status == (int)OutLockStockStatusEnum.鍑哄簱涓� &&
-                               it.AssignQuantity > it.PickedQty)
-                    .FirstAsync();
+                    .Where(it => it.OrderNo == orderNo &&  it.CurrentBarcode == barcode && it.Status == (int)OutLockStockStatusEnum.鍑哄簱涓� && it.AssignQuantity > it.PickedQty).FirstAsync();
 
                 if (lockInfo == null)
                 {
@@ -352,8 +369,7 @@
                     var completedLockInfo = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
                         .Where(it => it.CurrentBarcode == barcode &&
                                    (it.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴� ||
-                                    it.PickedQty >= it.AssignQuantity))
-                        .FirstAsync();
+                                    it.PickedQty >= it.AssignQuantity)).FirstAsync();
 
                     if (completedLockInfo != null)
                         throw new Exception($"鏉$爜{barcode}宸茬粡瀹屾垚鍒嗘嫞锛屼笉鑳介噸澶嶅垎鎷�");
@@ -457,6 +473,7 @@
             // 5. 鏇存柊鍘熼攣瀹氫俊鎭�
             lockInfo.AssignQuantity = remainingStockQty;
             lockInfo.PickedQty = 0;
+            lockInfo.Operator = App.User.UserName;
             await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
 
             // 6. 璁剧疆缁撴灉
@@ -477,6 +494,7 @@
             // 2. 鏇存柊閿佸畾淇℃伅
             lockInfo.PickedQty += actualQty;
             lockInfo.Status = (int)OutLockStockStatusEnum.鎷i�夊畬鎴�;
+            lockInfo.Operator = App.User.UserName;
             await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
         }
 
@@ -495,6 +513,7 @@
             // 2. 鏇存柊閿佸畾淇℃伅
             lockInfo.PickedQty += stockOutQty;
             lockInfo.AssignQuantity = remainingAssignQty;
+            lockInfo.Operator = App.User.UserName;
             await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
 
             // 3. 鏇存柊鎷嗗寘璁板綍鐘舵��
@@ -596,6 +615,20 @@
             if (lockInfo.Status != (int)OutLockStockStatusEnum.鎷i�夊畬鎴�)
                 return ValidationResult<(Dt_PickingRecord, Dt_OutStockLockInfo, Dt_OutboundOrderDetail)>.Error("褰撳墠鐘舵�佷笉鍏佽鍙栨秷鍒嗘嫞");
 
+            var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
+       .Where(it => it.Barcode == barcode && it.StockId == pickingRecord.StockId)
+       .FirstAsync();
+
+            if (stockDetail != null)
+            {
+                // 妫�鏌ュ簱瀛樼姸鎬� - 濡傛灉鐘舵�佹槸鍏ュ簱纭鎴栧叆搴撳畬鎴愶紝璇存槑宸茬粡鍥炲簱
+                if (stockDetail.Status == StockStatusEmun.鍏ュ簱纭.ObjToInt() ||
+                    stockDetail.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt())
+                {
+                    return ValidationResult<(Dt_PickingRecord, Dt_OutStockLockInfo, Dt_OutboundOrderDetail)>.Error($"鏉$爜{barcode}宸茬粡鍥炲簱锛屼笉鑳藉彇娑堝垎鎷�");
+                }
+            }
+
             // 妫�鏌ヨ鍗曠姸鎬�
             var order = await _outboundOrderService.Db.Queryable<Dt_OutboundOrder>()
                 .Where(x => x.OrderNo == orderNo)
@@ -613,13 +646,54 @@
 
             return ValidationResult<(Dt_PickingRecord, Dt_OutStockLockInfo, Dt_OutboundOrderDetail)>.Success((pickingRecord, lockInfo, orderDetail));
         }
+        /// <summary>
+        /// 妫�鏌ユ潯鐮佹槸鍚﹀凡缁忓洖搴�
+        /// </summary>
+        private async Task<bool> IsBarcodeReturned(string barcode, int stockId)
+        {
+            var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
+                .Where(it => it.Barcode == barcode && it.StockId == stockId)
+                .FirstAsync();
 
+            if (stockDetail == null)
+                return false;
+
+            // 濡傛灉鐘舵�佹槸鍏ュ簱纭鎴栧叆搴撳畬鎴愶紝璇存槑宸茬粡鍥炲簱
+            return stockDetail.Status == StockStatusEmun.鍏ュ簱纭.ObjToInt() ||
+                   stockDetail.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+        }
+
+        /// <summary>
+        /// 妫�鏌ラ攣瀹氫俊鎭搴旂殑鏉$爜鏄惁宸茬粡鍥炲簱
+        /// </summary>
+        private async Task<bool> IsLockInfoReturned(Dt_OutStockLockInfo lockInfo)
+        {
+            var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
+                .Where(it => it.Barcode == lockInfo.CurrentBarcode && it.StockId == lockInfo.StockId)
+                .FirstAsync();
+
+            if (stockDetail == null)
+                return false;
+
+            return stockDetail.Status == StockStatusEmun.鍏ュ簱纭.ObjToInt() ||
+                   stockDetail.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+        }
         private async Task ExecuteCancelLogic(Dt_OutStockLockInfo lockInfo, Dt_PickingRecord pickingRecord,
             Dt_OutboundOrderDetail orderDetail, string orderNo)
         {
             decimal cancelQty = pickingRecord.PickQuantity;
 
-            // 1. 妫�鏌ュ彇娑堝悗鏁伴噺涓嶄細涓鸿礋鏁�
+            var currentStockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
+        .Where(it => it.Barcode == pickingRecord.Barcode && it.StockId == pickingRecord.StockId)
+        .FirstAsync();
+
+            if (currentStockDetail != null &&
+                (currentStockDetail.Status == StockStatusEmun.鍏ュ簱纭.ObjToInt() ||
+                 currentStockDetail.Status == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()))
+            {
+                throw new Exception($"鏉$爜{pickingRecord.Barcode}宸茬粡鍥炲簱锛屾棤娉曞彇娑堝垎鎷�");
+            }
+            //   妫�鏌ュ彇娑堝悗鏁伴噺涓嶄細涓鸿礋鏁�
             decimal newOverOutQuantity = orderDetail.OverOutQuantity - cancelQty;
             decimal newPickedQty = orderDetail.PickedQty - cancelQty;
 
@@ -628,7 +702,7 @@
                 throw new Exception($"鍙栨秷鍒嗘嫞灏嗗鑷存暟鎹紓甯革細宸插嚭搴搟newOverOutQuantity}锛屽凡鎷i�墈newPickedQty}");
             }
 
-            // 2. 澶勭悊涓嶅悓绫诲瀷鐨勫彇娑�
+            //  澶勭悊涓嶅悓绫诲瀷鐨勫彇娑�
             if (lockInfo.IsSplitted == 1 && lockInfo.ParentLockId.HasValue)
             {
                 await HandleSplitBarcodeCancel(lockInfo, pickingRecord, cancelQty);
@@ -638,15 +712,15 @@
                 await HandleNormalBarcodeCancel(lockInfo, pickingRecord, cancelQty);
             }
 
-            // 3. 鏇存柊璁㈠崟鏄庣粏
+            // 鏇存柊璁㈠崟鏄庣粏
             await UpdateOrderDetailOnCancel(pickingRecord.OrderDetailId, cancelQty);
 
-            // 4. 鍒犻櫎鎷i�夎褰�
+            //  鍒犻櫎鎷i�夎褰�
             await Db.Deleteable<Dt_PickingRecord>()
                 .Where(x => x.Id == pickingRecord.Id)
                 .ExecuteCommandAsync();
 
-            // 5. 閲嶆柊妫�鏌ヨ鍗曠姸鎬�
+            //  閲嶆柊妫�鏌ヨ鍗曠姸鎬�
             await UpdateOrderStatusForReturn(orderNo);
         }
 
@@ -660,6 +734,14 @@
             if (parentLockInfo == null)
                 throw new Exception("鏈壘鍒扮埗閿佸畾淇℃伅锛屾棤娉曞彇娑堟媶鍖呭垎鎷�");
 
+            if (await IsLockInfoReturned(parentLockInfo))
+            {
+                throw new Exception($"鐖舵潯鐮亄parentLockInfo.CurrentBarcode}宸茬粡鍥炲簱锛屾棤娉曞彇娑堟媶鍖呭垎鎷�");
+            }
+            if (await IsLockInfoReturned(lockInfo))
+            {
+                throw new Exception($"鎷嗗寘鏉$爜{lockInfo.CurrentBarcode}宸茬粡鍥炲簱锛屾棤娉曞彇娑堟媶鍖呭垎鎷�");
+            }
             // 鎭㈠鐖堕攣瀹氫俊鎭殑鍒嗛厤鏁伴噺
             parentLockInfo.AssignQuantity += cancelQty;
             await _outStockLockInfoService.Db.Updateable(parentLockInfo).ExecuteCommandAsync();
@@ -695,6 +777,10 @@
 
         private async Task HandleNormalBarcodeCancel(Dt_OutStockLockInfo lockInfo, Dt_PickingRecord pickingRecord, decimal cancelQty)
         {
+            if (await IsLockInfoReturned(lockInfo))
+            {
+                throw new Exception($"鏉$爜{lockInfo.CurrentBarcode}宸茬粡鍥炲簱锛屾棤娉曞彇娑堝垎鎷�");
+            }
             // 鎭㈠閿佸畾淇℃伅
             lockInfo.PickedQty -= cancelQty;
             if (lockInfo.PickedQty < 0) lockInfo.PickedQty = 0;
@@ -750,7 +836,22 @@
             return await _stockInfoService.Db.Queryable<Dt_StockInfo>()
                 .FirstAsync(x => x.PalletCode == palletCode);
         }
+        /// <summary>
+        /// 妫�鏌ユ暣涓墭鐩樻槸鍚﹀凡缁忓洖搴�
+        /// </summary>
+        private async Task<bool> IsPalletReturned(string palletCode)
+        {
+            var stockInfo = await _stockInfoService.Db.Queryable<Dt_StockInfo>()
+                .Where(x => x.PalletCode == palletCode)
+                .FirstAsync();
 
+            if (stockInfo == null)
+                return false;
+
+            // 濡傛灉鎵樼洏鐘舵�佹槸鍏ュ簱纭鎴栧叆搴撳畬鎴愶紝璇存槑宸茬粡鍥炲簱
+            return stockInfo.StockStatus == StockStatusEmun.鍏ュ簱纭.ObjToInt() ||
+                   stockInfo.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+        }
         private async Task<Dt_Task> GetCurrentTask(string orderNo, string palletCode)
         {
             // 鍏堝皾璇曢�氳繃璁㈠崟鍙峰拰鎵樼洏鍙锋煡鎵句换鍔�
@@ -805,7 +906,7 @@
 
             // 鎯呭喌3锛氭鏌ユ媶鍖呰褰�
             var splitRecords = await _splitPackageService.Db.Queryable<Dt_SplitPackageRecord>()
-                .Where(it => it.OrderNo == orderNo && it.PalletCode == palletCode && !it.IsReverted)
+                .Where(it => it.OrderNo == orderNo && it.PalletCode == palletCode && !it.IsReverted && it.Status != (int)SplitPackageStatusEnum.宸插洖搴�)
                 .ToListAsync();
 
             if (splitRecords.Any())
@@ -860,7 +961,7 @@
             return totalQty;
         }
 
-        private async Task<WebResponseContent> HandleNoReturnItems(string orderNo, string palletCode)
+        private async Task<WebResponseContent> HandleNoReturnItems(string orderNo, string palletCode,Dt_Task originalTask)
         {
             // 妫�鏌ユ槸鍚︽墍鏈夎揣鐗╅兘宸叉嫞閫夊畬鎴�
             var allPicked = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
@@ -869,12 +970,18 @@
 
             if (allPicked)
             {
+                // 鍒犻櫎鍘熷鍑哄簱浠诲姟
+                await _taskRepository.Db.Deleteable(originalTask).ExecuteCommandAsync();
                 return WebResponseContent.Instance.OK("鎵�鏈夎揣鐗╁凡鎷i�夊畬鎴愶紝鎵樼洏涓虹┖");
             }
             else
             {
+                // 鍒犻櫎鍘熷鍑哄簱浠诲姟
+                await _taskRepository.Db.Deleteable(originalTask).ExecuteCommandAsync();
                 return WebResponseContent.Instance.Error("娌℃湁闇�瑕佸洖搴撶殑鍓╀綑璐х墿");
             }
+            //绌烘墭鐩樺浣曞鐞�  杩樻湁涓�涓嚭搴撲换鍔¤澶勭悊銆�
+         
         }
 
         private async Task ExecuteReturnOperations(string orderNo, string palletCode, Dt_StockInfo stockInfo,
@@ -932,7 +1039,7 @@
                 {
                     // 鎭㈠搴撳瓨鐘舵��
                     stockDetail.OutboundQuantity = Math.Max(0, stockDetail.OutboundQuantity - returnQty);
-                    stockDetail.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                    stockDetail.Status = StockStatusEmun.鍏ュ簱纭.ObjToInt();
                     await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
                 }
                 else
@@ -949,7 +1056,7 @@
                         OutboundQuantity = 0,
                         Barcode = lockInfo.CurrentBarcode,
                         InboundOrderRowNo = "",
-                        Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
+                        Status = StockStatusEmun.鍏ュ簱纭.ObjToInt(),
                         SupplyCode = lockInfo.SupplyCode,
                         WarehouseCode = lockInfo.WarehouseCode,
                         Unit = lockInfo.Unit,
@@ -993,11 +1100,14 @@
 
         private async Task HandlePalletStockGoodsReturn(List<Dt_StockInfoDetail> palletStockGoods)
         {
+            _logger.LogInformation($"鍥炲簱鎿嶄綔锛氬彂鐜皗palletStockGoods.Count}涓簱瀛樻槑缁嗛渶瑕佸洖搴擄紝绛夊緟AGV鎼繍");
             foreach (var stockGood in palletStockGoods)
             {
-                // 鎭㈠搴撳瓨鐘舵��
-                stockGood.OutboundQuantity = 0;
-                stockGood.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                _logger.LogInformation($"寰呭洖搴撹揣鐗� - 鏉$爜: {stockGood.Barcode}, 鏁伴噺: {stockGood.StockQuantity}, 褰撳墠鐘舵��: {stockGood.Status}");
+            
+            // 鎭㈠搴撳瓨鐘舵��
+            stockGood.OutboundQuantity = 0;
+                stockGood.Status = StockStatusEmun.鍏ュ簱纭.ObjToInt();
 
                 await _stockInfoDetailService.Db.Updateable(stockGood).ExecuteCommandAsync();
             }
@@ -1017,11 +1127,19 @@
 
         private async Task UpdateStockInfoStatus(Dt_StockInfo stockInfo)
         {
+            _logger.LogInformation($"鍥炲簱鎿嶄綔锛氭墭鐩榹stockInfo.PalletCode}绛夊緟AGV鍥炲簱鎼繍");
             // 鏇存柊搴撳瓨涓昏〃鐘舵��
-            stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+            stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
             await _stockInfoService.Db.Updateable(stockInfo).ExecuteCommandAsync();
         }
-
+        /// <summary>
+        /// 鍒涘缓鍥炲簱浠诲姟
+        /// </summary>
+        /// <param name="orderNo"></param>
+        /// <param name="palletCode"></param>
+        /// <param name="originalTask"></param>
+        /// <param name="analysis"></param>
+        /// <returns></returns>
         private async Task CreateReturnTaskAndHandleESS(string orderNo, string palletCode, Dt_Task originalTask, ReturnAnalysisResult analysis)
         {
             var firstLocation = await _locationInfoService.Db.Queryable<Dt_LocationInfo>()
@@ -1056,7 +1174,14 @@
             // 缁� ESS 鍙戦�佹祦鍔ㄤ俊鍙峰拰鍒涘缓浠诲姟
             await SendESSCommands(palletCode, targetAddress, returnTask);
         }
-
+        /// <summary>
+        /// 缁橢SS涓嬩换鍔�
+        /// </summary>
+        /// <param name="palletCode"></param>
+        /// <param name="targetAddress"></param>
+        /// <param name="returnTask"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
         private async Task SendESSCommands(string palletCode, string targetAddress, Dt_Task returnTask)
         {
             try
@@ -1219,7 +1344,7 @@
                     business_type = outboundOrder.BusinessType,
                     factoryArea = outboundOrder.FactoryArea,
                     operationType = 1,
-                    Operator = outboundOrder.Operator,
+                    Operator = App.User.UserName,
                     orderNo = outboundOrder.UpperOrderNo,
                     status = outboundOrder.OrderStatus,
                     details = new List<FeedbackOutboundDetailsModel>()
@@ -1304,7 +1429,12 @@
                 CurrentBarcode = newBarcode,
                 OriginalLockQuantity = quantity,
                 IsSplitted = 1,
-                ParentLockId = originalLock.Id
+                ParentLockId = originalLock.Id,
+                Operator=  App.User.UserName,
+                FactoryArea=originalLock.FactoryArea,
+                lineNo=originalLock.lineNo,
+                WarehouseCode=originalLock.WarehouseCode,
+
             };
 
             var newLockId = await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteReturnIdentityAsync();
@@ -1385,15 +1515,30 @@
 
         private WebResponseContent CreatePickingResponse(PickingResult result, string adjustedReason)
         {
+            //if (result.SplitResults.Any())
+            //{
+            //    var responseData = new { SplitResults = result.SplitResults, AdjustedReason = "" };
+            //    if (!string.IsNullOrEmpty(adjustedReason))
+            //    {
+            //        responseData = new { SplitResults = result.SplitResults, AdjustedReason = adjustedReason };
+            //    }
+            //    return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔燂紝宸茶嚜鍔ㄦ媶鍖�", responseData);
+            //}
+
+            //if (!string.IsNullOrEmpty(adjustedReason))
+            //{
+            //    return WebResponseContent.Instance.OK($"鎷i�夌‘璁ゆ垚鍔燂紙{adjustedReason}锛�");
+            //}
+
+            //return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔�");
+
             if (result.SplitResults.Any())
             {
-
                 return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔燂紝宸茶嚜鍔ㄦ媶鍖�", new { SplitResults = result.SplitResults });
             }
-
             return WebResponseContent.Instance.OK("鎷i�夌‘璁ゆ垚鍔�", new { SplitResults = new List<SplitResult>() });
         }
-
+ 
         #endregion
     }
 

--
Gitblit v1.9.3