From cde56aae50adc11ff8db84e424d873843c566bfd Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 24 二月 2025 23:40:41 +0800
Subject: [PATCH] 优化WCS移库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
index c1cdd22..b1059cc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_StackCrane.cs"
@@ -71,32 +71,48 @@
                     HttpHelper.PostAsync(WMSInterfaceAddress.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
                     #endregion
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup && task.TaskState == (int)TaskRelocationStatusEnum.SC_RelocationExecuting)//绉诲簱
                 {
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskRelocationStatusEnum>();
+                    task.CurrentAddress = task.NextAddress;
+                    task.NextAddress = string.Empty;
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
-
-                    task.CurrentAddress = task.NextAddress;
-                    task.NextAddress = string.Empty;
-                    BaseDal.UpdateData(task);
+                    WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(task);
+                    if (task.TargetIsPickPlace)
+                    {
+                        task.TaskState = (int)TaskRelocationStatusEnum.RelocationFinish;
+                        AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete);
+                    }
+                    else
+                        BaseDal.UpdateData(task);
 
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�");
                     //todo 璋冪敤WMS绉诲簱瀹屾垚
+                    HttpHelper.PostAsync(WMSInterfaceAddress.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
                 }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup && task.TaskState == (int)TaskCarStatusEnum.SC_CarExecuting)
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup)//绉昏溅/绉昏溅鍏呯數
                 {
-                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskCarStatusEnum>();
-                    task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
 
                     task.CurrentAddress = task.NextAddress;
                     task.NextAddress = string.Empty;
-                    BaseDal.UpdateData(task);
-
-                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ杞﹀畬鎴�");
+                    if (task.TaskState == (int)TaskCarStatusEnum.SC_CarExecuting)
+                    {
+                        int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskCarStatusEnum>();
+                        task.TaskState = nextStatus;
+                        BaseDal.UpdateData(task);
+                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ杞﹀畬鎴�");
+                    }
+                    else if (task.TaskState == (int)CarChargingTaskEnum.SC_CarExecuting)
+                    {
+                        int nextStatus = task.TaskState.GetNextNotCompletedStatus<CarChargingTaskEnum>();
+                        task.TaskState = nextStatus;
+                        BaseDal.UpdateData(task);
+                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ杞﹀畬鎴�");
+                    }
                 }
                 else
                 {

--
Gitblit v1.9.3