From 696edbff3c8812e4b820f624d66a02ae6ddb1a06 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期四, 16 四月 2026 13:40:18 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundController.cs |   97 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 92 insertions(+), 5 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_WMSServer/Controllers/Outbound/OutboundController.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/Outbound/OutboundController.cs"
index dab5a3a..fa3b447 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/Outbound/OutboundController.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/Outbound/OutboundController.cs"
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
 using WIDESEA_Core;
 using WIDESEA_DTO.CalcOut;
 
@@ -40,22 +41,84 @@
             }
         }
 
+        object lockObj = new object();
+
         [HttpPost, Route("CompleteOutboundWithBarcode"), AllowAnonymous]
         public WebResponseContent CompleteOutboundWithBarcode([FromBody] OutboundCompleteRequestDTO request)
         {
             try
             {
-                if (!ModelState.IsValid)
-                    return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
-                        .SelectMany(v => v.Errors)
-                        .Select(e => e.ErrorMessage)));
+                lock (lockObj)
+                {
+                    if (!ModelState.IsValid)
+                        return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
+                            .SelectMany(v => v.Errors)
+                            .Select(e => e.ErrorMessage)));
 
-                return _outboundService.CompleteOutboundWithBarcode(request);
+                    return _outboundService.CompleteOutboundWithBarcode(request);
+                }
             }
             catch (Exception ex)
             {
                 return WebResponseContent.Instance.Error($"鍑哄簱鎵弿鎿嶄綔澶辫触: {ex.Message}");
             }
+        }
+
+        /// <summary>
+        /// 鎾ら攢鎷i�夋潯鐮佹帴鍙o紙鍙嶅悜鍥炴粴鎷i�夋搷浣滐級
+        /// </summary>
+        /// <param name="request">鎾ら攢鎷i�夎姹傚弬鏁�</param>
+        /// <returns>鎺ュ彛鍝嶅簲缁撴灉</returns>
+        [HttpPost, Route("ReversePickingWithBarcode"), AllowAnonymous]
+        public WebResponseContent ReversePickingWithBarcode([FromBody] ReversePickingRequestDTO request)
+        {
+            try
+            {
+                lock (lockObj)
+                {
+                    if (!ModelState.IsValid)
+                    {
+                        string errorMsg = string.Join("; ", ModelState.Values
+                            .SelectMany(v => v.Errors)
+                            .Select(e => e.ErrorMessage));
+                        return WebResponseContent.Instance.Error(errorMsg);
+                    }
+
+                    return _outboundService.ReversePicking(request);
+                }
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error($"鎾ら攢鎷i�夋搷浣滃け璐�: {ex.Message}");
+            }
+        }
+
+
+        [HttpPost, Route("CompleteOutboundWithPallet"), AllowAnonymous]
+        public WebResponseContent CompleteOutboundWithPallet([FromBody] OutboundCompletePalletRequestDTO request)
+        {
+            try
+            {
+                lock (lockObj)
+                {
+                    if (!ModelState.IsValid)
+                        return WebResponseContent.Instance.Error(string.Join("; ", ModelState.Values
+                            .SelectMany(v => v.Errors)
+                            .Select(e => e.ErrorMessage)));
+
+                    return _outboundService.CompleteOutboundWithPallet(request);
+                }
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error($"鏁寸鍑哄簱鎿嶄綔澶辫触: {ex.Message}");
+            }
+        }
+
+        [HttpPost,HttpGet, Route("GetOrderInfo"), AllowAnonymous]
+        public WebResponseContent GetOrderInfo(string orderNo)
+        {
+            return _outboundService.GetOrderInfo(orderNo);
         }
 
         [HttpPost, Route("QueryPickingTasks"), AllowAnonymous]
@@ -69,5 +132,29 @@
         {
             return _outboundService.QueryPickedList(orderNo, palletCode);
         }
+
+        [HttpPost, Route("EmptyBox"), AllowAnonymous]
+        public async Task<WebResponseContent> EmptyBox([FromBody] ReturnToWarehouseDTO returnToWarehouse)
+        {
+            return await _outboundService.EmptyBox(returnToWarehouse.palletCode);
+        }
+
+        [HttpPost, Route("ReturnToWarehouse"), AllowAnonymous]
+        public async Task<WebResponseContent> ReturnToWarehouse([FromBody]ReturnToWarehouseDTO returnToWarehouse)
+        {
+            return await _outboundService.ReturnToWarehouse(returnToWarehouse.palletCode, returnToWarehouse.orderNo, returnToWarehouse.station);
+        }
+
+        [HttpPost, Route("RecheckPicking"), AllowAnonymous]
+        public WebResponseContent RecheckPicking([FromBody] RecheckPickingDTO pickingDTO)
+        {
+            return _outboundService.RecheckPicking(pickingDTO);
+        }
+
+        [HttpPost, Route("PrintFromData"), AllowAnonymous]
+        public WebResponseContent PrintFromData(string barcode)
+        {
+            return _outboundService.PrintFromData(barcode);
+        }
     }
 }

--
Gitblit v1.9.3