From 71be45c250688b0e76a59f93cd80e85ba37e3de7 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 01 五月 2026 23:19:44 +0800
Subject: [PATCH] Merge branch 'dev'

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

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
index cb689b9..5a3c6f4 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
@@ -1,153 +1,153 @@
-锘縰sing Serilog;
-using System.Diagnostics.CodeAnalysis;
-using WIDESEA_Core;
-using WIDESEAWCS_Common.HttpEnum;
-using WIDESEAWCS_Common.TaskEnum;
-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;
-using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_Tasks;
-
-namespace WIDESEAWCS_TaskInfoService.Flows
-{
-    /// <summary>
-    /// 鍏ュ簱浠诲姟娴佺▼鏈嶅姟銆�
-    /// 璐熻矗鍏ュ簱浠诲姟鎺ユ敹鍒濆鍖栥�佺姸鎬佹帹杩涘強鍫嗗灈鏈哄畬鎴愬鐞嗐��
-    /// </summary>
-    public class InboundTaskFlowService : IInboundTaskFlowService
-    {
+锘縰sing Serilog;
+using System.Diagnostics.CodeAnalysis;
+using WIDESEA_Core;
+using WIDESEAWCS_Common.HttpEnum;
+using WIDESEAWCS_Common.TaskEnum;
+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;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks;
+
+namespace WIDESEAWCS_TaskInfoService.Flows
+{
+    /// <summary>
+    /// 鍏ュ簱浠诲姟娴佺▼鏈嶅姟銆�
+    /// 璐熻矗鍏ュ簱浠诲姟鎺ユ敹鍒濆鍖栥�佺姸鎬佹帹杩涘強鍫嗗灈鏈哄畬鎴愬鐞嗐��
+    /// </summary>
+    public class InboundTaskFlowService : IInboundTaskFlowService
+    {
         private readonly IRouterService _routerService;
-        private readonly ITaskRepository _taskRepository;
-        private readonly HttpClientHelper _httpClientHelper;
-        private readonly ILogger _logger;
-
-        /// <summary>
-        /// 鍒濆鍖栧叆搴撲换鍔℃祦绋嬫湇鍔°��
-        /// </summary>
-        /// <param name="routerService">璺敱鏈嶅姟銆�</param>
-        /// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
-        public InboundTaskFlowService(IRouterService routerService, ITaskRepository taskRepository, HttpClientHelper httpClientHelper, ILogger logger)
-        {
-            _routerService = routerService;
-            _taskRepository = taskRepository;
-            _httpClientHelper = httpClientHelper;
-            _logger = logger;
-        }
-
-        /// <summary>
-        /// 鎺ユ敹WMS浠诲姟鏃跺垵濮嬪寲鍏ュ簱浠诲姟銆�
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋銆�</param>
-        /// <param name="source">WMS浠诲姟鍘熷鏁版嵁銆�</param>
-        public WebResponseContent InitializeOnReceive([NotNull] Dt_Task task, [NotNull] WMSTaskDTO source)
-        {
-            WebResponseContent content = new WebResponseContent();
-            Dt_Router routers = _routerService.QueryNextRoute(source.SourceAddress);
-            if (routers.IsNullOrEmpty())
-            {
-                return content.Error("鏈壘鍒拌矾鐢变俊鎭�");
-            }
-
-            task.TaskStatus = (int)TaskInStatusEnum.InNew;
-            task.CurrentAddress = source.SourceAddress;
-            task.NextAddress = routers.ChildPosi;
-
-            return content.OK();
-        }
-
-        /// <summary>
-        /// 鎺ㄨ繘鍏ュ簱浠诲姟鐘舵�侊紝骞跺湪鍏抽敭鐘舵�佽皟鐢╓MS鎺ュ彛銆�
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋銆�</param>
-        /// <returns>鎺ㄨ繘缁撴灉銆�</returns>
-        public WebResponseContent MoveToNextStatus([NotNull] Dt_Task task)
-        {
-            if (task.TaskStatus >= (int)TaskInStatusEnum.InFinish)
-                return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�");
-
-            task.TaskStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>();
-            if (task.TaskStatus <= 0)
-                return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�");
-
-            if (task.TaskStatus == (int)TaskInStatusEnum.Line_InFinish)
-            {
-                return GetWMSInboundLocation(task);
-            }
-
-            return UpdateWMSTaskStatus(task);
-        }
-
-        /// <summary>
-        /// 澶勭悊鍫嗗灈鏈哄叆搴撳畬鎴愬姩浣溿��
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋銆�</param>
-        /// <returns>澶勭悊缁撴灉銆�</returns>
-        public WebResponseContent CompleteStackerTask([NotNull] Dt_Task task)
-        {
-            WebResponseContent content = new WebResponseContent();
-            if (task.TaskStatus != (int)TaskInStatusEnum.SC_InExecuting)
-            {
-                return WebResponseContent.Instance.OK();
-            }
-
-            int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>();
-            task.TaskStatus = nextStatus;
-            task.ModifyDate = DateTime.Now;
-            task.Modifier = "System";
-
-            var result = _httpClientHelper.Post<WebResponseContent>(
-                nameof(ConfigKey.InboundFinishTaskAsync),
-                (new CreateTaskDto { PalletCode = task.PalletCode }).ToJson());
-
-            if (!result.IsSuccess || !result.Data.Status)
-            {
-                QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,璇锋眰鍙傛暟:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
-                return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愬け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
-            }
-
-            QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:0ms", "InboundTaskFlowService");
-            return content.OK($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
-        }
-
-        /// <summary>
-        /// 浠嶹MS鑾峰彇鍏ュ簱鐩爣鍦板潃骞跺洖鍐欎换鍔°��
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋銆�</param>
-        /// <returns>璋冪敤缁撴灉銆�</returns>
-        private WebResponseContent GetWMSInboundLocation(Dt_Task task)
-        {
-            string configKey = nameof(ConfigKey.GetTasksLocation);
-            string requestParam = new CreateTaskDto { PalletCode = task.PalletCode }.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");
-
-            string? nextAddress = result.Data.Data?.ToString();
-            if (string.IsNullOrEmpty(nextAddress))
-                return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鑾峰彇浠诲姟鐩爣鍦板潃澶辫触,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆愭湭鑾峰彇鍒版湁鏁堢殑鐩爣鍦板潃銆�");
-
-            task.CurrentAddress = task.NextAddress;
-            task.NextAddress = nextAddress;
-            task.TargetAddress = nextAddress;
-
-            return WebResponseContent.Instance.OK();
+        private readonly ITaskRepository _taskRepository;
+        private readonly HttpClientHelper _httpClientHelper;
+        private readonly ILogger _logger;
+
+        /// <summary>
+        /// 鍒濆鍖栧叆搴撲换鍔℃祦绋嬫湇鍔°��
+        /// </summary>
+        /// <param name="routerService">璺敱鏈嶅姟銆�</param>
+        /// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
+        public InboundTaskFlowService(IRouterService routerService, ITaskRepository taskRepository, HttpClientHelper httpClientHelper, ILogger logger)
+        {
+            _routerService = routerService;
+            _taskRepository = taskRepository;
+            _httpClientHelper = httpClientHelper;
+            _logger = logger;
+        }
+
+        /// <summary>
+        /// 鎺ユ敹WMS浠诲姟鏃跺垵濮嬪寲鍏ュ簱浠诲姟銆�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋銆�</param>
+        /// <param name="source">WMS浠诲姟鍘熷鏁版嵁銆�</param>
+        public WebResponseContent InitializeOnReceive([NotNull] Dt_Task task, [NotNull] WMSTaskDTO source)
+        {
+            WebResponseContent content = new WebResponseContent();
+            Dt_Router routers = _routerService.QueryNextRoute(source.SourceAddress);
+            if (routers.IsNullOrEmpty())
+            {
+                return content.Error("鏈壘鍒拌矾鐢变俊鎭�");
+            }
+
+            task.TaskStatus = (int)TaskInStatusEnum.InNew;
+            task.CurrentAddress = source.SourceAddress;
+            task.NextAddress = routers.ChildPosi;
+
+            return content.OK();
+        }
+
+        /// <summary>
+        /// 鎺ㄨ繘鍏ュ簱浠诲姟鐘舵�侊紝骞跺湪鍏抽敭鐘舵�佽皟鐢╓MS鎺ュ彛銆�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋銆�</param>
+        /// <returns>鎺ㄨ繘缁撴灉銆�</returns>
+        public WebResponseContent MoveToNextStatus([NotNull] Dt_Task task)
+        {
+            if (task.TaskStatus >= (int)TaskInStatusEnum.InFinish)
+                return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�");
+
+            task.TaskStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>();
+            if (task.TaskStatus <= 0)
+                return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�");
+
+            if (task.TaskStatus == (int)TaskInStatusEnum.Line_InFinish)
+            {
+                return GetWMSInboundLocation(task);
+            }
+
+            return UpdateWMSTaskStatus(task);
+        }
+
+        /// <summary>
+        /// 澶勭悊鍫嗗灈鏈哄叆搴撳畬鎴愬姩浣溿��
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋銆�</param>
+        /// <returns>澶勭悊缁撴灉銆�</returns>
+        public WebResponseContent CompleteStackerTask([NotNull] Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (task.TaskStatus != (int)TaskInStatusEnum.SC_InExecuting)
+            {
+                return WebResponseContent.Instance.OK();
+            }
+
+            int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>();
+            task.TaskStatus = nextStatus;
+            task.ModifyDate = DateTime.Now;
+            task.Modifier = "System";
+
+            var result = _httpClientHelper.Post<WebResponseContent>(
+                nameof(ConfigKey.InboundFinishTaskAsync),
+                (new CreateTaskDto { PalletCode = task.PalletCode }).ToJson());
+
+            if (!result.IsSuccess || !result.Data.Status)
+            {
+                QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,璇锋眰鍙傛暟:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
+                return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愬け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+            }
+
+            QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:0ms", "InboundTaskFlowService");
+            return content.OK($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
+        }
+
+        /// <summary>
+        /// 浠嶹MS鑾峰彇鍏ュ簱鐩爣鍦板潃骞跺洖鍐欎换鍔°��
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋銆�</param>
+        /// <returns>璋冪敤缁撴灉銆�</returns>
+        private WebResponseContent GetWMSInboundLocation(Dt_Task task)
+        {
+            string configKey = nameof(ConfigKey.GetTasksLocation);
+            string requestParam = new CreateTaskDto { PalletCode = task.PalletCode }.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");
+
+            string? nextAddress = result.Data.Data?.ToString();
+            if (string.IsNullOrEmpty(nextAddress))
+                return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鑾峰彇浠诲姟鐩爣鍦板潃澶辫触,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆愭湭鑾峰彇鍒版湁鏁堢殑鐩爣鍦板潃銆�");
+
+            task.CurrentAddress = task.NextAddress;
+            task.NextAddress = nextAddress;
+            task.TargetAddress = nextAddress;
+
+            return WebResponseContent.Instance.OK();
         }
 
         /// <summary>
@@ -200,6 +200,6 @@
 
             QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
             return WebResponseContent.Instance.OK();
-        }
-    }
-}
+        }
+    }
+}

--
Gitblit v1.9.3