From 04bd9fa1060d711e0e90492c103699f50b49ba17 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期日, 30 十一月 2025 11:14:50 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundBatchPickingService.cs      |  258 +++++++++++++++++---------------
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_CheckService/ReCheckOrderService.cs                 |   85 +++++++++-
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj            |    1 
 项目代码/WIDESEA_WMSClient/src/views/outbound/BatchPickingConfirm.vue                          |   14 +
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_ICheckService/IReCheckOrderService.cs               |    2 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_PickingRecord.cs           |   41 +++++
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs           |   10 +
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs |    5 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/BatchOutBoundDto.cs                    |   23 ++
 9 files changed, 300 insertions(+), 139 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/BatchPickingConfirm.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/BatchPickingConfirm.vue"
index 4487276..e4918ee 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/BatchPickingConfirm.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/BatchPickingConfirm.vue"
@@ -83,7 +83,7 @@
               <el-table-column type="selection" width="55"></el-table-column>
               <el-table-column prop="materielCode" label="鐗╂枡缂栫爜" width="120"></el-table-column>
               <el-table-column prop="pickedQty" label="宸叉嫞鏁伴噺" width="100"></el-table-column>
-              <el-table-column prop="locationCode" label="璐т綅" width="100"></el-table-column>
+              <!-- <el-table-column prop="locationCode" label="璐т綅" width="100"></el-table-column> -->
               <el-table-column prop="currentBarcode" label="鏉$爜"></el-table-column>
             </el-table>
           </el-card>
@@ -983,7 +983,8 @@
           palletCode: this.scanData.palletCode
         });
         if (res.status) {
-          this.unpickedList = res.data || [];
+          //this.unpickedList = res.data || [];
+          this.unpickedList = (res.data || []).filter(item => item.canPick === true);
           this.summary.unpickedCount = this.unpickedList.length;
           this.summary.unpickedQuantity = this.unpickedList.reduce((sum, item) => sum + (item.remainQuantity || 0), 0);
         }
@@ -1000,6 +1001,15 @@
         });
         if (res.status) {
           this.pickedList = res.data || [];
+          
+          this.pickedList = res.data.map(item => {
+  // 鏂瑰紡1锛氫繚鐣欏師barcode瀛楁锛屾柊澧瀋urrentBarcode
+  return {
+    ...item,
+    currentBarcode: item.barcode
+  };
+});
+
           this.summary.pickedCount = this.pickedList.length;
         }
       } catch (error) {
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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
index ce33b32..2177e5a 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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
@@ -1,17 +1,21 @@
 锘縰sing HslCommunication.WebSocket;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.OrderEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.CodeConfigEnum;
 using WIDESEA_Core.Enums;
+using WIDESEA_Core.Helper;
 using WIDESEA_ICheckService;
+using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 using WIDESEA_Model.Models.Check;
 
@@ -23,22 +27,25 @@
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly WebSocketServer _webSocketServer;
         private readonly ILogger<ReCheckOrderService> _logger;
+
+        public readonly IOutboundService _outboundService;
         public IRepository<Dt_ReCheckOrder> Repository => BaseDal;
-        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger) : base(BaseDal)
+        public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _webSocketServer = webSocketServer;
             _logger = logger;
+            _outboundService = outboundService;
         }
 
