From 3d14b1056267a25dc8aa0ee72f117daa84045f5c Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 12 六月 2025 15:59:06 +0800
Subject: [PATCH] 添加 FireCommand 属性以处理火警任务类型

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   87 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 65 insertions(+), 22 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 34271c7..7930101 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,11 +1,9 @@
 锘縰sing AutoMapper;
 using HslCommunication;
 using Mapster;
-using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
-using System.Threading.Tasks;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_BasicInfoService;
 using WIDESEAWCS_Common;
@@ -13,6 +11,7 @@
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.LogHelper;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_DTO.WMS;
 using WIDESEAWCS_ISystemServices;
@@ -20,12 +19,9 @@
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_TaskInfoRepository;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -98,7 +94,7 @@
                     if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
                         // 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠�
-                        if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))
+                        if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))|| task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm)
                         {
                             // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓
                             task.TaskState = (int)TaskOutStatusEnum.OutNew;
@@ -219,7 +215,7 @@
                     wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestTask);
                 }
 
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode }.ToJsonString());
+                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode, stationManager.productLine }.ToJsonString());
                 content = JsonConvert.DeserializeObject<WebResponseContent>(result);
 
                 if (!content.Status)
@@ -270,6 +266,17 @@
         /// <param name="deviceNo">璁惧缂栧彿</param>
         /// <param name="currentAddress">褰撳墠鍦板潃</param>
         /// <returns></returns>
+        public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress,string Barcode)
+        {
+            return 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 && x.PalletCode == Barcode, TaskOrderBy);
+        }
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
         public Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress)
         {
             return BaseDal.QueryFirst(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)) && x.NextAddress == currentAddress, TaskOrderBy);
@@ -293,6 +300,17 @@
         /// <param name="nextAddress">涓嬩竴鍦板潃</param>
         /// <returns></returns>
         public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress)
+        {
+            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
+        }
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <returns></returns>
+        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), TaskOrderBy);
         }
@@ -513,13 +531,11 @@
                         _taskHtyRepository.AddData(task_Hty);
                     }
 
-
                     if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                     {
                         content = StackCraneTaskCompleted(task.TaskNum);
                         return content;
                     }
-
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                 {
@@ -575,7 +591,6 @@
                             content = StackCraneTaskCompleted(task.TaskNum);
                             return content;
                         }
-
 
                         task.ModifyDate = DateTime.Now;
                         task.Modifier = "System";
@@ -653,7 +668,7 @@
 
                 task.ModifyDate = DateTime.Now;
                 task.Modifier = "System";
-                BaseDal.UpdateData(task);
+                
 
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屾洿鏂板綋鍓嶄綅缃�恵oldCurrentPos} ----> {task.CurrentAddress}銆戝拰涓嬩竴浣嶇疆銆恵oldNextPos} ----> {task.NextAddress}銆�");
                 return task;
@@ -694,18 +709,24 @@
                 var wmsIpAddress = wmsBase + completeTask;
 
                 var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-                if (!content.Data.IsNullOrEmpty())
-                {
-                    if (content.Data.ToString() == "NG")
-                    {
-                        task.Remark = "NG";
-                        //BaseDal.UpdateData(task);
-                        //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG");
-                    }
-                }
-                task.ExceptionMessage += "   " + content.Message;
 
+                QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}");
+                if(result != null)
+                {
+
+                    content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                    if (!content.Data.IsNullOrEmpty())
+                    {
+                        if (content.Data.ToString() == "NG")
+                        {
+                            task.Remark = "NG";
+                            //BaseDal.UpdateData(task);
+                            //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG");
+                        }
+                    }
+                    task.ExceptionMessage += "   " + content.Message;
+
+                }
                 #endregion WMS鍚屾浠诲姟瀹屾垚
 
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
@@ -776,7 +797,9 @@
             catch (Exception ex)
             {
                 content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
+                QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.StackTrace}銆憑Environment.NewLine}{Environment.NewLine}");
             }
+            QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
             return content;
         }
 
@@ -874,6 +897,10 @@
         {
             return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskStatus.Created);
         }
+        public Dt_Task QueryOutFireAlarmTask(string deviceNo)
+        {
+            return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm && x.TaskState == (int)TaskOutStatusEnum.OutNew);
+        }
 
         public Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress)
         {
@@ -891,5 +918,21 @@
             }
             return wcsBasez + address;
         }
+
+        #region 閲嶅啓鏂规硶
+
+        public override WebResponseContent DeleteData(object[] key)
+        {
+            foreach (var item in key)
+            {
+                var task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(item));
+                var taskHty = task.Adapt<Dt_Task_Hty>();
+                taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+                _taskHtyRepository.AddData(taskHty);
+            }
+            return base.DeleteData(key);
+        }
+
+        #endregion 閲嶅啓鏂规硶
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3