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 | 61 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 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 9ca36f9..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
@@ -11,6 +11,7 @@
import com.zy.asrs.wcs.core.model.command.ShuttleAssignCommand;
import com.zy.asrs.wcs.core.model.command.ShuttleCommand;
import com.zy.asrs.wcs.core.model.command.ShuttleRedisCommand;
+import com.zy.asrs.wcs.core.model.enums.LocStsType;
import com.zy.asrs.wcs.core.model.enums.MotionCtgType;
import com.zy.asrs.wcs.core.model.enums.ShuttleCommandModeType;
import com.zy.asrs.wcs.core.model.enums.ShuttleTaskModeType;
@@ -382,6 +383,66 @@
}
}
}
+ } else if (shuttleProtocol.getMoveType() == 4) {//鍙栨斁璐�
+ Integer xCurrent = shuttleProtocol.getXCurrent();
+ if (xCurrent > shuttleProtocol.getXTarget()) {//褰揦鍊煎ぇ浜嶺鐩爣鍊�
+ shuttleProtocol.setXCurrent(shuttleProtocol.getXStart());
+ 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;
+ }
+
+ //鎼滅储鏈夎揣搴撲綅
+ 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;
+ }
+
+ Loc start = list.get(0);
+
+ List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>()
+ .eq(Loc::getHostId, device.getHostId())
+ .eq(Loc::getStatus, 1)
+ .eq(Loc::getLocSts, LocStsType.O.val())
+ .eq(Loc::getRow, xCurrent)
+ .orderByDesc(Loc::getBay)
+ .orderByAsc(Loc::getRow));
+ if (locList.isEmpty()) {
+ return;
+ }
+
+ Loc target = locList.get(0);
+ if (target == null) {
+ return;
+ }
+
+ //璋冨害鍘荤洰鏍囦綅缃�
+ if (!shuttleProtocol.getCurrentLocNo().equals(target.getLocNo())) {
+ Task task = shuttleDispatcher.generateManuaTakeMoveTask(device, start.getLocNo(), target.getLocNo());
+// if(task != null) {//璋冨害鎴愬姛
+// shuttleProtocol.setXCurrent(shuttleProtocol.getXCurrent() + 1);
+// }
+ }
}
}
--
Gitblit v1.9.1