From d4b0b578752a1478f6c11b352fbb8d2bad1f9e1d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 22 十月 2025 17:18:49 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  329 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 213 insertions(+), 116 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 f2f9f1a..244db76 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"
@@ -44,19 +44,32 @@
 
         private Dictionary<string, OrderByType> _taskOrderBy = new()
         {
-            {nameof(Dt_Task.Grade), OrderByType.Desc },
+            {nameof(Dt_Task.Grade), OrderByType.Asc },
             {nameof(Dt_Task.CreateDate), OrderByType.Asc},
         };
+
 
         public Dictionary<string, OrderByType> TaskOrderBy
         { get { return _taskOrderBy; } set { _taskOrderBy = value; } }
 
+
+        #region 鑾峰彇鎵�鏈変换鍔$被鍨嬨�佺姸鎬�
         public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList();
 
         public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
-        public List<int> TaskRelocationboundTypes => typeof(TaskRelocationStatusEnum).GetEnumIndexList();
-        public List<int> TaskAGVCarryboundTypes => typeof(TaskAGVCarryStatusEnum).GetEnumIndexList();
-        public List<int> TaskAcrossFloorboundTypes => typeof(TaskAcrossFloorStatusEnum).GetEnumIndexList();
+        public List<int> TaskRelocationboundTypes => typeof(TaskRelocationTypeEnum).GetEnumIndexList();
+        public List<int> TaskAGVCarryboundTypes => typeof(TaskAGVCarryTypeEnum).GetEnumIndexList();
+        public List<int> TaskAcrossFloorboundTypes => typeof(TaskAcrossFloorTypeEnum).GetEnumIndexList();
+
+        public List<int> TaskInboundStates => typeof(TaskInStatusEnum).GetEnumIndexList();
+
+        public List<int> TaskOutboundStates => typeof(TaskOutStatusEnum).GetEnumIndexList();
+        public List<int> TaskRelocationboundStates => typeof(TaskRelocationStatusEnum).GetEnumIndexList();
+        public List<int> TaskAGVCarryboundStates => typeof(TaskAGVCarryStatusEnum).GetEnumIndexList();
+        public List<int> TaskAcrossFloorboundStates => typeof(TaskAcrossFloorStatusEnum).GetEnumIndexList();
+
+        #endregion 鑾峰彇鎵�鏈変换鍔$被鍨嬨�佺姸鎬�
+
 
         public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository) : base(BaseDal)
         {
@@ -100,78 +113,179 @@
                     // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔�
                     if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
-
-                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = station.stationChildCode;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign = "";
-                    }
-                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
-
-                        task.TaskState = (int)TaskInStatusEnum.InNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = station.stationChildCode;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign= "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
-                    {
-                        task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = task.TargetAddress;
-
-                        task.Floor = "1F";
-
-                        task.AGVSign = "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
-
-                        task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
-
-                        task.CurrentAddress = item.SourceAddress;
-
-                        task.NextAddress = task.TargetAddress;
-
-                        task.Floor = station.stationFloor;
-
-                        task.AGVSign = "";
-                    }
-                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
-                    {
-                        var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
-
-                        if (station != null)
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                         {
-                            var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
 
-                            task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+                            task.TaskState = (int)TaskOutStatusEnum.OutNew;
 
                             task.CurrentAddress = item.SourceAddress;
 
-                            task.NextAddress = next.stationChildCode;
+                            task.NextAddress = station.stationChildCode;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.TargetAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
 
                             task.Floor = station.stationFloor;
 
                             task.AGVSign = "";
                         }
                     }
