From cb757218ff35e8b302de2d6cc5a95b842acd8ea2 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 20 九月 2023 12:33:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 76 insertions(+), 41 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 bd38850..4b61f61 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -928,12 +928,17 @@
break;
case 110://110.灏忚溅绉诲姩涓� ==> 111.灏忚溅绉诲姩瀹屾垚
wrkMast.setWrkSts(111L);
+ shuttleProtocol.setTaskNo(0);
if (shuttleProtocol.getToken() == wrkMast.getWrkNo()) {
//閲婃斁灏忚溅浠ょ墝
shuttleProtocol.setToken(0);
}
break;
- case 111:
+ default:
+ }
+
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ if (wrkMast.getWrkSts() == 111) {
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (wrkMastLocMapper.save(wrkMast.getWrkNo()) <= 0) {
log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
@@ -942,11 +947,8 @@
if (!wrkMastService.deleteById(wrkMast)) {
log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
}
- break;
- default:
- }
+ }
- if (wrkMastMapper.updateById(wrkMast) > 0) {
//璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
//婧愬簱浣嶆竻闆�
@@ -958,6 +960,24 @@
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
} else {
News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
+ }
+ }else {
+ ShuttleAssignCommand assignCommand = shuttleProtocol.getAssignCommand();
+ if (!assignCommand.getAuto()) {
+ //鎵嬪姩妯″紡
+ //宸ヤ綔鍙锋竻闆�
+ shuttleProtocol.setTaskNo(0);
+ //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
+ shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ //婧愬簱浣嶆竻闆�
+ shuttleProtocol.setSourceLocNo(null);
+ //鐩爣搴撲綅娓呴浂
+ shuttleProtocol.setLocNo(null);
+ //浠诲姟鎸囦护娓呴浂
+ shuttleProtocol.setAssignCommand(null);
+ //娓呴浂浠ょ墝
+ shuttleProtocol.setToken(0);
+ News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
}
}
@@ -1247,7 +1267,7 @@
//鏌ヨ搴撲綅绉昏浆宸ヤ綔妗�
List<WrkMast> wrkMasts1 = wrkMastMapper.selectLocToLocWrkMast();
for (WrkMast wrkMast : wrkMasts1) {
- if (wrkMast.getSourceLocNo().equals(wrkMast.getLocNo())) {
+ if (Utils.getLev(wrkMast.getSourceLocNo()) == Utils.getLev(wrkMast.getLocNo())) {
boolean step1 = this.locToLocExecuteStep1(wrkMast);//鍚屾ゼ灞傚簱浣嶇Щ杞�
if (!step1) {
continue;
@@ -1366,10 +1386,14 @@
}
//鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満杈撻�佺珯鐐�
- BasDevp liftSta = shuttleDispatchUtils.getRecentLiftSta(shuttleThread.getSlave().getId());
+ LiftStaProtocol liftSta = shuttleDispatchUtils.getRecentLiftSta(shuttleThread.getSlave().getId());
if (liftSta == null) {
return false;//娌℃湁鍙敤涓旂┖闂茬殑杈撻�佺珯鐐�
}
+ //婧愮珯
+ Integer sourceStaNo = liftSta.getStaNo();
+ //鎻愬崌鏈哄彿*100+鐩爣妤煎眰=鐩爣绔欑偣
+ Integer staNo = liftSta.getLiftNo() * 100 + Utils.getLev(wrkMast.getLocNo());//鐩爣绔�
//灏忚溅宸叉姷杈炬簮搴撲綅锛屽皢璐х墿鎼繍鍒拌緭閫佺珯鐐�
NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(wrkMast.getShuttleNo(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), wrkMast.getSourceLocNo(), liftSta.getLocNo());
@@ -1387,7 +1411,8 @@
assignCommand.setNodes(result.getNodes());//璺緞鑺傜偣
wrkMast.setWrkSts(22L);//21.鐢熸垚鍑哄簱浠诲姟 => 22.灏忚溅鎼繍涓�
- wrkMast.setLiftNo(liftSta.getLiftNo());//璁剧疆鎻愬崌鏈哄彿
+ wrkMast.setSourceStaNo(sourceStaNo);//婧愮珯
+ wrkMast.setStaNo(staNo);//鐩爣绔�
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
@@ -1427,16 +1452,16 @@
return false;
}
- //鑾峰彇婧愮珯瀵瑰簲鐨勮緭閫佺珯鐐�
- BasDevp sourceBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getSourceLocNo()), liftProtocol.getLiftNo().intValue());
- //鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐�
- BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getLocNo()), liftProtocol.getLiftNo().intValue());
- if (sourceBasDevp == null || targetBasDevp == null) {
- return false;//缂哄皯绔欑偣淇℃伅
+ //婧愮珯
+ Integer sourceStaNo = wrkMast.getSourceStaNo();
+ //鐩爣绔�
+ Integer staNo = wrkMast.getStaNo();
+ if (sourceStaNo == null || staNo == null) {
+ return false;//婧愮珯鎴栫洰鏍囩珯涓虹┖
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, sourceBasDevp.getDevNo(), targetBasDevp.getDevNo(), wrkMast.getWrkNo());
+ NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, sourceStaNo, staNo, wrkMast.getWrkNo());
ArrayList<NyLiftCommand> commands = new ArrayList<>();
commands.add(liftCommand);
@@ -1515,6 +1540,7 @@
assignCommand.setNodes(result.getNodes());//璺緞鑺傜偣
wrkMast.setWrkSts(5L);//4.鎻愬崌鏈烘惉杩愬畬鎴� => 5.灏忚溅鎼繍涓�
+ wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
@@ -2217,14 +2243,14 @@
return false;
}
- //鑾峰彇鐩爣杈撻�佺珯
- BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNo());
- if (basDevp == null) {
- return false;//鎵句笉鍒拌緭閫佺珯鐐�
+ //鑾峰彇婧愯緭閫佺珯
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
+ if (liftSta == null) {
+ return false;//鎵句笉鍒扮珯鐐�
}
//鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
- NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), basDevp.getLocNo());
+ NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo());
List<NyShuttleHttpCommand> commands = result.getCommands();
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
@@ -2259,14 +2285,20 @@
//灏忚溅绉诲姩鍒版彁鍗囨満涓� 103.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 104.灏忚溅杩佸叆鎻愬崌鏈轰腑
if (wrkMast.getWrkSts() == 103) {
+ //鑾峰彇婧愮珯
+ LiftStaProtocol sourceLiftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
+ if (sourceLiftSta == null) {
+ return false;//鎵句笉鍒扮珯鐐�
+ }
+
//鑾峰彇鐩爣杈撻�佺珯
- BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNo());
- if (basDevp == null) {
- return false;//鎵句笉鍒拌緭閫佺珯鐐�
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
+ if (liftSta == null) {
+ return false;//鎵句笉鍒扮珯鐐�
}
//鑾峰彇鎻愬崌鏈烘暟鎹�
- BasLift basLift = basLiftService.selectById(basDevp.getLiftNo());
+ BasLift basLift = basLiftService.selectById(liftSta.getLiftNo());
if (basLift == null) {
return false;//娌℃湁鎻愬崌鏈烘暟鎹�
}
@@ -2281,7 +2313,7 @@
return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
- LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, basDevp.getLiftNo());
+ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSta.getLiftNo());
if (liftThread == null) {
return false;
}
@@ -2313,10 +2345,8 @@
//鎻愬崌鏈轰笉鍦ㄥ皬杞︽ゼ灞�
//璋冨害鎻愬崌鏈�
- //鑾峰彇婧愮珯瀵瑰簲鐨勮緭閫佺珯鐐�
- BasDevp sourceBasDevp = basDevpService.selectByLevAndLiftNo(liftProtocol.getLev().intValue(), liftProtocol.getLiftNo().intValue());
- //鑾峰彇鎻愬崌鏈哄懡浠�
- NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceBasDevp.getDevNo(), basDevp.getDevNo(), wrkMast.getWrkNo());
+ //鑾峰彇鎻愬崌鏈哄懡浠わ紝璋冨害鎻愬崌鏈哄埌婧愮珯浣嶇疆
+ NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceLiftSta.getStaNo(), sourceLiftSta.getStaNo(), wrkMast.getWrkNo());
ArrayList<NyLiftCommand> commands = new ArrayList<>();
commands.add(liftCommand);
@@ -2349,7 +2379,7 @@
}
//绔欑偣鑺傜偣
- NavigateNode staNode = NavigatePositionConvert.locNoToNode(basDevp.getLocNo());
+ NavigateNode staNode = NavigatePositionConvert.locNoToNode(sourceLiftSta.getLocNo());
//鎻愬崌鏈鸿妭鐐�
NavigateNode liftNode = new NavigateNode(basLift.getPoint$().getX(), basLift.getPoint$().getY());
@@ -2414,6 +2444,11 @@
return false;//鎻愬崌鏈轰护鐗屽拰褰撳墠灏忚溅涓嶄竴鑷达紝绂佹娲惧彂
}
+ //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
+ if (!liftProtocol.getHasCar()) {
+ return false;//鎻愬崌鏈哄唴鏃犲皬杞�
+ }
+
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
if (shuttleThread == null) {
@@ -2434,16 +2469,16 @@
return false;
}
- //鑾峰彇婧愮珯瀵瑰簲鐨勮緭閫佺珯鐐�
- BasDevp sourceBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getSourceLocNo()), liftProtocol.getLiftNo().intValue());
- //鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐�
- BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getLocNo()), liftProtocol.getLiftNo().intValue());
- if (sourceBasDevp == null || targetBasDevp == null) {
+ //鑾峰彇婧愮珯
+ LiftStaProtocol sourceLiftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
+ //鑾峰彇鐩爣绔�
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
+ if (sourceLiftSta == null || liftSta == null) {
return false;//缂哄皯绔欑偣淇℃伅
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceBasDevp.getDevNo(), targetBasDevp.getDevNo(), wrkMast.getWrkNo());
+ NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceLiftSta.getStaNo(), liftSta.getStaNo(), wrkMast.getWrkNo());
ArrayList<NyLiftCommand> commands = new ArrayList<>();
commands.add(liftCommand);
@@ -2515,10 +2550,10 @@
return false;
}
- //鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐�
- BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getLocNo()), liftProtocol.getLiftNo().intValue());
- if (targetBasDevp == null) {
- return false;//缂哄皯绔欑偣淇℃伅
+ //鑾峰彇鐩爣绔�
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
+ if (liftSta == null) {
+ return false;//鎵句笉鍒扮珯鐐�
}
//鑾峰彇鎻愬崌鏈烘暟鎹�
@@ -2534,7 +2569,7 @@
List<NyShuttleHttpCommand> commands = new ArrayList<>();
//鑾峰彇灏忚溅鍑烘彁鍗囨満琛岃蛋鍛戒护
- NyShuttleHttpCommand moveCommand = NyHttpUtils.getInOutLiftCommand(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), liftNode, NavigatePositionConvert.locNoToNode(targetBasDevp.getLocNo()), false);
+ NyShuttleHttpCommand moveCommand = NyHttpUtils.getInOutLiftCommand(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), liftNode, NavigatePositionConvert.locNoToNode(liftSta.getLocNo()), false);
commands.add(moveCommand);//娣诲姞灏忚溅杩佸嚭鎻愬崌鏈哄懡浠�
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
--
Gitblit v1.9.1