From 9429653e8def2729014b45c7c75ec76e9aa6685b Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 12 六月 2025 17:13:48 +0800
Subject: [PATCH] 优化堆垛机交互逻辑

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  102 ++++++++++++++++++++++----------------------------
 1 files changed, 45 insertions(+), 57 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index f878fbe..927cfa0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -17,24 +17,12 @@
 
 using AutoMapper;
 using Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Reflection;
-using System.Reflection.Emit;
-using System.Security.Policy;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEA_Comm.Http;
 using WIDESEA_Common.Log;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.DB.Models;
-using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
@@ -44,6 +32,8 @@
 using WIDESEAWCS_Core.Helper;
 using WIDESEA_Core.Enums;
 using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_DTO.TaskEnum;
+
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -194,11 +184,11 @@
         /// <returns></returns>
         public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null)
         {
-            if(taskTypeGroup == null)
+            if (taskTypeGroup == null)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
-            if(taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
+            if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy);
-            if(taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
+            if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
             return null;
         }
@@ -211,7 +201,7 @@
         /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
         public Dt_Task? QueryStackerCraneTask(string deviceNo, string currentAddress = "")
         {
-            return BaseDal.QueryFirst(x => true, TaskOrderBy);
+            return BaseDal.QueryFirst(x => x.TaskStatus == (int)InTaskStatusEnum.InNew || x.TaskStatus == (int)OutTaskStatusEnum.OutNew || x.TaskStatus == (int)RelocationTaskStatusEnum.RelocationNew, TaskOrderBy);
         }
 
         /// <summary>
@@ -222,7 +212,7 @@
         /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
         public Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "")
         {
-            Dt_Task taskGrade = BaseDal.QueryFirst(x =>true, TaskOrderBy);
+            Dt_Task taskGrade = BaseDal.QueryFirst(x => true, TaskOrderBy);
             if (taskGrade != null)
             {
                 return taskGrade;
@@ -337,7 +327,7 @@
                 }
                 else if (task.TaskType == (int)TaskTypeEnum.Relocation)
                 {
-                    task.TaskStatus = (int)InTaskStatusEnum.RelocationException;
+                    task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationException;
                 }
 
                 task.ExceptionMessage = message;
@@ -400,7 +390,7 @@
             try
             {
                 int oldState = task.TaskStatus;
-                if (task.TaskType == (int)TaskTypeEnum.Outbound|| task.TaskType == (int)TaskTypeEnum.PalletOutbound)
+                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                 {
                     task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
                 }
@@ -410,7 +400,7 @@
                 }
                 else if (task.TaskType == (int)TaskTypeEnum.Relocation)
                 {
-                    task.TaskStatus = (int)InTaskStatusEnum.RelocationExecuting;
+                    task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationExecuting;
                 }
                 else
                 {
@@ -426,11 +416,11 @@
                 task.ModifyDate = DateTime.Now;
                 task.Modifier = "System";
                 BaseDal.UpdateData(task);
-                var response = HttpHelpers.Post<WebResponseContent>(url + "UpdateTaskStatus?taskNum=" + task.TaskNum, "", "鏇存柊浠诲姟鐘舵��");
-                if (!response.Status)
-                {
-                    _unitOfWorkManage.RollbackTran();
-                }
+                //var response = HttpHelpers.Post<WebResponseContent>(url + "UpdateTaskStatus?taskNum=" + task.TaskNum, "", "鏇存柊浠诲姟鐘舵��");
+                //if (!response.Status)
+                //{
+                //    _unitOfWorkManage.RollbackTran();
+                //}
                 _unitOfWorkManage.CommitTran();
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskStatus}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskStatus}銆�");
                 content = WebResponseContent.Instance.OK();
@@ -491,17 +481,16 @@
                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
 
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = "WMS";
                 if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                 {
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = (int)OutTaskStatusEnum.OutFinish;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                    if(App.User.UserId > 0)
+                    if (App.User.UserId > 0)
                     {
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
                         if (response.Status)
                         {
@@ -514,20 +503,19 @@
                             return content = WebResponseContent.Instance.Error(response.Message);
                         }
                     }
+                    BaseDal.DeleteData(task);
+                    _task_HtyService.AddTaskHty(task);
                     _unitOfWorkManage.CommitTran();
                     return content.OK();
                 }
