From a18215c69379bbdaecd95e25812e0796c32f9a57 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 16 四月 2024 14:46:20 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 87 +++++++++++++++++++++++++++++--------------
1 files changed, 58 insertions(+), 29 deletions(-)
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 9e0b818..2702cdc 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
@@ -15,12 +15,10 @@
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.core.entity.Motion;
import com.zy.asrs.wcs.rcs.entity.Device;
-import com.zy.asrs.wcs.rcs.entity.DeviceType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.core.service.MotionService;
import com.zy.asrs.wcs.rcs.service.DeviceService;
-import com.zy.asrs.wcs.rcs.service.DeviceTypeService;
import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -46,12 +44,10 @@
private ShuttleDispatcher shuttleDispatcher;
@Autowired
private LiftDispatcher liftDispatcher;
- // @Autowired
+// @Autowired
// private ConveyorDispatcher conveyorDispatcher;
@Autowired
private DeviceService deviceService;
- @Autowired
- private DeviceTypeService deviceTypeService;
public List<Motion> generateMotion(Task task) {
List<Motion> motionList = new ArrayList<>();
@@ -934,17 +930,9 @@
// locNo
String locNo = task.getDestLoc();
- //鑾峰彇绌挎杞︾被鍨�
- DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
- .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
- .eq(DeviceType::getStatus, 1));
- if (deviceType == null) {
- return motionList;
- }
-
Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
.eq(Device::getDeviceNo, task.getShuttleNo())
- .eq(Device::getDeviceType, deviceType.getId())
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
.eq(Device::getHostId, task.getHostId())
.eq(Device::getStatus, 1));
if (device == null) {
@@ -992,20 +980,13 @@
return motionList;
}
+ String sourceLoc = task.getOriginLoc();//婧愬簱浣�
String targetLoc = task.getDestLoc();//浠诲姟鐩爣(鍊熺敤瀛楁)
String targetSite = task.getDestSite();//浠诲姟绫诲瀷(鍊熺敤瀛楁)
- //鑾峰彇绌挎杞︾被鍨�
- DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
- .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
- .eq(DeviceType::getStatus, 1));
- if (deviceType == null) {
- return motionList;
- }
-
Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
.eq(Device::getDeviceNo, task.getShuttleNo())
- .eq(Device::getDeviceType, deviceType.getId())
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
.eq(Device::getHostId, task.getHostId())
.eq(Device::getStatus, 1));
if (device == null) {
@@ -1031,11 +1012,11 @@
// 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
motionList.addAll(kernelService.shuttleMove(
MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleProtocol.getShuttleNo().intValue());
+ dto.setShuttleNo(device.getId().intValue());
dto.setLocNo(shuttleLocNo);
})),
MotionDto.build((dto -> {
- dto.setShuttleNo(shuttleProtocol.getShuttleNo().intValue());
+ dto.setShuttleNo(device.getId().intValue());
dto.setLocNo(targetLoc);
})),
MotionCtgType.SHUTTLE_MOVE
@@ -1046,32 +1027,80 @@
//鎵樼洏椤跺崌
motionList.add(Motion.build(motion -> {
motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
- motion.setDevice(String.valueOf(task.getShuttleNo()));
+ motion.setDevice(String.valueOf(device.getId()));
motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_LIFT.val());
}));
} else if (targetSite.equals("palletDown")) {
//鎵樼洏涓嬮檷
motionList.add(Motion.build(motion -> {
motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
- motion.setDevice(String.valueOf(task.getShuttleNo()));
+ motion.setDevice(String.valueOf(device.getId()));
motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_DOWN.val());
}));
} else if (targetSite.equals("chargeOpen")) {
//鍏呯數寮�
motionList.add(Motion.build(motion -> {
motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
- motion.setDevice(String.valueOf(task.getShuttleNo()));
+ motion.setDevice(String.valueOf(device.getId()));
motion.setMotionCtg(MotionCtgType.SHUTTLE_CHARGE_ON.val());
}));
} else if (targetSite.equals("chargeClose")) {
//鍏呯數鍏�
motionList.add(Motion.build(motion -> {
motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
- motion.setDevice(String.valueOf(task.getShuttleNo()));
+ motion.setDevice(String.valueOf(device.getId()));
motion.setMotionCtg(MotionCtgType.SHUTTLE_CHARGE_OFF.val());
}));
} else if (targetSite.equals("reset")) {
//澶嶄綅
+ } else if (targetSite.equals("takeMove")) {
+ //鍙栨斁璐�
+ String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
+
+ // 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞�
+ 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
+ ));
+
+ //鎵樼洏椤跺崌
+ motionList.add(Motion.build(motion -> {
+ motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+ motion.setDevice(String.valueOf(device.getId()));
+ motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_LIFT.val());
+ }));
+
+ // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
+ motionList.addAll(kernelService.shuttleMove(
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(device.getId().intValue());
+ dto.setLocNo(sourceLoc);
+ })),
+ MotionDto.build((dto -> {
+ dto.setShuttleNo(device.getId().intValue());
+ dto.setLocNo(targetLoc);
+ })),
+ MotionCtgType.SHUTTLE_MOVE
+ ));
+
+ //鎵樼洏涓嬮檷
+ motionList.add(Motion.build(motion -> {
+ motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+ motion.setDevice(String.valueOf(device.getId()));
+ motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_DOWN.val());
+ }));
+
+ }
}
return motionList;
--
Gitblit v1.9.1