From 99573d3503e32befd853dda7cc0180e01a4c8597 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 13 十月 2024 12:17:44 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 14 ++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java | 8 ++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 9 +++
zy-asrs-flow/src/pages/device/shuttle/index.jsx | 1
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 58 ++++++++++---------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java | 17 +++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Motion.java | 6 ++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 15 +++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 16 ++++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/MotionDto.java | 3 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java | 2
11 files changed, 117 insertions(+), 32 deletions(-)
diff --git a/zy-asrs-flow/src/pages/device/shuttle/index.jsx b/zy-asrs-flow/src/pages/device/shuttle/index.jsx
index fa2e8af..dea6fef 100644
--- a/zy-asrs-flow/src/pages/device/shuttle/index.jsx
+++ b/zy-asrs-flow/src/pages/device/shuttle/index.jsx
@@ -339,6 +339,7 @@
<Button onClick={() => shuttleOperator('palletDown')}>鎵樼洏涓嬮檷</Button>
<Button onClick={() => shuttleOperator('chargeOpen')}>鍏呯數寮�</Button>
<Button onClick={() => shuttleOperator('chargeClose')}>鍏呯數鍏�</Button>
+ <Button onClick={() => shuttleOperator('requestWaiting')}>鐢宠纭</Button>
<Button onClick={() => shuttleOperator('reset')}>澶嶄綅</Button>
</div>
</Card>
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 c588fe9..62f5e5e 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
@@ -176,6 +176,23 @@
shuttleThread.reset(null);
return R.ok();
+ } else if (param.getShuttleTaskMode().equals("requestWaiting")) {
+ //鐢宠纭
+ Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
+ .eq(Device::getStatus, 1)
+ .eq(Device::getDeviceNo, shuttleNo));
+ if (device == null) {
+ return R.error("璁惧涓嶅瓨鍦�");
+ }
+
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+ if (shuttleThread == null) {
+ return R.error("璁惧绂荤嚎");
+ }
+
+ shuttleThread.requestWaiting();
+ return R.ok();
}
Task task = new Task();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/MotionDto.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/MotionDto.java
index 43b2288..54c919e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/MotionDto.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/MotionDto.java
@@ -35,6 +35,9 @@
//鎵ц瀹屾垚鍚庢槸鍚﹂噴鏀炬彁鍗囨満锛岄粯璁や笉閲婃斁 1: 閲婃斁 0: 涓嶉噴鏀�
private Integer releaseLift;
+ //鎵ц瀹屾垚鍚庢槸鍚﹂噴鏀剧┛姊溅锛岄粯璁や笉閲婃斁 1: 閲婃斁 0: 涓嶉噴鏀�
+ private Integer releaseShuttle;
+
public static MotionDto build(BuildSupport<MotionDto> support) {
MotionDto dto = new MotionDto();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Motion.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Motion.java
index 0a4cbf2..d63ab64 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Motion.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Motion.java
@@ -82,6 +82,12 @@
private Integer releaseLift;
/**
+ * 鎵ц瀹屾垚鍚庢槸鍚﹂噴鏀剧┛姊溅锛岄粯璁や笉閲婃斁 1: 閲婃斁 0: 涓嶉噴鏀�
+ */
+ @ApiModelProperty(value= "鎵ц瀹屾垚鍚庢槸鍚﹂噴鏀剧┛姊溅锛岄粯璁や笉閲婃斁 1: 閲婃斁 0: 涓嶉噴鏀�")
+ private Integer releaseShuttle;
+
+ /**
* 浠诲姟绫诲瀷
*/
@ApiModelProperty(value= "浠诲姟绫诲瀷")
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 059562b..936f22f 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
@@ -539,6 +539,21 @@
MotionCtgType.SHUTTLE_PALLET_DOWN
));
+ // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅
+ motionList.addAll(kernelService.shuttleMove(
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(standbyLocNoFrom);
+ })),
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(shuttleFromLiftStandbyLoc);
+ dto.setSync(0);//寮傛鎵ц
+ dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞�
+ })),
+ MotionCtgType.SHUTTLE_MOVE
+ ));
+
// 鎻愬崌鏈鸿浇璐хЩ鍔�
motionList.addAll(kernelService.liftMoveGoods(
MotionDto.build((dto -> {
@@ -551,22 +566,8 @@
dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
dto.setStaNo(31001);//鍑哄簱绔欑偣
dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue());
- dto.setSync(0);//寮傛鎵ц
dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
}))
- ));
-
- // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅
- motionList.addAll(kernelService.shuttleMove(
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(standbyLocNoFrom);
- })),
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(shuttleFromLiftStandbyLoc);
- })),
- MotionCtgType.SHUTTLE_MOVE
));
// 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛
@@ -747,6 +748,21 @@
MotionCtgType.SHUTTLE_PALLET_DOWN
));
+ // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅
+ motionList.addAll(kernelService.shuttleMove(
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(standbyLocNoFrom);
+ })),
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(shuttleDevice.getId().intValue());
+ dto.setLocNo(shuttleFromLiftStandbyLoc);
+ dto.setSync(0);//寮傛鎵ц
+ dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀剧┛姊溅
+ })),
+ MotionCtgType.SHUTTLE_MOVE
+ ));
+
// 鎻愬崌鏈鸿浇璐хЩ鍔�
motionList.addAll(kernelService.liftMoveGoods(
MotionDto.build((dto -> {
@@ -758,23 +774,9 @@
dto.setLiftNo(transferLiftDevice.getId().intValue());
dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
dto.setStaNo(31001);//鍑哄簱绔欑偣
- dto.setSync(0);//寮傛鎵ц
dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue());
dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
}))
- ));
-
- // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅
- motionList.addAll(kernelService.shuttleMove(
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(standbyLocNoFrom);
- })),
- MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleDevice.getId().intValue());
- dto.setLocNo(shuttleFromLiftStandbyLoc);
- })),
- MotionCtgType.SHUTTLE_MOVE
));
// 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛
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 3b3b015..1cb5283 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
@@ -302,6 +302,14 @@
break;
}
+ if (target.getSync() != null) {
+ motion.setSync(target.getSync());
+ }
+
+ if (target.getReleaseShuttle() != null) {
+ motion.setReleaseShuttle(target.getReleaseShuttle());
+ }
+
}));
return motionList;
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 54f1ab3..d0725bc 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
@@ -9,6 +9,7 @@
import com.zy.asrs.wcs.core.action.ShuttleAction;
import com.zy.asrs.wcs.core.entity.BasShuttle;
import com.zy.asrs.wcs.core.entity.Loc;
+import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.model.NavigateNode;
import com.zy.asrs.wcs.core.model.command.*;
import com.zy.asrs.wcs.core.model.enums.*;
@@ -282,6 +283,11 @@
return false;
}
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo()));
+ if (task == null) {
+ return false;
+ }
+
LiftThread liftThread = null;
LiftProtocol liftProtocol = null;
@@ -294,6 +300,15 @@
if (!shuttleProtocol.getCurrentLocNo().equals(motion.getTarget())) {
return false;
}
+
+ if (Optional.ofNullable(motion.getReleaseShuttle()).orElse(0) == 1) {//閲婃斁绌挎杞�
+ task.setShuttleNo(0);
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ return false;
+ }
+ }
+
break;
case SHUTTLE_MOVE_TO_LIFT:
liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, Integer.parseInt(motion.getTemp()));
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 27f19dd..b8d5959 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
@@ -8,6 +8,8 @@
import com.zy.asrs.wcs.core.model.enums.LocStsType;
import com.zy.asrs.wcs.core.model.enums.TaskStsType;
import com.zy.asrs.wcs.core.service.*;
+import com.zy.asrs.wcs.system.entity.Dict;
+import com.zy.asrs.wcs.system.service.DictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -30,6 +32,8 @@
private MotionLogService motionLogService;
@Autowired
private LocService locService;
+ @Autowired
+ private DictService dictService;
@Scheduled(cron = "0/1 * * * * ? ")
@Transactional
@@ -41,14 +45,18 @@
taskSts.add(TaskStsType.COMPLETE_MOVE.sts);
taskSts.add(TaskStsType.COMPLETE_MANUAL.sts);
+ Dict reportWms = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "reportWms"));
+
List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, 1)
.in(Task::getTaskSts, taskSts));
for (Task task : tasks) {
- if(task.getTaskSts().equals(TaskStsType.COMPLETE_INBOUND.sts) || task.getTaskSts().equals(TaskStsType.COMPLETE_OUTBOUND.sts)){
- boolean httpRequest = doHttpRequest(task, "127.0.0.1:8080", "/wms/open/asrs//wrkMast/finish/v1");
- if (!httpRequest) {
- return;
+ if (reportWms != null && reportWms.getFlag().equals("true")) {
+ if(task.getTaskSts().equals(TaskStsType.COMPLETE_INBOUND.sts) || task.getTaskSts().equals(TaskStsType.COMPLETE_OUTBOUND.sts)){
+ boolean httpRequest = doHttpRequest(task, "127.0.0.1:8080", "/wms/open/asrs//wrkMast/finish/v1");
+ if (!httpRequest) {
+ return;
+ }
}
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
index b93fe2d..d99c109 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
@@ -57,6 +57,8 @@
boolean enableMoveLoc(ShuttleMoveLocParam param, boolean enable);
+ boolean requestWaiting();
+
//***************鑾峰彇鍛戒护*****************
ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes);//鑾峰彇绉诲姩鍛戒护
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
index 854bed1..705c89c 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
@@ -173,6 +173,7 @@
BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>()
.eq(BasShuttle::getShuttleNo, device.getDeviceNo())
.eq(BasShuttle::getHostId, device.getHostId()));
+
if (basShuttle == null) {
basShuttle = new BasShuttle();
//鍥涘悜绌挎杞﹀彿
@@ -182,6 +183,10 @@
basShuttle.setHostId(device.getHostId());
basShuttle.setDeviceId(device.getId().intValue());
shuttleService.save(basShuttle);
+ }else {
+ Integer shuttleId = basShuttle.getId();
+ basShuttle = new BasShuttle();
+ basShuttle.setId(shuttleId);
}
//浠诲姟鍙�
basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue());
@@ -791,6 +796,15 @@
}
@Override
+ public boolean requestWaiting() {
+ if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) {
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) {
NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
index 65ca812..cfd9ac3 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -690,6 +690,15 @@
}
@Override
+ public boolean requestWaiting() {
+ if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) {
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "runOrder");
--
Gitblit v1.9.1