From 257d09aff7ec7b858b037607869d23ec61ac75bc Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 19 八月 2025 09:03:49 +0800
Subject: [PATCH] 1
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 12 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
index 397c4a8..5574504 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
@@ -107,6 +107,7 @@
commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
{
+ Thread.Sleep(1000);
Dt_Task? task = GetTask(commonStackerCrane);
if (task != null)
{
@@ -120,6 +121,8 @@
task.Dispatchertime = DateTime.Now;
task.ExceptionMessage = "";
_taskService.UpdateTask(task, TaskStatusEnum.SC_Executing);
+ //寤舵椂1s
+ Thread.Sleep(1000);
}
}
}
@@ -194,13 +197,17 @@
return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
}
}
- if (task.TargetAddress.Contains("SCUTL-001"))
+ if (task.TargetAddress.Contains("SCUTL-001")) //鑷姩涓�绾�
{
_taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: router.NextPosi);
}
- else
+ else if (task.TargetAddress.Contains("SCUTL-002")) //鑷姩浜岀嚎
{
- _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: "1102");
+ _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: "1103", targetAddress: "1103");
+ }
+ else //鎵嬪姩绾�
+ {
+ _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: "1102", targetAddress: "1102");
}
}
@@ -246,7 +253,12 @@
//}
}
catch { }
-
+ if (_taskRepository.QueryFirst(x => x.DeviceCode == commonStackerCrane.DeviceCode && x.TaskState==TaskStatusEnum.SC_Executing.ObjToInt())!=null)
+ {
+ return null;
+ }
+
+ WriteDebug(commonStackerCrane.DeviceCode, $"璇诲彇鍒板綋鍓嶄换鍔″彿:{commonStackerCrane.CurrentTaskNum}");
Dt_Task task;
if (commonStackerCrane.LastTaskType == null)
{
@@ -277,7 +289,7 @@
if (OutTaskStationIsOccupied(task) == null)
{
bool flag = false;
- List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
+ List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress,task.TaskType).Select(x => x.ChildPosi).ToList();
List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
foreach (var item in tasks)
{
@@ -336,13 +348,33 @@
else
{
Dt_Task reloTask = _mapper.Map<Dt_Task>(taskDTO);
- reloTask.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
- reloTask.CurrentAddress = taskDTO.SourceAddress;
- reloTask.NextAddress = taskDTO.TargetAddress;
- reloTask.DeviceCode = task.DeviceCode;
- reloTask.TaskType = TaskTypeEnum.Relocation.ObjToInt();
- int taskId = _taskRepository.AddData(reloTask);
- reloTask.TaskId = taskId;
+ //鍒ゆ柇绉诲簱璐т綅浠诲姟鏄惁宸插瓨鍦紝濡傚瓨鍦ㄥ厛鎵ц
+ Dt_Task existTask = _taskService.QueryStackerExistTask(reloTask.PalletCode, reloTask.SourceAddress);
+ if (existTask != null && existTask.TaskState == (int)TaskStatusEnum.SC_Execute)
+ {
+ return existTask;
+ }
+ else if (existTask != null && existTask.TaskState == (int)TaskStatusEnum.MesPending) //鍒ゆ柇鎸傝捣
+ {
+ existTask.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+ task.TaskState=TaskStatusEnum.MesPending.ObjToInt();
+ _taskRepository.UpdateData(existTask);
+ _taskRepository.UpdateData(task);
+ }
+ else if (existTask != null && existTask.TaskState != (int)TaskStatusEnum.SC_Execute && existTask.TaskState != (int)TaskStatusEnum.MesPending)
+ {
+ return null;
+ }
+ else
+ {
+ reloTask.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+ reloTask.CurrentAddress = taskDTO.SourceAddress;
+ reloTask.NextAddress = taskDTO.TargetAddress;
+ reloTask.DeviceCode = task.DeviceCode;
+ reloTask.TaskType = TaskTypeEnum.Relocation.ObjToInt();
+ int taskId = _taskRepository.AddData(reloTask);
+ reloTask.TaskId = taskId;
+ }
return reloTask;
}
--
Gitblit v1.9.3