-        public WebResponseContent ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
+        public async Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
         {
             try
             {
                 return operateType switch
                 {
-                    1 => AddReCheckOrder(models),
-                    2 => UpdateReCheckOrder(models),
+                    1 =>await AddReCheckOrder(models),
+                    2 =>await UpdateReCheckOrder(models),
                     3 => DeleteReCheckOrder(models),
 
                     _ => WebResponseContent.Instance.OK(),
@@ -51,7 +58,7 @@
             }
         }
 
-        public WebResponseContent AddReCheckOrder(Dt_ReCheckOrder model)
+        public async Task<WebResponseContent> AddReCheckOrder(Dt_ReCheckOrder model)
         {
             try
             {
@@ -64,7 +71,9 @@
                 model.Creater = "MES";
                 model.CreateDate = DateTime.Now;
                 BaseDal.AddData(model);
-
+                var outboundOrders = ConvertToOutboundOrders(model);
+             
+                await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -73,7 +82,7 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
-        public WebResponseContent UpdateReCheckOrder(Dt_ReCheckOrder model)
+        public async Task<WebResponseContent> UpdateReCheckOrder(Dt_ReCheckOrder model)
         {
             try
             {
@@ -91,15 +100,21 @@
                 recheckOrder.InspectionNumber = model.InspectionNumber;
                 recheckOrder.SignSeq = model.SignSeq;
                 recheckOrder.Qty = model.Qty;
-                recheckOrder.WarehouseCode= model.WarehouseCode;    
+                recheckOrder.WarehouseCode = model.WarehouseCode;
                 recheckOrder.FactoryArea = model.FactoryArea;
                 recheckOrder.Modifier = "MES";
                 recheckOrder.ModifyDate = DateTime.Now;
 
                 BaseDal.UpdateData(recheckOrder);
 
+                _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
+                _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+                 .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
 
+                var outboundOrders = ConvertToOutboundOrders(model);
 
+                await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
+                              
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -119,9 +134,13 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板崟淇℃伅");
                 }
-               
-                BaseDal.DeleteData(recheckOrder);   
- 
+
+                BaseDal.DeleteData(recheckOrder);
+
+                _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
+                _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+                 .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
+
 
                 return WebResponseContent.Instance.OK();
             }
@@ -132,5 +151,49 @@
             }
         }
 
+
+
+        public Dt_OutboundOrder ConvertToOutboundOrders(Dt_ReCheckOrder reCheckOrder)
+        {
+
+            var outboundOrder = new Dt_OutboundOrder()
+            {
+                WarehouseId = 0,
+                OrderNo = reCheckOrder.OrderNo,
+                UpperOrderNo = reCheckOrder.OrderNo,
+                OrderType = InOrderTypeEnum.ReCheck.ObjToInt(),
+                OrderStatus = 0,
+                CreateType = 0,
+                BusinessType = "",
+                IsBatch = 0,
+                FactoryArea = reCheckOrder.FactoryArea,
+                Remark = "",
+                DepartmentCode = "",
+                DepartmentName = "",
+                Details = new List<Dt_OutboundOrderDetail>()
+            };
+            outboundOrder.Details.Add(
+                     new Dt_OutboundOrderDetail
+                     {
+                         OrderId = 0,
+                         MaterielCode = reCheckOrder.MaterielCode,
+                         MaterielName = "",
+                         BatchNo = reCheckOrder.BatchNo,
+                         OrderQuantity = reCheckOrder.Qty,
+                         BarcodeQty = (decimal)reCheckOrder.Qty,
+                         BarcodeUnit = reCheckOrder.Unit,
+                         LockQuantity = 0,
+                         lineNo = "",
+                         OverOutQuantity = 0,
+                         OrderDetailStatus = 0,
+                         Unit = reCheckOrder.Unit,
+                         RowNo = 0,
+                         SupplyCode = "",
+                         WarehouseCode = reCheckOrder.WarehouseCode,
+                     }
+                );
+            return outboundOrder;
+        }
+
     }
 }
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_CheckService/WIDESEA_CheckService.csproj" "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_CheckService/WIDESEA_CheckService.csproj"
index 2adeca1..7623d66 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_CheckService/WIDESEA_CheckService.csproj"
+++ "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_CheckService/WIDESEA_CheckService.csproj"
@@ -8,6 +8,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\WIDESEA_ICheckService\WIDESEA_ICheckService.csproj" />
+    <ProjectReference Include="..\WIDESEA_IOutboundService\WIDESEA_IOutboundService.csproj" />
   </ItemGroup>
 
 </Project>
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_DTO/Outbound/BatchOutBoundDto.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_DTO/Outbound/BatchOutBoundDto.cs"
index e889a73..8a3bc8f 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_DTO/Outbound/BatchOutBoundDto.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_DTO/Outbound/BatchOutBoundDto.cs"
@@ -165,5 +165,28 @@
         public string PalletCode { get; set; }
     }
     #endregion
+    #region DTO绫�
 
+
+
+    public class SplitPackageChainInfoDto
+    {
+        public string OriginalBarcode { get; set; }
+        public string RootBarcode { get; set; } // 鏂板锛氭牴鏉$爜
+        public int TotalSplitTimes { get; set; }
+        public string ChainType { get; set; } // "root" 鎴� "branch"
+        public List<SplitChainItemDto> SplitChain { get; set; }
+    }
+
+    public class SplitChainItemDto
+    {
+        public DateTime SplitTime { get; set; }
+        public string OriginalBarcode { get; set; }
+        public string NewBarcode { get; set; }
+        public decimal SplitQuantity { get; set; }
+        public string Operator { get; set; }
+        public bool IsReverted { get; set; }
+    }
+
+    #endregion
 }
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_ICheckService/IReCheckOrderService.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_ICheckService/IReCheckOrderService.cs"
index 27dbdeb..b1a0594 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_ICheckService/IReCheckOrderService.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_ICheckService/IReCheckOrderService.cs"
@@ -15,6 +15,6 @@
     {
         IRepository<Dt_ReCheckOrder> Repository { get; }
 
-        WebResponseContent ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType);
+        Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType);
     }
 }
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_Model/Models/Outbound/Dt_PickingRecord.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_Model/Models/Outbound/Dt_PickingRecord.cs"
index 2d6a2fa..9d5531d 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_Model/Models/Outbound/Dt_PickingRecord.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_Model/Models/Outbound/Dt_PickingRecord.cs"
@@ -52,9 +52,48 @@
 
         public string CancelOperator { get; set; }
         public string FactoryArea { get; set; }
