From 4b483d9d06bead231b88ca212fd799196668a057 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 28 四月 2026 22:58:27 +0800
Subject: [PATCH] fix(任务服务): 修复出库任务选择逻辑和货位分配问题

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/WebResponseContent.cs                                |    8 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs                  |   37 +
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/TaskAddressConstants.cs                             |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrder_HtyController.cs          |    8 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_DTO/GradingMachine/OutPutDto.cs                                      |   13 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseModels/WebResponseContent.cs                             |   12 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_UserController.cs                   |   15 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs                              |    6 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs                                 |   13 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs                 |    8 
 Code/测试工具/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/instance-1001/config.json           |    2 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                           |    8 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/site.css                                       |   61 +-
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Dashboard/DashboardController.cs               |    3 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetail_HtyController.cs    |    8 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_LogController.cs                    |    5 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/WarehouseController.cs                   |    5 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/style.css                                      |  234 +++++----
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs                          |    6 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_MenuController.cs                   |    5 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs            |    5 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/StockQuantityChangeRecordController.cs  |    5 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs                 |   21 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs      |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetail_HtyController.cs         |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs             |    6 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs                   |   21 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs                     |    3 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs              |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs    |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetailController.cs        |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/swaggerdoc.js                                   |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs                |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs                              |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/swg-login.html                                     |    1 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs                        |    1 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_TenantController.cs                 |   10 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                    |   14 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs                             |   12 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/LocationStatusChangeRecordController.cs |   54 +-
 Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs                                  |   50 +
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/launchSettings.json                             |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetail_HtyController.cs  |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs                               |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/swaggerdoc.css                                 |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielInfoController.cs                |   12 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs            |   13 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs              |  168 +++---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs                                     |   11 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs         |    8 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs                   |   11 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/site.js                                         |    2 
 项目资料/设备协议/高常温堆垛机与输送线/~$WCS输送对接地址表_0420.xlsx                                                             |    0 
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IOutboundTaskFlowService.cs                      |    6 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrder_HtyController.cs        |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs                                   |    8 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockController.cs                       |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryListController.cs         |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs                  |    8 
 Code/测试工具/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/protocol-templates.json             |  162 +++++++
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs                           |    1 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs                                     |   15 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfo_HtyController.cs               |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/StockMonitorBackgroundService.cs        |   13 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs            |    7 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_AutoOutbound.cs                      |    2 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockViewController.cs                   |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs              |    9 
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_GradingMachine.cs                        |   53 -
 Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs                                   |   15 
 70 files changed, 707 insertions(+), 588 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseModels/WebResponseContent.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseModels/WebResponseContent.cs
index bceaed3..1bae9fc 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseModels/WebResponseContent.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseModels/WebResponseContent.cs
@@ -36,6 +36,7 @@
         public WebResponseContent OK()
         {
             Status = true;
+            Code = 200;
             return this;
         }
 
@@ -45,19 +46,20 @@
             get { return new WebResponseContent(); }
         }
         // OK鏂规硶锛岃缃姸鎬佷负true锛屽苟璁剧疆娑堟伅鍜屾暟鎹紝杩斿洖褰撳墠瀵硅薄
-        public WebResponseContent OK(string message = null, object data = null)
+        public WebResponseContent OK(string? message = null, object? data = null)
         {
             Status = true;
-            Message = message;
-            Data = data;
+            Code = 200;
+            Message = message ?? "璇锋眰鎴愬姛";
+            Data = data ?? new { };
             return this;
         }
 
         // Error鏂规硶锛岃缃姸鎬佷负false锛屽苟璁剧疆娑堟伅锛岃繑鍥炲綋鍓嶅璞�
-        public WebResponseContent Error(string message = null)
+        public WebResponseContent Error(string? message = null)
         {
             Status = false;
-            Message = message;
+            Message = message ?? "璇锋眰澶辫触";
             return this;
         }
     }
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IOutboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IOutboundTaskFlowService.cs
index 41553e6..8d96fb0 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IOutboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IOutboundTaskFlowService.cs
@@ -30,5 +30,11 @@
         /// <param name="task">浠诲姟瀹炰綋銆�</param>
         /// <returns>澶勭悊缁撴灉銆�</returns>
         WebResponseContent CompleteStackerTask([NotNull] Dt_Task task);
+
+        /// <summary>
+        /// 璁剧疆鎺ユ敹WMS浠诲姟鐨勫鎵橈紙鐢盩askService鍦ㄦ瀯閫犲悗璋冪敤锛岄伩鍏嶅惊鐜緷璧栵級銆�
+        /// </summary>
+        /// <param name="receiveWMSTaskFunc">鎺ユ敹WMS浠诲姟鐨勬柟娉曞鎵樸��</param>
+        void SetReceiveWMSTaskDelegate(Func<List<WMSTaskDTO>, WebResponseContent> receiveWMSTaskFunc);
     }
 }
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index 6cc3b23..0b54bec 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -97,10 +97,10 @@
       "10030": "GWSC1"
     },
     "AddressSourceLineNoMap": { // 瀵瑰簲杈撻�佺嚎缂栧彿鍦板潃鏄犲皠
-      "11001": "10010",
-      "11010": "10030",
-      "10010": "11001",
-      "10030": "11010"
+      "11001": "2101",
+      "11010": "2103",
+      "2101": "11001",
+      "2103": "11010"
     }
   },
   "RobotAddressRules": {
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
index 90f5f4a..c34af94 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
@@ -1,5 +1,4 @@
-锘縰sing Autofac;
-using Newtonsoft.Json;
+锘縰sing Newtonsoft.Json;
 using Serilog;
 using System.Diagnostics.CodeAnalysis;
 using WIDESEA_Core;
@@ -12,6 +11,7 @@
 using WIDESEAWCS_DTO;
 using WIDESEAWCS_DTO.Stock;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
@@ -29,9 +29,10 @@
         private readonly IRouterService _routerService;
         private readonly HttpClientHelper _httpClientHelper;
         private readonly IRobotTaskService _robotTaskService;
-        private readonly IComponentContext _componentContext;
+        private readonly ITaskRepository _taskRepository;
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly ILogger _logger;
+        private Func<List<WMSTaskDTO>, WebResponseContent> _receiveWMSTaskFunc;
 
         /// <summary>
         /// 鍒濆鍖栧嚭搴撲换鍔℃祦绋嬫湇鍔°��
@@ -39,21 +40,33 @@
         /// <param name="routerService">璺敱鏈嶅姟銆�</param>
         /// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
         /// <param name="robotTaskService">鏈烘鎵嬩换鍔℃湇鍔°��</param>
-        /// <param name="componentContext">Autofac缁勪欢涓婁笅鏂囷紙鐢ㄤ簬寤惰繜瑙f瀽ITaskService浠ラ伩鍏嶅惊鐜緷璧栵級銆�</param>
-        public OutboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper, IRobotTaskService robotTaskService, IComponentContext componentContext, IUnitOfWorkManage unitOfWorkManage, ILogger logger)
+        /// <param name="taskRepository">浠诲姟浠撳偍锛堢敤浜庡垹闄�/褰掓。浠诲姟锛夈��</param>
+        /// <param name="unitOfWorkManage">宸ヤ綔鍗曞厓绠$悊鍣ㄣ��</param>
+        /// <param name="logger">鏃ュ織璁板綍鍣ㄣ��</param>
+        public OutboundTaskFlowService(
+            IRouterService routerService,
+            HttpClientHelper httpClientHelper,
+            IRobotTaskService robotTaskService,
+            ITaskRepository taskRepository,
+            IUnitOfWorkManage unitOfWorkManage,
+            ILogger logger)
         {
             _routerService = routerService;
             _httpClientHelper = httpClientHelper;
             _robotTaskService = robotTaskService;
-            _componentContext = componentContext;
+            _taskRepository = taskRepository;
             _unitOfWorkManage = unitOfWorkManage;
             _logger = logger;
         }
 
         /// <summary>
-        /// 寤惰繜瑙f瀽ITaskService浠ラ伩鍏嶅惊鐜緷璧�
+        /// 璁剧疆鎺ユ敹WMS浠诲姟鐨勫鎵橈紙鐢盩askService鍦ㄦ瀯閫犲悗璋冪敤锛岄伩鍏嶅惊鐜緷璧栵級銆�
         /// </summary>
-        private ITaskService TaskService => _componentContext.Resolve<ITaskService>();
+        /// <param name="receiveWMSTaskFunc">鎺ユ敹WMS浠诲姟鐨勬柟娉曞鎵樸��</param>
+        public void SetReceiveWMSTaskDelegate(Func<List<WMSTaskDTO>, WebResponseContent> receiveWMSTaskFunc)
+        {
+            _receiveWMSTaskFunc = receiveWMSTaskFunc;
+        }
 
         /// <summary>
         /// 鎺ユ敹WMS浠诲姟鏃跺垵濮嬪寲鍑哄簱浠诲姟銆�
