From c044a330577ff189832c5c6b4c24fb97931c9b14 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 15 二月 2023 15:03:59 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 225 +++++++++-----------------------------------------------
1 files changed, 36 insertions(+), 189 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 e562e1c..0297324 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -951,72 +951,6 @@
wrkMast.setIoPri((double) 9998);
wrkMastMapper.updateById(wrkMast);
- // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
- if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
- WrkMast waitWrkMast = wrkMastMapper.selectBySourceLocNo(shallowLocNo);
- if (null == waitWrkMast) {
- News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
- } else {
- if(waitWrkMast.getWrkSts() == 11) {
- waitWrkMast.setIoPri(wrkMast.getIoPri() + 1);
- waitWrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
- }
- }
- continue;
- }
- } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
- // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
- if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
- wrkMast.setUpdMk("Y");
- wrkMastMapper.updateById(wrkMast);
- // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
- moveLocForDeepLoc(slave, shallowLoc);
- }
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
- continue;
- }
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (wrkMastMapper.selectWorking(slave.getId()) != null) {
- continue;
- }
-
- // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
- 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(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.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) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- } else {
- return true;
- }
- }
-
- } else {
-
// 鏈�澶栧眰搴撲綅锛岀洿鎺ュ爢鍨涙満鍑哄簱
if (locMastService.isOutMost(wrkMast.getSourceLocNo(), false)) {
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
@@ -1050,7 +984,7 @@
return true;
}
}
- // 涓嶆槸鏈�澶栧眰搴撲綅锛岄渶瑕佷娇鐢ㄧ┛姊溅鎼繍鍚庯紝鍐嶅爢鍨涙満鍑哄簱
+ // 涓嶆槸鏈�澶栧眰搴撲綅锛岄渶瑕佷娇鐢ㄧ┛姊溅鎼繍鍚庯紝鍐嶅爢鍨涙満鍑哄簱
} else {
// 褰撳墠缁勫簱浣嶆槸鍚︽湁绌挎杞�
Integer steNo = this.hasCarOfIdle(wrkMast.getSourceLocNo());
@@ -1128,7 +1062,7 @@
}
}
- // 娌℃湁灏忚溅
+ // 娌℃湁灏忚溅
} else {
if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) {
// 瀵绘壘鏈�杩戠殑灏忚溅
@@ -2592,7 +2526,7 @@
wrkCharge.setCharge(steCharge.ssbm);
wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
wrkCharge.setWrkSts(21L); // 21.鍑嗗鍏呯數
- wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満
+ wrkCharge.setCrnNo(1); // 鍥哄畾1鍙峰爢鍨涙満
wrkCharge.setIoPri((double) 10);
wrkCharge.setLocNo(chargeLocNo);
wrkCharge.setMemo("charge");
@@ -2602,49 +2536,15 @@
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) {
- News.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))) {
- News.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 21.鍑嗗鍏呯數 ===> 25.灏忚溅璧拌
- wrkCharge.setWrkSts(25L);
- Date now = new Date();
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼鍏呯數浠诲姟鐘舵�� 21.鍑嗗鍏呯數 ===> 25.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
- }
- }
-
// 澶勪簬鍏呯數搴撲綅缁�
if (steProtocol.getRow().intValue() == Utils.getRow(chargeLocNo)
&& steProtocol.getBay().intValue() == Utils.getBay(chargeLocNo)
&& steProtocol.getLev().intValue() == Utils.getLev(chargeLocNo)) {
- // 淇敼宸ヤ綔妗g姸鎬� 21.鍑嗗鍏呯數 => 28.鍏呯數灏辩华
- wrkCharge.setWrkSts(28L);
+ // 淇敼宸ヤ綔妗g姸鎬� 21.鍑嗗鍏呯數 => 24.灏忚溅鍒拌揪
+ wrkCharge.setWrkSts(24L);
wrkCharge.setModiTime(new Date());
if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼鍏呯數浠诲姟鐘舵�� 21.鍑嗗鍏呯數 => 28.鍏呯數灏辩华 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ News.error("淇敼鍏呯數浠诲姟鐘舵�� 21.鍑嗗鍏呯數 => 24.灏忚溅鍒拌揪 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
}
} else {
this.letCarBeWaiting(wrkCharge, ste.getId());
@@ -2700,49 +2600,39 @@
return;
}
+ LocMast locMast = locMastService.selectById(basSte.getIdleLoc());
+
// 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾
- List<String> channel = slaveProperties.getChannel();
- for (String channelLocNo : channel) {
- Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
- if (null != otherSte) {
- News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte);
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) { return; }
+ // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+ // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
} else {
- LocMast channelLoc = locMastService.selectById(channelLocNo);
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) { continue; }
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), true), channelLoc.getBay1(), channelLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
- Date now = new Date();
- wrkCharge.setWrkSts(23L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- break;
+ // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+ steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo(), true), locMast.getBay1(), locMast.getLev1());
+ // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
+ Date now = new Date();
+ wrkCharge.setWrkSts(23L);
+ wrkCharge.setCrnStrTime(now);
+ wrkCharge.setModiTime(now);
+ if (!wrkChargeService.updateById(wrkCharge)) {
+ News.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
}
-
}
}
@@ -2773,49 +2663,6 @@
}
}
} else if (wrkCharge.getWrkSts() == 26) {
- // 鍥哄畾鍫嗗灈鏈�
- int crnNo = 1;
- // 鍏ュ嚭搴撲换鍔′紭鍏�
- if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) {
- return;
- }
-
- // 鍏呯數浣�
- LocMast chargeLoc = locMastService.selectById(wrkCharge.getLocNo());
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) { return; }
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), false).shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(chargeLoc.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(chargeLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(chargeLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnNo, JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(chargeLoc.getRow1(), chargeLoc.getBay1(), chargeLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 => 27.鏀捐嚦鍏呯數浣�
- Date now = new Date();
- wrkCharge.setWrkSts(27L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 => 27.鏀捐嚦鍏呯數浣� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
- } else if (wrkCharge.getWrkSts() == 28L) {
// 绌挎杞︿笅鍙戝厖鐢典换鍔�
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
--
Gitblit v1.9.1