+
+        /// <summary>
+        /// 浠撳簱
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "warehouseCode", ColumnDescription = "浠撳簱")]
+        public string? WarehouseCode { get; set; }
+        /// <summary>
+        /// 琛屽彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "lineNo", ColumnDescription = "琛屽彿")]
+        public string? lineNo { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鍙�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "supplyCode", ColumnDescription = "渚涘簲鍟嗙紪鍙�")]
+        public string? SupplyCode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "barcodeQty", ColumnDescription = "鏁伴噺")]
+        public decimal BarcodeQty { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "barcodeUnit", ColumnDescription = "鍗曚綅")]
+        public string BarcodeUnit { get; set; } = null!;
+        /// <summary>
+        ///  
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName = "barcodemoveQty", ColumnDescription = "鏁伴噺")]
+        public decimal BarcodeMoveQty { get; set; }
     }
 
- 
+
     /// <summary>
     /// 鍥炲簱璁板綍琛�
     /// </summary>
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/OutboundBatchPickingService.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/OutboundBatchPickingService.cs"
index bbd2251..c7b468a 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/OutboundBatchPickingService.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/OutboundBatchPickingService.cs"
@@ -242,6 +242,8 @@
 
         #region 鍙栬蛋绌虹閫昏緫
 
+        
+
         /// <summary>
         /// 鍙栬蛋绌虹 - 娓呯悊宸插畬鎴愭嫞閫夌殑鎵樼洏鏁版嵁
         /// </summary>
@@ -251,7 +253,7 @@
             {
                 _unitOfWorkManage.BeginTran();
 
-                //  楠岃瘉鎵樼洏鏄惁鍙互鍙栬蛋锛堝繀椤诲叏閮ㄥ畬鎴愭嫞閫夛級
+                // 楠岃瘉鎵樼洏鏄惁鍙互鍙栬蛋锛堝繀椤诲叏閮ㄥ畬鎴愭嫞閫夛級
                 var validationResult = await ValidateEmptyPalletRemoval(orderNo, palletCode);
                 if (!validationResult.IsValid)
                     return WebResponseContent.Instance.Error(validationResult.ErrorMessage);
@@ -264,8 +266,8 @@
                 // 鏇存柊鐩稿叧璁㈠崟鐘舵��
                 await UpdateOrderStatusAfterPalletRemoval(orderNo);
 
-                //  璁板綍鎿嶄綔鍘嗗彶
-                // await RecordEmptyPalletRemoval(orderNo, palletCode, completedLocks);
+                // 璁板綍鎿嶄綔鍘嗗彶
+                await RecordEmptyPalletRemoval(orderNo, palletCode, completedLocks);
 
                 _unitOfWorkManage.CommitTran();
 
@@ -322,13 +324,12 @@
         {
             foreach (var lockInfo in completedLocks)
             {
-                // 鏍囪閿佸畾璁板綍涓哄凡鍙栬蛋锛堝彲浠ユ柊澧炵姸鎬佹垨鐩存帴鍒犻櫎锛屾牴鎹笟鍔¢渶姹傦級
-                // 杩欓噷鎴戜滑灏嗗叾鐘舵�佹洿鏂颁负"宸插彇璧�"锛屽苟璁板綍鍙栬蛋鏃堕棿
+                // 鏍囪閿佸畾璁板綍涓哄凡鍙栬蛋
                 lockInfo.Status = (int)OutLockStockStatusEnum.宸插彇璧�;
                 lockInfo.Operator = App.User.UserName;
                 await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
 
-                // 鍚屾椂娓呯悊瀵瑰簲鐨勫簱瀛樿褰曠姸鎬�
+                // 娓呯悊瀵瑰簲鐨勫簱瀛樿褰曠姸鎬�
                 await CleanupStockInfo(lockInfo);
             }
         }
@@ -341,16 +342,13 @@
             var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
                 .FirstAsync(x => x.Barcode == lockInfo.CurrentBarcode && x.StockId == lockInfo.StockId);
 
-            if (stockDetail != null)
+            if (stockDetail != null && stockDetail.Status == (int)StockStatusEmun.鍑哄簱瀹屾垚)
             {
-                // 濡傛灉搴撳瓨宸茬粡鍑哄簱瀹屾垚锛屾爣璁颁负宸叉竻鐞�
-                if (stockDetail.Status == (int)StockStatusEmun.鍑哄簱瀹屾垚)
-                {
-                    stockDetail.Status = (int)StockStatusEmun.宸叉竻鐞�;
-                    await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
-                }
+                stockDetail.Status = (int)StockStatusEmun.宸叉竻鐞�;
+                await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
             }
         }
+ 
 
         /// <summary>
         /// 鏇存柊璁㈠崟鐘舵��
@@ -401,21 +399,7 @@
 
         #endregion
 
-        #region 杈呭姪鏂规硶
-
-        private string GetPalletStatusText(PalletStatusEnum status)
-        {
-            return status switch
-            {
-                PalletStatusEnum.鏈紑濮� => "鏈紑濮�",
-                PalletStatusEnum.鎷i�変腑 => "鎷i�変腑",
-                PalletStatusEnum.宸插畬鎴� => "宸插畬鎴�",
-                PalletStatusEnum.鏃犱换鍔� => "鏃犱换鍔�",
-                _ => "鏈煡"
-            };
-        }
-
-        #endregion
+  
         #region 鍒嗘壒鍒嗘嫞
 
         /// <summary>