@@ -180,14 +193,14 @@
                     _unitOfWorkManage.BeginTran(() =>
                     {
                         // 鍏堝垹闄ゆ湰鍦板嚭搴撲换鍔★紝閬垮厤鎵樼洏鍙峰敮涓�閿啿绐�
-                        bool isDeleted = TaskService.Repository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚);
+                        bool isDeleted = _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚);
                         if (!isDeleted)
                         {
                             return content.Error($"鍒犻櫎鏈湴鍑哄簱浠诲姟澶辫触,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
                         }
 
-                        // 璋冪敤ReceiveWMSTask鍒涘缓鏈湴鍏ュ簱浠诲姟
-                        var receiveResult = TaskService.ReceiveWMSTask(new List<WMSTaskDTO> { inboundTaskDto });
+                        // 璋冪敤ReceiveWMSTask濮旀墭鍒涘缓鏈湴鍏ュ簱浠诲姟
+                        var receiveResult = _receiveWMSTaskFunc(new List<WMSTaskDTO> { inboundTaskDto });
                         if (!receiveResult.Status)
                         {
                             return content.Error($"鍒涘缓鏈湴鍏ュ簱浠诲姟澶辫触: {receiveResult.Message}");
@@ -228,7 +241,7 @@
             if (wMSTask == null)
                 return WebResponseContent.Instance.Error($"鑾峰彇WMS绯荤粺绌烘墭鐩樺嚭搴撲换鍔″け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆怶MS鏈繑鍥炴湁鏁堜换鍔℃暟鎹��");
 
-            if (TaskService.ReceiveWMSTask(new List<WMSTaskDTO> { wMSTask }).Status)
+            if (_receiveWMSTaskFunc(new List<WMSTaskDTO> { wMSTask }).Status)
                 return WebResponseContent.Instance.OK("鎴愬姛");
 
             return WebResponseContent.Instance.Error("鎺ユ敹WMS浠诲姟澶辫触");
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 72db775..3cb1f0d 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,21 +1,10 @@
 using MapsterMapper;
 using SqlSugar;
-using System.Diagnostics.CodeAnalysis;
-using WIDESEA_Core;
 using WIDESEAWCS_Common.TaskEnum;
-using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.Enums;
-using WIDESEAWCS_DTO;
-using WIDESEAWCS_DTO.Stock;
-using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.DeviceBase;
-using WIDESEAWCS_QuartzJob.DTO;
-using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
 
 namespace WIDESEAWCS_TaskInfoService;
@@ -70,5 +59,8 @@
         _inboundTaskFlowService = inboundTaskFlowService;
         _relocationTaskFlowService = relocationTaskFlowService;
         _robotTaskFlowService = robotTaskFlowService;
+
+        // 璁剧疆濮旀墭锛岄伩鍏峅utboundTaskFlowService閫氳繃IComponentContext寤惰繜瑙f瀽瀵艰嚧ObjectDisposedException
+        _outboundTaskFlowService.SetReceiveWMSTaskDelegate(ReceiveWMSTask);
     }
 }
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
index 8b45c00..7788251 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
@@ -88,7 +88,7 @@
         /// </summary>
         /// <remarks>
         /// </remarks>
-        private static List<string> AddressToDeviceType = new List<string> { "11020", "11028", "2125" };
+        private static List<string> AddressToDeviceType = new List<string> { "11020", "11028", "2125", "11062" };
 
         /// <summary>
         /// 鎵樼洏妫�鏌ヤ綅缃殑鏈�杩戞墽琛屾椂闂达紙鐢ㄤ簬30绉掗棿闅旈檺鍒讹級
@@ -168,57 +168,57 @@
 
                             // ========== 妫�鏌ョ壒瀹氫綅缃槸鍚︽湁鎵樼洏 ==========
                             // 浠庨厤缃腑璇诲彇闇�瑕佹鏌ユ墭鐩樼殑浣嶇疆鍒楄〃
-                            var checkPalletPositions = App.Configuration.GetSection("CheckPalletPositions")
-                                .Get<List<CheckPalletPosition>>() ?? new List<CheckPalletPosition>();
+                            //var checkPalletPositions = App.Configuration.GetSection("CheckPalletPositions")
+                            //    .Get<List<CheckPalletPosition>>() ?? new List<CheckPalletPosition>();
 
-                            // 濡傛灉褰撳墠璁惧鍦ㄦ鏌ュ垪琛ㄤ腑
-                            if (checkPalletPositions.Any(x => x.Code == childDeviceCode))
-                            {
-                                // 30绉掗棿闅旈檺鍒�
-                                if (_lastPalletCheckTime.TryGetValue(childDeviceCode, out var lastTime) &&
-                                    (DateTime.Now - lastTime).TotalSeconds < 30)
-                                {
-                                    continue;
-                                }
+                            //// 濡傛灉褰撳墠璁惧鍦ㄦ鏌ュ垪琛ㄤ腑
+                            //if (checkPalletPositions.Any(x => x.Code == childDeviceCode))
+                            //{
+                            //    // 30绉掗棿闅旈檺鍒�
+                            //    if (_lastPalletCheckTime.TryGetValue(childDeviceCode, out var lastTime) &&
+                            //        (DateTime.Now - lastTime).TotalSeconds < 30)
+                            //    {
+                            //        continue;
+                            //    }
 
-                                // 妫�鏌ヨ緭閫佺嚎鐘舵�侊紙鏄惁鏈夋墭鐩橈級
-                                if (command.CV_State == 2)
-                                {
-                                    // 妫�鏌ヨ浣嶇疆鏄惁宸叉湁浠诲姟
-                                    var existingTask = _taskService.Db.Queryable<Dt_Task>().Count(x => x.TargetAddress == childDeviceCode);
-                                    if (existingTask < 5)
-                                    {
-                                        // 娌℃湁浠诲姟锛屽悜 WMS 璇锋眰鍑哄簱鎵樼洏浠诲姟
-                                        var position = checkPalletPositions.FirstOrDefault(x => x.Code == childDeviceCode);
+                            //    // 妫�鏌ヨ緭閫佺嚎鐘舵�侊紙鏄惁鏈夋墭鐩橈級
+                            //    if (command.CV_State == 2)
+                            //    {
+                            //        // 妫�鏌ヨ浣嶇疆鏄惁宸叉湁浠诲姟
+                            //        var existingTask = _taskService.Db.Queryable<Dt_Task>().Count(x => x.TargetAddress == childDeviceCode);
+                            //        if (existingTask < 5)
+                            //        {
+                            //            // 娌℃湁浠诲姟锛屽悜 WMS 璇锋眰鍑哄簱鎵樼洏浠诲姟
+                            //            var position = checkPalletPositions.FirstOrDefault(x => x.Code == childDeviceCode);
 
-                                        string configKey = "GetOutBoundTrayTaskAsync";
-                                        string requestParam = new CreateTaskDto()
-                                        {
-                                            WarehouseId = position.WarehouseId,
-                                            TargetAddress = childDeviceCode
-                                        }.Serialize();
-                                        DateTime startTime = DateTime.Now;
+                            //            string configKey = "GetOutBoundTrayTaskAsync";
+                            //            string requestParam = new CreateTaskDto()
+                            //            {
+                            //                WarehouseId = position.WarehouseId,
+                            //                TargetAddress = childDeviceCode
+                            //            }.Serialize();
+                            //            DateTime startTime = DateTime.Now;
 
-                                        var responseResult = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+                            //            var responseResult = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
 
-                                        _lastPalletCheckTime[childDeviceCode] = DateTime.Now;
+                            //            _lastPalletCheckTime[childDeviceCode] = DateTime.Now;
 
-                                        // 濡傛灉璇锋眰鎴愬姛锛屾帴鏀� WMS 杩斿洖鐨勪换鍔�
-                                        if (responseResult.IsSuccess && responseResult.Data.Status)
-                                        {
-                                            QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,鍝嶅簲鏁版嵁:銆恵responseResult.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", conveyorLine.DeviceCode);
-                                            var wmsTask = JsonConvert.DeserializeObject<WMSTaskDTO>(responseResult.Data.Data.ToString());
-                                            List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { wmsTask };
-                                            if (wmsTask != null)
-                                                _taskService.ReceiveWMSTask(taskDTOs);
-                                        }
-                                        else
-                                        {
-                                            QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵responseResult.Data?.Message}銆�", conveyorLine.DeviceCode);
-                                        }
-                                    }
-                                }
-                            }
+                            //            // 濡傛灉璇锋眰鎴愬姛锛屾帴鏀� WMS 杩斿洖鐨勪换鍔�
+                            //            if (responseResult.IsSuccess && responseResult.Data.Status)
+                            //            {
+                            //                QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,鍝嶅簲鏁版嵁:銆恵responseResult.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", conveyorLine.DeviceCode);
+                            //                var wmsTask = JsonConvert.DeserializeObject<WMSTaskDTO>(responseResult.Data.Data.ToString());
+                            //                List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { wmsTask };
+                            //                if (wmsTask != null)
+                            //                    _taskService.ReceiveWMSTask(taskDTOs);
+                            //            }
+                            //            else
+                            //            {
+                            //                QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵responseResult.Data?.Message}銆�", conveyorLine.DeviceCode);
+                            //            }
+                            //        }
+                            //    }
+                            //}
 
                             #endregion 妫�娴嬫槸鍚﹂渶瑕佺┖鎵樼洏
 
@@ -299,48 +299,48 @@
                                         conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
                                     }
                                 }
