From 54a42225ae5156dbd47c5aada2b960af35328774 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期三, 28 五月 2025 09:27:45 +0800
Subject: [PATCH] #ZH
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 72 ++++++++++++++++++++++++++++++++----
1 files changed, 64 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 585322f..7f859b3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -858,11 +858,12 @@
crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅眰
- crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
+ int bay1 = Utils.getBayShort(taskWrk.getTargetPoint()) + 1;
+ crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
// crnCommand.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
@@ -989,12 +990,13 @@
command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
command.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
- command.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
+ int bayS = Utils.getBayShort(taskWrk.getStartPoint()) + 1;
+ command.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪
command.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
- command.setCommand((short) 1);
+// command.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) {
log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command));
devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
@@ -1120,10 +1122,12 @@
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
+ int bayS = Utils.getBayShort(taskWrk.getStartPoint()) + 1;
+ crnCommand.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
+ int bayE = Utils.getBayShort(taskWrk.getTargetPoint()) + 1;
+ crnCommand.setDestinationPosY((short)bayE); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
// crnCommand.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
@@ -1509,7 +1513,51 @@
}
return true;
}
+ public boolean rgvOtherIDLEOther2(RgvSlave slave) {
+ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId());
+
+ if (rgvProtocol == null || rgvTaskProtocol == null) {
+ return false;
+ }
+ if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO)
+ || rgvProtocol.getRgvPos().equals(0L)
+ || rgvTaskProtocol.getAvoid() == -1) {
+ return false;
+ }
+
+ if (rgvProtocol.getLoaded()!=0) {
+ return false;
+ }
+ return true;
+ }
public boolean rgvOtherIDLE(RgvSlave slave,Integer staNo) {
+ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
+
+ if (rgvProtocol == null || rgvTaskProtocol == null) {
+ return false;
+ }
+ if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1
+ || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) {
+ return false;
+ }
+ RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+
+ if (rgvProtocolOther == null) {
+ return true;
+ }
+ if (rgvProtocolOther.statusEnable) {
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo));
+ if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos())
+ >=
+ Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){
+ return false;
+ }
+ }
+ return true;
+ }
+ public boolean rgvOtherIDLE2(RgvSlave slave,Integer staNo) {
RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
@@ -1683,6 +1731,14 @@
}
}
+ if (!sign && staList.size()==1){
+ if (rgvOtherIDLEOther2(rgvSlave)){
+ if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){
+ sign=true;
+ }
+ }
+ }
+
if (!sign) {
for (Integer staNoNow : rangeList) {
for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
--
Gitblit v1.9.1