From b06b33248bcc19f8ea6c574124d5c536b7fa6c49 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 16 七月 2025 19:22:27 +0800
Subject: [PATCH] 添加常温直接出库功能,增加实框入库存在任务发往异常口

---
 CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   74 +++++++++++++++++++++++++------------
 1 files changed, 50 insertions(+), 24 deletions(-)

diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 4fb8e05..1f80821 100644
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -94,7 +94,7 @@
                     // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔�
                     if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
-                        if ((task.Roadway == "1326"||task.Roadway == "1529" )&& ( task.TaskType == (int)TaskOutboundTypeEnum.OutTray|| task.TaskType == (int)TaskOutboundTypeEnum.InToOut))
+                        if ((task.Roadway == "2000"||task.Roadway == "1529" )&& ( task.TaskType == (int)TaskOutboundTypeEnum.OutTray|| task.TaskType == (int)TaskOutboundTypeEnum.InToOut))
                         {
                             // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓
                             //task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
@@ -226,7 +226,15 @@
                 var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
                 if (hasTask != null)
                 {
-                    return content.OK("褰撳墠鎵樼洏瀛樺湪浠诲姟");
+                    var taskExecuting = BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting);
+
+                    if (taskExecuting != null)
+                    {
+                        taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚";
+                        Delete(taskExecuting);
+                    }
+                    ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆�");
+                    QuartzLogger.WriteLogToFile($"浠诲姟寮傚父鏈畬鎴�", $"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆憑Environment.NewLine}");
                 }
 
                 var wmsIpAddrss = string.Empty;
@@ -284,9 +292,9 @@
         {
             Dt_Task task = null;
               task= BaseDal.QueryFirst(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)) && x.CurrentAddress == currentAddress, TaskOrderBy);
-            if(task == null)
+            if (task == null)
             {
-                task= BaseDal.QueryFirst(x => x.Roadway==currentAddress&& x.TaskType== (int)TaskOutboundTypeEnum.TrayInToOut&&x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
+                task = BaseDal.QueryFirst(x => x.Roadway == currentAddress && x.TaskType == (int)TaskOutboundTypeEnum.TrayInToOut && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
             }
             return task;
         }
@@ -338,6 +346,16 @@
         public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress,string Barcode)
         {
             return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.PalletCode == Barcode, TaskOrderBy);
+        }
+        /// <summary>
+        /// 鏍规嵁鎵樼洏鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode)
+        {
+            return BaseDal.QueryFirst(x => (x.NextAddress == nextAddress || x.TargetAddress == nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.PalletCode == Barcode, TaskOrderBy);
         }
 
         /// <summary>
@@ -761,8 +779,27 @@
 
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                 {
-                    if (!task.Roadway.Contains("GW"))
+                    if (task.Roadway.Contains("GW") || (task.Roadway.Contains("JZ") && task.TaskType == (int)TaskOutboundTypeEnum.OutTray)|| (task.Roadway.Contains("CW") && task.TaskType == (int)TaskOutboundTypeEnum.InToOut))
                     {
+                        task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+                        //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
+                        if (task.Remark == "NG")
+                        {
+                            BaseDal.UpdateData(task);
+                        }
+                        else
+                        {
+                            BaseDal.DeleteData(task);
+                            ConsoleHelper.WriteWarningLine($"{(task.Roadway)}鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
+                        }
+
+                        var taskHty = task.Adapt<Dt_Task_Hty>();
+                        _taskHtyRepository.AddData(taskHty);
+                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+                    }
+                    else
+                    {
+
                         var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
                         if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
 
@@ -776,25 +813,6 @@
 
                         _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
                     }
-                    else
-                    {
-                        task.TaskState = (int)TaskOutStatusEnum.OutFinish;
-                        //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
-                        if (task.Remark == "NG")
-                        {
-                            BaseDal.UpdateData(task);
-                        }
-                        else
-                        {
-                            BaseDal.DeleteData(task);
-                            ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
-                        }
-
-                        var taskHty = task.Adapt<Dt_Task_Hty>();
-                        _taskHtyRepository.AddData(taskHty);
-                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                    }
-
                     //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
@@ -950,6 +968,14 @@
             return wcsBasez + address;
         }
 
+        public WebResponseContent Delete(Dt_Task task)
+        {
+            var taskHty = task.Adapt<Dt_Task_Hty>();
+            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+            _taskHtyRepository.AddData(taskHty);
+            return base.DeleteData(task);
+        }
+
         #region 閲嶅啓鏂规硶
 
         public override WebResponseContent DeleteData(object[] key)

--
Gitblit v1.9.3