-                                else if (!command.Barcode.IsNullOrEmpty() && (childDeviceCode == "11001" || childDeviceCode == "11010"))
-                                {
-                                    var isWcsTask = _taskService.Db.Queryable<Dt_Task>().Any(x => x.PalletCode == command.Barcode && (x.TaskStatus == (int)TaskOutStatusEnum.OutNew || x.TaskStatus == (int)TaskInStatusEnum.InNew));
-                                    var isRobotTask = _robotTaskService.Db.Queryable<Dt_RobotTask>().Any(x => x.RobotTargetAddressPalletCode == command.Barcode);
-                                    if (isWcsTask || isRobotTask)
-                                    {
-                                        continue;
-                                    }
+                                //else if (!command.Barcode.IsNullOrEmpty() && (childDeviceCode == "11001" || childDeviceCode == "11010"))
+                                //{
+                                //    var isWcsTask = _taskService.Db.Queryable<Dt_Task>().Any(x => x.PalletCode == command.Barcode && (x.TaskStatus == (int)TaskOutStatusEnum.OutNew || x.TaskStatus == (int)TaskInStatusEnum.InNew));
+                                //    var isRobotTask = _robotTaskService.Db.Queryable<Dt_RobotTask>().Any(x => x.RobotTargetAddressPalletCode == command.Barcode);
+                                //    if (isWcsTask || isRobotTask)
+                                //    {
+                                //        continue;
+                                //    }
 
-                                    // 璋冪敤 WMS 鍒涘缓绌烘墭鐩樺叆搴撲换鍔�
-                                    string configKey = nameof(ConfigKey.CreateTaskInboundAsync);
-                                    string requestParam = new CreateTaskDto()
-                                    {
-                                        PalletCode = command.Barcode,
-                                        SourceAddress = childDeviceCode,
-                                        TargetAddress = "GWSC1",  // 鐩爣鍦板潃
-                                        Roadway = "GWSC1",             // 宸烽亾
-                                        WarehouseId = 1,                   // 浠撳簱 ID
-                                        PalletType = 1,                             // 鎵樼洏绫诲瀷锛堥粯璁や负1锛�
-                                        TaskType = TaskTypeEnum.InEmpty.GetHashCode()                         // 浠诲姟绫诲瀷锛堝叆搴�/绌烘墭鐩樺叆搴擄級
-                                    }.Serialize();
-                                    DateTime startTime = DateTime.Now;
+                                //    // 璋冪敤 WMS 鍒涘缓绌烘墭鐩樺叆搴撲换鍔�
+                                //    string configKey = nameof(ConfigKey.CreateTaskInboundAsync);
+                                //    string requestParam = new CreateTaskDto()
+                                //    {
+                                //        PalletCode = command.Barcode,
+                                //        SourceAddress = childDeviceCode,
+                                //        TargetAddress = "GWSC1",  // 鐩爣鍦板潃
+                                //        Roadway = "GWSC1",             // 宸烽亾
+                                //        WarehouseId = 1,                   // 浠撳簱 ID
+                                //        PalletType = 1,                             // 鎵樼洏绫诲瀷锛堥粯璁や负1锛�
+                                //        TaskType = TaskTypeEnum.InEmpty.GetHashCode()                         // 浠诲姟绫诲瀷锛堝叆搴�/绌烘墭鐩樺叆搴擄級
+                                //    }.Serialize();
+                                //    DateTime startTime = DateTime.Now;
 
-                                    var responseResult = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+                                //    var responseResult = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
 
-                                    if (responseResult.IsSuccess && responseResult.Data.Status)
-                                    {
-                                        QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,鍝嶅簲鏁版嵁:銆恵responseResult.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", conveyorLine.DeviceCode);
-                                        var wmsTask = JsonConvert.DeserializeObject<WMSTaskDTO>(responseResult?.Data?.Data?.ToString());
-                                        List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { wmsTask };
-                                        if (wmsTask == null) continue;
+                                //    if (responseResult.IsSuccess && responseResult.Data.Status)
+                                //    {
+                                //        QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,鍝嶅簲鏁版嵁:銆恵responseResult.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", conveyorLine.DeviceCode);
+                                //        var wmsTask = JsonConvert.DeserializeObject<WMSTaskDTO>(responseResult?.Data?.Data?.ToString());
+                                //        List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { wmsTask };
+                                //        if (wmsTask == null) continue;
 
-                                        if (_taskService.ReceiveWMSTask(taskDTOs).Status)
-                                        {
-                                            conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
-                                        }
-                                    }
-                                    else
-                                    {
-                                        QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵responseResult.Data?.Message}銆�", conveyorLine.DeviceCode);
-                                    }
-                                }
+                                //        if (_taskService.ReceiveWMSTask(taskDTOs).Status)
+                                //        {
+                                //            conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
+                                //        }
+                                //    }
+                                //    else
+                                //    {
+                                //        QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵responseResult.Data?.Message}銆�", conveyorLine.DeviceCode);
+                                //    }
+                                //}
                             }
                         }
                         catch (Exception innerEx)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 97fa4ac..318ed17 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -525,7 +525,7 @@
                         PalletCode = currentTask.RobotSourceAddressPalletCode;  // 浣跨敤婧愬湴鍧�鐨勬墭鐩樼爜
                         if (isRoadway == "HCSC1")
                         {
-                            warehouseId = 2;
+                            warehouseId = 3;
                             roadway = "HCSC1";
                         }
                         else if (isRoadway == "GWSC1")
@@ -542,7 +542,7 @@
                         taskType = TaskTypeEnum.InEmpty.GetHashCode();  // 绌烘墭鐩樺叆搴�
                         PalletCode = currentTask.RobotSourceAddressPalletCode;  // 浣跨敤婧愬湴鍧�鐨勬墭鐩樼爜
 
-                        warehouseId = 3;
+                        warehouseId = 2;
                         roadway = "CWSC1";
 
                         SourceAddress = currentTask.RobotSourceAddressLineCode;
@@ -562,7 +562,7 @@
 
                         if (isRoadway == "HCSC1")
                         {
-                            warehouseId = 2;
+                            warehouseId = 3;
                             roadway = "HCSC1";
                         }
                         else if (isRoadway == "GWSC1")
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
index 944164b..712dd6c 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
@@ -155,6 +155,8 @@
             var sameStationTasks = _taskService
                 .QueryStackerCraneOutTasks(deviceCode, new List<string> { candidateTask.NextAddress })
                 .Where(x => x.TaskId != candidateTask.TaskId && x.TargetAddress != candidateTask.TargetAddress)
+                .GroupBy(x => x.TargetAddress)
+                .Select(g => g.FirstOrDefault())
                 .ToList();
 
             foreach (var sameStationTask in sameStationTasks)
@@ -206,7 +208,7 @@
         {
             // 鍏堣繘琛屾湰鍦扮珯鍙版鏌ワ紙PLC 璇诲彇锛屽揩閫燂級锛岄伩鍏嶄笉蹇呰鐨� WMS HTTP 璋冪敤
 
-            if (outboundTask.TaskType != (int)TaskOutboundTypeEnum.OutEmpty)
+            if (outboundTask.TaskType != (int)TaskOutboundTypeEnum.OutEmpty && outboundTask.Roadway != "GWSC1" && outboundTask.TargetAddress != "CWSC1")
             {
                 // 鍒ゆ柇 TargetAddress 杈撻�佺嚎绔欏彴鏄惁绌洪棽
                 if (!IsTargetAddressConveyorStationAvailable(outboundTask))
@@ -221,14 +223,21 @@
                 return null;
             }
 
-            // 妫�鏌ユ槸鍚︽湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟鍘诲線鍚屼竴 TargetAddress
-            if (_taskService.HasExecutingTaskToTarget(outboundTask.Roadway, outboundTask.TargetAddress))
+            if (outboundTask.TargetAddress != "CWSC1")
             {
-                QuartzLogHelper.LogInfo(_logger, "TrySelectOutboundTask锛歍argetAddress: {TargetAddress} 宸叉湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟锛屼换鍔″彿: {TaskNum}",
-                    $"TrySelectOutboundTask锛歍argetAddress: {outboundTask.TargetAddress} 宸叉湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟", outboundTask.Roadway, outboundTask.TargetAddress, outboundTask.TaskNum);
-                return null;
+                // 妫�鏌ユ槸鍚︽湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟鍘诲線鍚屼竴 TargetAddress
+                if (_taskService.HasExecutingTaskToTarget(outboundTask.Roadway, outboundTask.TargetAddress))
+                {
+                    QuartzLogHelper.LogInfo(_logger, "TrySelectOutboundTask锛歍argetAddress: {TargetAddress} 宸叉湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟锛屼换鍔″彿: {TaskNum}",
+                        $"TrySelectOutboundTask锛歍argetAddress: {outboundTask.TargetAddress} 宸叉湁姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟", outboundTask.Roadway, outboundTask.TargetAddress, outboundTask.TaskNum);
+                    return null;
+                }
             }
 
+            if(outboundTask.Roadway != "GWSC1")
+            {
+                return outboundTask;
+            }
             // 绔欏彴妫�鏌ラ�氳繃鍚庯紝璋冪敤 WMS 鍒ゆ柇鏄惁闇�瑕佺Щ搴�
             var taskAfterTransferCheck = _transferCheck(outboundTask.TaskNum) ?? outboundTask;
             var taskGroup = taskAfterTransferCheck.TaskType.GetTaskTypeGroup();
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
index c9e31b3..9594985 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
@@ -133,25 +133,43 @@
 
         /// <summary>
         /// 鏍规嵁宸烽亾鑾峰彇绌洪棽璐т綅淇℃伅
+        /// 鎺掑簭绛栫暐锛氭繁搴︿紭鍏堬紙浜屾繁浣嶄紭鍏堬級锛屽叾娆℃寜灞傘�佸垪銆佽鍗囧簭
         /// </summary>
         /// <param name="roadwayNo">宸烽亾缂栧彿</param>
-        /// <returns>绌洪棽璐т綅淇℃伅锛屽鏋滄湭鎵惧埌鍒欒繑鍥瀗ull</returns>
+        /// <returns>绌洪棽璐т綅淇℃伅锛屽鏋滅┖闂茶揣浣嶄笉瓒冲垯杩斿洖null</returns>
         public async Task<Dt_LocationInfo?> GetLocationInfo(string roadwayNo)
         {
-            var locations = await BaseDal.QueryDataAsync(x =>
-                x.EnableStatus == EnableStatusEnum.Normal.GetHashCode() &&
-                x.RoadwayNo == roadwayNo &&
-                x.LocationStatus == LocationStatusEnum.Free.GetHashCode() &&
-                (roadwayNo.Contains("HC")
-                    ? x.LocationType == (int)LocationTypeEnum.Capacity
-                    : x.LocationType == (int)LocationTypeEnum.ShelfCapacity));
+            // HC 宸烽亾浣跨敤 Capacity 绫诲瀷锛屽叾浠栧贩閬撲娇鐢� ShelfCapacity 绫诲瀷
+            var locationType = roadwayNo.Contains("HC")
+                ? (int)LocationTypeEnum.Capacity
+                : (int)LocationTypeEnum.ShelfCapacity;
 
-            return locations?
-                .OrderByDescending(x => x.Depth)  // 1. 娣卞害浼樺厛锛堜粠澶у埌灏忥級
-                .ThenBy(x => x.Layer)             // 2. 灞傛暟
-                .ThenBy(x => x.Column)            // 3. 鍒�
-                .ThenBy(x => x.Row)               // 4. 琛�
-                .FirstOrDefault();
+            var enableStatus = EnableStatusEnum.Normal.GetHashCode();
+            var freeStatus = LocationStatusEnum.Free.GetHashCode();
+
+            // 鏁版嵁搴撶 COUNT 妫�鏌ョ┖闂茶揣浣嶆暟閲忥紙浠呰繑鍥炰竴涓暟瀛楋紝鏃犳暟鎹紶杈撳紑閿�锛�
+            var freeCount = await BaseDal.Db.Queryable<Dt_LocationInfo>()
+                .Where(x => x.EnableStatus == enableStatus
+                    && x.RoadwayNo == roadwayNo
+                    && x.LocationStatus == freeStatus
+                    && x.LocationType == locationType)
+                .CountAsync();
+
+            // 绌洪棽璐т綅涓嶈冻鏈�浣庝繚鐣欐暟閲忔椂杩斿洖null锛岄伩鍏嶅皢宸烽亾鍒嗛厤鑰楀敖
+            const int minFreeLocationThreshold = 5;
+            if (freeCount < minFreeLocationThreshold) return null;
+
+            // 鏁版嵁搴撶鎺掑簭鍙栫涓�鏉★紙鍙紶杈撳崟琛屾暟鎹級
+            return await BaseDal.Db.Queryable<Dt_LocationInfo>()
+                .Where(x => x.EnableStatus == enableStatus
+                    && x.RoadwayNo == roadwayNo
+                    && x.LocationStatus == freeStatus
+                    && x.LocationType == locationType)
+                .OrderByDescending(x => x.Depth)
+                .OrderBy(x => x.Layer)
+                .OrderBy(x => x.Column)
+                .OrderBy(x => x.Row)
+                .FirstAsync();
         }
 
         /// <summary>
@@ -311,7 +329,7 @@
             // 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
             var stockInfo = await _stockInfoRepository.QueryDataNavFirstAsync(x =>
                             x.LocationCode == newLocationID &&
-                            x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode() &&
+                            (x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode() || x.StockStatus == StockStatusEmun.绌烘墭鐩樺簱瀛�.GetHashCode()) &&
                             x.LocationDetails.LocationStatus == LocationStatusEnum.InStock.GetHashCode());
             if (stockInfo == null)
             {
@@ -538,4 +556,4 @@
 
         #endregion 绉佹湁鏂规硶
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/TaskAddressConstants.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/TaskAddressConstants.cs
index e4ae783..21577e5 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/TaskAddressConstants.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/TaskAddressConstants.cs
@@ -23,7 +23,7 @@
         /// <summary>
         /// 甯告俯1鍙峰嚭搴撳湴鍧�
         /// </summary>
-        public const string CW1_ADDRESS = "22001";
+        public const string CW1_ADDRESS = "11085";
 
         /// <summary>
         /// 鍒嗗搴撳嚭搴撳湴鍧�
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs
index 1fff57b..f20f864 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs
@@ -1,10 +1,5 @@
 锘縰sing SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
 using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEA_Core.Const;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
@@ -19,19 +14,20 @@
         public int Total { get; set; }
         public string TableName { get; set; }
         public string Sort { get; set; }
+
         /// <summary>
         /// 鎺掑簭鏂瑰紡
         /// </summary>
         public string Order { get; set; }
+
         public string Wheres { get; set; }
         public bool Export { get; set; }
         public object Value { get; set; }
+
         /// <summary>
         /// 鏌ヨ鏉′欢
         /// </summary>
         public List<SearchParameters> Filter { get; set; }
-
-
 
         public string ValidatePageOptions(PropertyInfo[] entityProperties)
         {
@@ -117,7 +113,6 @@
             return where;
         }
 
-
         public Dictionary<string, OrderByType> GetPageDataSort(PropertyInfo[] propertyInfo)
         {
             if (!string.IsNullOrEmpty(Sort))
@@ -143,11 +138,13 @@
             return new Dictionary<string, OrderByType> { { "CreateDate", Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc } };
         }
     }
+
     public class SearchParameters
     {
         public string Name { get; set; }
         public string Value { get; set; }
+
         //鏌ヨ绫诲瀷锛歀inqExpressionType
         public string DisplayType { get; set; }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/WebResponseContent.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/WebResponseContent.cs
index 58f9a59..01c528a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/WebResponseContent.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/WebResponseContent.cs
@@ -28,6 +28,7 @@
         public WebResponseContent OK()
         {
             Status = true;
+            Code = 200;
             return this;
         }
 
@@ -38,15 +39,16 @@
         public WebResponseContent OK(string? message = null, object? data = null)
         {
             Status = true;
-            Message = message;
-            Data = data;
+            Code = 200;
+            Message = message ?? "璇锋眰鎴愬姛";
+            Data = data ?? new { };
             return this;
         }
 
         public WebResponseContent Error(string? message = null)
         {
             Status = false;
-            Message = message;
+            Message = message ?? "璇锋眰澶辫触";
             return this;
         }
     }
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
index da3bb86..a0c6e4e 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
@@ -16,6 +16,7 @@
 using WIDESEA_Core.DB.Models;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
+
 //using WIDESEA_Core.HostedService;
 using WIDESEA_Core.Utilities;
 using ICacheService = WIDESEA_Core.Caches.ICacheService;
@@ -82,6 +83,7 @@
         }
 
         private PropertyInfo[] _propertyInfo { get; set; } = null;