@@ -484,10 +468,10 @@
                     return WebResponseContent.Instance.Error("鏈壘鍒板垎鎷h褰�");
 
                 // 鎭㈠閿佸畾淇℃伅鍜屽簱瀛�
-                await RevertPickingData(pickingRecord);
+                var revertResult = await RevertPickingData(pickingRecord);
 
-                //鏇存柊鎵规鍜岃鍗曟暟鎹�
-                await RevertBatchAndOrderData(pickingRecord);
+                // 鏇存柊鎵规鍜岃鍗曟暟鎹�
+                await RevertBatchAndOrderData(pickingRecord, revertResult);
 
                 // 鏍囪鍒嗘嫞璁板綍涓哄凡鍙栨秷
                 pickingRecord.IsCancelled = true;
@@ -506,7 +490,6 @@
                 return WebResponseContent.Instance.Error($"鍙栨秷鍒嗘嫞澶辫触锛歿ex.Message}");
             }
         }
-
         #endregion
 
         #region 鎵嬪姩鎷嗗寘
@@ -549,12 +532,12 @@
 
         #endregion
 
-        #region 鍙栨秷鎷嗗寘
+ 
 
-        #region 鍙栨秷鎷嗗寘 - 淇鐗堟湰
+        #region 鍙栨秷鎷嗗寘 
 
         /// <summary>
-        /// 鍙栨秷鎷嗗寘 - 鏀寔澶氭鎷嗗寘鐨勬儏鍐�
+        /// 鍙栨秷鎷嗗寘 
         /// </summary>
         public async Task<WebResponseContent> CancelSplitPackage(string orderNo, string palletCode, string newBarcode)
         {
@@ -599,7 +582,7 @@
         }
 
         /// <summary>
-        /// 鎵ц鍙栨秷鎷嗗寘閫昏緫 - 淇鐗堟湰
+        /// 鎵ц鍙栨秷鎷嗗寘閫昏緫 
         /// </summary>
         private async Task ExecuteCancelSplitLogic(Dt_SplitPackageRecord splitRecord,
             Dt_OutStockLockInfo originalLockInfo, Dt_OutStockLockInfo newLockInfo,
@@ -618,7 +601,7 @@
 
             await _outStockLockInfoService.Db.Updateable(originalLockInfo).ExecuteCommandAsync();
 
-            // 2. 鎭㈠鍘熷簱瀛樻槑缁�
+            // 鎭㈠鍘熷簱瀛樻槑缁�
             var originalStock = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
                 .FirstAsync(x => x.Barcode == splitRecord.OriginalBarcode && x.StockId == splitRecord.StockId);
 
@@ -632,29 +615,29 @@
 
             await _stockInfoDetailService.Db.Updateable(originalStock).ExecuteCommandAsync();
 
-            // 3. 鍒犻櫎鏂伴攣瀹氫俊鎭�
+            // 鍒犻櫎鏂伴攣瀹氫俊鎭�
             await _outStockLockInfoService.Db.Deleteable<Dt_OutStockLockInfo>()
                 .Where(x => x.Id == newLockInfo.Id)
                 .ExecuteCommandAsync();
 
-            // 4. 鍒犻櫎鏂板簱瀛樻槑缁�
+            // 鍒犻櫎鏂板簱瀛樻槑缁�
             await _stockInfoDetailService.Db.Deleteable<Dt_StockInfoDetail>()
                 .Where(x => x.Barcode == newLockInfo.CurrentBarcode)
                 .ExecuteCommandAsync();
 
-            // 5. 鏍囪鎷嗗寘璁板綍涓哄凡鎾ら攢
+            //鏍囪鎷嗗寘璁板綍涓哄凡鎾ら攢
             splitRecord.IsReverted = true;
             splitRecord.RevertTime = DateTime.Now;
             splitRecord.RevertOperator = App.User.UserName;
             await _splitPackageService.Db.Updateable(splitRecord).ExecuteCommandAsync();
 
-            // 6. 妫�鏌ュ苟鏇存柊鎵规鍜岃鍗曠姸鎬�
+            // 妫�鏌ュ苟鏇存柊鎵规鍜岃鍗曠姸鎬�
             await CheckAndUpdateBatchStatus(originalLockInfo.BatchNo);
             await CheckAndUpdateOrderStatus(originalLockInfo.OrderNo);
         }
 
         /// <summary>
-        /// 楠岃瘉鍙栨秷鎷嗗寘璇锋眰 - 澧炲己鐗堟湰
+        /// 楠岃瘉鍙栨秷鎷嗗寘璇锋眰 
         /// </summary>
         private async Task<ValidationResult<(Dt_SplitPackageRecord, Dt_OutStockLockInfo, Dt_StockInfoDetail)>> ValidateCancelSplitRequest(
             string orderNo, string palletCode, string newBarcode)
@@ -916,32 +899,8 @@
 
         #endregion
 
-        #region DTO绫�
 
-      
 
