From 36c6d6b39e2b76080480c5bc90a412d711b76144 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 19 六月 2024 15:54:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/Four-Way-Rack' into Four-Way-Rack
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 102 ++++++++++++++++----
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java | 9 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java | 36 -------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java | 1
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java | 7 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyLiftThread.java | 20 +--
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java | 77 +++++++--------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 28 ++--
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/LiftThread.java | 14 +-
9 files changed, 156 insertions(+), 138 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 c8c57b0..810f4a3 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
@@ -114,7 +114,6 @@
//瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
liftThread.setProtocolStatus(LiftProtocolStatusType.WAITING);
- liftThread.commandFinished(taskNo);//璋冪敤瀹屾垚鍚庣画鎸囦护(閮ㄥ垎鎻愬崌鏈烘湁鍚庣画鎸囦护锛屽疄闄呮儏鍐电湅鏄惁鏈夌湡姝e疄鐜版柟娉�)
redisUtil.del(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo);
return false;//绂佹鍐嶄笅鍙戝懡浠�
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
index 47e9dc2..f6c96a9 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -56,12 +56,6 @@
public List<Motion> generateMotion(Task task) {
List<Motion> motionList = new ArrayList<>();
-// switch (Objects.requireNonNull(WorkZoneType.query(task.getTaskSts() == TaskStsType.NEW_INBOUND.sts ? task.getOriginSite() : task.getDestSite()))) {
-// case FIRST_ZONE:
-// motionList = this.generateFirstZoneMotion(task);
-// break;
-// default:
-// }
motionList = this.generateFirstZoneMotion(task);
return motionList;
}
@@ -81,21 +75,86 @@
* 5.绌挎杞﹀叆搴撹嚦鐩爣搴撲綅
*/
if (task.getTaskSts() == TaskStsType.NEW_INBOUND.sts) {
-// // lift
-// LiftThread liftThread = liftDispatcher.queryLiftForTransport(task.getOriginSite());
-// LiftProtocol liftProtocol = liftThread.getStatus();
-// if (liftProtocol == null) {
-// return motionList;
-// }
+ // locNo
+ String destLoc = task.getDestLoc();
+
+ // shuttle
+ Device shuttleDevice = deviceService.getOne(new LambdaQueryWrapper<Device>()
+ .eq(Device::getDeviceNo, task.getShuttleNo())
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
+ .eq(Device::getHostId, task.getHostId())
+ .eq(Device::getStatus, 1));
+ if (shuttleDevice == null) {
+ return motionList;
+ }
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleDevice.getId().intValue());
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null || shuttleProtocol.getShuttleNo() == null) {
+ return motionList;
+ }
+ if (!shuttleThread.isIdle()) {
+ return motionList;
+ }
+
+ String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
+
+ //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑绌洪棽鍙崲灞傛彁鍗囨満
+ LiftThread liftThread = liftDispatcher.searchIdleLift(shuttleLocNo, task.getHostId(), true);
+ if (liftThread == null) {
+ return motionList;
+ }
+ Device transferLiftDevice = liftThread.getDevice();
+
+ LiftProtocol liftProtocol = liftThread.getStatus();
+ if (liftProtocol == null || liftProtocol.getLiftNo() == null) {
+ return motionList;
+ }
+
+ //妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹�
+ boolean shuttleResult = Utils.checkShuttleHasBinding(shuttleDevice);
+ if (shuttleResult) {
+ //瀛樺湪浠诲姟锛岀姝㈣В鏋�
+ return motionList;
+ }
+
+ //妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹�
+ boolean liftResult = Utils.checkLiftHasBinding(Integer.parseInt(transferLiftDevice.getDeviceNo()));
+ if (liftResult) {
+ //瀛樺湪浠诲姟锛岀姝㈣В鏋�
+ return motionList;
+ }
+
+ //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
+ ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+ .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
+ .eq(ShuttleStandby::getDeviceLev, Utils.getLev(shuttleLocNo))
+ .eq(ShuttleStandby::getStatus, 1));
+
+ //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 鍑烘彁鍗囨満
+ ShuttleStandby shuttleStandbyFrom = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+ .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
+ .eq(ShuttleStandby::getDeviceLev, Utils.getLev(destLoc))
+ .eq(ShuttleStandby::getStatus, 1));
+ if (shuttleStandbyTo == null || shuttleStandbyFrom == null) {
+ return motionList;
+ }
+
+ //绌挎杞﹁繘鎻愬崌鏈哄簱浣嶅彿
+ String liftLocNoTo = shuttleStandbyTo.getDeviceLoc();
+
+ //绌挎杞﹀嚭鎻愬崌鏈哄簱浣嶅彿
+ String liftLocNoFrom = shuttleStandbyFrom.getDeviceLoc();
+
+ //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙�
+ String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
+
+ //绌挎杞﹀嚭鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙�
+ String standbyLocNoFrom = shuttleStandbyFrom.getDeviceStandbyLoc();
// shuttle
// ShuttleThread shuttleThread = shuttleDispatcher.queryShuttleWhichConvenient(task, Integer.parseInt(liftThread.getStatus().getLiftNo()));
// ShuttleThread shuttleThread = shuttleDispatcher.queryShuttleWhichConvenient(task, 1);
- ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 6);
- if (Cools.isEmpty(shuttleThread)) { return motionList; }
- ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
// String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
- String shuttleLocNo = "0100201";
// // conveyor
// DevpSlave devpSlave = conveyorDispatcher.queryByInBound(task.getSourceStaNo());
@@ -747,12 +806,13 @@
String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
- // lift
- Device transferLiftDevice = Utils.getRecentTransferLift(shuttleLocNo, shuttleProtocol.getShuttleNo());
- if (transferLiftDevice == null) {
+ //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑绌洪棽鍙崲灞傛彁鍗囨満
+ LiftThread liftThread = liftDispatcher.searchIdleLift(shuttleLocNo, task.getHostId(), true);
+ if (liftThread == null) {
return motionList;
}
- LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, transferLiftDevice.getId().intValue());
+ Device transferLiftDevice = liftThread.getDevice();
+
LiftProtocol liftProtocol = liftThread.getStatus();
if (liftProtocol == null || liftProtocol.getLiftNo() == null) {
return motionList;
@@ -853,7 +913,7 @@
MotionCtgType.SHUTTLE_MOVE_TO_LIFT
));
- // 鎻愬崌鏈烘惉杞� 鑷� 杈撻�佺嚎灞�
+ // 鎻愬崌鏈烘惉杞� 鑷� 鍏呯數灞�
motionList.addAll(kernelService.liftMoveShuttle(
MotionDto.build((dto -> {
dto.setLiftNo(transferLiftDevice.getId().intValue());
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 0f6e51c..3471fbb 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
@@ -21,6 +21,7 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
/**
@@ -67,7 +68,7 @@
assignCommand.setTaskNo(motion.getTaskNo());
assignCommand.setCommands(list);
- LiftCommand command = new LiftCommand();
+ List<LiftCommand> command = new ArrayList<>();
switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
case LIFT_MOVE:
// 濡傛灉宸茬粡鍦ㄧ洰鏍囧眰锛岄偅杈瑰眰杩囨护
@@ -77,7 +78,7 @@
}
command = liftThread.getMoveCommand(motion.getTaskNo(), 0, Integer.parseInt(motion.getTarget()), LiftCommandModeType.MOVE);
- list.add(command);
+ list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_GOODS:
// if (liftProtocol.getHasTray()) {
@@ -85,7 +86,7 @@
// }
command = liftThread.getPalletInOutCommand(motion.getTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), motion.getOriDrt(), motion.getTarDrt(), LiftCommandModeType.PALLET_INOUT);
- list.add(command);
+ list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_SHUTTLE:
if (!liftProtocol.getHasCar()) {
@@ -93,7 +94,7 @@
}
command = liftThread.getMoveWithShuttleCommand(motion.getTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), LiftCommandModeType.MOVE_CAR);
- list.add(command);
+ list.addAll(command);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_GOODS_AND_SHUTTLE:
return false;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
index 62e16cb..402c46e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
@@ -157,13 +157,13 @@
}
})) {
//閿佸畾鎻愬崌鏈�
- LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
+ List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(lockCommand);
+ list.addAll(lockCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
@@ -205,7 +205,7 @@
}
})) {
//閿佸畾鎻愬崌鏈�
- LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
+ List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
if (lockCommand == null) {
return false;
}
@@ -214,7 +214,7 @@
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(lockCommand);
+ list.addAll(lockCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
@@ -337,13 +337,13 @@
}
})) {
//瑙i攣鎻愬崌鏈�
- LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
+ List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(lockCommand);
+ list.addAll(lockCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
@@ -352,7 +352,7 @@
//鍒ゆ柇灏忚溅鏄惁宸插埌浣�
if (liftProtocol.getHasCar()) {
- LiftCommand signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠�
+ List<LiftCommand> signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠�
if(signalCommand != null) {
boolean hasKey = redisUtil.hasKey(DeviceRedisConstant.COMMAND_TMP + motion.getTaskNo());
if (!hasKey) {
@@ -360,7 +360,7 @@
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(signalCommand);
+ list.addAll(signalCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
return false;
@@ -397,13 +397,13 @@
}
})) {
//瑙i攣鎻愬崌鏈�
- LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
+ List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(lockCommand);
+ list.addAll(lockCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
@@ -412,7 +412,7 @@
//鍒ゆ柇灏忚溅鏄惁宸茬寮�
if (!liftProtocol.getHasCar()) {
- LiftCommand signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), false);//鑾峰彇灏忚溅宸查┚绂诲懡浠�
+ List<LiftCommand> signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), false);//鑾峰彇灏忚溅宸查┚绂诲懡浠�
if(signalCommand != null) {
boolean hasKey = redisUtil.hasKey(DeviceRedisConstant.COMMAND_TMP + motion.getTaskNo());
if (!hasKey) {
@@ -421,7 +421,7 @@
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(signalCommand);
+ list.addAll(signalCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
return false;
@@ -460,13 +460,13 @@
}
})) {
//瑙i攣鎻愬崌鏈�
- LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
+ List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠�
LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
liftAssignCommand.setTaskNo(motion.getTaskNo());
ArrayList<LiftCommand> list = new ArrayList<>();
- list.add(lockCommand);
+ list.addAll(lockCommand);
liftAssignCommand.setCommands(list);
liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
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 1226aa3..3f2c412 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
@@ -20,6 +20,7 @@
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.rcs.service.DeviceService;
+import com.zy.asrs.wcs.rcs.thread.LiftThread;
import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import com.zy.asrs.wcs.system.entity.Dict;
import com.zy.asrs.wcs.system.service.DictService;
@@ -126,10 +127,12 @@
continue;
}
- Device recentTransferLift = Utils.getRecentTransferLift(locNo, Integer.parseInt(device.getDeviceNo()));
- if (recentTransferLift == null) {
+ //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑绌洪棽鍙崲灞傛彁鍗囨満
+ LiftThread liftThread = liftDispatcher.searchIdleLift(locNo, task.getHostId(), true);
+ if (liftThread == null) {
continue;
}
+ Device recentTransferLift = liftThread.getDevice();
//鑾峰彇灏忚溅妤煎眰鎻愬崌鏈哄緟鏈轰綅
ShuttleStandby shuttleStandby = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
index 6c3b59b..d03039a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
@@ -207,40 +207,4 @@
return true;//鏈変换鍔$粦瀹�
}
- /**
- * 鑾峰彇璺濈鐩爣搴撲綅鏈�杩戠殑鎻愬崌鏈�
- */
- public static Device getRecentTransferLift(String locNo, Integer shuttleNo) {
- BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
- DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
- if (basLiftService == null) {
- return null;
- }
-
- Integer distance = Integer.MAX_VALUE;
- Long liftDeviceId = null;
- for (BasLift basLift : basLiftService.list(new LambdaQueryWrapper<BasLift>()
- .eq(BasLift::getStatus, 1)
- .eq(BasLift::getTransfer, 1))) {
- int lev = Utils.getLev(locNo);
- String liftLocNo = Utils.getLocNo(basLift.getRow(), basLift.getBay(), lev);
- List<NavigateNode> nodeList = NavigateUtils.calc(locNo, liftLocNo, NavigationMapType.NONE.id, Utils.getShuttlePoints(shuttleNo, Utils.getLev(locNo)));
- Integer originPathAllDistance = NavigateUtils.getOriginPathAllDistance(nodeList);//鎬昏窛绂�
- if (originPathAllDistance < distance) {
- distance = originPathAllDistance;
- liftDeviceId = basLift.getDeviceId();
- }
- }
-
- if (liftDeviceId == null) {
- return null;
- }
-
- Device device = deviceService.getById(liftDeviceId);
- if (device == null) {
- return null;
- }
- return device;
- }
-
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/LiftThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/LiftThread.java
index 775572c..58ea574 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/LiftThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/LiftThread.java
@@ -8,6 +8,8 @@
import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
+import java.util.List;
+
public interface LiftThread extends ThreadHandler{
LiftProtocol getStatus();//鑾峰彇鎻愬崌鏈虹姸鎬�
@@ -38,17 +40,15 @@
boolean isLock(ExecuteSupport support);
- boolean commandFinished(Integer taskNo);
-
//***************鑾峰彇鍛戒护*****************
- LiftCommand getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//鎻愬崌鏈虹Щ鍔�
+ List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//鎻愬崌鏈虹Щ鍔�
- LiftCommand getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//杞借溅绉诲姩
+ List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode);//杞借溅绉诲姩
- LiftCommand getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode);//鎵樼洏鍑哄叆
+ List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode);//鎵樼洏鍑哄叆
- LiftCommand getLockCommand(Integer taskNo, Boolean lock);//閿佸畾/瑙i攣鎻愬崌鏈�
+ List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock);//閿佸畾/瑙i攣鎻愬崌鏈�
- LiftCommand getShuttleSignalCommand(Integer taskNo, Boolean signal);//灏忚溅宸插埌浣�/宸查┒绂讳俊鍙�
+ List<LiftCommand> getShuttleSignalCommand(Integer taskNo, Boolean signal);//灏忚溅宸插埌浣�/宸查┒绂讳俊鍙�
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyLiftThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyLiftThread.java
index 7b75405..bdedee3 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyLiftThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyLiftThread.java
@@ -374,12 +374,7 @@
}
@Override
- public boolean commandFinished(Integer taskNo) {
- return false;
- }
-
- @Override
- public LiftCommand getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
+ public List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
/**
* 浠诲姟绫诲瀷
* 1=绉绘墭鐩橈紱鍗囬檷鏈哄皢婧愮珯鍙版墭鐩樼Щ鍒扮洰鏍囩珯鍙�
@@ -407,26 +402,29 @@
command.setMode(LiftCommandModeType.MOVE.id);
command.setOriginLev(sourceLev);
command.setTargetLev(targetLev);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ return list;
}
@Override
- public LiftCommand getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
+ public List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
return getMoveCommand(taskNo, sourceLev, targetLev, mode);
}
@Override
- public LiftCommand getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) {
+ public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) {
return getMoveCommand(taskNo, sourceLev, targetLev, mode);
}
@Override
- public LiftCommand getLockCommand(Integer taskNo, Boolean lock) {
+ public List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock) {
return null;
}
@Override
- public LiftCommand getShuttleSignalCommand(Integer taskNo, Boolean signal) {
+ public List<LiftCommand> getShuttleSignalCommand(Integer taskNo, Boolean signal) {
return null;
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java
index 3ca11e8..eca2c2e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java
@@ -27,8 +27,10 @@
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
@Slf4j
@SuppressWarnings("all")
@@ -406,36 +408,6 @@
return extend.getLock();
}
- @Override
- public boolean commandFinished(Integer taskNo) {
- try {
- LiftCommand command = getTaskClearCommand();
- String loginToken = requestLoginToken();
- if (loginToken == null) {
- return false;
- }
-
- HashMap<String, Object> headers = new HashMap<>();
- headers.put("Authorization", "Bearer " + loginToken);
-
- String response = new HttpHandler.Builder()
- .setUri(API_URL)
- .setPath("/RDS/lifterOperation")
- .setHeaders(headers)
- .setJson(command.getBody())
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- Integer code = jsonObject.getInteger("code");
- if (code.equals(200)) {
- return true;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- }
-
//***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�***************
//璇锋眰鐧诲綍
@@ -500,7 +472,7 @@
//绌鸿浇绉诲姩
@Override
- public LiftCommand getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
+ public List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
int taskMode = 3;//绌鸿浇绉诲姩
HashMap<String, Object> body = new HashMap<>();
@@ -520,12 +492,16 @@
command.setMode(LiftCommandModeType.MOVE.id);
command.setOriginLev(0);
command.setTargetLev(targetLev);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ list.addAll(getTaskClearCommand());
+ return list;
}
//杞借溅绉诲姩
@Override
- public LiftCommand getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
+ public List<LiftCommand> getMoveWithShuttleCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "lifterTask");
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -543,12 +519,16 @@
command.setMode(LiftCommandModeType.MOVE.id);
command.setOriginLev(sourceLev);
command.setTargetLev(targetLev);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ list.addAll(getTaskClearCommand());
+ return list;
}
//鎵樼洏鍑哄叆
@Override
- public LiftCommand getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) {
+ public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "lifterTask");
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -568,12 +548,16 @@
command.setTargetLev(targetLev);
command.setOriginSta(originSta);
command.setTargetSta(targetSta);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ list.addAll(getTaskClearCommand());
+ return list;
}
//閿佸畾/瑙i攣鎻愬崌鏈�
@Override
- public LiftCommand getLockCommand(Integer taskNo, Boolean lock) {
+ public List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "lifterOperation");
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -586,12 +570,15 @@
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(lock ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ return list;
}
//灏忚溅宸插埌浣�/宸查┒绂讳俊鍙�
@Override
- public LiftCommand getShuttleSignalCommand(Integer taskNo, Boolean signal) {
+ public List<LiftCommand> getShuttleSignalCommand(Integer taskNo, Boolean signal) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "lifterOperation");
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -603,11 +590,14 @@
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(signal ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ return list;
}
//鑾峰彇鎻愬崌鏈轰换鍔℃竻闄ゅ懡浠�
- private LiftCommand getTaskClearCommand() {
+ private List<LiftCommand> getTaskClearCommand() {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "lifterOperation");
body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -618,7 +608,10 @@
command.setLiftNo(Integer.valueOf(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(LiftCommandModeType.RESET.id);
- return command;
+
+ ArrayList<LiftCommand> list = new ArrayList<>();
+ list.add(command);
+ return list;
}
/**
--
Gitblit v1.9.1