From c5ba40cbd977a23c1b659b6923bf3f67326ff092 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 03 十二月 2022 15:59:58 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 90 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 73 insertions(+), 17 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 15a9e9e..e88ad51 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -970,11 +970,11 @@
}
// 缃《浠诲姟
- wrkMast.setIoPri((double) 9999);
+ wrkMast.setIoPri((double) 9998);
wrkMastMapper.updateById(wrkMast);
// 鍒ゆ柇鏄惁涓虹┛姊簱
- if (!locMastService.isShuttle(wrkMast.getLocNo())) {
+ if (!locMastService.isShuttle(wrkMast.getSourceLocNo())) {
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
@@ -987,7 +987,7 @@
log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
if(waitWrkMast.getWrkSts() == 11) {
- waitWrkMast.setIoPri(20D);
+ waitWrkMast.setIoPri(wrkMast.getIoPri() + 1);
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
@@ -1106,6 +1106,9 @@
wrkMast.setSteNo(steNo);
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
+ LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ Integer outCrnNo = locMastService.getOutCrnNo(locMast);
+ wrkMast.setCrnNo(outCrnNo);
if (wrkMastMapper.updateById(wrkMast) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
@@ -1327,7 +1330,14 @@
SteProtocol steProtocol = steThread.getSteProtocol();
if (steProtocol == null) { continue; }
if (!steProtocol.isIdle()) { continue; }
+ if (steProtocol.getRow() == 1) { continue; }
String locNo = wrkMast.getWrkSts() < 10 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
+ // 濡傛灉鍦ㄥ悓涓�涓簱浣嶇粍
+ if (Utils.getGroupRow(locNo, true).equals(Utils.getGroupRow(steProtocol.getRow().intValue(), true))
+ && steProtocol.getBay().intValue() == Utils.getBay(locNo)
+ && steProtocol.getLev().intValue() == Utils.getLev(locNo)) {
+ return steThread;
+ }
LocMast locMast = locMastService.selectById(locNo);
int lev = locMast.getLev1();
int bay = locMast.getBay1();
@@ -1853,6 +1863,9 @@
Date now = new Date();
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
+ LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ Integer outCrnNo = locMastService.getOutCrnNo(locMast);
+ wrkMast.setCrnNo(outCrnNo);
// 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
if (wrkMastMapper.updateById(wrkMast) > 0) {
// 鍫嗗灈鏈哄浣�
@@ -2534,7 +2547,7 @@
SteChargeType first = SteChargeType.FIRST;
locNo = first.locNo;
if (basSteService.hasCarOfLocNo(locNo) == null
- && wrkChargeService.selectWorkingOfCharge(first.ssbm) != null) {
+ && wrkChargeService.selectWorkingOfCharge(first.ssbm) == null) {
steCharge = first;
break;
}
@@ -2543,7 +2556,7 @@
SteChargeType second = SteChargeType.SECOND;
locNo = second.locNo;
if (basSteService.hasCarOfLocNo(locNo) == null
- && wrkChargeService.selectWorkingOfCharge(second.ssbm) != null) {
+ && wrkChargeService.selectWorkingOfCharge(second.ssbm) == null) {
steCharge = second;
break;
}
@@ -2552,7 +2565,7 @@
SteChargeType third = SteChargeType.THIRD;
locNo = third.locNo;
if (basSteService.hasCarOfLocNo(locNo) == null
- && wrkChargeService.selectWorkingOfCharge(third.ssbm) != null) {
+ && wrkChargeService.selectWorkingOfCharge(third.ssbm) == null) {
steCharge = third;
break;
}
@@ -2578,6 +2591,40 @@
if (!wrkChargeService.insert(wrkCharge)) {
log.error("淇濆瓨{}鍙风┛姊溅鍏呯數浠诲姟澶辫触!!!", ste.getId());
continue;
+ }
+
+ // 灏忚溅澶勪簬閫氶亾
+ List<String> channel = slaveProperties.getChannel();
+ for (String channelLocNo : channel) {
+ if (steProtocol.getRow().intValue() == Utils.getRow(channelLocNo)
+ && steProtocol.getBay().intValue() == Utils.getBay(channelLocNo)
+ && steProtocol.getLev().intValue() == Utils.getLev(channelLocNo)) {
+ Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
+ if (null != otherSte) {
+ log.warn("{}鍙峰皬杞﹀厖鐢甸樆鏂紝鍘熷洜锛氶�氶亾瀛樺湪{}鍙风┛姊溅锛�", wrkCharge.getSteNo(), otherSte);
+ } else {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ SteCommand steCommand = new SteCommand();
+ steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
+ steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
+ steCommand.setTaskMode(SteTaskModeType.GO_ORIGIN); // 鍘诲彸绔�
+
+ steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), false).shortValue());
+ steCommand.setBay(steProtocol.getBay());
+ steCommand.setLev(steProtocol.getLev());
+ if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
+ log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 21.鍑嗗鍏呯數 ===> 25.灏忚溅璧拌
+ wrkCharge.setWrkSts(25L);
+ Date now = new Date();
+ wrkCharge.setModiTime(now);
+ if (!wrkChargeService.updateById(wrkCharge)) {
+ log.error("淇敼鍏呯數浠诲姟鐘舵�� 21.鍑嗗鍏呯數 ===> 25.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ }
+ }
+ }
+ }
}
// 澶勪簬鍏呯數搴撲綅缁�
@@ -2788,22 +2835,31 @@
if (Cools.isEmpty(steProtocol, basSte)) {
continue;
}
- // 1鍙峰厖鐢垫々
- if (value.equals(SteChargeType.FIRST) && devpThread.charge0) {
+ if (steProtocol.getCharge() < 99) {
continue;
}
- // 2鍙峰厖鐢垫々
- if (value.equals(SteChargeType.SECOND) && devpThread.charge1) {
+ if (steProtocol.getMode() == 0) {
continue;
}
- // 3鍙峰厖鐢垫々
- if (value.equals(SteChargeType.THIRD) && devpThread.charge2) {
+ if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
continue;
}
- // 灏忚溅鏄惁澶勪簬鍏呯數鐘舵��
- if (steProtocol.getChargeStatus() == 1) {
- continue;
- }
+// // 1鍙峰厖鐢垫々
+// if (value.equals(SteChargeType.FIRST) && devpThread.charge0) {
+// continue;
+// }
+// // 2鍙峰厖鐢垫々
+// if (value.equals(SteChargeType.SECOND) && devpThread.charge1) {
+// continue;
+// }
+// // 3鍙峰厖鐢垫々
+// if (value.equals(SteChargeType.THIRD) && devpThread.charge2) {
+// continue;
+// }
+// // 灏忚溅鏄惁澶勪簬鍏呯數鐘舵��
+// if (steProtocol.getChargeStatus() == 1) {
+// continue;
+// }
// case 1 : 鑷姩鍏呯數寮� 棣堢數 脳
// case 2 : 鑷姩鍏呯數寮� 婊$數 鉁�
// case 3 : 鑷姩鍏呯數鍏� 棣堢數 鉁�
@@ -2873,7 +2929,7 @@
crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), false).shortValue()); // 鐩爣搴撲綅鎺�
--
Gitblit v1.9.1