From c6265b1f32a6c6c4e4dd478efe27d23e7d825859 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 12 十一月 2025 16:40:25 +0800
Subject: [PATCH] 优化任务逻辑,新增API支持动态货位更新重构任务处理逻辑,支持基于区域的任务分配,优化货位状态更新,减少重复代码 更新项目路径和文档路径,反映文件结构调整。 新增 UpdateStartLocationInfo和RequestLocationAPI 方法,支持动态更新货位信息。
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 85 +++++++++++++++++++++++++++++-------------
1 files changed, 59 insertions(+), 26 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index 9152ae9..10d932b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -82,40 +82,73 @@
if (conmmand != null)
{
var structs = BitConverter.GetBytes(conmmand.InteractiveSignal).Reverse().ToArray().ToBoolArray();
- if (structs[2])
+ if (structs[0] )
{
- var task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
- if (task != null)
+ var taskIn = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
+ var taskOut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish);
+ var taskPut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.AGV_InFinish);
+ if (taskPut != null)
{
- task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
- task.CurrentAddress = task.NextAddress;
- //鑾峰彇WMS璐т綅淇℃伅
- task.NextAddress = task.TargetAddress;
- _taskRepository.UpdateData(task);
- }
- }
-
- if (structs[0])
- {
- var task = _taskService.QueryRequestConveyorLineSignalTask();
-
- if (task != null && task.AGVSign == "RequestPickUp")
- {
- if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
+ if (conmmand.ConveyorLineTaskNum == 0)
{
- await _taskService.ContinueAgvTask(task.AGVTaskNum);
- task.AGVSign = "";
- task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
- _taskRepository.UpdateData(task);
+ conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9990));
+ conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskPut.TaskNum));
+ _taskService.UpdateTaskStatusToNext(taskPut.TaskNum);
}
}
- if (task != null && task.AGVSign == "RequestPut")
+ if (taskIn != null)
{
+ if (structs[2] && structs[1])
+ {
+ WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskIn.TaskNum);
+ WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
+ }
+ }
+ if (taskOut != null)
+ {
+ if (conmmand.ConveyorLineTaskNum == 0)
+ {
+ if (structs[2] && structs[1])
+ {
+ conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+ conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskOut.TaskNum));
+ }
+ WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskOut.TaskNum);
+ if (content.Status)
+ {
+ _taskService.SendAgvTask("LKQU", taskOut.TaskNum);
+ }
+ WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
+ }
+ }
+
+ var taskSignal = _taskService.QueryRequestConveyorLineSignalTask();
+
+ if (taskSignal != null && taskSignal.AGVSign == "RequestPickUp")
+ {
+ if (!structs[3])
+ {
+ conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+ }
+ if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
+ {
+ await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
+ taskSignal.AGVSign = "";
+ taskSignal.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
+ _taskRepository.UpdateData(taskSignal);
+ }
+ }
+ if (taskSignal != null && taskSignal.AGVSign == "RequestPut")
+ {
+ if (!structs[3])
+ {
+ conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+ }
if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
{
- await _taskService.ContinueAgvTask(task.AGVTaskNum);
- task.AGVSign = "";
- _taskRepository.UpdateData(task);
+ await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
+ taskSignal.AGVSign = "";
+ _taskRepository.UpdateData(taskSignal);
}
}
--
Gitblit v1.9.3