From a8f4641741af34ffbe5fd565003cc5d55bbec119 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <1247017146@qq.com> Date: 星期五, 25 四月 2025 09:49:50 +0800 Subject: [PATCH] 添加火警任务 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 88 ++++++++++++++++++++++++++++++------------- 1 files changed, 61 insertions(+), 27 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs index 15e1663..2d64804 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs @@ -39,6 +39,8 @@ private readonly IDt_StationManagerRepository _stationManagerRepository; private readonly ITask_HtyRepository _htyRepository; private readonly ISys_ConfigService _sys_ConfigService; + private static List<string>? userTokenIds; + private static List<int>? userIds; public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository, ISys_ConfigService sys_ConfigService) { @@ -58,15 +60,10 @@ { try { - // speStackerCrane.GetStackerCraneStatus<StackerCraneAutoStatus>(); - // speStackerCrane.GetStackerCraneStatus<StackerCraneWorkStatus>(); - // speStackerCrane.GetStackerCraneStatus<StackerCraneStatus>(); CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); if (commonStackerCrane != null) { - //EqptAlive(commonStackerCrane); - //Console.Out.WriteLine(commonStackerCrane.DeviceName); if (!commonStackerCrane.IsEventSubscribed) { commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 @@ -90,6 +87,8 @@ if (taskNum == 0) { ConsoleHelper.WriteColorLine($"銆恵commonStackerCrane.DeviceName}銆戜换鍔″彿涓恒�恵0}銆�,浠诲姟鍙蜂笉涓�鑷村彲浠ヤ笅鍙戜换鍔�", ConsoleColor.DarkBlue); + + Thread.Sleep(1000); bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); if (sendFlag) { @@ -161,8 +160,11 @@ { if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) { - //Console.Out.WriteLine("TaskCompleted" + e.TaskNum); - ConsoleHelper.WriteColorLine($"銆恵commonStackerCrane.DeviceName}銆戜换鍔″畬鎴�,浠诲姟鍙凤細銆恵e.TaskNum}銆�", ConsoleColor.Blue); + ConsoleHelper.WriteColorLine($"銆恵commonStackerCrane.DeviceName}銆戝爢鍨涙満浣滀笟鐘舵�侊細銆恵(int)commonStackerCrane.StackerCraneWorkStatusValue}銆戞椂闂淬�恵DateTime.Now}銆�", ConsoleColor.Magenta); + + string str = $"銆恵commonStackerCrane.DeviceName}銆戜换鍔″畬鎴�,浠诲姟鍙凤細銆恵e.TaskNum}銆戞椂闂淬�恵DateTime.Now}銆�"; + WriteInfo(commonStackerCrane.DeviceName, str); + ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue); var task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); if (task == null) commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); @@ -189,19 +191,23 @@ return; } - _taskService.StackCraneTaskCompleted(e.TaskNum); + var content = _taskService.StackCraneTaskCompleted(e.TaskNum); if (commonStackerCrane.DeviceCode.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) { task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); + _taskService.UpdateData(newTask); } - if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && (task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001")) + if ((task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && (task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001"))|| task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) { var TASKHTY = task.Adapt<Dt_Task_Hty>(); _taskRepository.DeleteData(task); _htyRepository.AddData(TASKHTY); } - commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + var isWorkType = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + str = $"{commonStackerCrane.DeviceName}銆慦MS|WCS浠诲姟瀹屾垚锛氥�恵content.Status}銆�,鍫嗗灈鏈哄畬鎴愪俊鍙峰啓鍏ワ細銆恵isWorkType}銆�,浠诲姟鍙凤細銆恵e.TaskNum}銆戞椂闂淬�恵DateTime.Now}銆�"; + WriteInfo(commonStackerCrane.DeviceName, str); + ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue); } } } @@ -214,6 +220,12 @@ private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) { Dt_Task task; + task = _taskService.QueryOutFireAlarmTask(commonStackerCrane.DeviceCode); + if (task != null) + { + return task; + } + if (commonStackerCrane.LastTaskType == null) { task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); @@ -242,19 +254,30 @@ if (occupiedStation == null) { // 濡傛灉褰撳墠鍑哄簱浠诲姟绔欏彴涓嶅厑璁告斁璐э紝鎺掗櫎褰撳墠浠诲姟锛屾煡鎵惧叾浠栧嚭搴撲换鍔� - ConsoleHelper.WriteErrorLine($"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣"); + + var log = $"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣"; + ConsoleHelper.WriteErrorLine(log); + + _noticeService.Logs(userTokenIds, new { commonStackerCrane.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + WriteInfo(commonStackerCrane.DeviceName, log); + task = FindAnotherOutboundTask(commonStackerCrane.DeviceCode, task.TaskId); + + if (task == null) + { + task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); + } } else { return task; } + } else if (task == null) { task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); } - return task; } @@ -312,26 +335,33 @@ } else { - //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); - if (router != null) + if ((task.NextAddress == ("002-021-001") || task.NextAddress == ("001-021-001")) && task.Roadway.Contains("JZ")) { - IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); - if (device != null) + return task; + } + else + { + //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); + if (router != null) { - CommonConveyorLine conveyorLine = (CommonConveyorLine)device; - if (conveyorLine.IsOccupiedx(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 + IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); + if (device != null) { - return task; + CommonConveyorLine conveyorLine = (CommonConveyorLine)device; + if (conveyorLine.IsOccupiedx(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 + { + return task; + } + } + else + { + _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤"); } } else { - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤"); + _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴"); } - } - else - { - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴"); } } return null; @@ -362,7 +392,11 @@ { return candidateTask; } - ConsoleHelper.WriteErrorLine($"浠诲姟鍙凤細銆恵candidateTask.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵candidateTask.NextAddress}銆戜笉鍏佽鏀捐揣"); + var log = $"浠诲姟鍙凤細銆恵candidateTask.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵candidateTask.NextAddress}銆戜笉鍏佽鏀捐揣"; + ConsoleHelper.WriteErrorLine(log); + + _noticeService.Logs(userTokenIds, new { deviceCode, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + WriteInfo(deviceCode, log); } return null; @@ -448,7 +482,7 @@ } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { - if (task.Roadway.Contains("GW")) + if (task.Roadway.Contains("GW")|| task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) { string[] endCodes = task.NextAddress.Split("-"); stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]); @@ -461,7 +495,7 @@ } else { - if (task.TargetAddress == "002-021-001" && task.Roadway.Contains("JZ") && task.TaskType == (int)TaskOutboundTypeEnum.OutTray) + if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) || task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) { string[] endCodes = task.NextAddress.Split("-"); stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]); -- Gitblit v1.9.3