From 4f3b0a6727ecfa555892ebea64bd76e5a07cd6fb Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期二, 17 三月 2026 10:01:38 +0800
Subject: [PATCH] feat: 新增WMS异常上报自动恢复异常按钮

---
 项目代码/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index bc2a84c..f6bcbfc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using System.IO;
 using System.Text;
 using WIDESEA_External.Model;
 using WIDESEAWCS_Common.TaskEnum;
@@ -88,22 +89,31 @@
                         //    WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode, stationManger.PickStationCode);
                         //    if (!responseContent.Status) throw new Exception(responseContent.Message);
                         //}
+                        WriteLog.Write_Log("涓�鏈熷鍣ㄦ祦鍔ㄥ叆搴撴帴鍙�", "浠诲姟淇℃伅", $"杩斿洖杈撻�佺嚎{stationManger.PickStationCode}", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{containerFlowDTO.ToJson()}");
                         commonConveyorLine.Communicator.Write("22", (containerFlowDTO.Direction == "100" ? new byte[] { 1, 0 } : new byte[] { 2, 0 }));
                     }
                     else
                     {
-                        Thread.Sleep(500);
+         
                         CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
                         string PickBarCode = commonConveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, stationManger.StationCode).Trim();
 
                         if (containerFlowDTO.ContainerCode != PickBarCode) throw new Exception($"浼犲叆鏂欑鐮亄containerFlowDTO.ContainerCode}锛岃緭閫佹枡绠辩爜{PickBarCode}鏁版嵁閿欒");
-                        int W_PickToHode = commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.W_PickToHode, stationManger.StationDeviceCode);
-                        if (containerFlowDTO.Direction == "100" && W_PickToHode == 300)
+                        
+                        if (containerFlowDTO.Direction == "100")
                         {
-                            WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode, stationManger.PickStationCode);
-                            if (!responseContent.Status) throw new Exception(responseContent.Message);
+                            short W_PickToHode = commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.W_PickToHode, stationManger.StationCode);
+                            if (W_PickToHode == 300)
+                            {
+                                WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode, stationManger.PickStationCode);
+                                if (!responseContent.Status) throw new Exception(responseContent.Message);
+                            }
+                            else
+                            {
+                                throw new Exception($"浼犲叆鏂欑鐮亄containerFlowDTO.ContainerCode}锛岃緭閫佹枡鐘舵�侊細{W_PickToHode}锛屼笉婊¤冻鍏ュ簱鏉′欢");
+                            }
                         }
-                        WriteLog.Write_Log($"瀹瑰櫒娴佸姩{stationManger.StationCode}", $"杈撻�佺嚎淇℃伅", "寮�濮嬪叆搴�", $"鐘舵�亄containerFlowDTO.Direction}锛屾枡绠辩爜{containerFlowDTO.ContainerCode}");
+                        WriteLog.Write_Log("浜屾湡瀹瑰櫒娴佸姩鍏ュ簱鎺ュ彛", "浠诲姟淇℃伅", $"杩斿洖杈撻�佺嚎{stationManger.PickStationCode}", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{containerFlowDTO.ToJson()}");
                         commonConveyorLine.SetValue(ConveyorLineDBName.W_PickToHode, (short)containerFlowDTO.Direction.ObjToInt(), stationManger.StationCode);
                     }
                     content.OK();
@@ -196,5 +206,15 @@
         {
             return Service.ResetAllExceptionTask(taskNum);
         }
+
+        /// <summary>
+        /// WMS寮傚父鎭㈠
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("WmsRecovery"), AllowAnonymous]
+        public WebResponseContent WmsRecovery()
+        {
+            return Service.WmsRecovery();
+        }
     }
 }

--
Gitblit v1.9.3