-        public class SplitPackageChainInfoDto
-        {
-            public string OriginalBarcode { get; set; }
-            public string RootBarcode { get; set; } // 鏂板锛氭牴鏉$爜
-            public int TotalSplitTimes { get; set; }
-            public string ChainType { get; set; } // "root" 鎴� "branch"
-            public List<SplitChainItemDto> SplitChain { get; set; }
-        }
-
-        public class SplitChainItemDto
-        {
-            public DateTime SplitTime { get; set; }
-            public string OriginalBarcode { get; set; }
-            public string NewBarcode { get; set; }
-            public decimal SplitQuantity { get; set; }
-            public string Operator { get; set; }
-            public bool IsReverted { get; set; }
-        }
-
-        #endregion
-
-        #endregion
 
         #region 鍒嗘壒鍥炲簱
 
@@ -954,7 +913,7 @@
             {
                 _unitOfWorkManage.BeginTran();
 
-                //  鏌ユ壘鎵樼洏涓婃湭瀹屾垚鐨勯攣瀹氳褰�
+                // 鏌ユ壘鎵樼洏涓婃湭瀹屾垚鐨勯攣瀹氳褰曪紙鍙鐞嗗嚭搴撲腑鐨勮褰曪級
                 var unfinishedLocks = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
                     .Where(x => x.OrderNo == orderNo &&
                                x.PalletCode == palletCode &&
@@ -964,12 +923,12 @@
                 if (!unfinishedLocks.Any())
                     return WebResponseContent.Instance.Error("璇ユ墭鐩樻病鏈夋湭瀹屾垚鐨勯攣瀹氳褰�");
 
-                // 鎸夋壒娆″垎缁勫鐞�
-                var batchGroups = unfinishedLocks.GroupBy(x => x.BatchNo);
+                // 鎸夊嚭搴撴壒娆″垎缁勫鐞�
+                var batchGroups = unfinishedLocks.GroupBy(x => x.OutboundBatchNo); // 浣跨敤 OutboundBatchNo
 
                 foreach (var batchGroup in batchGroups)
                 {
-                    var batchNo = batchGroup.Key;
+                    var outboundBatchNo = batchGroup.Key;
                     var batchLocks = batchGroup.ToList();
 
                     // 閲婃斁搴撳瓨鍜岄攣瀹氳褰�
@@ -979,7 +938,7 @@
                     }
 
                     // 鏇存柊鎵规鐘舵��
-                    await UpdateBatchStatusForReturn(batchNo, batchLocks);
+                    await UpdateBatchStatusForReturn(outboundBatchNo, batchLocks);
 
                     // 鏇存柊璁㈠崟鏄庣粏鐨勫凡鍒嗛厤鏁伴噺
                     await UpdateOrderDetailAfterReturn(batchLocks);
@@ -996,12 +955,11 @@
                 return WebResponseContent.Instance.Error($"鍒嗘壒鍥炲簱澶辫触锛歿ex.Message}");
             }
         }
-
         #endregion
 
         #region 楠岃瘉鏂规硶
         private async Task<ValidationResult<(Dt_OutStockLockInfo, Dt_OutboundOrderDetail, Dt_StockInfoDetail, Dt_OutboundBatch)>> ValidatePickingRequest(
-    string orderNo, string palletCode, string barcode)
+       string orderNo, string palletCode, string barcode)
         {
             // 鏌ユ壘閿佸畾淇℃伅
             var lockInfo = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
@@ -1030,12 +988,12 @@
                 return ValidationResult<(Dt_OutStockLockInfo, Dt_OutboundOrderDetail, Dt_StockInfoDetail, Dt_OutboundBatch)>.Error(
                     $"搴撳瓨鏁伴噺涓嶈冻锛岄渶瑕侊細{lockInfo.AssignQuantity}锛屽疄闄咃細{stockDetail.StockQuantity}");
 
+            // 浣跨敤 OutboundBatchNo 鏌ユ壘鎵规
             var batch = await _outboundBatchRepository.Db.Queryable<Dt_OutboundBatch>()
-                .FirstAsync(x => x.BatchNo == lockInfo.OutboundBatchNo);
+                .FirstAsync(x => x.BatchNo == lockInfo.OutboundBatchNo); // 淇涓� OutboundBatchNo
 
             return ValidationResult<(Dt_OutStockLockInfo, Dt_OutboundOrderDetail, Dt_StockInfoDetail, Dt_OutboundBatch)>.Success((lockInfo, orderDetail, stockDetail, batch));
         }
