From 70233af5426b0d1c343ebe87183303a34a9aaa58 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期三, 20 十一月 2024 09:05:38 +0800
Subject: [PATCH] WIDESEAWCS_QuartzJob更新版本

---
 WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs |  152 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 98 insertions(+), 54 deletions(-)

diff --git a/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs b/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
index 8141462..5a9bfbb 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
@@ -22,6 +22,7 @@
 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;
@@ -40,41 +41,105 @@
             _taskRepository = taskRepository;
         }
 
-        public void AddTaskExecuteDetail(int taskId, int taskNum, int taskState, string description = "", bool isManual = false)
+        public void AddTaskExecuteDetail(int taskId, string description = "")
+        {
+            // 灏濊瘯鎵ц娣诲姞浠诲姟鎵ц璇︽儏鐨勬柟娉�
+            try
+            {
+                // 鍒濆鍖栨槸鍚︽甯镐负true
+                bool isNormal = true;
+                // 鏍规嵁浠诲姟id鏌ヨ浠诲姟
+                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskId);
+                // 濡傛灉浠诲姟涓虹┖锛屽垯杩斿洖
+                if (task == null) return;
+                // 鑾峰彇浠诲姟鏁伴噺
+                int taskNum = task.TaskNum;
+                // 鑾峰彇浠诲姟鐘舵��
+                int taskState = task.TaskState;
+
+                // 灏濊瘯灏嗕换鍔$姸鎬佽浆鎹负TaskOutStatusEnum鏋氫妇绫诲瀷
+                if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
+                {
+                    // 濡傛灉杞崲澶辫触锛屽垯灏嗕换鍔$姸鎬佽浆鎹负TaskInStatusEnum鏋氫妇绫诲瀷
+                    if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
+                    {
+                        // 濡傛灉杞崲澶辫触锛屽垯灏唅sNormal璁剧疆涓篺alse
+                        isNormal = false;
+                    }
+                }
+                // 濡傛灉杞崲鎴愬姛锛屽垯鍒ゆ柇浠诲姟鐘舵�佹槸鍚﹀ぇ浜嶰utFinish
+                else if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
+                {
+                    // 濡傛灉澶т簬锛屽垯灏唅sNormal璁剧疆涓篺alse
+                    isNormal = false;
+                }
+                // 鍒涘缓浠诲姟鎵ц璇︽儏瀵硅薄
+                Dt_TaskExecuteDetail taskExecuteDetail = new()
+                {
+                    // 璁剧疆鏄惁鎵嬪姩鎵ц
+                    IsManual = App.User.UserId > 0,
+                    // 璁剧疆鏄惁姝e父
+                    IsNormal = isNormal,
+                    // 璁剧疆浠诲姟鏁伴噺
+                    TaskNum = taskNum,
+                    // 璁剧疆浠诲姟id
+                    TaskId = taskId,
+                    // 璁剧疆浠诲姟鐘舵��
+                    TaskState = taskState,
+                    // 璁剧疆鎻忚堪
+                    Description = description,
+                    // 璁剧疆褰撳墠鍦板潃
+                    CurrentAddress = task.CurrentAddress,
+                    // 璁剧疆涓嬩竴涓湴鍧�
+                    NextAddress = task.NextAddress,
+                };
+                // 娣诲姞浠诲姟鎵ц璇︽儏
+                BaseDal.AddData(taskExecuteDetail);
+            }
+            catch (Exception ex)
+            {
+                
+            }
+        }
+
+        public void AddTaskExecuteDetail(List<int> taskNums, string description = "")
         {
             try
             {
-                bool isNormal = true;
-                ;
-                if (Enum.TryParse(typeof(TaskOutStatusEnum), taskState.ToString(), out object? result))
+                List<Dt_TaskExecuteDetail> taskExecuteDetails = new List<Dt_TaskExecuteDetail>();
+                foreach (var item in taskNums)
                 {
-                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
-                        isNormal = false;
+                    bool isNormal = true;
+                    Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == item);
+                    if (task == null) return;
+                    int taskNum = task.TaskNum;
+                    int taskState = task.TaskState;
 
+                    if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
+                    {
+                        if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
+                            isNormal = false;
+                    }
+                    else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
+                    {
+                        if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
+                            isNormal = false;
+                    }
+                    Dt_TaskExecuteDetail taskExecuteDetail = new()
+                    {
+                        IsManual = App.User.UserId > 0,
+                        IsNormal = isNormal,
+                        TaskNum = taskNum,
+                        TaskId = task.TaskId,
+                        TaskState = taskState,
+                        Description = description,
+                        CurrentAddress = task.CurrentAddress,
+                        NextAddress = task.NextAddress,
+                    };
+                    taskExecuteDetails.Add(taskExecuteDetail);
                 }
-                else if (Enum.TryParse(typeof(TaskInStatusEnum), taskState.ToString(), out result))
-                {
-                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
-                        isNormal = false;
-                }
-                else if (Enum.TryParse(typeof(TaskRelocationTypeEnum), taskState.ToString(), out result))
-                {
 
-                }
-                else if (Enum.TryParse(typeof(TaskOtherTypeEnum), taskState.ToString(), out result))
-                {
-
-                }
-                Dt_TaskExecuteDetail taskExecuteDetail = new Dt_TaskExecuteDetail()
-                {
-                    IsManual = isManual,
-                    IsNormal = isNormal,
-                    TaskNum = taskNum,
-                    TaskId = taskId,
-                    TaskState = taskState,
-                    Description = description
-                };
-                BaseDal.AddData(taskExecuteDetail);
+                BaseDal.AddData(taskExecuteDetails);
             }
             catch (Exception ex)
             {
@@ -84,13 +149,12 @@
 
         public WebResponseContent GetDetailInfo(int taskNum)
         {
-            WebResponseContent content = new WebResponseContent();
+            WebResponseContent content = new();
             try
             {
                 int active = -1;
-                List<object> list = new List<object>();
-
-                List<int> steps = new List<int>();
+                List<object> list = new();
+                List<int> steps = new();
                 Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
                 if (task != null)
                 {
@@ -146,27 +210,8 @@
                     {
                         throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                     }
+                    active = steps.IndexOf(task.TaskState) + 1;
 
-                    List<int> details = BaseDal.QueryData(x => x.TaskNum == taskNum && x.TaskState <= task.TaskState).GroupBy(x => x.TaskState).Select(x => x.Key).ToList();
-                    if (details.Count == 0)
-                    {
-                        active = steps.IndexOf(task.TaskState) + 1;
-                        if (active < steps.Count)
-                        {
-                            active -= 1;
-                        }
-                    }
-                    else
-                    {
-                        if (details.Count == steps.Count)
-                        {
-                            active = details.Count;
-                        }
-                        else
-                        {
-                            active = details.Count - 1;
-                        }
-                    }
                 }
 
                 content = WebResponseContent.Instance.OK(data: new { active, list });
@@ -180,10 +225,9 @@
 
         public WebResponseContent GetDetailDatas(int taskNum)
         {
-            WebResponseContent content = new WebResponseContent();
+            WebResponseContent content = new();
             try
             {
-
                 Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
                 if (task != null)
                 {

--
Gitblit v1.9.3