+                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1");
+
+                            task.TaskState = (int)TaskInStatusEnum.InNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = station.stationChildCode;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = station.stationFloor;
+
+                            task.AGVSign = "";
+                        }
+
+                    }
+                    // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓虹Щ搴撲换鍔�
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.RelocationGroup)
+                        {
+                            task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = "1F";
+
+                            task.AGVSign = "";
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew;
+
+                            task.CurrentAddress = item.SourceAddress;
+
+                            task.NextAddress = task.TargetAddress;
+
+                            task.Floor = station.stationFloor;
+
+                            task.AGVSign = "";
+                        }
+                    }
+                    //鍒ゆ柇浠诲姟绫诲瀷鏄惁涓鸿法妤煎眰鎼繍浠诲姟
+                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+                    {
+                        if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
+                        {
+                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress);
+
+                            if (station != null)
+                            {
+                                var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor);
+
+                                task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew;
+
+                                task.CurrentAddress = item.SourceAddress;
+
+                                task.NextAddress = next.stationChildCode;
+
+                                task.Floor = station.stationFloor;
+
+                                task.AGVSign = "";
+                            }
+                        }
+                    }
+
                     // 灏嗚浆鎹㈠悗鐨勪换鍔℃坊鍔犲埌浠诲姟鍒楄〃涓�
                     tasks.Add(task);
                 }
@@ -346,7 +460,7 @@
             try
             {
                 int oldState = task.TaskState;
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
 
@@ -369,10 +483,10 @@
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                     {
                         content = StackCraneTaskCompleted(task.TaskNum);
-                        return content;
                     }
+
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
@@ -381,39 +495,39 @@
                     {
                         #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
 
-                        //var taskDto = new RequestTaskDto()
-                        //{
-                        //    Position = task.NextAddress,
-                        //    PalletCode = task.PalletCode,
-                        //};
+                        var taskDto = new RequestTaskDto()
+                        {
+                            Position = task.NextAddress,
+                            PalletCode = task.PalletCode,
+                        };
 
-                        //// 鑾峰彇WMSip鍦板潃
-                        //var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                        //var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
-                        //var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue;
-                        //if (wmsBasez == null || requestLocation == null)
-                        //{
-                        //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                        //}
-                        //var wmsIpAddrss = wmsBasez + requestLocation;
+                        // 鑾峰彇WMSip鍦板潃
+                        var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                        var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
+                        var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue;
+                        if (wmsBasez == null || requestLocation == null)
+                        {
+                            throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                        }
+                        var wmsIpAddrss = wmsBasez + requestLocation;
 
-                        //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
-                        //var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
-                        //if (abc == null)
-                        //    return content.Error();
-                        //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
-                        //content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+                        // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                        var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
+                        if (abc == null)
+                            return content.Error();
+                        // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
 
-                        //LogFactory.WriteError($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
+                        LogFactory.WriteError($"鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆�");
 
-                        //// 妫�鏌ョ姸鎬佸苟杩斿洖
-                        //if (!content.Status)
-                        //{
-                        //    return content;
-                        //}
+                        // 妫�鏌ョ姸鎬佸苟杩斿洖
+                        if (!content.Status)
+                        {
+                            return content;
+                        }
 
-                        //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
-                        //var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+                        // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
 
                         task.CurrentAddress = task.NextAddress;
                         task.NextAddress = task.TargetAddress;
@@ -426,7 +540,6 @@
                         if (App.User.UserId > 0)
                         {
                             content = StackCraneTaskCompleted(task.TaskNum);
-                            return content;
                         }
 
                         task.ModifyDate = DateTime.Now;
@@ -439,7 +552,7 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
 
@@ -457,7 +570,7 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
+                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.AcrossFloorGroup)
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAcrossFloorStatusEnum>();
 
@@ -492,7 +605,7 @@
                             stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
                             TaskTemplate = "CCC";
                         }
-                       
+
                         var taskDto = new RequestAcrossFloorTaskDto()
                         {
                             NextAddress = task.NextAddress,
@@ -547,22 +660,6 @@
                         BaseDal.AddData(taskNew);
 
                         SendAgvTask(TaskTemplate, taskNew.TaskNum);
-                        return content.OK();
-                    }
-
-                    if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
-                    {
-
-                        CompletedTask(task.TaskNum);
-
-                        task.ModifyDate = DateTime.Now;
-                        task.Modifier = "System";
-
-                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
-                        task_Hty.TaskId = 0;
-
-                        BaseDal.DeleteData(task);
-                        _taskHtyRepository.AddData(task_Hty);
                     }
                 }
                 else

--
Gitblit v1.9.3