From 901f9ca15fb0ce3bcf2ebf956c569c260050c561 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 07 四月 2025 13:10:54 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java | 51 ++++++-------------------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java | 25 ++++++++++--
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LiftCommandModeType.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java | 8 ++-
zy-asrs-wcs/src/main/resources/application.yml | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java | 22 +++++++++-
6 files changed, 58 insertions(+), 52 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
index 1946db0..b727735 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
@@ -6,6 +6,7 @@
import com.zy.asrs.wcs.core.model.command.*;
import com.zy.asrs.wcs.core.model.enums.LiftCommandModeType;
import com.zy.asrs.wcs.core.service.TaskService;
+import com.zy.asrs.wcs.core.utils.LiftDispatcher;
import com.zy.asrs.wcs.core.utils.RedisUtil;
import com.zy.asrs.wcs.rcs.News;
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
@@ -33,6 +34,8 @@
private TaskService taskService;
@Autowired
private BasLiftOptService basLiftOptService;
+ @Autowired
+ private LiftDispatcher liftDispatcher;
public synchronized boolean assignWork(Device device, LiftAssignCommand assignCommand) {
LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getId().intValue());
@@ -109,9 +112,22 @@
if (liftProtocol.getLev() == command.getTargetLev()) {
command.setComplete(true);
}
- } else if (command.getMode() == LiftCommandModeType.PALLET_INOUT.id) {
- //鎵樼洏鍑哄叆
- if (liftProtocol.getLev() == command.getTargetLev()) {
+ } else if (command.getMode() == LiftCommandModeType.PALLET_IN.id) {
+ //鎵樼洏鍏�
+ Integer target = liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), command.getTargetLev());
+ if (liftProtocol.getLev() == target) {
+ command.setComplete(true);
+ }
+
+ //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+ if (!liftProtocol.getHasTray()) {
+ return false;
+ }
+
+ } else if (command.getMode() == LiftCommandModeType.PALLET_OUT.id) {
+ //鎵樼洏鍑�
+ Integer target = liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), command.getTargetLev());
+ if (liftProtocol.getLev() == target) {
command.setComplete(true);
}
@@ -119,7 +135,6 @@
if (liftProtocol.getHasTray()) {
return false;
}
-
} else if (command.getMode() == LiftCommandModeType.RESET.id) {
//澶嶄綅
command.setComplete(true);
@@ -203,7 +218,7 @@
if (command.getMode() == LiftCommandModeType.MOVE.id) {
response = liftThread.move(command);
- } else if (command.getMode() == LiftCommandModeType.PALLET_INOUT.id) {
+ } else if (command.getMode() == LiftCommandModeType.PALLET_IN.id || command.getMode() == LiftCommandModeType.PALLET_OUT.id) {
response = liftThread.palletInOut(command);
} else if (command.getMode() == LiftCommandModeType.LOCK.id) {
response = liftThread.lock(command);
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 615f3a8..63e1026 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
@@ -12,6 +12,7 @@
import com.zy.asrs.wcs.core.model.enums.MotionStsType;
import com.zy.asrs.wcs.core.service.MotionService;
import com.zy.asrs.wcs.core.service.TaskService;
+import com.zy.asrs.wcs.core.utils.LiftDispatcher;
import com.zy.asrs.wcs.core.utils.Utils;
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType;
@@ -42,6 +43,8 @@
private TaskService taskService;
@Autowired
private LiftAction liftAction;
+ @Autowired
+ private LiftDispatcher liftDispatcher;
public Boolean accept(Motion motion) {
Integer deviceNo = Integer.parseInt(motion.getDevice());
@@ -242,21 +245,22 @@
return false;
}
- if (!liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
+ Integer target = liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget()));
+ if (!liftProtocol.getLev().equals(target)) {
return false;
}
//鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
- if (liftProtocol.getHasTray()) {
+ if (!liftProtocol.getHasTray()) {
return false;
}
- //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
- Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, conveyorDeviceId);
- if (devpThread == null) {
- return false;
- }
+// //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
+// Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, conveyorDeviceId);
+// if (devpThread == null) {
+// return false;
+// }
// //*************姝や唬鐮佷负鏍囧噯鐗堟湰浠g爜********************
// StaProtocol staProtocol = devpThread.getStation().get(motion.getTarDrt());
@@ -279,37 +283,6 @@
// }
// }
// //*************************************************
-
- //*************姝や唬鐮佷负鍏夋嘲瀹氬埗浠g爜********************
- ArrayList<Integer> staList = new ArrayList<>();
- staList.add(motion.getTarDrt());
- staList.add(31003);
- staList.add(31002);
- staList.add(31001);
-
- boolean check = false;
- for (Integer sta : staList) {
- StaProtocol staProtocol = devpThread.getStation().get(sta);
- if (staProtocol == null) {
- continue;
- }
- if (!staProtocol.isAutoing()) {
- continue;
- }
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (Integer.parseInt(motion.getTemp()) == staProtocol.getWorkNo().intValue()) {
- check = true;
- break;
- }
- }
-
- if (!check) {
- return false;
- }
- //*************************************************
-
if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
task.setLiftNo(0);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LiftCommandModeType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LiftCommandModeType.java
index 2ca1d57..0112801 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LiftCommandModeType.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LiftCommandModeType.java
@@ -4,7 +4,7 @@
NONE(-1, "鏈煡绫诲瀷"),
MOVE(1, "鎻愬崌鏈哄崌闄�"),
-// PALLET_INOUT(2, "鎵樼洏鍑哄叆"),
+ PALLET_INOUT(2, "鎵樼洏鍑哄叆"),
LOCK(3, "閿佸畾鎻愬崌鏈�"),
UNLOCK(4, "瑙i攣鎻愬崌鏈�"),
RESET(5, "澶嶄綅"),
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
index 8460486..3489ab7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
@@ -208,15 +208,15 @@
return standby.getLockPath$();
}
- public Integer getLiftLevOffset(Integer deviceId,Integer lev) {
+ public Integer getLiftLevOffset(Integer deviceId, Integer lev) {
BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getDeviceId, deviceId));
if (basLift != null) {
- if(Cools.isEmpty(basLift.getLevOffset())) {
+ if (Cools.isEmpty(basLift.getLevOffset())) {
return lev;
}
List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
- if(lev == offsetDto.getLogicLev()){
+ if (lev == offsetDto.getLogicLev()) {
return offsetDto.getRealLev();
}
}
@@ -224,4 +224,20 @@
return lev;
}
+ public Integer getLiftLevLogic(Integer deviceId, Integer lev) {
+ BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getDeviceId, deviceId));
+ if (basLift != null) {
+ if (Cools.isEmpty(basLift.getLevOffset())) {
+ return lev;
+ }
+ List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
+ for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
+ if (lev == offsetDto.getRealLev()) {
+ return offsetDto.getLogicLev();
+ }
+ }
+ }
+ return lev;
+ }
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
index 09eb424..4bc441c 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
@@ -111,9 +111,11 @@
resThread = this.searchDiffLevShuttle(diffLevDeviceMap, locNo, task);
}
- Task result = generateMoveTask(resThread.getDevice(), locNo);
- if (result != null) {
- return resThread.getDevice();
+ if (resThread != null) {
+ Task result = generateMoveTask(resThread.getDevice(), locNo);
+ if (result != null) {
+ return resThread.getDevice();
+ }
}
News.info("{}鐩爣搴撲綅娌℃湁鎼滅储鍒板彲鐢ㄧ┛姊溅", locNo);
diff --git a/zy-asrs-wcs/src/main/resources/application.yml b/zy-asrs-wcs/src/main/resources/application.yml
index cf23a0d..2f2fc6e 100644
--- a/zy-asrs-wcs/src/main/resources/application.yml
+++ b/zy-asrs-wcs/src/main/resources/application.yml
@@ -34,7 +34,7 @@
redis:
host: 127.0.0.1
port: 6379
- database: 1
+ database: 3
password:
mybatis-plus:
--
Gitblit v1.9.1