-
         private async Task<ValidationResult<(Dt_OutStockLockInfo, Dt_StockInfoDetail)>> ValidateSplitRequest(
             string orderNo, string palletCode, string originalBarcode, decimal splitQuantity)
         {
@@ -1101,7 +1059,17 @@
                 .FirstAsync(x => x.Id == pickingRecord.OutStockLockId);
 
             lockInfo.PickedQty -= pickingRecord.PickQuantity;
-            lockInfo.Status = (int)OutLockStockStatusEnum.鍑哄簱涓�;
+
+            // 鏍规嵁鎷i�夋暟閲忓垽鏂姸鎬�
+            if (lockInfo.PickedQty <= 0)
+            {
+                lockInfo.Status = (int)OutLockStockStatusEnum.鍑哄簱涓�;
+            }
+            else if (lockInfo.PickedQty < lockInfo.AssignQuantity)
+            {
+                lockInfo.Status = (int)OutLockStockStatusEnum.鍑哄簱涓�;
+            }
+
             await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
 
             // 鎭㈠搴撳瓨
@@ -1110,7 +1078,13 @@
 
             stockDetail.StockQuantity += pickingRecord.PickQuantity;
             stockDetail.OutboundQuantity -= pickingRecord.PickQuantity;
-            stockDetail.Status = (int)StockStatusEmun.鍑哄簱閿佸畾;
+
+            // 鎭㈠搴撳瓨鐘舵��
+            if (stockDetail.StockQuantity > 0)
+            {
+                stockDetail.Status = (int)StockStatusEmun.鍑哄簱閿佸畾;
+            }
+
             await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
 
             return new RevertPickingResult
@@ -1119,9 +1093,8 @@
                 StockDetail = stockDetail
             };
         }
-
         private async Task<SplitResultDto> ExecuteSplitLogic(Dt_OutStockLockInfo lockInfo, Dt_StockInfoDetail stockDetail,
-            decimal splitQuantity, string palletCode)
+     decimal splitQuantity, string palletCode)
         {
             // 鐢熸垚鏂版潯鐮�
             string newBarcode = await GenerateNewBarcode();
@@ -1132,19 +1105,17 @@
                 StockId = stockDetail.StockId,
                 MaterielCode = stockDetail.MaterielCode,
                 OrderNo = stockDetail.OrderNo,
-                BatchNo = stockDetail.BatchNo,
+                BatchNo = stockDetail.BatchNo, // 鐗╂枡鎵规
                 StockQuantity = splitQuantity,
                 OutboundQuantity = 0,
                 Barcode = newBarcode,
                 Status = (int)StockStatusEmun.鍑哄簱閿佸畾,
                 SupplyCode = stockDetail.SupplyCode,
                 Unit = stockDetail.Unit,
-                BarcodeQty=stockDetail.BarcodeQty,
-                BarcodeUnit=stockDetail.BarcodeUnit,
-                BusinessType=stockDetail.BusinessType,
-                InboundOrderRowNo=stockDetail.InboundOrderRowNo,
-                
-               
+                BarcodeQty = stockDetail.BarcodeQty,
+                BarcodeUnit = stockDetail.BarcodeUnit,
+                BusinessType = stockDetail.BusinessType,
+                InboundOrderRowNo = stockDetail.InboundOrderRowNo,
             };
             await _stockInfoDetailService.Db.Insertable(newStockDetail).ExecuteCommandAsync();
 
@@ -1152,17 +1123,16 @@
             stockDetail.StockQuantity -= splitQuantity;
             await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
 
-           
+            // 鍒涘缓鏂伴攣瀹氫俊鎭� - 浣跨敤姝g‘鐨� OutboundBatchNo
             var newLockInfo = new Dt_OutStockLockInfo
             {
                 OrderNo = lockInfo.OrderNo,
                 OrderDetailId = lockInfo.OrderDetailId,
-                BatchNo = lockInfo.BatchNo,
+                OutboundBatchNo = lockInfo.OutboundBatchNo, // 浣跨敤 OutboundBatchNo
                 MaterielCode = lockInfo.MaterielCode,
                 MaterielName = lockInfo.MaterielName,
                 StockId = lockInfo.StockId,
                 OrderQuantity = splitQuantity,
-                //OriginalQuantity = quantity,
                 AssignQuantity = splitQuantity,
                 PickedQty = 0,
                 LocationCode = lockInfo.LocationCode,
@@ -1173,7 +1143,6 @@
                 SupplyCode = lockInfo.SupplyCode,
                 OrderType = lockInfo.OrderType,
                 CurrentBarcode = newBarcode,
-               // OriginalLockQuantity = quantity,
                 IsSplitted = 1,
                 ParentLockId = lockInfo.Id,
                 Operator = App.User.UserName,
@@ -1182,7 +1151,6 @@
                 WarehouseCode = lockInfo.WarehouseCode,
                 BarcodeQty = lockInfo.BarcodeQty,
                 BarcodeUnit = lockInfo.BarcodeUnit,
-               
             };
 
             await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteCommandAsync();
@@ -1197,7 +1165,6 @@
 
             return new SplitResultDto { NewBarcode = newBarcode };
         }
-
         private async Task ExecuteCancelSplitLogic(Dt_SplitPackageRecord splitRecord, Dt_OutStockLockInfo newLockInfo, Dt_StockInfoDetail newStockDetail)
         {
             // 鎭㈠鍘熷簱瀛�
@@ -1255,15 +1222,28 @@
             await CheckAndUpdateOrderStatus(orderNo);
         }
 
