From 6182cc11c3e93610df7fda87611d2ca807c6354c Mon Sep 17 00:00:00 2001
From: qlsxk <qlsxk@qq.com>
Date: 星期四, 16 十月 2025 14:28:30 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/action/ForkLiftAction.java | 58 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 45 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/core/action/ForkLiftAction.java b/src/main/java/com/zy/core/action/ForkLiftAction.java
index 3c412e4..5866f9c 100644
--- a/src/main/java/com/zy/core/action/ForkLiftAction.java
+++ b/src/main/java/com/zy/core/action/ForkLiftAction.java
@@ -12,9 +12,7 @@
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CommandResponse;
-import com.zy.core.model.command.ForkLiftCommand;
-import com.zy.core.model.command.LiftAssignCommand;
-import com.zy.core.model.command.LiftRedisCommand;
+import com.zy.core.model.command.*;
import com.zy.core.model.protocol.ForkLiftProtocol;
import com.zy.core.thread.ForkLiftThread;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +31,7 @@
@Autowired
private BasLiftOptService basLiftOptService;
- public synchronized boolean assignWork(Integer liftNo, LiftAssignCommand assignCommand) {
+ public synchronized boolean assignWork(Integer liftNo, ForkLiftAssignCommand assignCommand) {
ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
if (forkLiftThread == null) {
return false;
@@ -44,14 +42,14 @@
return false;
}
- LiftRedisCommand redisCommand = new LiftRedisCommand();
+ ForkLiftRedisCommand redisCommand = new ForkLiftRedisCommand();
redisCommand.setLiftNo(assignCommand.getLiftNo());//鎻愬崌鏈哄彿
redisCommand.setWrkNo(assignCommand.getTaskNo());//宸ヤ綔鍙�
redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭
redisCommand.setAssignCommand(assignCommand);//鍛戒护
//浠诲姟鏁版嵁淇濆瓨鍒皉edis
if (redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) {
- forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo().intValue());
+ forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo());
return true;
}
return false;
@@ -63,12 +61,12 @@
return false;
}
- WrkMast wrkMast = wrkMastService.selectByWorkNo(taskNo);
- if (wrkMast == null) {
- return false;
- }
+// WrkMast wrkMast = wrkMastService.selectByWorkNo(taskNo);
+// if (wrkMast == null) {
+// return false;
+// }
- LiftRedisCommand redisCommand = JSON.parseObject(obj.toString(), LiftRedisCommand.class);
+ ForkLiftRedisCommand redisCommand = JSON.parseObject(obj.toString(), ForkLiftRedisCommand.class);
if (redisCommand == null) {
return false;
}
@@ -88,7 +86,7 @@
return false;
}
- LiftAssignCommand assignCommand = redisCommand.getAssignCommand();
+ ForkLiftAssignCommand assignCommand = redisCommand.getAssignCommand();
int commandStep = redisCommand.getCommandStep();
if (commandStep == 0) {
@@ -96,7 +94,7 @@
ForkLiftCommand command = commands.get(commandStep);
//鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
- if (!forkLiftThread.isIdle()) {
+ if (!forkLiftThread.isDeviceIdle()) {
return false;
}
@@ -148,8 +146,42 @@
response = forkLiftThread.pickAndPut(command);
} else if (command.getMode().intValue() == ForkLiftTaskModeType.SHUTTLE_SWITCH.id) {
response = forkLiftThread.shuttleSwitch(command);
+ } else if (command.getMode().intValue() == ForkLiftTaskModeType.MOVE.id) {
+ response = forkLiftThread.move(command);
}
return response;
}
+ //鐢宠鎻愬崌鏈鸿祫婧�
+ public synchronized boolean applyForkLift(Integer liftNo, Integer waitBindTaskNo) {
+ ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
+ if (forkLiftThread == null) {
+ return false;
+ }
+ ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
+ if (forkLiftProtocol == null) {
+ return false;
+ }
+ if (!forkLiftThread.isIdle()) {
+ return false;
+ }
+
+ List<WrkMast> wrkMasts = wrkMastService.selectLiftWrkMast(liftNo);
+ if (!wrkMasts.isEmpty()) {
+ return false;
+ }
+
+ if (waitBindTaskNo != null) {
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(waitBindTaskNo);
+ if (wrkMast == null) {
+ return false;
+ }
+
+ wrkMast.setLiftNo(liftNo);
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ }
+ return true;
+ }
+
}
--
Gitblit v1.9.1