From ff006f77f6267fc0d2c4ee810d897a85165f5b8f Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期四, 30 四月 2026 22:08:29 +0800
Subject: [PATCH] Merge branch 'xiaoyang' into dev

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs |   91 ++++++++++++++++++++++++++++++---------------
 1 files changed, 61 insertions(+), 30 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
index d2468b3..cb689b9 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
@@ -1,12 +1,14 @@
-锘縰sing System.Diagnostics.CodeAnalysis;
-using Serilog;
+锘縰sing Serilog;
+using System.Diagnostics.CodeAnalysis;
+using WIDESEA_Core;
 using WIDESEAWCS_Common.HttpEnum;
 using WIDESEAWCS_Common.TaskEnum;
-using WIDESEA_Core;
 using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
@@ -21,7 +23,8 @@
     /// </summary>
     public class InboundTaskFlowService : IInboundTaskFlowService
     {
-        private readonly IRouterService _routerService;
+        private readonly IRouterService _routerService;
+        private readonly ITaskRepository _taskRepository;
         private readonly HttpClientHelper _httpClientHelper;
         private readonly ILogger _logger;
 
@@ -30,9 +33,10 @@
         /// </summary>
         /// <param name="routerService">璺敱鏈嶅姟銆�</param>
         /// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
-        public InboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper, ILogger logger)
+        public InboundTaskFlowService(IRouterService routerService, ITaskRepository taskRepository, HttpClientHelper httpClientHelper, ILogger logger)
         {
             _routerService = routerService;
+            _taskRepository = taskRepository;
             _httpClientHelper = httpClientHelper;
             _logger = logger;
         }
@@ -144,31 +148,58 @@
             task.TargetAddress = nextAddress;
 
             return WebResponseContent.Instance.OK();
-        }
-
-        /// <summary>
-        /// 灏嗕换鍔$姸鎬佸悓姝ュ埌WMS銆�
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋銆�</param>
-        /// <returns>鍚屾缁撴灉銆�</returns>
-        private WebResponseContent UpdateWMSTaskStatus(Dt_Task task)
-        {
-            string configKey = nameof(ConfigKey.UpdateTaskByStatus);
-            string requestParam = new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson();
-            DateTime startTime = DateTime.Now;
-
-            var result = _httpClientHelper.Post<WebResponseContent>(
-                configKey,
-                requestParam);
-
-            if (!result.IsSuccess || !result.Data.Status)
-            {
-                QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
-                return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
-            }
-
-            QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
-            return WebResponseContent.Instance.OK();
+        }
+
+        /// <summary>
+        /// 灏嗕换鍔$姸鎬佸悓姝ュ埌WMS銆�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋銆�</param>
+        /// <returns>鍚屾缁撴灉銆�</returns>
+        private WebResponseContent UpdateWMSTaskStatus(Dt_Task task)
+        {
+            DateTime startTime = DateTime.Now;
+
+            // 澶勭悊鍏ュ簱瀹屾垚鐘舵�佺殑鐗规畩鍚屾
+            if (task.TaskStatus == (int)TaskInStatusEnum.InFinish)
+            {
+                string InboundFinishKey = nameof(ConfigKey.InboundFinishTaskAsync);
+                var requestDto = new CreateTaskDto()
+                {
+                    PalletCode = task.PalletCode,
+                    SourceAddress = task.SourceAddress,
+                    TargetAddress = task.TargetAddress,
+                    Roadway = task.Roadway,
+                    TaskType = task.TaskType,
+                }.ToJson();
+
+                var resultFinish = _httpClientHelper.Post<WebResponseContent>(InboundFinishKey, requestDto);
+                if (!resultFinish.IsSuccess || !resultFinish.Data.Status)
+                {
+                    QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵resultFinish}銆�,璇锋眰鍙傛暟:銆恵requestDto}銆�,閿欒淇℃伅:銆恵resultFinish.Data?.Message}銆�", "InboundTaskFlowService");
+                    return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵resultFinish.Data?.Message}銆�");
+                }
+
+                QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵InboundFinishKey}銆�,鍝嶅簲鏁版嵁:銆恵resultFinish.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
+                _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐瀹屾垚);
+
+                return WebResponseContent.Instance.OK();
+            }
+
+            string configKey = nameof(ConfigKey.UpdateTaskByStatus);
+            string requestParam = new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson();
+
+            var result = _httpClientHelper.Post<WebResponseContent>(
+                configKey,
+                requestParam);
+
+            if (!result.IsSuccess || !result.Data.Status)
+            {
+                QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
+                return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+            }
+
+            QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
+            return WebResponseContent.Instance.OK();
         }
     }
 }

--
Gitblit v1.9.3