From f45293a0c3c9838567d6ff01eae53157a9ed5284 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 05 三月 2026 10:59:38 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs |  260 ++++++++++++++++++++++-----------------------------
 1 files changed, 111 insertions(+), 149 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
index 7c556b0..f67b6cc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
@@ -2,6 +2,7 @@
 using Mapster;
 using MoYu.Localization;
 using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
 using System.Diagnostics.CodeAnalysis;
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.TaskEnum;
@@ -74,66 +75,6 @@
             }
         }
 
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟锛堝叆搴撶増鏈�)
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        public Dt_Task? InBeforeCheck(int taskNum)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.InTransferCheck)?.ConfigValue;
-                if (wmsBase == null || requestTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddrss = wmsBase + requestTask;
-
-                var result = HttpHelper.Post(wmsIpAddrss, new { taskNum = taskNum }.ToJsonString());
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (!content.Status)
-                {
-                    // wms澶辫触
-                    throw new Exception();
-                }
-
-
-                //todo 浼樺寲 濡傛湭鏌ヨ鍒颁换鍔″垯澶勭悊
-                //if (content.Data != null)
-                //{
-                var task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString());
-
-                Dt_Task? Relocationtask = null;
-                if (task.TaskNum != taskNum)
-                {
-
-                    BaseDal.AddData(task);
-                    Relocationtask = BaseDal.QueryFirst(x => x.TaskNum == task.TaskNum);
-                }
-                //}
-
-                if (Relocationtask != null)
-                {
-                    return task;
-                }
-                else
-                {
-                    return null;
-                }
-
-            }
-            catch (Exception ex)
-            {
-                throw new Exception($"璇锋眰寮傚父锛歿ex.Message}");
-            }
-        }
-
         #region 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
         /// <summary>
         /// 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
@@ -141,7 +82,109 @@
         /// <param name="palletCode">鎵樼洏鍙�</param>
         /// <param name="stationManager">绔欏彴</param>
         /// <returns></returns>
-        public async Task<WebResponseContent> RequestTask(string palletCode, Dt_StationManager stationManager)
+        public async Task<WebResponseContent> RequestTask(string palletCode, string PVI, Dt_StationManager stationManager)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                StaticVariable.isLineRun = false;
+
+                // 妫�鏌ュ綋鍓嶆墭鐩樻槸鍚﹀瓨鍦ㄤ换鍔�
+                if (await HasTask(PVI))
+                {
+                    return content.Error("褰撳墠鎵樼洏瀛樺湪浠诲姟");
+                }
+
+                //palletCode = "QT101025"; // 妯℃嫙鎵樼洏璇锋眰浠诲姟
+
+                // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
+                if (stationManager.stationType == 1)
+                {
+                    content = await RequestInTask(palletCode, PVI, stationManager);
+                }
+                else if (stationManager.stationType == 6)
+                {
+                    content = await RequestInEmptyTask(palletCode, PVI, stationManager);
+                }
+
+                ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
+
+                if (!content.Status)
+                {
+                    return content;
+                }
+
+                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+                ConsoleHelper.WriteSuccessLine(content.Data.ToString());
+                return ReceiveByWMSTask(task);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+            finally
+            {
+                StaticVariable.isLineRun = true;
+            }
+        }
+
+
+        // 妫�鏌ュ綋鍓嶆墭鐩樻槸鍚﹀瓨鍦ㄤ换鍔�
+        private async Task<bool> HasTask(string PVI)
+        {
+            var hasTask = await BaseDal.QueryFirstAsync(x => x.PVI == PVI);
+            return hasTask != null;
+        }
+
+        // 鑾峰彇 WMS 璇锋眰鍦板潃
+        private string GetWmsIpAddress(string configKey)
+        {
+            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+            var requestTask = config.FirstOrDefault(x => x.ConfigKey == configKey)?.ConfigValue;
+
+            if (wmsBase == null || requestTask == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            return wmsBase + requestTask;
+        }
+
+        // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
+        private async Task<WebResponseContent> RequestInTask(string palletCode, string PVI, Dt_StationManager stationManager)
+        {
+            var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask);
+            var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, PVI = PVI }.ToJsonString());
+            return JsonConvert.DeserializeObject<WebResponseContent>(result);
+        }
+
+        private async Task<WebResponseContent> RequestInEmptyTask(string palletCode, string PVI, Dt_StationManager stationManager)
+        {
+            var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask);
+            var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, PVI = PVI }.ToJsonString());
+            return JsonConvert.DeserializeObject<WebResponseContent>(result);
+        }
+
+
+        #endregion 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
+
+        public async Task<WebResponseContent> RequestWhiteBody(string palletCode, string PVI, Dt_StationManager stationManager)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestWhiteBody);
+                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, PVI = PVI }.ToJsonString());
+                return JsonConvert.DeserializeObject<WebResponseContent>(result);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+
+        }
+
+        public async Task<WebResponseContent> RequestRoadWayTask(string palletCode, string PVI, Dt_StationManager stationManager)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -154,10 +197,11 @@
                     return content.Error("褰撳墠鎵樼洏瀛樺湪浠诲姟");
                 }
 
