From 311d1d7ac6cf52e9edd6d43a40ab6d324d49c27f Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 05 六月 2024 16:52:14 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java | 50 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
index a426fce..1f1c557 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
@@ -385,9 +385,26 @@
}
} else if (shuttleProtocol.getMoveType() == 4) {//鍙栨斁璐�
Integer xCurrent = shuttleProtocol.getXCurrent();
- if (xCurrent > shuttleProtocol.getXTarget()) {//褰揦鍊煎ぇ浜嶺鐩爣鍊硷紝杩涜褰掗浂涓擸鏂瑰悜+1
+ if (xCurrent > shuttleProtocol.getXTarget()) {//褰揦鍊煎ぇ浜嶺鐩爣鍊�
shuttleProtocol.setXCurrent(shuttleProtocol.getXStart());
- shuttleProtocol.setYCurrent(shuttleProtocol.getYCurrent() + 1);
+ shuttleProtocol.setYCurrent(shuttleProtocol.getYStart());
+ return;
+ }
+
+ //鍒ゆ柇x杞磋揣浣嶆槸鍚︽斁婊�
+ boolean flag = true;
+ for (Loc loc : locService.list(new LambdaQueryWrapper<Loc>()
+ .eq(Loc::getHostId, device.getHostId())
+ .eq(Loc::getRow, xCurrent)
+ .ge(Loc::getBay, shuttleProtocol.getYStart())
+ .le(Loc::getBay, shuttleProtocol.getYTarget()))) {
+ if (loc.getLocSts() != LocStsType.F.val()) {
+ flag = false;//鏈弧
+ break;
+ }
+ }
+ if (flag) {
+ shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
return;
}
@@ -395,6 +412,7 @@
List<Loc> list = locService.list(new LambdaQueryWrapper<Loc>()
.eq(Loc::getLocSts, LocStsType.F.val())
.eq(Loc::getHostId, device.getHostId())
+ .notIn(Loc::getRow, xCurrent)
.eq(Loc::getStatus, 1));
if (list.isEmpty()) {
return;
@@ -402,30 +420,28 @@
Loc start = list.get(0);
- Integer yCurrent = shuttleProtocol.getYCurrent();
- String locNo = Utils.getLocNo(xCurrent, yCurrent, lev);
- Loc target = locService.getOne(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getLocNo, locNo)
+ List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>()
.eq(Loc::getHostId, device.getHostId())
- .eq(Loc::getStatus, 1));
- if (target == null) {
- shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
+ .eq(Loc::getStatus, 1)
+ .eq(Loc::getLocSts, LocStsType.O.val())
+ .eq(Loc::getRow, xCurrent)
+ .orderByDesc(Loc::getBay)
+ .orderByAsc(Loc::getRow));
+ if (locList.isEmpty()) {
return;
}
- if (target.getLocSts() != LocStsType.O.val()) {
- shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
+ Loc target = locList.get(0);
+ if (target == null) {
return;
}
//璋冨害鍘荤洰鏍囦綅缃�
- if (shuttleProtocol.getCurrentLocNo().equals(target.getLocNo())) {
- shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);//灏忚溅鍜岀洰鏍囦綅缃竴鑷达紝璺宠繃
- } else {
+ if (!shuttleProtocol.getCurrentLocNo().equals(target.getLocNo())) {
Task task = shuttleDispatcher.generateManuaTakeMoveTask(device, start.getLocNo(), target.getLocNo());
- if(task != null) {//璋冨害鎴愬姛
- shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
- }
+// if(task != null) {//璋冨害鎴愬姛
+// shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
+// }
}
}
}
--
Gitblit v1.9.1