From 0939aa5f3cc12a8856456a51cf2b661b6cd780c7 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 31 七月 2025 17:25:49 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   91 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 77 insertions(+), 14 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index ed50158..955d7d3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -165,6 +165,7 @@
                             RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                             Floor = stationManager.stationFloor,
                             TargetStation= stationManagerEnd.remark,
+                            SourceStation= 0,
                         };
                         BaseDal.AddData(taskOut);
                     }
@@ -250,13 +251,13 @@
 
                             Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor);
 
-                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway &&x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor);
+                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor);
 
                             task.NextAddress = stationManager.stationChildCode;
 
                             task.SourceStation = stationManagerStart.remark;
 
-                            task.TargetStation = stationManagerStart.stationRemark;
+                            task.TargetStation = stationManager.stationRemark;
 
                             BaseDal.UpdateData(task);
                         }
@@ -268,11 +269,14 @@
                 }
                 else if (taskDTOs.TaskType == "3")
                 {
+                    string[] targetCodes = taskDTOs.BeginPoint.Split("-");
                     Dt_Task taskRelocation = new Dt_Task()
                     {
                         TaskType = (int)TaskRelocationTypeEnum.Relocation,
 
                         TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
+
+                        Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
 
                         SourceAddress = taskDTOs.BeginPoint,
 
@@ -311,17 +315,25 @@
             {
                 return "SC01";
             }
-            else if (number >= 5 && number <= 8)
+            else if (number >= 5 && number <= 7)
             {
                 return "SC02";
             }
-            else if (number >= 9 && number <= 12)
+            else if (number >= 8 && number <= 10)
             {
                 return "SC03";
             }
-            else if (number >= 13 && number <= 16)
+            else if (number >= 11 && number <= 14)
             {
                 return "SC04";
+            }
+            else if (number >= 15 && number <= 18)
+            {
+                return "SC05";
+            }
+            else if (number >= 19 && number <= 22)
+            {
+                return "SC06";
             }
             else
             {
@@ -466,9 +478,20 @@
         /// <param name="deviceNo">璁惧缂栧彿</param>
         /// <param name="currentAddress">褰撳墠鍦板潃</param>
         /// <returns></returns>
-        public Dt_Task QueryRGVExecutingTask(string deviceNo,int TaskNum)
+        public Dt_Task QueryRGVExecutingTask(string deviceNo)
         {
-            return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.TaskNum == TaskNum && x.RGVName == deviceNo);
+            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish|| x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS|| x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish) && x.RGVName == deviceNo);
+        }
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨRGV鏈墽琛岀殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryRGVExecutingTask(string deviceNo,int taskNum)
+        {
+            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.RGVName == deviceNo&&x.TaskNum==taskNum);
         }
 
         /// <summary>
@@ -664,9 +687,11 @@
                     if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
                     {
                         Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress);
+                        Dt_StationManager stationManagerend = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress);
                         task.CurrentAddress = task.NextAddress;
                         task.NextAddress = task.TargetAddress;
                         task.SourceStation = stationManager.stationRemark;
+                        task.TargetStation = stationManagerend.remark;
                     }
 
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
@@ -739,6 +764,11 @@
 
                 if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                 {
+                    task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
+                    task.PalletCode = Barcode;
+                    task.ModifyDate = DateTime.Now;
+                    BaseDal.UpdateData(task);
+
                     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.RequestTask)?.ConfigValue;
@@ -756,13 +786,8 @@
                     var wmsIpAddress = wmsBase + requestTask;
                     var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
 
-                    //if (result != null)
-                    //{
-                    task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
-                        task.PalletCode = Barcode;
-                        task.ModifyDate = DateTime.Now;
-                        BaseDal.UpdateData(task);
-                    //}
+
+                    
 
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV璋冨害瀹屾垚绛夊緟WMS浠诲姟");
                 }
@@ -897,6 +922,25 @@
                     BaseDal.DeleteData(task);
                     _taskHtyRepository.AddData(task_Hty);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
+
+                    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.CompleteTask)?.ConfigValue;
+                    WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    {
+                        TaskId = task.WMSTaskNum,
+                        TPbarcode = task.PalletCode,
+                        WhCode = "1001",
+                        BeginPoint = task.SourceAddress,
+                        EndPoint = task.TargetAddress,
+                        Results = "1"
+                    };
+                    if (wmsBase == null || requestTask == null)
+                    {
+                        throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                    }
+                    var wmsIpAddress = wmsBase + requestTask;
+                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -911,6 +955,25 @@
                     BaseDal.DeleteData(task);
                     _taskHtyRepository.AddData(task_Hty);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�");
+
+                    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.CompleteTask)?.ConfigValue;
+                    WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    {
+                        TaskId = task.WMSTaskNum,
+                        TPbarcode = task.PalletCode,
+                        WhCode = "1001",
+                        BeginPoint = task.SourceAddress,
+                        EndPoint = task.TargetAddress,
+                        Results = "1"
+                    };
+                    if (wmsBase == null || requestTask == null)
+                    {
+                        throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                    }
+                    var wmsIpAddress = wmsBase + requestTask;
+                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup)
                 {

--
Gitblit v1.9.3