-                palletCode = "QT101025"; // 妯℃嫙鎵樼洏璇锋眰浠诲姟
+                //PVI = "J26000456TF12"; // 妯℃嫙PVI璇锋眰浠诲姟
 
                 // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
-                content = await RequestInTask(palletCode, stationManager);
+                content = await RequestInRoadWayTask(palletCode, PVI, stationManager);
+
                 ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
 
                 if (!content.Status)
@@ -179,90 +223,12 @@
             }
         }
 
-        public async Task<WebResponseContent> UpdateCheckTask(string palletCode, Dt_StationManager stationManager)
+        private async Task<WebResponseContent> RequestInRoadWayTask(string palletCode, string PVI, Dt_StationManager stationManager)
         {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.UpdateCheckTask);
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, Position = stationManager.stationChildCode }.ToJsonString());
-                return JsonConvert.DeserializeObject<WebResponseContent>(result);
-            }
-            catch (Exception ex)
-            {
-                return content.Error($"{ex.Message}");
-            }
-        }
-
-        /// <summary>
-        /// 杞﹁疆娴佸悜鍒嗛厤
-        /// </summary>
-        /// <param name="czCode"></param>
-        /// <param name="stationManager"></param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> RequestWheelsFlow(string czCode)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestWheelsFlow);
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = czCode }.ToJsonString());
-                return JsonConvert.DeserializeObject<WebResponseContent>(result);
-            }
-            catch (Exception ex)
-            {
-                return content.Error($"{ex.Message}");
-            }
-        }
-
-        /// <summary>
-        /// 杞﹁疆娴佸悜鍒嗛厤鏌ヨ鍘嗗彶璇锋眰
-        /// </summary>
-        /// <param name="czCode"></param>
-        /// <param name="stationManager"></param>
-        /// <returns></returns>
-        public string RequestWheletHty(string czCode)
-        {
-            WebResponseContent content = new WebResponseContent();
-            Dt_Task_Hty dt_Task_Hty = _taskHtyRepository.QueryFirst(x => x.task_CZInfo == czCode && x.CreateDate >= DateTime.Now.AddMinutes(-30));
-            if (dt_Task_Hty == null) return null;
-            if (dt_Task_Hty.Towhereabouts == null && dt_Task_Hty.Towhereabouts == "") return null;
-
-            return dt_Task_Hty.Towhereabouts;
-        }
-
-        // 妫�鏌ュ綋鍓嶆墭鐩樻槸鍚﹀瓨鍦ㄤ换鍔�
-        private async Task<bool> HasTask(string palletCode)
-        {
-            var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
-            return hasTask != null;
-        }
-
-        // 鑾峰彇 WMS 璇锋眰鍦板潃
-        private string GetWmsIpAddress(string configKey)
-        {
-            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-            var requestTask = config.FirstOrDefault(x => x.ConfigKey == configKey)?.ConfigValue;
-
-            if (wmsBase == null || requestTask == null)
-            {
-                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-            }
-
-            return wmsBase + requestTask;
-        }
-
-        // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
-        private async Task<WebResponseContent> RequestInTask(string palletCode, Dt_StationManager stationManager)
-        {
-            var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask);
-            var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString());
+            var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInboundRoadWayNo);
+            var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, PVI = PVI }.ToJsonString());
             return JsonConvert.DeserializeObject<WebResponseContent>(result);
         }
-
-        #endregion 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-
 
 
         /// <summary>
@@ -282,17 +248,13 @@
                 Dt_Task task = _mapper.Map<Dt_Task>(taskDTO);
                 task.Creater = "WMS";
                 task.CarType = taskDTO.CarType;
+                task.PVI = taskDTO.PVI;
 
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                 {
                     var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
 
                     task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                    if (task.SourceAddress == "2009")
-                    {
-                        task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
-                    }
-                    
                     task.CurrentAddress = taskDTO.RoadWay;
                     task.NextAddress = stationinfo.stationChildCode;
                     task.SourceAddress = taskDTO.SourceAddress;

--
Gitblit v1.9.3