From 4d8bb57c9eb3fda399fd7b9e9de7ecbf754244f7 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 20 五月 2024 08:53:26 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java | 11 ++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 52 +++++++++--------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java | 46 ++++++++++-----
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Task.java | 1
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java | 1
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 12 ++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 4 +
8 files changed, 79 insertions(+), 50 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 fc14bc2..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
@@ -391,10 +391,28 @@
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;
@@ -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);
+// }
}
}
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
index 7b00292..39d86d7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -193,7 +193,7 @@
task.setMemo("manual");
task.setShuttleNo(param.getShuttleNo());
- if (param.getShuttleTaskMode().equals("taskMove")) {
+ if (param.getShuttleTaskMode().equals("takeMove")) {
task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅
}
boolean result = taskService.save(task);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Task.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Task.java
index f7591fb..4c1da09 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Task.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Task.java
@@ -190,7 +190,6 @@
* 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
*/
@ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
- @TableLogic
private Integer deleted;
/**
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 493ca83..1bcdc9e 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
@@ -992,18 +992,20 @@
// 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞�
if (Utils.getLev(shuttleLocNo) == Utils.getLev(locNo)) {
- // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
- motionList.addAll(kernelService.shuttleMove(
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(shuttleLocNo);
- })),
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(locNo);
- })),
- MotionCtgType.SHUTTLE_MOVE
- ));
+ if (!shuttleLocNo.equals(locNo)) {//灏忚溅涓嶅湪鐩爣搴撲綅
+ // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
+ motionList.addAll(kernelService.shuttleMove(
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(shuttleLocNo);
+ })),
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(locNo);
+ })),
+ MotionCtgType.SHUTTLE_MOVE
+ ));
+ }
} else {
//灏忚溅璺ㄥ眰
@@ -1198,18 +1200,20 @@
// 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞�
if (Utils.getLev(shuttleLocNo) == Utils.getLev(targetLoc)) {
- // 绌挎杞﹁蛋琛岃嚦婧愬簱浣�
- motionList.addAll(kernelService.shuttleMove(
- MotionDto.build((dto -> {
- dto.setShuttleNo(device.getId().intValue());
- dto.setLocNo(shuttleLocNo);
- })),
- MotionDto.build((dto -> {
- dto.setShuttleNo(device.getId().intValue());
- dto.setLocNo(sourceLoc);
- })),
- MotionCtgType.SHUTTLE_MOVE
- ));
+ if (!shuttleLocNo.equals(sourceLoc)) {//灏忚溅涓嶅湪鐩爣搴撲綅
+ // 绌挎杞﹁蛋琛岃嚦婧愬簱浣�
+ motionList.addAll(kernelService.shuttleMove(
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(device.getId().intValue());
+ dto.setLocNo(shuttleLocNo);
+ })),
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(device.getId().intValue());
+ dto.setLocNo(sourceLoc);
+ })),
+ MotionCtgType.SHUTTLE_MOVE
+ ));
+ }
//鎵樼洏椤跺崌
motionList.add(Motion.build(motion -> {
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 a8913bd..62e16cb 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
@@ -285,11 +285,13 @@
//鍏呯數浠诲姟
if (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl())).equals(MotionCtgType.SHUTTLE_CHARGE_ON)) {
- // 澶嶄綅绌挎杞�
- shuttleThread.setSyncTaskNo(0);
- shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
- shuttleThread.setPakMk(true);
- return true;
+ if (shuttleProtocol.getHasCharge() || shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.CHARGING_WAITING)) {
+ // 澶嶄綅绌挎杞�
+ shuttleThread.setSyncTaskNo(0);
+ shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ shuttleThread.setPakMk(true);
+ return true;
+ }
}
if (!shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.WAITING)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java
index 09412a5..6eb1116 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java
@@ -7,10 +7,13 @@
public enum LocStsType {
- D,
- F,
- O,
- X,
+ D,//绌烘澘
+ F,//鍦ㄥ簱
+ O,//绌哄簱
+ X,//绂佺敤
+ E,//涓嶅彲鏀捐揣閫氶亾
+ W,//姣嶈建閬�
+ C,//鍏呯數妗�
;
LocStsType() {
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 cf5f724..0b065ac 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
@@ -55,6 +55,10 @@
//鏇存柊搴撳瓨淇℃伅
@Transactional
public void updateRecordLoc(Task task) {
+ if (task.getRecordLoc() == null) {
+ return;
+ }
+
if (task.getRecordLoc().equals("Y")) {//璁板綍搴撳瓨淇℃伅
//婧愬簱浣� => 绌哄簱
//鐩爣搴撲綅 => 鍦ㄥ簱
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 93b8596..991898e 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
@@ -235,6 +235,7 @@
task.setMemo("manual");
task.setShuttleNo(Integer.valueOf(device.getDeviceNo()));
task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅
+ task.setHostId(device.getHostId());
// generate motion list
List<Motion> motionList = analyzeService.generateShuttleManualMotion(task);
--
Gitblit v1.9.1