From 7b5ea29f32106ea9b0105063cd74adeb25736e98 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期六, 22 六月 2024 09:54:33 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java | 96 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 78 insertions(+), 18 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
index 3471fbb..10c3fba 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.wcs.core.action.LiftAction;
import com.zy.asrs.wcs.core.entity.Motion;
+import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.model.command.LiftAssignCommand;
import com.zy.asrs.wcs.core.model.command.LiftCommand;
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
@@ -21,6 +22,7 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -50,15 +52,20 @@
return false;
}
- //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
- if (!liftThread.isIdle()) {
- return false;
- }
-
if (motionService.count(new LambdaQueryWrapper<Motion>()
.eq(Motion::getDeviceCtg, DeviceCtgType.LIFT.val())
.eq(Motion::getDevice, motion.getDevice())
.eq(Motion::getMotionSts, MotionStsType.EXECUTING.val())) > 0) {
+ return false;
+ }
+
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo()));
+ if (task == null) {
+ return false;
+ }
+ task.setLiftNo(liftProtocol.getLiftNo());
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
return false;
}
@@ -71,6 +78,11 @@
List<LiftCommand> command = new ArrayList<>();
switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
case LIFT_MOVE:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+
// 濡傛灉宸茬粡鍦ㄧ洰鏍囧眰锛岄偅杈瑰眰杩囨护
if (liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
liftThread.setSyncTaskNo(motion.getTaskNo());
@@ -81,6 +93,10 @@
list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_GOODS:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
// if (liftProtocol.getHasTray()) {
// return false;
// }
@@ -89,6 +105,11 @@
list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_SHUTTLE:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+
if (!liftProtocol.getHasCar()) {
return false;
}
@@ -97,20 +118,46 @@
list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_GOODS_AND_SHUTTLE:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+
return false;
-// if (!liftProtocol.getPlatShuttleCheck()) {
-// return false;
-// }
-//
-// command = liftThread.getLiftUpDownCommand(Integer.parseInt(motion.getTarget()));
-// command.setLiftNo(deviceNo.shortValue());
-// command.setTaskNo(motion.getWrkNo().shortValue());
-// return liftThread.assignWork(command);
case LIFT_TRANSPORT_TO_CONVEYOR:
return false;
+ case LIFT_LOCK:
+ //閿佸畾鎻愬崌鏈�
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle(MotionCtgType.LIFT_LOCK)) {
+ return false;
+ }
+
+ command = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
+ list.addAll(command);
+ return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+ case LIFT_UNLOCK:
+ //瑙i攣鎻愬崌鏈�
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle(MotionCtgType.LIFT_UNLOCK)) {
+ return false;
+ }
+
+ command = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В瀹氬懡浠�
+ list.addAll(command);
+ return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+ case LIFT_SHUTTLE_ARRIVAL:
+ //鎻愬崌鏈�-灏忚溅宸插埌浣�
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle(MotionCtgType.LIFT_SHUTTLE_ARRIVAL)) {
+ return false;
+ }
+
+ command = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠�
+ list.addAll(command);
+ return liftAction.assignWork(liftThread.getDevice(), assignCommand);
default:
break;
-
}
return Boolean.TRUE;
@@ -149,10 +196,6 @@
return false;
}
-// if (!liftProtocol.getLineFrontHasStock() || !liftProtocol.getLineEndHasStock()) {
-// return false;
-// }
-
if (!liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
return false;
}
@@ -183,6 +226,10 @@
return false;
}
+ if (!liftProtocol.getHasTray()) {
+ return false;
+ }
+
if (!liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
return false;
}
@@ -191,6 +238,19 @@
case LIFT_TRANSPORT_TO_CONVEYOR:
break;
+ case LIFT_LOCK:
+ if (!liftThread.isLock(null)) {
+ return false;
+ }
+ break;
+ case LIFT_UNLOCK:
+ if (liftThread.isLock(null)) {
+ return false;
+ }
+ break;
+ case LIFT_SHUTTLE_ARRIVAL:
+
+ break;
default:
return false;
}
--
Gitblit v1.9.1