From 876b889505ef3c847c8794425f0f3dd6eeeeccf8 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 24 十二月 2024 16:43:59 +0800
Subject: [PATCH] WCS下一步

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   76 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 72 insertions(+), 4 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index d630db8..5b06bf3 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -25,6 +25,7 @@
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoRepository;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -503,15 +504,82 @@
                         BaseDal.DeleteData(task);
                         _taskHtyRepository.AddData(task_Hty);
                     }
+
+
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                     {
-                        Dt_Task? tasks = UpdatePosition(task.TaskNum, task.CurrentAddress);
-                        if (tasks != null)
+                        #region WMS鍚屾浠诲姟瀹屾垚
+
+                        var keys = new Dictionary<string, object>()
                         {
-                            task.CurrentAddress = tasks.CurrentAddress;
-                            task.NextAddress = tasks.NextAddress;
+                            {"taskNum", task.TaskNum}
+                        };
+                        // 鑾峰彇WMSip鍦板潃
+                        var configs = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                        var wmsBasex = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+                        var completeTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
+                        if (wmsBasex == null || completeTask == null)
+                        {
+                            throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                        }
+                        var wmsIpAddressx = wmsBasex + completeTask;
+
+                        var results = HttpHelper.GetAsync(wmsIpAddressx, keys).Result;
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(results);
+                        if (!content.Data.IsNullOrEmpty())
+                        {
+                            if (content.Data.ToString() == "NG")
+                            {
+                                task.Remark = "NG";
+                            }
+                        }
+                        task.ExceptionMessage += "   " + content.Message;
+
+                        #endregion WMS鍚屾浠诲姟瀹屾垚
+
+
+                        if (!task.Roadway.Contains("GW"))
+                        {
+                            var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
+                            if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
+                            task.CurrentAddress = task.NextAddress;
+                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
+                            task.ModifyDate = DateTime.Now;
+                            task.Modifier = "System";
+                            BaseDal.UpdateData(task);
+                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+                        }
+                        else
+                        {
+                            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+                            //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
+                            if (task.Remark == "NG")
+                            {
+                                BaseDal.UpdateData(task);
+                            }
+                            else
+                            {
+                                BaseDal.DeleteData(task);
+                                ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
+                            }
+
+                            var taskHty = task.Adapt<Dt_Task_Hty>();
+                            _taskHtyRepository.AddData(taskHty);
+                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+                        }
+
+                        //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
+
+                        if (task.Roadway.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
+                        {
+                            Dt_Task? newTask = UpdatePosition(task.TaskNum, task.CurrentAddress);
+                            if (newTask != null)
+                            {
+                                task = newTask;
+                            }
                         }
                     }
+
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                 {

--
Gitblit v1.9.3