+
         public PropertyInfo[] TProperties
         {
             get
@@ -201,7 +203,6 @@
             string? value = propertyValue?.ToString();
             if (value == null) return p => true;
 
-
             parameter = parameter ?? Expression.Parameter(typeof(TEntity), "x");
             //创建节点的属性p=>p.name 属性name
             MemberExpression memberProperty = Expression.PropertyOrField(parameter, propertyName);
@@ -274,21 +275,27 @@
                 case LinqExpressionType.Equal:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Equal(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.NotEqual:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.NotEqual(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.GreaterThan:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThan(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.LessThan:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThan(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.ThanOrEqual:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThanOrEqual(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.LessThanOrEqual:
                     expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThanOrEqual(member, constant), parameter);
                     break;
+
                 case LinqExpressionType.Contains:
                 case LinqExpressionType.NotContains:
                     MethodInfo? method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
@@ -309,6 +316,7 @@
                         expression = p => true;
                     }
                     break;
+
                 default:
                     expression = p => false;
                     break;
@@ -346,8 +354,6 @@
             }
             return new Dictionary<string, OrderByType> { { "CreateDate", pageData.Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc } };
         }
-
-
 
         //private string GetDataRole(Type type)
         //{
@@ -721,7 +727,6 @@
                 {
                     content = WebResponseContent.Instance.Error("未找到主表主键值");
                 }
-
             }
             catch (Exception ex)
             {
@@ -964,4 +969,4 @@
             return content;
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs
index c98e78c..793c8b8 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs
@@ -1,15 +1,7 @@
 锘縰sing Autofac;
 using Autofac.Extras.DynamicProxy;
-using HslCommunication.WebSocket;
 using Microsoft.Extensions.DependencyModel;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
-using System;
-using System.Collections.Generic;
-using System.Linq;
 using System.Reflection;
-using System.Runtime.Loader;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEA_Core.AOP;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
@@ -31,7 +23,7 @@
             {
                 cacheType.Add(typeof(LogAOP));
             }
-            
+
             builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepository<>)).InstancePerDependency();//娉ㄥ唽浠撳偍
             builder.RegisterGeneric(typeof(ServiceBase<,>)).As(typeof(IService<>)).InstancePerDependency();//娉ㄥ唽鏈嶅姟
 
@@ -77,4 +69,4 @@
             builder.RegisterType<RequestLogModel>().InstancePerLifetimeScope();
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs
index 3b36860..86728ff 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs
@@ -1,14 +1,8 @@
 锘縰sing Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
-using Org.BouncyCastle.Asn1.Ocsp;
-using System;
-using System.Collections.Generic;
-using System.Linq;
 using System.Net;
 using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.LogHelper;
 
