From abff6261e5e74ff16a844f4739f84d49b6133000 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期六, 15 二月 2025 13:01:02 +0800
Subject: [PATCH] 新增分容空框出库功能及代码结构优化
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 46 +++++++++++++++++++++++++++++++++-------------
1 files changed, 33 insertions(+), 13 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 9afc6ee..25b0ab3 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,7 +191,7 @@
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);
@@ -201,7 +203,10 @@
_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);
}
}
}
@@ -242,19 +247,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;
}
@@ -369,7 +385,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;
@@ -468,7 +488,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"))
{
string[] endCodes = task.NextAddress.Split("-");
stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]);
--
Gitblit v1.9.3