-        private async Task RevertBatchAndOrderData(Dt_PickingRecord pickingRecord)
+        private async Task RevertBatchAndOrderData(Dt_PickingRecord pickingRecord, RevertPickingResult revertResult)
         {
             // 鎭㈠鎵规瀹屾垚鏁伴噺
             var batch = await _outboundBatchRepository.Db.Queryable<Dt_OutboundBatch>()
-                .FirstAsync(x => x.BatchNo == pickingRecord.BatchNo);
+                .FirstAsync(x => x.BatchNo == revertResult.LockInfo.OutboundBatchNo); // 浣跨敤 OutboundBatchNo
 
-            batch.CompletedQuantity -= pickingRecord.PickQuantity;
-            batch.BatchStatus = (int)BatchStatusEnum.鎵ц涓�;
-            await _outboundBatchRepository.Db.Updateable(batch).ExecuteCommandAsync();
+            if (batch != null)
+            {
+                batch.CompletedQuantity -= pickingRecord.PickQuantity;
+
+                // 閲嶆柊璁$畻鎵规鐘舵��
+                if (batch.CompletedQuantity <= 0)
+                {
+                    batch.BatchStatus = (int)BatchStatusEnum.鍒嗛厤涓�;
+                }
+                else if (batch.CompletedQuantity < batch.BatchQuantity)
+                {
+                    batch.BatchStatus = (int)BatchStatusEnum.鎵ц涓�;
+                }
+
+                await _outboundBatchRepository.Db.Updateable(batch).ExecuteCommandAsync();
+            }
 
             // 鎭㈠璁㈠崟鏄庣粏
             var orderDetail = await _outboundOrderDetailService.Db.Queryable<Dt_OutboundOrderDetail>()
@@ -1276,46 +1256,61 @@
             // 閲嶆柊妫�鏌ヨ鍗曠姸鎬�
             await CheckAndUpdateOrderStatus(pickingRecord.OrderNo);
         }
-
         private async Task ReleaseLockAndStock(Dt_OutStockLockInfo lockInfo)
         {
-            // 鎭㈠搴撳瓨鐘舵��
+            // 鎭㈠搴撳瓨鐘舵�� - 鍥炲簱鍚庡簱瀛樺彉涓哄彲鐢ㄧ姸鎬�
             var stockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
                 .FirstAsync(x => x.Barcode == lockInfo.CurrentBarcode && x.StockId == lockInfo.StockId);
 
             if (stockDetail != null)
             {
+                // 鍥炲簱鍚庡簱瀛樼姸鎬佹仮澶嶄负鍏ュ簱瀹屾垚锛堝彲鐢ㄧ姸鎬侊級
                 stockDetail.Status = (int)StockStatusEmun.鍏ュ簱瀹屾垚;
                 await _stockInfoDetailService.Db.Updateable(stockDetail).ExecuteCommandAsync();
             }
 
-            // 鏇存柊閿佸畾璁板綍鐘舵�佷负鍥炲簱
+            // 鏇存柊閿佸畾璁板綍鐘舵�佷负宸插洖搴�
             lockInfo.Status = (int)OutLockStockStatusEnum.宸插洖搴�;
+            lockInfo.Operator = App.User.UserName;
             await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
         }
 
-        private async Task UpdateBatchStatusForReturn(string batchNo, List<Dt_OutStockLockInfo> returnedLocks)
+        /// <summary>
+        /// 鏇存柊鎵规鐘舵�侊紙鍥炲簱锛� 
+        /// </summary>
+        private async Task UpdateBatchStatusForReturn(string outboundBatchNo, List<Dt_OutStockLockInfo> returnedLocks)
         {
             var batch = await _outboundBatchRepository.Db.Queryable<Dt_OutboundBatch>()
-                .FirstAsync(x => x.BatchNo == batchNo);
+                .FirstAsync(x => x.BatchNo == outboundBatchNo);
 
-            // 璁$畻鍥炲簱鏁伴噺
-            var returnedQty = returnedLocks.Sum(x => x.AssignQuantity - x.PickedQty);
-            batch.CompletedQuantity -= returnedQty;
-
-            if (batch.CompletedQuantity <= 0)
+            if (batch != null)
             {
-                batch.BatchStatus = (int)BatchStatusEnum.宸插洖搴�;
-            }
-            else
-            {
-                batch.BatchStatus = (int)BatchStatusEnum.鎵ц涓�;
-            }
+                // 璁$畻鍥炲簱鏁伴噺锛堟湭鎷i�夌殑閮ㄥ垎锛�
+                var returnedQty = returnedLocks.Sum(x => x.AssignQuantity - x.PickedQty);
+                batch.CompletedQuantity -= returnedQty;
 
-            batch.Operator = App.User.UserName;
-            await _outboundBatchRepository.Db.Updateable(batch).ExecuteCommandAsync();
+                // 鏇存柊鎵规鐘舵��
+                if (batch.CompletedQuantity <= 0)
+                {
+                    batch.BatchStatus = (int)BatchStatusEnum.宸插洖搴�;
+                }
+                else if (batch.CompletedQuantity < batch.BatchQuantity)
+                {
+                    batch.BatchStatus = (int)BatchStatusEnum.鎵ц涓�;
+                }
+                else
+                {
+                    batch.BatchStatus = (int)BatchStatusEnum.宸插畬鎴�;
+                }
+
+                batch.Operator = App.User.UserName;
+                await _outboundBatchRepository.Db.Updateable(batch).ExecuteCommandAsync();
+            }
         }
 
