From 7c6fb7f8113dc85dc74d41e5a6a80adf7edcc2a1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 19 九月 2022 14:35:58 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 165 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 130 insertions(+), 35 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 1cb922a..d2893de 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -404,13 +404,13 @@
if (basCrnp.getInEnable().equals("Y")) {
// 鍏ュ簱
if (this.crnStnToLoc(crn, crnProtocol)) {
- crnProtocol.setLastIo("O");
}
+ crnProtocol.setLastIo("O");
} else if (basCrnp.getOutEnable().equals("Y")) {
// 鍑哄簱
if (this.locToCrnStn(crn, crnProtocol)) {
- crnProtocol.setLastIo("I");
}
+ crnProtocol.setLastIo("I");
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
@@ -418,15 +418,17 @@
if (basCrnp.getOutEnable().equals("Y")) {
// 鍑哄簱
if (this.locToCrnStn(crn, crnProtocol)) {
- crnProtocol.setLastIo("I");
}
+ crnProtocol.setLastIo("I");
} else if (basCrnp.getInEnable().equals("Y")) {
// 鍏ュ簱
if (this.crnStnToLoc(crn, crnProtocol)) {
- crnProtocol.setLastIo("O");
}
+ crnProtocol.setLastIo("O");
}
}
+ // 搴撲綅绉昏浆
+ this.locToLoc(crn, crnProtocol);
}
}
}
@@ -454,7 +456,7 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
if(null == wrkMast) {
- log.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
+// log.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
continue;
}
if (wrkMast.getWrkSts() < 3) {
@@ -609,7 +611,7 @@
public boolean locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep111215(slave.getId(), crnStn.getStaNo());
if (wrkMast == null) {
continue;
}
@@ -700,6 +702,10 @@
steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+ steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+ steCommand.setBay(steProtocol.getBay());
+ steCommand.setLev(steProtocol.getLev());
+
if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
} else {
@@ -727,7 +733,7 @@
crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosX(Utils.getGroupRow(sourceSta.getRow1()).shortValue()); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
@@ -768,6 +774,99 @@
}
}
return false;
+ }
+
+ /**
+ * 搴撲綅绉昏浆
+ */
+ public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
+ // 鑾峰彇宸ヤ綔妗d俊鎭�
+ WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
+ if (null == wrkMast) {
+ return;
+ }
+ // 鑾峰彇婧愬簱浣嶄俊鎭�
+ LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (null == sourceSta) {
+ log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ return;
+ }
+ // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂�
+ if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("S")) {
+ return;
+ }
+ // 鑾峰彇鐩爣搴撲綅淇℃伅
+ LocMast sta = locMastService.selectById(wrkMast.getLocNo());
+ if (null == sta) {
+ log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ return;
+ }
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
+ BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
+ if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
+ return;
+ }
+
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ return;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ return;
+ }
+
+
+
+ // 婧愬簱浣� ===>> 鏈�澶栧眰搴撲綅
+ if (locMastService.isOutMost(wrkMast.getSourceLocNo())) {
+ // 鐩爣搴撲綅 ===>> 鏈�澶栧眰搴撲綅
+ if (locMastService.isOutMost(wrkMast.getLocNo())) {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 16.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(16L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
+ } else {
+
+
+
+ }
+
+ } else {
+
+ }
+
+
+
+
+
+
+
+
+
+
+
}
/**
@@ -819,7 +918,7 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
+ steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
steCommand.setTaskMode(SteTaskModeType.findWaiting(steProtocol.getRow().intValue())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
@@ -1133,33 +1232,33 @@
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
SteProtocol steProtocol = steThread.getSteProtocol();
if (steProtocol == null) { continue; }
- if (steProtocol.isIdle()) {
+// if (steProtocol.isIdle()) {
// 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
- if (!steThread.confirmPos()) {
- log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
- }
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- SteCommand steCommand = new SteCommand();
- steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴�
- if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
- log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+ if (!steThread.confirmPos()) {
+ log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
+ }
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ SteCommand steCommand = new SteCommand();
+ steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
+ steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
+ steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴�
+ if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
+ log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+ } else {
+ // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
+ wrkMast.setWrkSts(14L);
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
} else {
- // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
- wrkMast.setWrkSts(14L);
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
- // 鍫嗗灈鏈哄浣�
- crnThread.setResetFlag(true);
- } else {
- log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
+ log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
+// }
}
}
}
@@ -1541,9 +1640,5 @@
}
}
}
-
-
-
-
}
--
Gitblit v1.9.1