@@ -20,7 +14,7 @@
     public class ApiLogMiddleware
     {
         /// <summary>
-        /// 
+        ///
         /// </summary>
         private readonly RequestDelegate _next;
 
@@ -51,7 +45,7 @@
                 var json = new WebResponseContent();
 
                 json.Message = HttpStatusCode.InternalServerError.ToString();//閿欒淇℃伅
-                json.Code = 500;//500寮傚父 
+                json.Code = 500;//500寮傚父
 
                 StreamWriter streamWriter = new StreamWriter(context.Response.Body);
                 await streamWriter.WriteAsync(json.Serialize());
@@ -101,7 +95,6 @@
                 catch (Exception ex)
                 {
                     // 璁板綍寮傚父
-
                 }
                 finally
                 {
@@ -161,4 +154,4 @@
             return "";
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_DTO/GradingMachine/OutPutDto.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_DTO/GradingMachine/OutPutDto.cs
index 653fc4d..1f045b4 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_DTO/GradingMachine/OutPutDto.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_DTO/GradingMachine/OutPutDto.cs
@@ -32,6 +32,19 @@
         public int IsNormalProcedure { get; set; }
 
         /// <summary>
+        /// 鐢佃姱鏁版嵁
+        /// </summary>
+        public CellCodeData Data { get; set; }
+    }
+
+    /// <summary>
+    /// 鐢佃姱鏉$爜
+    /// </summary>
+    public class CellCodeData
+    {
+
+
+        /// <summary>
         /// 閫氶亾鍙�
         /// </summary>
         public string Channel { get; set; }
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs
index 3c886c7..85a2582 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs
@@ -52,6 +52,14 @@
         Task<Dt_StockInfo> GetStockInfoAsync(string palletCode, string locationCode);
 
         /// <summary>
+        /// 妫�绱㈡寚瀹氳揣浣嶅湪缁欏畾浠撳簱鐨勫簱瀛樿缁嗕俊鎭�
+        /// </summary>
+        /// <param name="warehouseId">浠撳簱ID</param>
+        /// <param name="locationCode">璐т綅缂栫爜</param>
+        /// <returns>搴撳瓨淇℃伅</returns>
+        Task<Dt_StockInfo> GetStockInfoAsync(int warehouseId, string locationCode);
+
+        /// <summary>
         /// 鑾峰彇浠撳簱3D甯冨眬鏁版嵁
         /// </summary>
         /// <param name="warehouseId">浠撳簱ID</param>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs
index 227c7cf..483e4f2 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs
@@ -201,6 +201,17 @@
         }
 
         /// <summary>
+        /// 妫�绱㈡寚瀹氳揣浣嶅湪缁欏畾浠撳簱鐨勫簱瀛樿缁嗕俊鎭�
+        /// </summary>
+        /// <param name="warehouseId">浠撳簱ID</param>
+        /// <param name="locationCode">璐т綅缂栫爜</param>
+        /// <returns>搴撳瓨淇℃伅</returns>
+        public async Task<Dt_StockInfo> GetStockInfoAsync(int warehouseId, string locationCode)
+        {
+            return await BaseDal.QueryDataNavFirstAsync(x => x.WarehouseId == warehouseId && x.LocationCode == locationCode);
+        }
+
+        /// <summary>
         /// 鑾峰彇浠撳簱3D甯冨眬鏁版嵁
         /// </summary>
         /// <param name="warehouseId">浠撳簱ID</param>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_GradingMachine.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_GradingMachine.cs
index 1a240f1..b5dd9cb 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_GradingMachine.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_GradingMachine.cs
@@ -1,27 +1,10 @@
-using Mapster;
-using MapsterMapper;
-using Microsoft.Extensions.Configuration;
-using SqlSugar;
-using System.DirectoryServices.Protocols;
 using System.Text.Json;
 using WIDESEA_Common.Constants;
-using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
-using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core;
-using WIDESEA_Core.BaseRepository;
-using WIDESEA_Core.BaseServices;
-using WIDESEA_Core.Core;
-using WIDESEA_Core.Enums;
-using WIDESEA_Core.Helper;
 using WIDESEA_DTO.GradingMachine;
-using WIDESEA_DTO.MES;
-using WIDESEA_DTO.Stock;
 using WIDESEA_DTO.Task;
-using WIDESEA_IBasicService;
-using WIDESEA_IStockService;
-using WIDESEA_ITaskInfoService;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_TaskInfoService
@@ -36,25 +19,19 @@
         public async Task<WebResponseContent> InOrOutCompletedAsync(GradingMachineInputDto input)
         {
             WebResponseContent content = new WebResponseContent();
-            if (string.IsNullOrWhiteSpace(input.PalletCode) || string.IsNullOrWhiteSpace(input.LocationCode))
+            if (string.IsNullOrWhiteSpace(input.LocationCode))
             {
-                return content.Error($"鎵樼洏鍙锋垨鑰呰揣浣嶇紪鍙蜂笉鑳戒负绌�");
+                return content.Error($"璐т綅缂栧彿涓嶈兘涓虹┖");
             }
 
             try
             {
-                var stockInfo = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode);
+                var stockInfo = await _stockInfoService.GetStockInfoAsync(3, input.LocationCode);
 
                 int locationStatus;
                 if (stockInfo == null)
-                {
-                    var location = await _locationInfoService.GetLocationInfoAsync(input.LocationCode);
-                    locationStatus = location?.LocationStatus == (int)LocationStatusEnum.InStock ? 10 : 0;
-                }
-                else
-                {
-                    locationStatus = MapLocationStatus(stockInfo.StockStatus);
-                }
+                    return content.Error("WMS鏈壘鍒板簱瀛樹俊鎭�");
+                locationStatus = MapLocationStatus(stockInfo.StockStatus);
 
                 int MapLocationStatus(int stockStatus) => stockStatus switch
                 {
@@ -66,7 +43,7 @@
                 OutputDto outPutDto = new OutputDto()
                 {
                     LocationCode = input.LocationCode,
-                    PalletCode = input.PalletCode,
+                    PalletCode = stockInfo.PalletCode,
                     IsNormalProcedure = 1,
                     LocationStatus = locationStatus
                 };
@@ -196,15 +173,19 @@
                 {
                     return content.Error("鏈壘鍒板搴旂殑鎵樼洏");
                 }
-                var outPutDtos = stockInfo.Details.Select(x => new OutputDto()
+
+                var outPutDtos = new
                 {
-                    LocationCode = input.LocationCode,
-                    PalletCode = input.PalletCode,
+                    input.LocationCode,
+                    input.PalletCode,
                     IsNormalProcedure = 1,
-                    LocationStatus = stockInfo.LocationDetails.LocationStatus,
-                    CellCode = x.SerialNumber,
-                    Channel = x.InboundOrderRowNo.ToString()
-                }).ToList();
+                    stockInfo.LocationDetails.LocationStatus,
+                    Data = stockInfo.Details.Select(x => new CellCodeData
+                    {
+                        CellCode = x.SerialNumber,
+                        Channel = x.InboundOrderRowNo.ToString()
+                    }).ToList()
+                };
                 return content.OK(data: outPutDtos);
             }
             catch (Exception ex)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_AutoOutbound.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_AutoOutbound.cs
index 6bc8518..dab5322 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_AutoOutbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_AutoOutbound.cs
@@ -23,7 +23,7 @@
                 // 1. 鏌ヨ鍒版湡搴撳瓨
                 var expiredStocks = await _stockInfoService.Repository
                     .QueryDataNavAsync(s => s.OutboundDate <= DateTime.Now
-                        && s.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode());
+                        && s.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode() && s.WarehouseId != 3);
 
                 if (expiredStocks == null || !expiredStocks.Any())
                 {
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
index f501dba..f36e945 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
@@ -161,6 +161,7 @@
                         WebResponseContent content = new WebResponseContent();
                         stockInfo.LocationCode = location.LocationCode;
                         stockInfo.LocationId = location.Id;
+                        stockInfo.WarehouseId = task.WarehouseId;
 
                         SetOutboundDateByRoadway(task, stockInfo);
 
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs
index 8c1d4b2..48d5b2a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs
@@ -120,12 +120,12 @@
                             TaskNum = await BaseDal.GetTaskNo(),
                             PalletCode = task.PalletCode,
                             PalletType = task.PalletType,
-                            Roadway = "CW1",
+                            Roadway = "CWSC1",
                             TaskType = TaskInboundTypeEnum.Inbound.GetHashCode(),
                             TaskStatus = TaskInStatusEnum.InNew.GetHashCode(),
-                            SourceAddress = task.TargetAddress,
+                            SourceAddress = "11042",
                             TargetAddress = task.TargetAddress,
-                            CurrentAddress = task.TargetAddress,
+                            CurrentAddress = "11042",
                             NextAddress = task.TargetAddress,
                             WarehouseId = (int)WarehouseEnum.CW1,
                             Grade = 1,
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
index 514fcf9..23f06b6 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
@@ -100,7 +100,7 @@
                     return WebResponseContent.Instance.OK("浠诲姟鍒涘缓鎴愬姛", taskDTO);
                 }
 
-                var stockInfo = await _stockInfoService.Repository.QueryDataNavFirstAsync(x => x.LocationDetails.WarehouseId == taskDto.WarehouseId && x.LocationDetails.LocationStatus == LocationStatusEnum.InStock.GetHashCode() && x.StockStatus == StockStatusEmun.绌烘墭鐩樺簱瀛�.GetHashCode());
+                var stockInfo = await _stockInfoService.Repository.QueryDataNavFirstAsync(x => x.LocationDetails.WarehouseId == taskDto.WarehouseId && x.LocationDetails.LocationStatus == LocationStatusEnum.InStock.GetHashCode() && x.StockStatus == StockStatusEmun.绌烘墭鐩樺簱瀛�.GetHashCode() && x.LocationDetails.EnableStatus == (int)EnableStatusEnum.Normal);
                 if (stockInfo == null)
                     return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑搴撳瓨淇℃伅");
 
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
index 2ab2dc3..eaaf9b7 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
@@ -1,9 +1,4 @@
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Options;
-using System;
-using System.Threading;
-using System.Threading.Tasks;
 using WIDESEA_Core.Core;
 using WIDESEA_ITaskInfoService;
 
@@ -83,4 +78,4 @@
             await base.StopAsync(cancellationToken);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/StockMonitorBackgroundService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/StockMonitorBackgroundService.cs
index 201ccea..1e50b88 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/StockMonitorBackgroundService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/StockMonitorBackgroundService.cs
@@ -1,13 +1,5 @@
 using Microsoft.AspNetCore.SignalR;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Logging;
-using System;
 using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
@@ -43,6 +35,7 @@
         /// 鍒嗗埆璺熻釜璐т綅銆佸簱瀛樹富琛ㄣ�佸簱瀛樻槑缁嗭紝閬垮厤姣忔鍏ㄨ〃鎵弿銆�
         /// </summary>
         private DateTime _lastLocationCheckTime = DateTime.MinValue;
+
         private DateTime _lastStockCheckTime = DateTime.MinValue;
         private DateTime _lastDetailCheckTime = DateTime.MinValue;
 
@@ -244,7 +237,7 @@
                         "澧為噺搴撳瓨鍙樻洿鎺ㄩ�侊紝LocationId={LocationId}锛孡ocationStatus={LocationStatus}锛孲tockStatus={StockStatus}锛孮uantity={Quantity}",
                         snapshot.LocationId,
                         snapshot.LocationStatus,
-                        snapshot.StockStatus, 
+                        snapshot.StockStatus,
                         snapshot.OutboundDate,
                         snapshot.StockQuantity);
                 }
@@ -378,4 +371,4 @@
             public int LocationId { get; set; }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs
index 596e36e..16f7276 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs
@@ -90,7 +90,7 @@
         /// </summary>
         /// <param name="taskNum"></param>
         /// <returns></returns>