+        /// <summary>
+        /// 鏇存柊璁㈠崟鏄庣粏锛堝洖搴撳悗锛� 
+        /// </summary>
         private async Task UpdateOrderDetailAfterReturn(List<Dt_OutStockLockInfo> returnedLocks)
         {
             var orderDetailGroups = returnedLocks.GroupBy(x => x.OrderDetailId);
@@ -1325,13 +1320,16 @@
                 var orderDetailId = group.Key;
                 var returnedQty = group.Sum(x => x.AssignQuantity - x.PickedQty);
 
-                await _outboundOrderDetailService.Db.Updateable<Dt_OutboundOrderDetail>()
-                    .SetColumns(x => x.AllocatedQuantity == x.AllocatedQuantity - returnedQty)
-                    .Where(x => x.Id == orderDetailId)
-                    .ExecuteCommandAsync();
+                var orderDetail = await _outboundOrderDetailService.Db.Queryable<Dt_OutboundOrderDetail>()
+                    .FirstAsync(x => x.Id == orderDetailId);
+
+                if (orderDetail != null)
+                {
+                    orderDetail.AllocatedQuantity -= returnedQty;
+                    await _outboundOrderDetailService.Db.Updateable(orderDetail).ExecuteCommandAsync();
+                }
             }
         }
-
         #endregion
 
         #region 杈呭姪鏂规硶
@@ -1374,6 +1372,13 @@
                 PickTime = DateTime.Now,
                 Operator = App.User.UserName,
                 OutStockLockId = result.FinalLockInfo.Id,
+
+                BarcodeUnit = result.FinalLockInfo.BarcodeUnit,
+                BarcodeQty = result.FinalLockInfo.BarcodeQty,
+                BatchNo = result.FinalLockInfo.BatchNo,
+                lineNo = result.FinalLockInfo.lineNo,
+                SupplyCode = result.FinalLockInfo.SupplyCode,
+                WarehouseCode = result.FinalLockInfo.WarehouseCode,
                 //  IsCancelled = false
             };
 
@@ -1397,8 +1402,19 @@
                 .Where(x => x.OrderNo == orderNo)
                 .ExecuteCommandAsync();
         }
-
+        private string GetPalletStatusText(PalletStatusEnum status)
+        {
+            return status switch
+            {
+                PalletStatusEnum.鏈紑濮� => "鏈紑濮�",
+                PalletStatusEnum.鎷i�変腑 => "鎷i�変腑",
+                PalletStatusEnum.宸插畬鎴� => "宸插畬鎴�",
+                PalletStatusEnum.鏃犱换鍔� => "鏃犱换鍔�",
+                _ => "鏈煡"
+            };
+        }
         #endregion
+ 
 
         #region DTO绫�
 
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 b61f470..38f0812 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"
@@ -741,7 +741,15 @@
                 PickQuantity = result.ActualPickedQty,
                 PickTime = DateTime.Now,
                 Operator = App.User.UserName,
-                OutStockLockId = result.FinalLockInfo.Id
+                OutStockLockId = result.FinalLockInfo.Id,
+                BarcodeUnit=result.FinalLockInfo.BarcodeUnit,
+                BarcodeQty=result.FinalLockInfo.BarcodeQty,
+                BatchNo= result.FinalLockInfo.BatchNo,  
+                lineNo= result.FinalLockInfo.lineNo ,
+                SupplyCode= result.FinalLockInfo.SupplyCode ,
+                WarehouseCode = result.FinalLockInfo.WarehouseCode  ,
+                
+
             };
 
             await Db.Insertable(pickingHistory).ExecuteCommandAsync();
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_WMSServer/Controllers/Check/CheckOrderController.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_WMSServer/Controllers/Check/CheckOrderController.cs"
index 12d2bed..990fad2 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_WMSServer/Controllers/Check/CheckOrderController.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_WMSServer/Controllers/Check/CheckOrderController.cs"
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
+using System.Threading.Tasks;
 using WIDESEA_Core;
 using WIDESEA_Core.Attributes;
 using WIDESEA_Core.BaseController;
@@ -34,7 +35,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost, Route("ReceiveReCheckOrder"), AllowAnonymous, MethodParamsValidate]
-        public WebResponseContent ReceiveReCheckOrder([FromBody] ReCheckDto model)
+        public async Task<WebResponseContent> ReceiveReCheckOrder([FromBody] ReCheckDto model)
         {
             _logger.LogInformation("CheckOrderController ReceiveReCheckOrder:  " + JsonConvert.SerializeObject(model));
             var recheckOrder = new Dt_ReCheckOrder
@@ -52,7 +53,7 @@
             };
 
 
-            var content = _recheckOrderService.ReceiveReCheckOrder(recheckOrder, model.operationType);
+            var content =await _recheckOrderService.ReceiveReCheckOrder(recheckOrder, model.operationType);
 
             if (content.Status) return WebResponseContent.Instance.OK(200);
             else return WebResponseContent.Instance.Error(content.Message);

--
Gitblit v1.9.3