-                else if (task.TaskType == (int)TaskTypeEnum.Inbound  || task.TaskType == (int)TaskTypeEnum.PalletInbound)
+                else if (task.TaskType == (int)TaskTypeEnum.Inbound || task.TaskType == (int)TaskTypeEnum.PalletInbound)
                 {
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = (int)InTaskStatusEnum.InFinish;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
                     if (App.User.UserId > 0)
                     {
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
                         if (response.Status)
                         {
@@ -540,20 +528,19 @@
                             return content = WebResponseContent.Instance.Error(response.Message);
                         }
                     }
+                    BaseDal.DeleteData(task);
+                    _task_HtyService.AddTaskHty(task);
                     _unitOfWorkManage.CommitTran();
                     return content.OK();
                 }
-                else if (task.TaskType== (int)TaskTypeEnum.Relocation)
+                else if (task.TaskType == (int)TaskTypeEnum.Relocation)
                 {
                     _unitOfWorkManage.BeginTran();
-                    task.TaskStatus = (int)InTaskStatusEnum.RelocationFinish;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
+                    task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationFinish;
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�");
                     if (App.User.UserId > 0)
                     {
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
                         if (response.Status)
                         {
@@ -566,6 +553,8 @@
                             return content = WebResponseContent.Instance.Error(response.Message);
                         }
                     }
+                    BaseDal.DeleteData(task);
+                    _task_HtyService.AddTaskHty(task);
                     _unitOfWorkManage.CommitTran();
                     return content.OK();
                 }
@@ -581,7 +570,7 @@
             }
             finally
             {
-                WriteLog.GetLog("瀹屾垚浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "瀹屾垚浠诲姟");
+                WriteLog.GetLog("瀹屾垚浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "瀹屾垚浠诲姟");
             }
             return content;
         }
@@ -594,17 +583,18 @@
                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
 
-                if (task.TaskType == (int)TaskTypeEnum.Outbound  || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = "WMS";
+                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                 {
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = (int)OutTaskStatusEnum.OutCancel;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳彇娑�");
                     if (App.User.UserId > 0)
                     {
+                        BaseDal.DeleteData(task);
+                        _task_HtyService.AddTaskHty(task);
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
                         if (response.Status)
                         {
@@ -625,13 +615,10 @@
                 {
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = (int)InTaskStatusEnum.InCancel;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳彇娑�");
                     if (App.User.UserId > 0)
                     {
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
                         if (response.Status)
                         {
@@ -645,20 +632,19 @@
                             return content = WebResponseContent.Instance.Error(response.Message);
                         }
                     }
+                    BaseDal.DeleteData(task);
+                    _task_HtyService.AddTaskHty(task);
                     _unitOfWorkManage.CommitTran();
                     return content.OK();
                 }
                 else if (task.TaskType == (int)TaskTypeEnum.Relocation)
                 {
                     _unitOfWorkManage.BeginTran();
-                    task.TaskStatus = (int)InTaskStatusEnum.RelocationCancel;
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = "System";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
+                    task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationCancel;
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳彇娑�");
                     if (App.User.UserId > 0)
                     {
+                        task.Modifier = "System";
                         var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
                         if (response.Status)
                         {
@@ -672,6 +658,8 @@
                             return content = WebResponseContent.Instance.Error(response.Message);
                         }
                     }
+                    BaseDal.DeleteData(task);
+                    _task_HtyService.AddTaskHty(task);
                     _unitOfWorkManage.CommitTran();
                     return content.OK();
                 }
@@ -687,7 +675,7 @@
             }
             finally
             {
-                WriteLog.GetLog("鍙栨秷浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "鍙栨秷浠诲姟");
+                WriteLog.GetLog("鍙栨秷浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "鍙栨秷浠诲姟");
             }
         }
         /// <summary>

--
Gitblit v1.9.3