From c827fe7b0c5b3b444d76ba0d96a2649c764630dd Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 14 十一月 2024 16:36:08 +0800
Subject: [PATCH] 修改WCS、WMS出入库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_AGV.cs |   44 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 39 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_AGV.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_AGV.cs"
index 813408f..332cf63 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_AGV.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_AGV.cs"
@@ -1,6 +1,8 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
@@ -8,6 +10,8 @@
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
 using WIDESEAWCS_TaskInfoService;
 
 namespace WIDESEAWCS_TaskInfoService
@@ -27,12 +31,35 @@
                 if (saveModel == null) throw new Exception("鏇存柊浠诲姟淇℃伅涓虹┖");
                 Dt_Task dt_Task = GetTaskInfo(Convert.ToInt32(saveModel.outID));
                 if (dt_Task == null) throw new Exception($"鏈壘鍒颁换鍔″彿涓恒�恵saveModel.outID}銆戠殑浠诲姟");
-                dt_Task.TaskState = saveModel.status switch
+                if (dt_Task.TaskState >= (int)TaskInStatusEnum.AGV_InFinish)
                 {
-                    "02" => (int)TaskInStatusEnum.AGV_InExecuting,
-                    "08" => (int)TaskInStatusEnum.AGV_InFinish,
-                    _ => throw new Exception($"鏈畾涔変换鍔$姸鎬併�恵saveModel.status}銆�"),
-                };
+                    return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵dt_Task.TaskNum}銆�,浠诲姟鐘舵��:銆恵GetEnumDescription(Enum.Parse<TaskInStatusEnum>(Enum.GetName(typeof(TaskInStatusEnum), dt_Task.TaskState)))}銆�");
+                }
+                switch (saveModel.status)
+                {
+                    case "02":
+                        dt_Task.TaskState = (int)TaskInStatusEnum.AGV_InExecuting;
+                        break;
+                    case "08":
+                        {
+                            dt_Task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
+                            dt_Task.CurrentAddress = dt_Task.NextAddress;
+                            List<Dt_Router> routers = _routerService.QueryNextRoutes(dt_Task.CurrentAddress, dt_Task.TargetAddress);
+                            if (routers.Count > 0)
+                            {
+                                dt_Task.NextAddress = routers.FirstOrDefault().ChildPosi;
+                            }
+                        }
+                        break;
+                    default:
+                        throw new Exception($"鏈畾涔変换鍔$姸鎬併�恵saveModel.status}銆�");
+                }
+                //dt_Task.TaskState = saveModel.status switch
+                //{
+                //    "02" => (int)TaskInStatusEnum.AGV_InExecuting,
+                //    "08" => (int)TaskInStatusEnum.AGV_InFinish,
+                //    _ => throw new Exception($"鏈畾涔変换鍔$姸鎬併�恵saveModel.status}銆�"),
+                //};
                 content = UpdateData(dt_Task);
             }
             catch (Exception ex)
@@ -46,5 +73,12 @@
             //    message = content.Message,
             //};
         }
+
+        public static string GetEnumDescription<T>(T value) where T : Enum
+        {
+            FieldInfo fieldInfo = typeof(T).GetField(value.ToString());
+            DescriptionAttribute attribute = (DescriptionAttribute)Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute));
+            return attribute?.Description ?? value.ToString();
+        }
     }
 }

--
Gitblit v1.9.3