From b2b779905bc8a71b52d0e14f91652309d9279878 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 03 二月 2026 14:37:38 +0800
Subject: [PATCH] 一堆逻辑修改

---
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs |   65 +++++++++++++++++++++++++-------
 1 files changed, 51 insertions(+), 14 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 3ca6b74..ccfabbc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -102,6 +102,7 @@
                 }
             }
         }
+        private readonly static object lockerCompleted = new object();
         /// <summary>
         /// 浠诲姟瀹屾垚
         /// </summary>
@@ -109,22 +110,25 @@
         {
             try
             {
-                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
-                if (task != null)
+                lock (lockerCompleted)
                 {
-                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
-                    BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                    Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                    if (task != null)
+                    {
+                        task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                        BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                    }
+                    string? url = apiInfos.FirstOrDefault(x => x.ApiCode == APIEnum.FeedBackWMSTaskCompleted.ToString())?.ApiAddress;
+                    if (string.IsNullOrEmpty(url))
+                    {
+                        _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                        UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                        return WebResponseContent.Instance.Error($"{taskNum},鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                    }
+                    string responseStr = HttpHelper.Get(url + "?taskNum=" + taskNum);
+                    WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error($"{taskNum},鏈帴鏀跺埌浠诲姟瀹屾垚杩斿洖鍊�");
+                    return content;
                 }
-                string? url = apiInfos.FirstOrDefault(x => x.ApiCode == APIEnum.FeedBackWMSTaskCompleted.ToString())?.ApiAddress;
-                if (string.IsNullOrEmpty(url))
-                {
-                    _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
-                    UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
-                    return WebResponseContent.Instance.Error($"{taskNum},鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
-                }
-                string responseStr = HttpHelper.Get(url + "?taskNum=" + taskNum);
-                WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error($"{taskNum},鏈帴鏀跺埌浠诲姟瀹屾垚杩斿洖鍊�");
-                return content;
             }
             catch (Exception ex)
             {
@@ -151,6 +155,11 @@
                     else if(task.TaskState == (int)TaskStatusEnum.AGV_Executing)
                     {
                         task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+                       
+                    }else if(task.TaskState == (int)TaskStatusEnum.AGV_Exception)
+                    {
+                        task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+                        task.Remark = "";
                     }
                     else
                     {
@@ -609,6 +618,34 @@
             return "";
         }
         /// <summary>
+        /// 鍚慦MS鎴愬搧鍏ュ簱鎵爜璇锋眰鏇存柊鏉$爜
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public WebResponseContent RequestInBoundPalletCode(int taskNum,string barCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string address = AppSettings.Get("WMSApiAddress");
+                if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃");
+                string responseStr = HttpHelper.Get($"{address}/api/Task/InBoundPalletCode?taskNum={taskNum}&barCode={barCode}");
+                WebResponseContent responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? throw new Exception("鏈敹鍒拌繑鍥炲弬鏁�");
+                if (!responseContent.Status)
+                {
+                    return responseContent;
+                }
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+            
+        }
+        /// <summary>
         /// 鍚慦MS鐢宠鍑哄簱AGV缁堢偣
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>

--
Gitblit v1.9.3