From 0eacf47294055d7c292999b3167cbaf6938e50cc Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 12 六月 2024 16:56:26 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java | 63 ++++++++++++++++++++++++++++++-
1 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
index 362443f..1cb6c4e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
@@ -41,7 +41,7 @@
@Autowired
private ShuttleCommandService shuttleCommandService;
-// @Scheduled(cron = "0/1 * * * * ? ")
+ @Scheduled(cron = "0/1 * * * * ? ")
public synchronized void executeTask() {
Date now = new Date();
// ANALYZE_INBOUND
@@ -226,6 +226,63 @@
}
@Scheduled(cron = "0/1 * * * * ? ")
+ public synchronized void executeMoveTask() {
+ Date now = new Date();
+ // ANALYZE_MOVE
+ for (Task task : taskService.selectMoveByAnalyzeSts()) {
+ Motion executingMotion = motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId());
+ if (executingMotion != null) {//瀛樺湪姝e湪鎵ц鐨刴otion
+ continue;
+ }
+
+ Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId());
+ if (null != motion) {
+ boolean result = this.executeMotion(motion);
+ if (!result) {
+ continue;
+ }
+ // 鏇存柊Task
+ switch (TaskStsType.query(task.getTaskSts())) {
+ case ANALYZE_MOVE:
+ task.setTaskSts(TaskStsType.EXECUTE_MOVE.sts);
+ break;
+ }
+ task.setUpdateTime(now);
+ if (!taskService.updateById(task)) {
+ log.error("{}鍏朵粬宸ヤ綔妗f洿鏂扮姸鎬佸け璐ワ紒", task.getTaskNo());
+ }
+ }
+ }
+ // EXECUTE_MOVE
+ for (Task task : taskService.selectMoveByExecuteSts()) {
+ if (!motionService.hasRunningMotion(task.getUuid(), task.getHostId())) {
+ Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.WAITING.val(), task.getHostId());
+ if (null != motion) {
+ boolean result = this.executeMotion(motion);
+ if (!result) {
+ continue;
+ }
+ } else {
+ if (motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId()) != null) {
+ continue;
+ }
+
+ // 鏇存柊Task
+ switch (TaskStsType.query(task.getTaskSts())) {
+ case EXECUTE_MOVE:
+ task.setTaskSts(TaskStsType.COMPLETE_MOVE.sts);
+ break;
+ }
+ task.setUpdateTime(now);
+ if (!taskService.updateById(task)) {
+ log.error("{}浠栧伐浣滄。鏇存柊鐘舵�佸け璐ワ紒", task.getTaskNo());
+ }
+ }
+ }
+ }
+ }
+
+ @Scheduled(cron = "0/1 * * * * ? ")
public void scanMotionByExecuting() {
List<Motion> motionList = motionService.selectBySts(MotionStsType.EXECUTING.val());
for (Motion motion : motionList) {
@@ -237,7 +294,7 @@
Boolean executeRes = Boolean.FALSE;
switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl())).deviceCtg) {
case CONVEYOR:
-// executeRes = conveyorCommandService.accept(motion);
+ executeRes = conveyorCommandService.accept(motion);
break;
case CRANE:
executeRes = craneCommandService.accept(motion);
@@ -284,7 +341,7 @@
executeRes = shuttleCommandService.finish(motion);
break;
case CONVEYOR:
-// executeRes = conveyorCommandService.finish(motion);
+ executeRes = conveyorCommandService.finish(motion);
break;
default:
break;
--
Gitblit v1.9.1