From b058b8c8be2267c2a0ba4e3916871ede64f53c47 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 15 七月 2024 19:09:32 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 33 ++++++++++++++--
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java | 11 +++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java | 1
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 4 ++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java | 16 ++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java | 11 +++++
7 files changed, 73 insertions(+), 5 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
index 22fc0a3..fa3cf6d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
@@ -359,4 +359,15 @@
return siteStatus.toLowerCase().replaceAll("_", "-");
}
+ public Long getConveyorDeviceId() {
+ if (null == this.conveyorId){ return null; }
+ BasConveyorService basConveyorService = SpringUtils.getBean(BasConveyorService.class);
+ BasConveyor basConveyor = basConveyorService.getById(this.conveyorId);
+ if (basConveyor == null) {
+ return null;
+ }
+ return basConveyor.getDeviceId();
+ }
+
+
}
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 9a2e59d..edde4cb 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
@@ -54,6 +54,8 @@
@Autowired
private BasConveyorStaService basConveyorStaService;
@Autowired
+ private BasConveyorService basConveyorService;
+ @Autowired
private TaskCtgService taskCtgService;
public List<Motion> generateMotion(Task task) {
@@ -1409,6 +1411,7 @@
if(basConveyorStaOrigin == null || basConveyorStaDest == null) {
return motionList;
}
+
// 鎻愬崌鏈虹Щ鍔ㄦ墭鐩�
motionList.addAll(kernelService.liftMoveGoods(
MotionDto.build((dto -> {
@@ -1419,6 +1422,7 @@
, MotionDto.build((dto -> {
dto.setLiftNo(device.getId().intValue());
dto.setLev(Utils.getLev(basConveyorStaDest.getLocNo()));
+ dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
dto.setStaNo(Integer.parseInt(task.getDestSite()));
}))
));
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 db4c697..540dfe4 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
@@ -86,6 +86,7 @@
}
motion.setTarget(String.valueOf(liftDispatcher.getLiftLevOffset(target.getLiftNo(), target.getLev())));
motion.setTarDrt(target.getStaNo());//鐩爣绔�
+ motion.setDockNo(String.valueOf(target.getDevpNo()));//杈撻�佺嚎ID
if (target.getSync() != null) {
motion.setSync(target.getSync());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
index 5b05c7e..9789394 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
@@ -17,6 +17,8 @@
import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
+import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
import com.zy.asrs.wcs.rcs.thread.LiftThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -227,6 +229,20 @@
return false;
}
+ //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
+ Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, conveyorDeviceId);
+ if (devpThread == null) {
+ return false;
+ }
+ StaProtocol staProtocol = devpThread.getStation().get(motion.getTarDrt());
+ if(staProtocol == null) {
+ return false;
+ }
+ if (!staProtocol.isLoading()) {
+ return false;
+ }
+
if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
task.setLiftNo(0);
task.setUpdateTime(new Date());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
index d27a157..09c3188 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
@@ -136,6 +136,17 @@
mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
mapNode.setXBase(object.getInteger("refx"));
mapNode.setYBase(object.getInteger("refy"));
+
+ if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+ //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
+ if (object.containsKey("conveyorHasGo")) {
+ if(object.getBoolean("conveyorHasGo")) {
+ //灏忚溅鍙蛋
+ mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
+ }
+ }
+ }
+
nodes.add(mapNode);
}
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 9a2ceb0..b93fe2d 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
@@ -29,7 +29,7 @@
boolean reset(ShuttleCommand command);//澶嶄綅寮�鍏�
- boolean updateLocation(ShuttleCommand param);//鏇存柊鍧愭爣
+ boolean updateLocation(ShuttleCommand command);//鏇存柊鍧愭爣
boolean isIdle();
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 76c9550..a8a9ae9 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
@@ -216,7 +216,7 @@
//鏄惁鏈夋墭鐩�
shuttleProtocol.setHasPallet(data.getInteger("loadState") == 1 ? true : false);
//琛岄┒鏂瑰悜
- shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("direction"));
+ shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir"));
//鏄惁涓哄厖鐢电姸鎬�
shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false);
@@ -458,8 +458,19 @@
}
@Override
- public boolean updateLocation(ShuttleCommand param) {
- return true;//杩樻病绉绘杩囨潵
+ public boolean updateLocation(ShuttleCommand command) {
+ try {
+ //鍙戝嚭璇锋眰
+ NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
+ JSONObject result = requestCommand(httpCommand);
+ if (result == null) {
+ return false;//璇锋眰澶辫触
+ }
+ this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
+ return true;
+ } catch (IOException e) {
+ return false;
+ }
}
@Override
@@ -804,7 +815,21 @@
@Override
public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) {
- return null;//杩樻病绉绘杩囨潵
+ NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
+ NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
+
+ HashMap<String, Object> body = new HashMap<>();
+ body.put("requestType", "updateFloor");//鏇存柊灞俍
+ body.put("z", Utils.getLev(locNo));//鍧愭爣Z
+ request.setBody(body);
+
+ httpStandard.setRequest(request);
+
+ ShuttleCommand command = new ShuttleCommand();
+ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
+ command.setBody(JSON.toJSONString(httpStandard));
+ command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+ return command;
}
//鑾峰彇灏忚溅澶嶄綅鍝嶅簲鍛戒护
--
Gitblit v1.9.1