-        [HttpGet, HttpPost, Route("TransferCheck"),AllowAnonymous]
+        [HttpGet, HttpPost, Route("TransferCheck"), AllowAnonymous]
         public async Task<WebResponseContent?> TransferCheckAsync([FromBody] int taskNum)
         {
             return await Service.TransferCheckAsync(taskNum);
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs
index 529ed7b..1bf6b7d 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs
@@ -1,5 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IBasicService;
 using WIDESEA_Model.Models;
@@ -14,4 +13,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielInfoController.cs
index 58f725f..69a4474 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielInfoController.cs
@@ -1,12 +1,5 @@
-锘縰sing Autofac.Core;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_Core.BaseRepository;
-using WIDESEA_Core.CodeConfigEnum;
-using WIDESEA_Core.Helper;
-using WIDESEA_DTO.Basic;
 using WIDESEA_IBasicService;
 using WIDESEA_Model.Models;
 
@@ -22,6 +15,5 @@
         public MaterielInfoController(IMaterielInfoService service) : base(service)
         {
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs
index beb05d9..2394af6 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs
@@ -1,6 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IBasicService;
 using WIDESEA_Model.Models;
@@ -14,6 +12,5 @@
         public PalletCodeInfoController(IPalletCodeInfoService service) : base(service)
         {
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/WarehouseController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/WarehouseController.cs
index 1ff2f9f..07d11d9 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/WarehouseController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/WarehouseController.cs
@@ -1,5 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IBasicService;
@@ -29,4 +28,4 @@
             return WebResponseContent.Instance.OK(data: result);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs
index e729346..ff55ac5 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs
@@ -1,7 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_ICheckService;
 using WIDESEA_Model.Models;
@@ -18,6 +15,5 @@
         public CheckOrderController(ICheckOrderService service) : base(service)
         {
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs
index 85e8231..20e0a35 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs
@@ -1,6 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_ICheckService;
 using WIDESEA_Model.Models;
@@ -17,6 +15,5 @@
         public CheckOrderResultController(ICheckOrderResultService service) : base(service)
         {
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Dashboard/DashboardController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Dashboard/DashboardController.cs
index f787d2a..3384bde 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Dashboard/DashboardController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Dashboard/DashboardController.cs
@@ -139,6 +139,7 @@
                 return WebResponseContent.Instance.Error($"姣忔棩缁熻鑾峰彇澶辫触: {ex.Message}");
             }
         }
+
         /// <summary>
         /// 姣忓懆缁熻
         /// </summary>
@@ -370,4 +371,4 @@
             }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
index 27e8874..569d4f2 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
@@ -1,9 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Inbound;
 using WIDESEA_IInboundService;
 using WIDESEA_Model.Models;
 
@@ -19,6 +15,5 @@
         public InboundOrderController(IInboundOrderService service) : base(service)
         {
         }
-        
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetailController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetailController.cs
index cd51da6..0bda419 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetailController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetailController.cs
@@ -1,6 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IInboundService;
 using WIDESEA_Model.Models;
@@ -17,6 +15,5 @@
         public InboundOrderDetailController(IInboundOrderDetailService service) : base(service)
         {
         }
-        
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetail_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetail_HtyController.cs
index bdcac48..91543fd 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetail_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderDetail_HtyController.cs
@@ -1,9 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Inbound;
 using WIDESEA_IInboundService;
 using WIDESEA_Model.Models;
 
@@ -20,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrder_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrder_HtyController.cs
index efb312c..d4dcf4c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrder_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrder_HtyController.cs
@@ -1,9 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Inbound;
 using WIDESEA_IInboundService;
 using WIDESEA_Model.Models;
 
@@ -20,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs
index e7f78ea..a81d538 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs
@@ -1,4 +1,3 @@
-using Autofac.Core;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs
index 7eba6eb..3284d32 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs
@@ -1,7 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
@@ -18,6 +15,5 @@
         public OutStockLockInfoController(IOutStockLockInfoService service) : base(service)
         {
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
index cfd6d31..2e19c93 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
@@ -1,12 +1,5 @@
-锘縰sing Autofac.Core;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_Core.CodeConfigEnum;
-using WIDESEA_DTO.Inbound;
-using WIDESEA_DTO.Outbound;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 
@@ -21,8 +14,6 @@
     {
         public OutboundOrderController(IOutboundOrderService service) : base(service)
         {
-
         }
-
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs
index 1414153..7e082d9 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs
@@ -1,9 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Stock;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 
@@ -19,6 +15,5 @@
         public OutboundOrderDetailController(IOutboundOrderDetailService service) : base(service)
         {
         }
-        
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetail_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetail_HtyController.cs
index 9efe889..dfe9a1f 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetail_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetail_HtyController.cs
@@ -1,10 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Inbound;
-using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 
@@ -21,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrder_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrder_HtyController.cs
index 7d40d61..9f078e5 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrder_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrder_HtyController.cs
@@ -1,10 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Inbound;
-using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
 
@@ -21,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
index 59c277f..a62ca8c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
@@ -1,15 +1,10 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
-using System.IO;
 using WIDESEA_Core;
-using WIDESEA_Core.BaseController;
 using WIDESEA_Core.Helper;
-using WIDESEA_DTO.Inbound;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
 using WIDESEA_ITaskInfoService;
-using WIDESEA_Model.Models;
 
 namespace WIDESEA_WMSServer.Controllers
 {
@@ -134,4 +129,4 @@
             }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/LocationStatusChangeRecordController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/LocationStatusChangeRecordController.cs
index 88febce..796c662 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/LocationStatusChangeRecordController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/LocationStatusChangeRecordController.cs
@@ -1,28 +1,28 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
-using WIDESEA_Core.BaseController;
-using WIDESEA_IRecordService;
-using WIDESEA_Model.Models;
-
-namespace WIDESEA_WMSServer.Controllers.Record
-{
-    /// <summary>
-    /// 璐т綅鐘舵�佸彉鍔ㄨ褰�
-    /// </summary>
-    [Route("api/LocationStatusChangeRecord")]
-    [ApiController]
-    public class LocationStatusChangeRecordController : ApiBaseController<ILocationStatusChangeRecordService, Dt_LocationStatusChangeRecord>
-    {
-        public LocationStatusChangeRecordController(ILocationStatusChangeRecordService service) : base(service)
-        {
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IRecordService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Record
+{
+    /// <summary>
+    /// 璐т綅鐘舵�佸彉鍔ㄨ褰�
+    /// </summary>
+    [Route("api/LocationStatusChangeRecord")]
+    [ApiController]
+    public class LocationStatusChangeRecordController : ApiBaseController<ILocationStatusChangeRecordService, Dt_LocationStatusChangeRecord>
+    {
+        public LocationStatusChangeRecordController(ILocationStatusChangeRecordService service) : base(service)
+        {
         }
-        /// <summary>
-        /// 鏍规嵁ID鑾峰彇璐т綅鐘舵�佸彉鍔ㄨ褰�
-        /// </summary>
-        /// <param name="id">璐т綅鐘舵�佸彉鍔ㄨ褰旾D</param>
-        /// <returns>璐т綅鐘舵�佸彉鍔ㄨ褰曚俊鎭�</returns>
+
+        /// <summary>
+        /// 鏍规嵁ID鑾峰彇璐т綅鐘舵�佸彉鍔ㄨ褰�
+        /// </summary>
+        /// <param name="id">璐т綅鐘舵�佸彉鍔ㄨ褰旾D</param>
+        /// <returns>璐т綅鐘舵�佸彉鍔ㄨ褰曚俊鎭�</returns>
         [HttpPost("GetLocationState"), AllowAnonymous]
         public WebResponseContent GetLocationState(int id)
         {
@@ -41,6 +41,6 @@
             {
                 return WebResponseContent.Instance.Error($"鑾峰彇璐т綅鐘舵�佸彉鍔ㄨ褰曞け璐�: {ex.Message}");
             }
-        }
-    }
-}
+        }
+    }
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/StockQuantityChangeRecordController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/StockQuantityChangeRecordController.cs
index 2973d77..fa70696 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/StockQuantityChangeRecordController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Record/StockQuantityChangeRecordController.cs
@@ -1,5 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IRecordService;
 using WIDESEA_Model.Models;
@@ -17,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockController.cs
index d6d062c..52d41df 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockController.cs
@@ -1,5 +1,4 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
@@ -25,8 +24,8 @@
         /// </summary>
         /// <param name="stock"></param>
         /// <returns></returns>
-        [HttpGet,HttpPost,Route("GroupPalletAsync"), AllowAnonymous]
-        public async Task<WebResponseContent> GroupPallet([FromBody]StockDTO stock)
+        [HttpGet, HttpPost, Route("GroupPalletAsync"), AllowAnonymous]
+        public async Task<WebResponseContent> GroupPallet([FromBody] StockDTO stock)
         {
             return await Service.GroupPalletAsync(stock);
         }
@@ -36,7 +35,7 @@
         /// </summary>
         /// <param name="stock"></param>
         /// <returns></returns>
-        [HttpGet, HttpPost, Route("ChangePalletAsync"),AllowAnonymous]
+        [HttpGet, HttpPost, Route("ChangePalletAsync"), AllowAnonymous]
         public async Task<WebResponseContent> ChangePalletAsync([FromBody] StockDTO stock)
         {
             return await Service.ChangePalletAsync(stock);
@@ -97,4 +96,4 @@
             return await Service.GetStockDetailCountByPalletCodeAsync(palletCode);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs
index 3c66a24..aeed570 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs
@@ -1,17 +1,14 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
-using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Stock;
-using WIDESEA_DTO.MES;
-using WIDESEA_IStockService;
-using WIDESEA_IBasicService;
-using WIDESEA_ISystemService;
-using WIDESEA_Model.Models;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Common.Constants;
 using WIDESEA_Common.StockEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
 using WIDESEA_Core.Helper;
+using WIDESEA_DTO.MES;
+using WIDESEA_IBasicService;
+using WIDESEA_IStockService;
+using WIDESEA_ISystemService;
+using WIDESEA_Model.Models;
 
 namespace WIDESEA_WMSServer.Controllers.Stock
 {
@@ -267,4 +264,4 @@
             return defaultValue;
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetail_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetail_HtyController.cs
index 59d8b50..2513238 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetail_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetail_HtyController.cs
@@ -1,8 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Stock;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
 
@@ -19,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfo_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfo_HtyController.cs
index e7a7f70..8a29ccf 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfo_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfo_HtyController.cs
@@ -1,8 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Stock;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
 
@@ -19,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockViewController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockViewController.cs
index 69857e1..9ac9702 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockViewController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockViewController.cs
@@ -1,12 +1,8 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Options;
 using WIDESEA_Core;
-using WIDESEA_Core.BaseController;
 using WIDESEA_DTO.Stock;
 using WIDESEA_IStockService;
-using WIDESEA_Model.Models;
 
 namespace WIDESEA_WMSServer.Controllers.Stock
 {
@@ -18,7 +14,8 @@
     public class StockViewController : Controller
     {
         private readonly IStockViewService _stockViewService;
-        public StockViewController(IStockViewService stockViewService) 
+
+        public StockViewController(IStockViewService stockViewService)
         {
             _stockViewService = stockViewService;
         }
@@ -35,4 +32,4 @@
             return _stockViewService.GetDetailPage(pageData);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs
index ac11540..9bc5766 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryController.cs
@@ -1,11 +1,8 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using Newtonsoft.Json;
 using WIDESEA_Core.BaseController;
-using WIDESEA_Core.Helper;
 using WIDESEA_ISystemService;
 using WIDESEA_Model.Models;
-using WIDESEA_DTO.System;
 
 namespace WIDESEA_WMSServer.Controllers
 {
@@ -17,6 +14,7 @@
     public class Sys_DictionaryController : ApiBaseController<ISys_DictionaryService, Sys_Dictionary>
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
+
         public Sys_DictionaryController(ISys_DictionaryService service, IHttpContextAccessor httpContextAccessor) : base(service)
         {
             _httpContextAccessor = httpContextAccessor;
@@ -28,4 +26,4 @@
             return Json(Service.GetVueDictionary(dicNos));
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryListController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryListController.cs
index 26a8597..eebdf8c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryListController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_DictionaryListController.cs
@@ -16,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_LogController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_LogController.cs
index 3cd2f46..fa7c1c5 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_LogController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_LogController.cs
@@ -1,5 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
 using WIDESEA_ISystemService;
 using WIDESEA_Model.Models;
@@ -17,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_MenuController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_MenuController.cs
index d6dcb2f..2e0bab7 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_MenuController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_MenuController.cs
@@ -14,10 +14,12 @@
     public class Sys_MenuController : ApiBaseController<ISys_MenuService, Sys_Menu>
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
+
         public Sys_MenuController(ISys_MenuService menuService, IHttpContextAccessor httpContextAccessor) : base(menuService)
         {
             _httpContextAccessor = httpContextAccessor;
         }
+
         [HttpGet, HttpPost, Route("getTreeMenu")]
         public IActionResult GetTreeMenu()
         {
@@ -48,6 +50,7 @@
                 return Json(WebResponseContent.Instance.Error("浠呴檺瓒呯骇绠$悊鍛樹慨鏀规暟鎹�"));
             }
         }
+
         [HttpPost, Route("delMenu")]
         public WebResponseContent DelMenu(int menuId)
         {
@@ -64,4 +67,4 @@
             return Json(Service.GetTreeMenuPDAStash(ParentId));
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs
index 22fc324..23a6991 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs
@@ -1,10 +1,7 @@
-锘縰sing Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Routing;
-using WIDESEA_DTO.System;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
-using WIDESEA_Core.BaseRepository;
+using WIDESEA_DTO.System;
 using WIDESEA_ISystemService;
 using WIDESEA_Model.Models;
 using WIDESEA_Model.Models.System;
@@ -19,6 +16,7 @@
     public class Sys_RoleController : ApiBaseController<ISys_RoleService, Sys_Role>
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
+
         public Sys_RoleController(ISys_RoleService service, IHttpContextAccessor httpContextAccessor) : base(service)
         {
             _httpContextAccessor = httpContextAccessor;
@@ -63,6 +61,7 @@
         {
             return Json(Service.GetCurrentTreePermissionPDA());
         }
+
         [HttpPost, Route("getUserTreePermissionPDA")]
         public IActionResult GetUserTreePermissionPDA(int roleId)
         {
@@ -81,4 +80,4 @@
             return Json(Service.SavePermissionPDA(userPermissions, roleId));
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_TenantController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_TenantController.cs
index d64cd8d..314b096 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_TenantController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_TenantController.cs
@@ -1,14 +1,8 @@
-锘�
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
+锘縰sing Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
-using WIDESEA_Core.Const;
-using WIDESEA_Core.Helper;
-using WIDESEA_Core.HttpContextUser;
 using WIDESEA_ISystemService;
-using WIDESEA_Model;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_WMSServer.Controllers
@@ -33,4 +27,4 @@
             return Service.InitTenantInfo(tenantName, tenantType);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_UserController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_UserController.cs
index 63e52b8..cee5a84 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_UserController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_UserController.cs
@@ -1,17 +1,12 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Caching.Memory;
 using Newtonsoft.Json;
-using StackExchange.Profiling;
 using WIDESEA_Core;
 using WIDESEA_Core.Authorization;
 using WIDESEA_Core.BaseController;
 using WIDESEA_Core.Caches;
-using WIDESEA_Core.Const;
 using WIDESEA_Core.Extensions;
 using WIDESEA_Core.Helper;
-using WIDESEA_Core.HttpContextUser;
 using WIDESEA_Core.Utilities;
 using WIDESEA_ISystemService;
 using WIDESEA_Model;
@@ -114,11 +109,13 @@
 
             return Json(data);
         }
+
         [HttpGet, Route("SerializeJwt"), AllowAnonymous]
         public WebResponseContent SerializeJwt(string code)
         {
             return WebResponseContent.Instance.OK(data: JwtHelper.SerializeJwt(code));
         }
+
         /// <summary>
         /// 鏇挎崲Token锛堝埛鏂颁护鐗岋級
         /// </summary>
@@ -150,18 +147,18 @@
             {
                 return responseContent.Error(ex.Message);
             }
-
         }
+
         /// <summary>
         /// 鏇存柊瀵嗙爜
         /// </summary>
         /// <param name="password">瀵嗙爜</param>
         /// <param name="userName">鐢ㄦ埛鍚�</param>
         /// <returns></returns>
-        [HttpPost,Route("ModifyUserPwd")]
+        [HttpPost, Route("ModifyUserPwd")]
         public WebResponseContent ModifyUserPwd(string password, string userName)
         {
-            return Service.ModifyUserPwd(password,userName);
+            return Service.ModifyUserPwd(password, userName);
         }
     }
 
@@ -170,4 +167,4 @@
         public string name { get; set; }
         public string pwd { get; set; }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
index 742489e..49c4f4a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -1,8 +1,5 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
-using System.DirectoryServices.Protocols;
-using WIDESEA_Common.CommonEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
 using WIDESEA_DTO.GradingMachine;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs
index 16f12a7..b28c923 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs
@@ -1,9 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using WIDESEA_Core;
+锘縰sing Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO.Stock;
 using WIDESEA_ITaskInfoService;
 using WIDESEA_Model.Models;
 
@@ -20,4 +16,4 @@
         {
         }
     }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/launchSettings.json b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/launchSettings.json
index 16b63a2..89149e3 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/launchSettings.json
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/launchSettings.json
@@ -28,4 +28,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/site.css b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/site.css
index e679a8e..e12406d 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/site.css
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/site.css
@@ -2,70 +2,73 @@
 for details on configuring this project to bundle and minify static web assets. */
 
 a.navbar-brand {
-  white-space: normal;
-  text-align: center;
-  word-break: break-all;
+    white-space: normal;
+    text-align: center;
+    word-break: break-all;
 }
 
 /* Provide sufficient contrast against white background */
 a {
-  color: #0366d6;
+    color: #0366d6;
 }
 
 .btn-primary {
-  color: #fff;
-  background-color: #1b6ec2;
-  border-color: #1861ac;
+    color: #fff;
+    background-color: #1b6ec2;
+    border-color: #1861ac;
 }
 
 .nav-pills .nav-link.active, .nav-pills .show > .nav-link {
-  color: #fff;
-  background-color: #1b6ec2;
-  border-color: #1861ac;
+    color: #fff;
+    background-color: #1b6ec2;
+    border-color: #1861ac;
 }
 
 /* Sticky footer styles
 -------------------------------------------------- */
 html {
-  font-size: 14px;
+    font-size: 14px;
 }
+
 @media (min-width: 768px) {
-  html {
-    font-size: 16px;
-  }
+    html {
+        font-size: 16px;
+    }
 }
 
 .border-top {
-  border-top: 1px solid #e5e5e5;
+    border-top: 1px solid #e5e5e5;
 }
+
 .border-bottom {
-  border-bottom: 1px solid #e5e5e5;
+    border-bottom: 1px solid #e5e5e5;
 }
 
 .box-shadow {
-  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
+    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
 }
 
 button.accept-policy {
-  font-size: 1rem;
-  line-height: inherit;
+    font-size: 1rem;
+    line-height: inherit;
 }
 
 /* Sticky footer styles
 -------------------------------------------------- */
 html {
-  position: relative;
-  min-height: 100%;
+    position: relative;
+    min-height: 100%;
 }
 
 body {
-  /* Margin bottom by footer height */
-  margin-bottom: 60px;
+    /* Margin bottom by footer height */
+    margin-bottom: 60px;
 }
+
 .footer {
-  position: absolute;
-  bottom: 0;
-  width: 100%;
-  white-space: nowrap;
-  line-height: 60px; /* Vertically center the text there */
-}
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    white-space: nowrap;
+    line-height: 60px; /* Vertically center the text there */
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/style.css b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/style.css
index f8fe18d..9c2d099 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/style.css
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/style.css
@@ -1,132 +1,156 @@
 @charset "utf-8";
+
 ::selection {
-  background: #2D2F36;
+    background: #2D2F36;
 }
+
 ::-webkit-selection {
-  background: #2D2F36;
+    background: #2D2F36;
 }
+
 ::-moz-selection {
-  background: #2D2F36;
+    background: #2D2F36;
 }
+
 body {
-  background: white;
-  font-family: 'Inter UI', sans-serif;
-  margin: 0;
-  padding: 20px;
+    background: white;
+    font-family: 'Inter UI', sans-serif;
+    margin: 0;
+    padding: 20px;
 }
+
 .page {
-  background: #e2e2e5;
-  display: flex;
-  flex-direction: column;
-  height: calc(100% - 40px);
-  position: absolute;
-  place-content: center;
-  width: calc(100% - 40px);
-}
-@media (max-width: 767px) {
-  .page {
-    height: auto;
-    margin-bottom: 20px;
-    padding-bottom: 20px;
-  }
-}
-.container {
-  display: flex;
-  height: 320px;
-  margin: 0 auto;
-  width: 640px;
-}
-@media (max-width: 767px) {
-  .container {
+    background: #e2e2e5;
+    display: flex;
     flex-direction: column;
-    height: 630px;
-    width: 320px;
-  }
-}
-.left {
-  background: white;
-  height: calc(100% - 40px);
-  top: 20px;
-  position: relative;
-  width: 50%;
-}
-@media (max-width: 767px) {
-  .left {
-    height: 100%;
-    left: 20px;
+    height: calc(100% - 40px);
+    position: absolute;
+    place-content: center;
     width: calc(100% - 40px);
-    max-height: 270px;
-  }
 }
-.login {
-  font-size: 33px;
-  font-weight: 900;
-  margin: 50px 40px 40px;
-}
-.eula {
-  color: #999;
-  font-size: 14px;
-  line-height: 1.5;
-  margin: 40px;
-}
-.right {
-  background: #474A59;
-  box-shadow: 0px 0px 40px 16px rgba(0,0,0,0.22);
-  color: #F1F1F2;
-  position: relative;
-  width: 50%;
-}
+
 @media (max-width: 767px) {
-  .right {
-    flex-shrink: 0;
-    height: 100%;
-    width: 100%;
-    max-height: 350px;
-  }
+    .page {
+        height: auto;
+        margin-bottom: 20px;
+        padding-bottom: 20px;
+    }
 }
+
+.container {
+    display: flex;
+    height: 320px;
+    margin: 0 auto;
+    width: 640px;
+}
+
+@media (max-width: 767px) {
+    .container {
+        flex-direction: column;
+        height: 630px;
+        width: 320px;
+    }
+}
+
+.left {
+    background: white;
+    height: calc(100% - 40px);
+    top: 20px;
+    position: relative;
+    width: 50%;
+}
+
+@media (max-width: 767px) {
+    .left {
+        height: 100%;
+        left: 20px;
+        width: calc(100% - 40px);
+        max-height: 270px;
+    }
+}
+
+.login {
+    font-size: 33px;
+    font-weight: 900;
+    margin: 50px 40px 40px;
+}
+
+.eula {
+    color: #999;
+    font-size: 14px;
+    line-height: 1.5;
+    margin: 40px;
+}
+
+.right {
+    background: #474A59;
+    box-shadow: 0px 0px 40px 16px rgba(0,0,0,0.22);
+    color: #F1F1F2;
+    position: relative;
+    width: 50%;
+}
+
+@media (max-width: 767px) {
+    .right {
+        flex-shrink: 0;
+        height: 100%;
+        width: 100%;
+        max-height: 350px;
+    }
+}
+
 svg {
-  position: absolute;
-  width: 320px;
+    position: absolute;
+    width: 320px;
 }
+
 path {
-  fill: none;
-  stroke: url(#linearGradient);;
-  stroke-width: 4;
-  stroke-dasharray: 240 1386;
+    fill: none;
+    stroke: url(#linearGradient);
+    ;
+    stroke-width: 4;
+    stroke-dasharray: 240 1386;
 }
+
 .form {
-  margin: 40px;
-  position: absolute;
+    margin: 40px;
+    position: absolute;
 }
+
 label {
-  color:  #c2c2c5;
-  display: block;
-  font-size: 14px;
-  height: 16px;
-  margin-top: 20px;
-  margin-bottom: 5px;
+    color: #c2c2c5;
+    display: block;
+    font-size: 14px;
+    height: 16px;
+    margin-top: 20px;
+    margin-bottom: 5px;
 }
+
 input {
-  background: transparent;
-  border: 0;
-  color: #f2f2f2;
-  font-size: 20px;
-  height: 30px;
-  line-height: 30px;
-  outline: none !important;
-  width: 100%;
+    background: transparent;
+    border: 0;
+    color: #f2f2f2;
+    font-size: 20px;
+    height: 30px;
+    line-height: 30px;
+    outline: none !important;
+    width: 100%;
 }
-input::-moz-focus-inner { 
-  border: 0; 
-}
+
+    input::-moz-focus-inner {
+        border: 0;
+    }
+
 #submit {
-  color: #707075;
-  margin-top: 40px;
-  transition: color 300ms;
+    color: #707075;
+    margin-top: 40px;
+    transition: color 300ms;
 }
-#submit:focus {
-  color: #f2f2f2;
-}
-#submit:active {
-  color: #d0d0d2;
-}
\ No newline at end of file
+
+    #submit:focus {
+        color: #f2f2f2;
+    }
+
+    #submit:active {
+        color: #d0d0d2;
+    }
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/swaggerdoc.css b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/swaggerdoc.css
index 1a05ca2..bfc7475 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/swaggerdoc.css
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/css/swaggerdoc.css
@@ -55,6 +55,7 @@
     -webkit-transform: translateY(0);
     transform: translateY(0);
 }
+
 .drop li:first-child:before {
     content: " ";
     font-size: 0;
@@ -86,6 +87,7 @@
     -webkit-transition: all .2s ease-in;
     transition: all .2s ease-in;
 }
+
 .drop li:first-child a {
     border-top-left-radius: 5px;
     border-top-right-radius: 5px;
@@ -97,6 +99,7 @@
     border-bottom-right-radius: 5px;
     border-bottom: none;
 }
+
 .drop li:hover:before {
     background-color: #85ea2d;
 }
@@ -104,6 +107,4 @@
 .drop li:hover a {
     background-color: #85ea2d;
     color: #fff;
-}
-
-
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/site.js b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/site.js
index ac49c18..4b534f1 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/site.js
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/site.js
@@ -1,4 +1,4 @@
 锘�// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
 // for details on configuring this project to bundle and minify static web assets.
 
-// Write your JavaScript code.
+// Write your JavaScript code.
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/swaggerdoc.js b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/swaggerdoc.js
index bbba38b..68d7c11 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/swaggerdoc.js
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/js/swaggerdoc.js
@@ -64,7 +64,6 @@
     }, 788);
 }
 
-
 /**
  * 寤惰繜鍑芥暟
  * @param {any} delay
@@ -111,7 +110,7 @@
             var blob = this.response;
             var reader = new FileReader();
             reader.readAsDataURL(blob); // 杞崲涓篵ase64锛屽彲浠ョ洿鎺ユ斁鍏琛ㄦ儏href
-            reader.onload = function(e) {
+            reader.onload = function (e) {
                 // 杞崲瀹屾垚锛屽垱寤轰竴涓猘鏍囩鐢ㄤ簬涓嬭浇
                 var a = document.createElement('a');
                 a.download = 'WIDESEAWCS API鏂囨。 ' + version + exten;
@@ -121,7 +120,7 @@
                 $(a).remove();
             }
         } else {
-            alert(this.status+this.statusText);
+            alert(this.status + this.statusText);
         }
         //鍏抽棴load
         $.busyLoadFull('hide',
@@ -136,4 +135,4 @@
         text: "LOADING ...",
         animation: "fade"
     });
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/swg-login.html b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/swg-login.html
index 16b0b3c..abef249 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/swg-login.html
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/wwwroot/swg-login.html
@@ -135,6 +135,5 @@
             });
         }
     </script>
-
 </body>
 </html>
\ No newline at end of file
diff --git "a/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/instance-1001/config.json" "b/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/instance-1001/config.json"
index 056b3b9..798f25c 100644
--- "a/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/instance-1001/config.json"
+++ "b/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/instance-1001/config.json"
@@ -2,7 +2,7 @@
   "id": "1001",
   "name": "A\u533A_\u4E00\u6CE8\u8F93\u9001\u7EBF",
   "plcType": "S71500",
-  "port": 102,
+  "port": 103,
   "activationKey": "",
   "autoStart": false,
   "protocolTemplateId": "protocol-1001",
diff --git "a/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/protocol-templates.json" "b/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/protocol-templates.json"
index 386cf64..79edb5d 100644
--- "a/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/protocol-templates.json"
+++ "b/Code/\346\265\213\350\257\225\345\267\245\345\205\267/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Data/protocol-templates.json"
@@ -4012,6 +4012,168 @@
         "dataType": 0,
         "length": 1,
         "direction": 2
+      },
+      {
+        "fieldKey": "2201_TaskNo",
+        "dbNumber": 50,
+        "offset": 4000,
+        "bit": 1,
+        "dataType": 1,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Source",
+        "dbNumber": 50,
+        "offset": 4002,
+        "bit": 1,
+        "dataType": 1,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Target",
+        "dbNumber": 50,
+        "offset": 4004,
+        "bit": 1,
+        "dataType": 1,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_BoxType",
+        "dbNumber": 50,
+        "offset": 4006,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_CV_State",
+        "dbNumber": 50,
+        "offset": 4007,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_CV_ERRCode",
+        "dbNumber": 50,
+        "offset": 4008,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_WCS_STB",
+        "dbNumber": 50,
+        "offset": 4009,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_WCS_ACK",
+        "dbNumber": 50,
+        "offset": 4010,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_PLC_STB",
+        "dbNumber": 50,
+        "offset": 4011,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_PLC_ACK",
+        "dbNumber": 50,
+        "offset": 4012,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_PLC_REQ",
+        "dbNumber": 50,
+        "offset": 4013,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_WCS_ERRCode",
+        "dbNumber": 50,
+        "offset": 4014,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_WCS_Special",
+        "dbNumber": 50,
+        "offset": 4015,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Equ_Auto",
+        "dbNumber": 50,
+        "offset": 4016,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Last_pallet",
+        "dbNumber": 50,
+        "offset": 4017,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Barcode",
+        "dbNumber": 50,
+        "offset": 4018,
+        "bit": 1,
+        "dataType": 0,
+        "length": 20,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Spare_1",
+        "dbNumber": 50,
+        "offset": 4038,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
+      },
+      {
+        "fieldKey": "2201_Spare_2",
+        "dbNumber": 50,
+        "offset": 4039,
+        "bit": 1,
+        "dataType": 0,
+        "length": 1,
+        "direction": 2
       }
     ]
   }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250_0420.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250_0420.xlsx"
new file mode 100644
index 0000000..e4caca3
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250_0420.xlsx"
Binary files differ

--
Gitblit v1.9.3