From 3df03c486fde77ab36b9298a94bdbb0aa065a7e2 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 08 四月 2025 09:07:40 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java | 5 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 27 +-----
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 61 ++++++++-------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java | 92 +++++++++++++++++++++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java | 3
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java | 8 ++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 8 +-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java | 4
9 files changed, 148 insertions(+), 62 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 b727735..1cf3ad3 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
@@ -104,7 +104,8 @@
LiftCommand command = commands.get(commandStep - 1);
if (command.getMode() == LiftCommandModeType.MOVE.id) {
//鎻愬崌鏈哄崌闄�
- if (liftProtocol.getLev() == command.getTargetLev()) {
+ Integer target = liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), command.getTargetLev());
+ if (liftProtocol.getLev() == target) {
command.setComplete(true);
}
} else if (command.getMode() == LiftCommandModeType.MOVE_CAR.id) {
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 d15a292..b0204ad 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
@@ -153,8 +153,9 @@
dto.setLiftNo(transferLiftDevice.getId().intValue());
dto.setLev(Utils.getLev(task.getDestLoc()));
dto.setStaNo(Integer.parseInt(task.getDestSite()));
- dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
- }))
+// dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
+ })),
+ MotionCtgType.LIFT_WITH_GOODS_IN
));
// 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄簱浣�
@@ -191,6 +192,7 @@
dto.setShuttleDevice(shuttleDevice);
dto.setLiftNo(transferLiftDevice.getId().intValue());
dto.setLocNo(standbyLocNoTo);
+ dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
})),
MotionCtgType.SHUTTLE_TRANSPORT
));
@@ -262,11 +264,6 @@
return motionList;
}
- BasConveyorSta basConveyorStaOrigin = basConveyorStaService.selectBySiteNo(task.getOriginSite());
- if (basConveyorStaOrigin == null) {
- return motionList;
- }
-
//妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹�
boolean shuttleResult = Utils.checkShuttleHasBinding(shuttleDevice, task.getTaskNo());
if (shuttleResult) {
@@ -286,22 +283,14 @@
//绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� 杈撻�佺嚎浣嶇疆
String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
- //绌挎杞︽崲灞傛椂寰呮満浣嶇疆 浣跨敤琛ㄥ垪 memo鏁版嵁
- String standbyLocNoMemo = shuttleStandbyTo.getMemo();
+ //绌挎杞﹀緟鏈轰綅缃� 浣跨敤琛ㄥ垪
+ String standbyLocNoList = shuttleStandbyTo.getStandbyLoc();
//鑾峰彇鍑哄簱浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
.eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT))
.eq(TaskCtg::getStatus, 1));
if (taskCtg == null) {
- return motionList;
- }
- //鑾峰彇杈撻�佺嚎璺緞
- BasConveyorPath basConveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>()
- .eq(BasConveyorPath::getDeviceStn, task.getOriginSite())
- .eq(BasConveyorPath::getDeviceNo, liftProtocol.getLiftNo())
- .eq(BasConveyorPath::getTypeNo, taskCtg.getId()));
- if (basConveyorPath == null) {
return motionList;
}
@@ -371,15 +360,16 @@
dto.setLocNo(standbyLocNoTo);
dto.setStaNo(getStaByLev(Utils.getLev(task.getOriginLoc())));//杈撻�佺珯
})),
- MotionCtgType.SHUTTLE_TRANSPORT_TO_CONVEYOR
+ MotionCtgType.SHUTTLE_TRANSPORT
));
+ Integer liftLevLogic = liftDispatcher.getLiftLevOffset(transferLiftDevice.getId().intValue(), Utils.getLev(originLoc));
// 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌鍑哄簱灞�
motionList.addAll(kernelService.liftMove(
null
, MotionDto.build((dto -> {
dto.setLiftNo(transferLiftDevice.getId().intValue());
- dto.setLev(Utils.getLev(originLoc));
+ dto.setLev(liftLevLogic);
}))
));
@@ -415,8 +405,8 @@
MotionDto.build((dto -> {
dto.setShuttleNo(shuttleDevice.getId().intValue());
dto.setShuttleDevice(shuttleDevice);
- dto.setLocNo(standbyLocNoTo);
- dto.setSync(0);//寮傛鎵ц
+ dto.setLocNo(standbyLocNoList);
+// dto.setSync(0);//寮傛鎵ц
dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞�
})),
MotionCtgType.SHUTTLE_MOVE_STANDBY
@@ -432,9 +422,9 @@
, MotionDto.build((dto -> {
dto.setLiftNo(transferLiftDevice.getId().intValue());
dto.setStaNo(Integer.parseInt(task.getDestSite()));//鍑哄簱绔欑偣
- dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue());
dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
- }))
+ })),
+ MotionCtgType.LIFT_WITH_GOODS_OUT
));
}
@@ -597,6 +587,14 @@
return motionList;//鏈垎鏋愭垚鍔�
}
+ //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
+ ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+ .eq(ShuttleStandby::getDeviceLev, Utils.getLev(shuttleLocNo))
+ .eq(ShuttleStandby::getStatus, 1));
+
+ //绌挎杞﹀緟鏈轰綅缃� 浣跨敤琛ㄥ垪
+ String standbyLocNoList = shuttleStandbyTo.getStandbyLoc();
+
String standbyLocNo;
if (originSite == 1015) {
standbyLocNo = "1200101";
@@ -686,8 +684,8 @@
MotionDto.build((dto -> {
dto.setShuttleNo(shuttleDevice.getId().intValue());
dto.setShuttleDevice(shuttleDevice);
- dto.setLocNo(standbyLocNo);
- dto.setSync(0);//寮傛鎵ц
+ dto.setLocNo(standbyLocNoList);
+// dto.setSync(0);//寮傛鎵ц
dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞�
})),
MotionCtgType.SHUTTLE_MOVE_STANDBY
@@ -1213,12 +1211,13 @@
if (destSite.equals("move")) {
//鎻愬崌鏈哄崌闄嶆ゼ灞�
+ Integer liftLevLogic = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Integer.parseInt(task.getDestLoc()));
// 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰
motionList.addAll(kernelService.liftMove(
null
, MotionDto.build((dto -> {
dto.setLiftNo(device.getId().intValue());
- dto.setLev(Integer.parseInt(task.getDestLoc()));
+ dto.setLev(liftLevLogic);
}))
));
@@ -1230,19 +1229,23 @@
return motionList;
}
+ Integer originLev = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Utils.getLev(basConveyorStaOrigin.getLocNo()));
+ Integer targetLev = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Utils.getLev(basConveyorStaDest.getLocNo()));
+
// 鎻愬崌鏈虹Щ鍔ㄦ墭鐩�
motionList.addAll(kernelService.liftMoveGoods(
MotionDto.build((dto -> {
dto.setLiftNo(device.getId().intValue());
- dto.setLev(Utils.getLev(basConveyorStaOrigin.getLocNo()));
+ dto.setLev(originLev);
dto.setStaNo(Integer.parseInt(task.getOriginSite()));
}))
, MotionDto.build((dto -> {
dto.setLiftNo(device.getId().intValue());
- dto.setLev(Utils.getLev(basConveyorStaDest.getLocNo()));
+ dto.setLev(targetLev);
dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
dto.setStaNo(Integer.parseInt(task.getDestSite()));
- }))
+ })),
+ MotionCtgType.LIFT_WITH_GOODS
));
} else if (destSite.equals("lock")) {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
index ef67e16..678014a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
@@ -85,7 +85,7 @@
/**
* 鎻愬崌鏈鸿浇璐хЩ鍔�
*/
- public List<Motion> liftMoveGoods(MotionDto origin, MotionDto target) {
+ public List<Motion> liftMoveGoods(MotionDto origin, MotionDto target, MotionCtgType type) {
List<Motion> motionList = new ArrayList<>();
motionList.add(Motion.build(motion -> {
@@ -93,6 +93,9 @@
motion.setDevice(String.valueOf(target.getLiftNo()));
motion.setMotionCtg(MotionCtgType.LIFT_WITH_GOODS.val());
+ if (type != null) {
+ motion.setMotionCtg(type.val());
+ }
if (null != origin) {
// motion.setOrigin(String.valueOf(liftDispatcher.getLiftLevOffset(target.getLiftNo(), origin.getLev())));
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 63e1026..6eb80b9 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
@@ -140,6 +140,40 @@
motionService.updateById(motion);
return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+ case LIFT_WITH_GOODS_IN:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+ if (liftProtocol.getHasTray()) {
+ return false;
+ }
+
+ command = liftThread.getPalletInOutCommand(assignCommand.getDeviceTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), motion.getOriDrt(), motion.getTarDrt(), task.getTaskSts() < 100 ? LiftCommandModeType.PALLET_IN : LiftCommandModeType.PALLET_OUT);
+ list.addAll(command);
+
+ motion.setTemp(String.valueOf(assignCommand.getDeviceTaskNo()));
+ motion.setUpdateTime(new Date());
+ motionService.updateById(motion);
+
+ return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+ case LIFT_WITH_GOODS_OUT:
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+ if (!liftProtocol.getHasTray()) {
+ return false;
+ }
+
+ command = liftThread.getPalletInOutCommand(assignCommand.getDeviceTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), motion.getOriDrt(), motion.getTarDrt(), task.getTaskSts() < 100 ? LiftCommandModeType.PALLET_IN : LiftCommandModeType.PALLET_OUT);
+ list.addAll(command);
+
+ motion.setTemp(String.valueOf(assignCommand.getDeviceTaskNo()));
+ motion.setUpdateTime(new Date());
+ motionService.updateById(motion);
+
+ return liftAction.assignWork(liftThread.getDevice(), assignCommand);
case LIFT_WITH_SHUTTLE:
//鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
if (!liftThread.isIdle()) {
@@ -226,7 +260,7 @@
return false;
}
- if (!liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
+ if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
return false;
}
@@ -250,10 +284,10 @@
return false;
}
- //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
- if (!liftProtocol.getHasTray()) {
- return false;
- }
+// //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+// if (!liftProtocol.getHasTray()) {
+// return false;
+// }
// //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
// Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
@@ -293,6 +327,54 @@
}
break;
+ case LIFT_WITH_GOODS_IN:
+ // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+
+ if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
+ return false;
+ }
+
+ //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+ if (!liftProtocol.getHasTray()) {
+ return false;
+ }
+
+ if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
+ task.setLiftNo(0);
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ return false;
+ }
+ }
+
+ break;
+ case LIFT_WITH_GOODS_OUT:
+ // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
+ if (!liftThread.isIdle()) {
+ return false;
+ }
+
+ if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
+ return false;
+ }
+
+ //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+ if (liftProtocol.getHasTray()) {
+ return false;
+ }
+
+ if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
+ task.setLiftNo(0);
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ return false;
+ }
+ }
+
+ break;
case LIFT_WITH_SHUTTLE:
// 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
if (!liftThread.isIdle()) {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
index 97dbb55..4dd4818 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
@@ -23,6 +23,8 @@
// 鎻愬崌鏈� --------------------------------------------
LIFT_MOVE(LIFT),
LIFT_WITH_GOODS(LIFT),
+ LIFT_WITH_GOODS_IN(LIFT),
+ LIFT_WITH_GOODS_OUT(LIFT),
LIFT_WITH_SHUTTLE(LIFT),
LIFT_WITH_GOODS_AND_SHUTTLE(LIFT),
LIFT_TRANSPORT_TO_CONVEYOR(LIFT),
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index cbc2831..ce2f0fd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -489,9 +489,10 @@
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
&& staProtocol.isInEnable()
&& (workNo >= 0)
- && staProtocol.isPakMk()
+// && staProtocol.isPakMk()
) {
Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
@@ -671,40 +672,26 @@
}
for (Task task : tasks) {
- BasConveyorSta originStaObj = basConveyorStaService.selectBySiteNo(task.getOriginSite());//鑾峰彇婧愮珯
- if (originStaObj == null) {
+ BasConveyorSta destStaObj = basConveyorStaService.selectBySiteNo(task.getDestSite());//鑾峰彇鐩爣绔�
+ if (destStaObj == null) {
continue;
}
- BasConveyor basConveyor = basConveyorService.getById(originStaObj.getConveyorId());
+ BasConveyor basConveyor = basConveyorService.getById(destStaObj.getConveyorId());
if(basConveyor == null) {
continue;
}
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
- StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//婧愮珯
-// StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
+ StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
if (staProtocol == null) {
continue;
} else {
staProtocol = staProtocol.clone();
-// staProtocol1 = staProtocol1.clone();
}
// 鍒ゆ柇鍑哄簱绔欑姸鎬�
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-// if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
-// continue;
-// }
-
-// //鍚屽簱浣嶇粍鏍¢獙
-// List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
-// List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
-// if (!outerLocMasts.isEmpty()) {
-// News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo());
-// continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
-// }
-
if (Cools.isEmpty(task.getShuttleNo())) {
//鍒嗛厤灏忚溅
//鎼滅储绌洪棽杞�
@@ -725,7 +712,7 @@
// generate motion list
List<Motion> motionList = analyzeService.generateMotion(task);
if (Cools.isEmpty(motionList)) {
- log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
+ log.error("鍑哄簱 ===>> 浠诲姟瑙f瀽澶辫触, 浠诲姟鍙�={}", task.getTaskNo());
continue;
}
motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
index 0012067..7f898b7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
@@ -102,10 +102,10 @@
if(task.getTaskSts().equals(TaskStsType.COMPLETE_INBOUND.sts)
|| task.getTaskSts().equals(TaskStsType.COMPLETE_OUTBOUND.sts)
|| task.getTaskSts().equals(TaskStsType.COMPLETE_LADEN_MOVE.sts)){
- boolean httpRequest = doHttpRequest(task, wmsUrl, "/open/asrs/wrkMast/finish/v1");
- if (!httpRequest) {
- continue;
- }
+// boolean httpRequest = doHttpRequest(task, wmsUrl, "/open/asrs/wrkMast/finish/v1");
+// if (!httpRequest) {
+// continue;
+// }
}
}
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 3489ab7..c50a28b 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
@@ -216,7 +216,7 @@
}
List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
- if (lev == offsetDto.getLogicLev()) {
+ if (lev.equals(offsetDto.getLogicLev())) {
return offsetDto.getRealLev();
}
}
@@ -232,7 +232,7 @@
}
List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
- if (lev == offsetDto.getRealLev()) {
+ if (lev.equals(offsetDto.getRealLev())) {
return offsetDto.getLogicLev();
}
}
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 4bc441c..f8964a1 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
@@ -112,6 +112,10 @@
}
if (resThread != null) {
+ if (resThread.getStatus().getCurrentLocNo().equals(locNo)) {
+ return resThread.getDevice();
+ }
+
Task result = generateMoveTask(resThread.getDevice(), locNo);
if (result != null) {
return resThread.getDevice();
@@ -142,6 +146,10 @@
continue;
}
+ if (shuttleProtocol.getCurrentLocNo() == null) {
+ continue;
+ }
+
int shuttleLev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
if (shuttleLev == lev) {
currentLevDevices.add(device);
--
Gitblit v1.9.1