From 5a552bd8462b50b11ffd6730e456657366f37484 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 31 七月 2023 16:03:21 +0800
Subject: [PATCH] 提升机、穿梭车finished方法
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 213 +++++-----------------------------------------------
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2
src/main/resources/mapper/WrkMastMapper.xml | 4
src/main/java/com/zy/core/MainProcess.java | 4
4 files changed, 27 insertions(+), 196 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 89d591d..b4de01c 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -50,7 +50,7 @@
List<WrkMast> selectLiftStep262327();
- WrkMast selectByWorkNo372428(Integer workNo);
+ WrkMast selectByWorkNo324104(Integer workNo);
List<WrkMast> selectBy2125();
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 769aec2..dee35a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1480,40 +1480,26 @@
&& shuttleProtocol.getTaskNo() != 0
&& shuttleProtocol.getBusyStatus() == 0
) {
- //鏍囪澶嶄綅
- shuttleProtocol.setPakMk(true);
-
- ShuttleAssignCommand assignCommand = shuttleProtocol.getAssignCommand();
-
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
- ShuttleAssignCommand moveAssignCommand = null;//閬胯鍛戒护
if (wrkMast != null) {
switch (wrkMast.getWrkSts().intValue()) {
- case 9://9.灏忚溅鍏ュ簱鎼繍涓� ==> 14.鍏ュ簱瀹屾垚
- wrkMast.setWrkSts(14L);
+ case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
+ wrkMast.setWrkSts(9L);
//浠诲姟鍙锋竻闆�
shuttleProtocol.setTaskNo((short) 0);
break;
- case 5://5.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴�
- wrkMast.setWrkSts(6L);
- break;
- case 22://22.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴�
+ case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
wrkMast.setWrkSts(23L);
break;
- case 26://26.灏忚溅鍑哄簱鎼繍涓� ==> 27.灏忚溅鍑哄簱鎼繍瀹屾垚
- //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
- //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞�
- int distLev = Utils.getLev(wrkMast.getSourceLocNo());//閬胯妤煎眰
- String startLocNo = "180020" + distLev;
- moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo);
- if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖
- continue;
- }
-
- wrkMast.setWrkSts(27L);
- //浠诲姟鍙锋竻闆�
- shuttleProtocol.setTaskNo((short) 0);
+ case 102://102.灏忚溅鍒版彁鍗囨満涓� ==> 103.灏忚溅鍒版彁鍗囨満瀹屾垚
+ wrkMast.setWrkSts(103L);
+ break;
+ case 106://106.灏忚溅杩佸嚭鎻愬崌鏈轰腑 ==> 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴�
+ wrkMast.setWrkSts(107L);
+ break;
+ case 108://108.灏忚溅绉诲姩涓� ==> 109.灏忚溅绉诲姩瀹屾垚
+ wrkMast.setWrkSts(109L);
break;
default:
}
@@ -1528,83 +1514,11 @@
//浠诲姟鎸囦护娓呴浂
shuttleProtocol.setAssignCommand(null);
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-
- if (wrkMast.getWrkSts() == 27) {
- if (moveAssignCommand != null) {
- try {
- Thread.sleep(4000);
- //涓嬪彂浠诲姟
- shuttleProtocol.setPakMk(true);
- MessageQueue.offer(SlaveType.Shuttle, shuttleThread.getSlave().getId(), new Task(3, moveAssignCommand));
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
} else {
News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
}
}
- if (assignCommand != null) {
- if (assignCommand.getTaskMode().intValue() == ShuttleTaskModeType.AVOID.id) {
- //閬胯浠诲姟
- //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
- //浠诲姟鍙锋竻闆�
- shuttleProtocol.setTaskNo((short) 0);
- //婧愬簱浣嶆竻闆�
- shuttleProtocol.setSourceLocNo(null);
- //鐩爣搴撲綅娓呴浂
- shuttleProtocol.setLocNo(null);
- //浠诲姟鎸囦护娓呴浂
- shuttleProtocol.setAssignCommand(null);
- News.info("鍥涘悜绌挎杞﹂伩璁╀换鍔″凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
- }
- }
-
- }
-
- //鍥涘悜绌挎杞︾姸鎬佷负鍏呯數鐘舵��
- if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id //鍏呯數鏍囪瘑
- && shuttleProtocol.getTaskNo() != 0) {
- //鏌ヨ鏄惁鏈夊厖鐢典换鍔�
- WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
- if (wrkCharge != null) {
- switch (wrkCharge.getWrkSts().intValue()) {
- case 52://鍥涘悜绌挎杞﹁縼绉诲埌鎻愬崌鏈哄彛
- wrkCharge.setWrkSts(53L);//杩佺Щ瀹屾垚
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING);
- break;
- case 56://灏忚溅鍘诲厖鐢垫々涓�
- wrkCharge.setWrkSts(57L);//鍒拌揪鍏呯數妗�
- break;
- default:
- }
-
- if (wrkChargeMapper.updateById(wrkCharge) > 0) {
- if (wrkCharge.getWrkSts() == 60) {
- //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
- }
- if (wrkCharge.getWrkSts() != 57) {
- //浠诲姟鍙锋竻闆�
- shuttleProtocol.setTaskNo((short) 0);
- //婧愬簱浣嶆竻闆�
- shuttleProtocol.setSourceLocNo(null);
- //鐩爣搴撲綅娓呴浂
- shuttleProtocol.setLocNo(null);
- //鏍囪澶嶄綅
- shuttleProtocol.setPakMk(true);
- //浠诲姟鎸囦护娓呴浂
- shuttleProtocol.setAssignCommand(null);
- }
- News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
- } else {
- News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
- }
- }
}
}
@@ -1904,63 +1818,18 @@
&& !liftProtocol.getBusy()
) {
- DevpThread devpThread = null;
- Integer devpId = null;
- for (DevpSlave devp : slaveProperties.getDevp()){
- // 鑾峰彇鍏ュ簱绔欎俊鎭�
- devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- devpId = devp.getId();
- }
-
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
- WrkMast wrkMast = wrkMastMapper.selectByWorkNo372428(liftProtocol.getTaskNo().intValue());
+ WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(liftProtocol.getTaskNo().intValue());
if (wrkMast != null) {
- //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀埌杈句换鍔℃ゼ灞�
- String locNo = wrkMast.getIoType() < 101 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
- int lev = Utils.getLev(locNo);//浠诲姟鐩爣妤煎眰
-
- //鏍囪澶嶄綅
- liftProtocol.setPakMk(true);
-
switch (wrkMast.getWrkSts().intValue()) {
case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
- if (liftProtocol.getLev().intValue() != lev) {
- continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
- }
- //缁欑洰鏍囩珯璁剧疆宸ヤ綔鍙�
- StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());//鐩爣绔�
- staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
wrkMast.setWrkSts(4L);
- //浠诲姟鍙锋竻闆�
- liftProtocol.setTaskNo((short) 0);
- wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿�
break;
- case 7://7.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 8.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴�
- if (liftProtocol.getLev().intValue() != lev) {
- continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
- }
- wrkMast.setWrkSts(8L);
- break;
- case 24://24.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 25.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴�
- if (liftProtocol.getLev().intValue() != lev) {
- continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
- }
+ case 24://24.鎻愬崌鏈烘惉杩愪腑 ==> 25.鎻愬崌鏈烘惉杩愬畬鎴�
wrkMast.setWrkSts(25L);
break;
- case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴�
-// if (liftProtocol.getPositionArrivalFeedback().intValue() != 2) {
-// continue;//鎻愬崌鏈烘槸鍚﹁揪鍒拌緭閫佺嚎妤煎眰
-// }
- wrkMast.setWrkSts(29L);
- wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵��
- //浠诲姟鍙锋竻闆�
- liftProtocol.setTaskNo((short) 0);
- wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿�
+ case 104://104.鎻愬崌鏈烘惉杩愪腑 ==> 105.鎻愬崌鏈烘惉杩愬畬鎴�
+ wrkMast.setWrkSts(105L);
break;
default:
}
@@ -1974,50 +1843,6 @@
} else {
News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
}
- }
-
- //鏌ヨ鏄惁鏈夊厖鐢典换鍔�
- WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(liftProtocol.getTaskNo().intValue());
- if (wrkCharge != null) {
- //鏍囪澶嶄綅
- liftProtocol.setPakMk(true);
-
- switch (wrkCharge.getWrkSts().intValue()) {
- case 54://鎻愬崌鏈烘惉杩愪腑
- wrkCharge.setWrkSts(55L);//鎻愬崌鏈烘惉杩愬畬鎴�
- break;
- default:
- }
-
- if (wrkChargeMapper.updateById(wrkCharge) > 0) {
- //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
- liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
- //浠诲姟鍙锋竻闆�
- liftProtocol.setTaskNo((short) 0);
- //鏍囪澶嶄綅
- liftProtocol.setPakMk(true);
- //浠诲姟鎸囦护娓呴浂
- liftProtocol.setAssignCommand(null);
- News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
- } else {
- News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
- }
- }
-
- //涓嶆槸鍏ュ嚭搴撹皟搴︿换鍔°�佸伐浣滄。浠诲姟锛岃繘琛屾彁鍗囨満鐨勫浣�
- if (liftProtocol.getAssignCommand() != null) {
- //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
- liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
- //鍒ゆ柇鏄惁涓哄洓鍚戠┛姊溅璋冨害鎻愬崌鏈猴紝濡傛槸鍒欐棤闇�娓呯悊浠诲姟鍙�
-// if (!liftProtocol.getSecurityMk()) {
-// //浠诲姟鍙锋竻闆�
-// liftProtocol.setTaskNo((short) 0);
-// }
- //鏍囪澶嶄綅
- liftProtocol.setPakMk(true);
- //浠诲姟鎸囦护娓呴浂
- liftProtocol.setAssignCommand(null);
- News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
}
}
@@ -3209,6 +3034,11 @@
if (basLift.getPoint() == null) {
return false;//娌℃湁璁剧疆鎻愬崌鏈虹偣浣嶅潗鏍�
}
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
+ WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(basLift.getLiftNo());
+ if (liftWrkMast != null) {
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
+ }
NavigateNode liftNode = new NavigateNode(basLift.getPoint().getX(), basLift.getPoint().getY());
liftNode.setZ(basLift.getPoint().getZ());
@@ -3231,7 +3061,7 @@
assignCommand.setNodes(result.getNodes());
wrkMast.setWrkSts(102L);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 101.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 102.灏忚溅鍒版彁鍗囨満涓�
- wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿
+ wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿(閿佸畾鎻愬崌鏈洪槻姝㈣鍏朵粬浠诲姟鎶㈠崰)
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
@@ -3451,6 +3281,7 @@
assignCommand.setNodes(result.getNodes());
wrkMast.setWrkSts(108L);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 108.灏忚溅绉诲姩涓�
+ wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 555c5f1..e34999f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -61,8 +61,8 @@
// mainService.shuttleIoInExecute();
// // 鍑哄簱 ===>> 鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�
// mainService.shuttleIoOutExecute();
-// //鍥涘悜绌挎杞︿换鍔″畬鎴�
-// mainService.shuttleFinished();
+ //鍥涘悜绌挎杞︿换鍔″畬鎴�
+ mainService.shuttleFinished();
//鎻愬崌鏈轰换鍔�
mainService.liftIoExecute();
//鎻愬崌鏈轰换鍔″畬鎴�
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 9667117..894aeb2 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -132,10 +132,10 @@
order by io_pri desc,wrk_sts desc
</select>
- <select id="selectByWorkNo372428" resultMap="BaseResultMap">
+ <select id="selectByWorkNo324104" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast
where wrk_no=#{workNo}
- and wrk_sts in (3,7,24,28)
+ and wrk_sts in (3,24,104)
</select>
<select id="selectBy2125" resultMap="BaseResultMap">
--
Gitblit v1.9.1