From c5c3e4e538a11f2a6391e6b2613375b1f92eb20a Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 15 四月 2026 14:39:18 +0800
Subject: [PATCH] feat: 添加Quartz日志助手类并重构任务服务日志记录

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   58 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index c6c5522..478ba06 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -112,7 +112,9 @@
                     }
                     Dt_Task task = _mapper.Map<Dt_Task>(item);
                     task.Creater = "WMS";
-                    InitializeTaskOnReceive(task, item);
+                    content = InitializeTaskOnReceive(task, item);
+                    if (!content.Status)
+                        return content;
                     tasks.Add(task);
                 }
                 // TOOD: 杩欓噷娉ㄦ剰娣诲姞閿欒瑕佽繑鍥為敊璇�
@@ -170,24 +172,20 @@
         /// </summary>
         /// <param name="task">浠诲姟瀹炰綋銆�</param>
         /// <param name="source">WMS鍘熷浠诲姟瀵硅薄銆�</param>
-        private void InitializeTaskOnReceive(Dt_Task task, WMSTaskDTO source)
+        private WebResponseContent InitializeTaskOnReceive(Dt_Task task, WMSTaskDTO source)
         {
             switch (task.TaskType.GetTaskTypeGroup())
             {
                 case TaskTypeGroup.OutbondGroup:
-                    _outboundTaskFlowService.InitializeOnReceive(task, source);
-                    break;
+                    return _outboundTaskFlowService.InitializeOnReceive(task, source);
                 case TaskTypeGroup.InboundGroup:
-                    _inboundTaskFlowService.InitializeOnReceive(task, source);
-                    break;
+                    return _inboundTaskFlowService.InitializeOnReceive(task, source);
                 case TaskTypeGroup.RelocationGroup:
-                    _relocationTaskFlowService.InitializeOnReceive(task, source);
-                    break;
+                    return _relocationTaskFlowService.InitializeOnReceive(task, source);
                 case TaskTypeGroup.OtherGroup:
-                    _robotTaskFlowService.InitializeOnReceive(task, source);
-                    break;
+                    return _robotTaskFlowService.InitializeOnReceive(task, source);
                 default:
-                    break;
+                    return WebResponseContent.Instance.Error("WCS涓嶅瓨鍦ㄥ綋鍓嶄换鍔$殑浠诲姟绫诲瀷");
             }
         }
 
@@ -398,7 +396,9 @@
                 && result.Data is List<WMSTaskDTO> wmsTasks
                 && wmsTasks.Count > 0)
             {
-                return ReceiveWMSTask(wmsTasks);
+                WebResponseContent content = ReceiveWMSTask(wmsTasks);
+                if (!content.Status)
+                    return content;
             }
 
             // 鏇存柊浠诲姟鏁版嵁
@@ -655,8 +655,42 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
+                // 鏀堕泦閲嶅浠诲姟鐨勪俊鎭�
+                var duplicateTasks = new List<DuplicateTaskDto>();
+                // 鍊掑簭閬嶅巻锛屽畨鍏ㄥ垹闄ゅ苟鏀堕泦琚Щ闄ょ殑椤�
+                for (int i = taskDTOs.Count - 1; i >= 0; i--)
+                {
+                    var item = taskDTOs[i];
+                    var exists = BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode);
+                    if (exists != null)
+                    {
+                        duplicateTasks.Add(new DuplicateTaskDto
+                        {
+                            TaskNum = exists.TaskNum,
+                            PalletCode = exists.PalletCode,
+                            TaskType = exists.TaskType,
+                            TaskStatus = exists.TaskStatus
+                        });
+                        taskDTOs.RemoveAt(i);
+                    }
+                }
+
                 // 璋冪敤 ReceiveWMSTask 鍒涘缓 WCS 浠诲姟
                 content = ReceiveWMSTask(taskDTOs);
+
+                // 濡傛灉鏈夐噸澶嶄换鍔★紝淇敼杩斿洖缁撴灉
+                if (duplicateTasks.Count > 0 && content.Status)
+                {
+                    var result = new ReceiveTaskResultDto
+                    {
+                        Success = true,
+                        Message = content.Message + $"锛屽叾涓瓄duplicateTasks.Count}涓换鍔″湪WCS涓凡瀛樺湪",
+                        CreatedCount = taskDTOs.Count,
+                        DuplicateTasks = duplicateTasks
+                    };
+                    content.Data = result;
+                }
+
                 return content;
             }
             catch (Exception ex)

--
Gitblit v1.9.3