From 9e579eda4601ed7b492b9d19a24e8146f6ebdf8d Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 19 四月 2025 19:50:43 +0800
Subject: [PATCH] 优化空托出入库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs |   61 +++++++++++++++++++++++++++++-
 1 files changed, 58 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
index d2e92d9..7d517be 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
@@ -22,9 +22,9 @@
 using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
@@ -60,6 +60,16 @@
                     if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                         isNormal = false;
                 }
+                else if (!int.TryParse(Enum.Parse<TaskRelocationStatusEnum>(taskState.ToString()).ToString(), out result))
+                {
+                    if ((int)(TaskRelocationStatusEnum)result > (int)TaskRelocationStatusEnum.RelocationFinish)
+                        isNormal = false;
+                }
+                else if (!int.TryParse(Enum.Parse<TaskCarStatusEnum>(taskState.ToString()).ToString(), out result))
+                {
+                    if ((int)(TaskCarStatusEnum)result > (int)TaskCarStatusEnum.RelocationCarFinish)
+                        isNormal = false;
+                }
                 Dt_TaskExecuteDetail taskExecuteDetail = new()
                 {
                     IsManual = App.User.UserId > 0,
@@ -78,7 +88,11 @@
 
             }
         }
-
+        /// <summary>
+        /// 璁板綍鎺ユ敹WMS涓嬪彂浠诲姟
+        /// </summary>
+        /// <param name="taskNums"></param>
+        /// <param name="description"></param>
         public void AddTaskExecuteDetail(List<int> taskNums, string description = "")
         {
             try
@@ -100,6 +114,16 @@
                     else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                     {
                         if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
+                            isNormal = false;
+                    }
+                    else if (!int.TryParse(Enum.Parse<TaskRelocationStatusEnum>(taskState.ToString()).ToString(), out result))
+                    {
+                        if ((int)(TaskRelocationStatusEnum)result > (int)TaskRelocationStatusEnum.RelocationFinish)
+                            isNormal = false;
+                    }
+                    else if (!int.TryParse(Enum.Parse<TaskCarStatusEnum>(taskState.ToString()).ToString(), out result))
+                    {
+                        if ((int)(TaskCarStatusEnum)result > (int)TaskCarStatusEnum.RelocationCarFinish)
                             isNormal = false;
                     }
                     Dt_TaskExecuteDetail taskExecuteDetail = new()
@@ -178,10 +202,41 @@
                     else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result))
                     {
                         //todo 璋冪敤WMS绉诲簱瀹屾垚
+                        steps = Enum.GetValues(typeof(TaskRelocationStatusEnum)).Cast<int>().Where(x => x <= (int)TaskRelocationStatusEnum.RelocationFinish).ToList();
+                        foreach (var item in steps)
+                        {
+                            object obj;
+                            FieldInfo? fieldInfo = typeof(TaskRelocationStatusEnum).GetField(((TaskRelocationStatusEnum)item).ToString());
+                            DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                            if (descriptionAttribute != null)
+                            {
+                                obj = new { title = item, description = descriptionAttribute.Description };
+                            }
+                            else
+                            {
+                                obj = new { title = item, description = ((TaskRelocationStatusEnum)item).ToString() };
+                            }
+                            list.Add(obj);
+                        }
                     }
                     else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result))
                     {
-
+                        steps = Enum.GetValues(typeof(TaskCarStatusEnum)).Cast<int>().Where(x => x <= (int)TaskCarStatusEnum.RelocationCarFinish).ToList();
+                        foreach (var item in steps)
+                        {
+                            object obj;
+                            FieldInfo? fieldInfo = typeof(TaskCarStatusEnum).GetField(((TaskCarStatusEnum)item).ToString());
+                            DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                            if (descriptionAttribute != null)
+                            {
+                                obj = new { title = item, description = descriptionAttribute.Description };
+                            }
+                            else
+                            {
+                                obj = new { title = item, description = ((TaskCarStatusEnum)item).ToString() };
+                            }
+                            list.Add(obj);
+                        }
                     }
                     else
                     {

--
Gitblit v1.9.3