From d317c70cf46549a5cc190d1e3334bd8945ee46a8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 27 六月 2023 15:45:04 +0800
Subject: [PATCH] 单步命令完成状态
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 338 +++++++++++++++++---------------------------------------
1 files changed, 104 insertions(+), 234 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 0ab1ebe..33c6fd8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -684,13 +684,17 @@
//鐘舵��8锛岀瓑寰呭懡浠よ繘琛屽叆搴撴惉杩愬姩浣�
//鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
- if (!liftProtocol.isIdle()) {
+ if (!liftProtocol.isIdleNoTask()) {
try {
Thread.sleep(1000);//浼戠湢1s
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
continue;//鎻愬崌鏈哄繖
+ }
+ //鍒ゆ柇鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙锋槸鍚︿竴鑷�
+ if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+ continue;
}
//鍒ゆ柇鎻愬崌鏈烘ゼ灞傛槸鍚﹀埌浣嶏紝鍒ゆ柇绔欑偣鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙�
@@ -986,13 +990,17 @@
}else if(wrkMast.getWrkSts() == 25) {//鐘舵��25锛岄渶瑕佸悜灏忚溅涓嬪彂鍛戒护浠庢彁鍗囨満绉诲姩鍑哄幓锛岄渶瑕佸垽鏂彁鍗囨満鐘舵槸鍚︾┖闂层�佹彁鍗囨満鏄惁鍒拌揪鐩爣妤煎眰銆佺洰鏍囨ゼ灞傜珯鐐规槸鍚﹀瓨鍦ㄣ�佺洰鏍囨ゼ灞傜珯鐐规槸鍚︾粰鍑烘彁鍗囨満鍒颁綅淇″彿
//鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
- if (!liftProtocol.isIdle()) {
+ if (!liftProtocol.isIdleNoTask()) {
try {
Thread.sleep(1000);//浼戠湢1s
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
continue;//鎻愬崌鏈哄繖
+ }
+ //鍒ゆ柇鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙锋槸鍚︿竴鑷�
+ if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+ continue;
}
//鍒ゆ柇鎻愬崌鏈烘ゼ灞傛槸鍚﹀埌浣嶏紝鍒ゆ柇绔欑偣鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙�
@@ -1071,14 +1079,14 @@
BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
- String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+ String disLocNo = "200020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
LocMast locMast1 = locMastService.queryByLoc(disLocNo);
if (locMast1 == null) {
continue;//鎵句笉鍒板簱浣�
}
short disCode = Short.parseShort(locMast1.getQrCodeValue());
//浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
- ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500);
+ ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, disCode, 2800, ShuttleRunDirection.BOTTOM.id, endStartCode, 2800, 1000);
commands.add(moveCommand);
//鍒嗛厤鐩爣搴撲綅
@@ -1147,10 +1155,25 @@
assignCommand.setTaskMode(ShuttleTaskModeType.PAK_OUT.id.shortValue());
assignCommand.setSourceLocNo(liftSiteLocNo);
+ //鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅
+ BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
+ Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
+
+ String disLocNo = "200020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+ LocMast locMast1 = locMastService.queryByLoc(disLocNo);
+ if (locMast1 == null) {
+ continue;//鎵句笉鍒板簱浣�
+ }
+ short disCode = Short.parseShort(locMast1.getQrCodeValue());
+ //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
+ ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 2800, ShuttleRunDirection.BOTTOM.id, endStartCode, 2800, 1000);
+
List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread);
if (commands == null) {
continue;//鏈壘鍒拌矾寰�
}
+ commands.add(moveCommand2);//浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
+
//姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛
short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜
Short distCode = commands.get(0).getStartCodeNum();//鐩爣浜岀淮鐮�
@@ -1197,7 +1220,7 @@
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
- if (shuttleProtocol == null) {
+ if (shuttleProtocol == null || shuttleProtocol.getShuttleNo() == null) {
continue;
}
if (!shuttleProtocol.isIdle()) {
@@ -1313,6 +1336,9 @@
&& shuttleProtocol.getTaskNo() != 0
&& shuttleProtocol.getBusyStatus() == 0
) {
+ //鏍囪澶嶄綅
+ shuttleProtocol.setPakMk(true);
+
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
if (wrkMast != null) {
@@ -1341,8 +1367,6 @@
shuttleProtocol.setSourceLocNo(null);
//鐩爣搴撲綅娓呴浂
shuttleProtocol.setLocNo(null);
- //鏍囪澶嶄綅
- shuttleProtocol.setPakMk(true);
//浠诲姟鎸囦护娓呴浂
shuttleProtocol.setAssignCommand(null);
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
@@ -1411,8 +1435,13 @@
continue;
}
- //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂茬姸鎬�
- if (!liftProtocol.isIdle()) {
+
+// if (!liftProtocol.isIdle()) {
+// continue;
+// }
+
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂茬姸鎬侊紝娌℃湁鍒ゆ柇浠诲姟鍙凤紝鍙兘鎻愬崌鏈哄浜庣┖闂诧紝浣嗘槸杩樻湁浠诲姟鏈畬鎴�
+ if (!liftProtocol.isIdleNoTask()) {
continue;
}
@@ -1434,6 +1463,21 @@
}
if (wrkMast.getWrkSts() == 2) {//2.璁惧涓婅蛋
+ if (liftProtocol.getTaskNo().intValue() != 0) {
+ //瀛樺湪鏈畬鎴愪换鍔″彿
+ continue;
+ }
+ if (liftProtocol.getPlatShuttleCheck()) {
+ //鎻愬崌鏈烘鏃舵湁鍥涘悜杞︼紝鍙兘鏈夋湭瀹屾垚鐨勪换鍔★紝绂佹鍒嗛厤鏂颁换鍔�
+ continue;
+ }
+
+ //鑾峰彇鐩爣绔�
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());
+ if (staProtocol.isLoading() || !staProtocol.isInEnable()) {//鐩爣绔欐湁鐗╋紝涓嶅彲鍏ワ紝绂佹鍒嗛厤浠诲姟
+ continue;
+ }
+
//宸ヤ綔妗g洰鏍囧簱浣嶅彿
String wrkMastLocNo = wrkMast.getLocNo();
//宸ヤ綔妗g洰鏍囧簱浣嶆ゼ灞�
@@ -1478,6 +1522,10 @@
wrkMast.setWrkSts(3L);//3.鎻愬崌鏈烘惉杩愪腑
} else if (wrkMast.getWrkSts() == 6) {//6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 7.鎻愬崌鏈鸿縼绉诲皬杞︿腑
+ if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+ //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+ continue;
+ }
liftProtocol.setShuttleNo(wrkMast.getShuttleNo().shortValue());//璁剧疆鍥涘悜绌挎杞﹀彿
//鍒ゆ柇灏忚溅鏄惁鍦ㄦ彁鍗囨満鍐咃紝涓斿浜庣┖闂茬姸鎬�
@@ -1494,6 +1542,10 @@
}
if (shuttleProtocol.getCurrentCode().intValue() != liftProtocol.getBarcode().intValue()) {
continue;//灏忚溅褰撳墠浜岀淮鐮佸拰鎻愬崌鏈哄唴閮ㄤ簩缁寸爜涓嶄竴鑷达紝涓嶅厑璁告墽琛�
+ }
+ if (!liftProtocol.getPlatShuttleCheck()) {
+ //鎻愬崌鏈烘湭妫�娴嬪埌灏忚溅锛岀姝㈡墽琛�
+ continue;
}
//宸ヤ綔妗g洰鏍囧簱浣嶅彿
@@ -1514,6 +1566,10 @@
wrkMast.setWrkSts(7L);//6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 7.鎻愬崌鏈鸿縼绉诲皬杞︿腑
} else if(wrkMast.getWrkSts() == 23) {//23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 24.鎻愬崌鏈鸿縼绉诲皬杞︿腑
+ if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+ //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+ continue;
+ }
liftProtocol.setShuttleNo(wrkMast.getShuttleNo().shortValue());//璁剧疆鍥涘悜绌挎杞﹀彿
//鍒ゆ柇灏忚溅鏄惁鍦ㄦ彁鍗囨満鍐咃紝涓斿浜庣┖闂茬姸鎬�
@@ -1531,6 +1587,10 @@
}
if (shuttleProtocol.getCurrentCode().intValue() != liftProtocol.getBarcode().intValue()) {
continue;//灏忚溅褰撳墠浜岀淮鐮佸拰鎻愬崌鏈哄唴閮ㄤ簩缁寸爜涓嶄竴鑷达紝涓嶅厑璁告墽琛�
+ }
+ if (!liftProtocol.getPlatShuttleCheck()) {
+ //鎻愬崌鏈烘湭妫�娴嬪埌灏忚溅锛岀姝㈡墽琛�
+ continue;
}
//宸ヤ綔妗g洰鏍囧簱浣嶅彿
@@ -1551,6 +1611,15 @@
wrkMast.setWrkSts(24L);//23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 24.鎻愬崌鏈鸿縼绉诲皬杞︿腑
} else if (wrkMast.getWrkSts() == 27) {//27.灏忚溅鍑哄簱鎼繍瀹屾垚
+ if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+ //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+ continue;
+ }
+ if (liftProtocol.getPlatShuttleCheck()) {
+ //鎻愬崌鏈烘鏃舵湁鍥涘悜杞︼紝鍙兘鏈夋湭瀹屾垚鐨勪换鍔★紝绂佹鍒嗛厤鏂颁换鍔�
+ continue;
+ }
+
//宸ヤ綔妗f簮搴撲綅鍙�
String wrkMastLocNo = wrkMast.getSourceLocNo();
//宸ヤ綔妗f簮搴撲綅妤煎眰
@@ -1643,6 +1712,16 @@
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
WrkMast wrkMast = wrkMastMapper.selectByWorkNo372428(liftProtocol.getTaskNo().intValue());
if (wrkMast != null) {
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀埌杈句换鍔℃ゼ灞�
+ String locNo = wrkMast.getIoType() < 101 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
+ int lev = Utils.getLev(locNo);//浠诲姟鐩爣妤煎眰
+ if (liftProtocol.getLev().intValue() != lev) {
+ continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
+ }
+
+ //鏍囪澶嶄綅
+ liftProtocol.setPakMk(true);
+
switch (wrkMast.getWrkSts().intValue()) {
case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
//缁欑洰鏍囩珯璁剧疆宸ヤ綔鍙�
@@ -1653,6 +1732,8 @@
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
+ //浠诲姟鍙锋竻闆�
+ liftProtocol.setTaskNo((short) 0);
wrkMast.setWrkSts(4L);
break;
case 7://7.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 8.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴�
@@ -1664,6 +1745,8 @@
case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴�
wrkMast.setWrkSts(29L);
wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵��
+ //浠诲姟鍙锋竻闆�
+ liftProtocol.setTaskNo((short) 0);
break;
default:
}
@@ -1671,13 +1754,9 @@
if (wrkMastMapper.updateById(wrkMast) > 0) {
//璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
- //浠诲姟鍙锋竻闆�
- liftProtocol.setTaskNo((short) 0);
- //鏍囪澶嶄綅
- liftProtocol.setPakMk(true);
//浠诲姟鎸囦护娓呴浂
liftProtocol.setAssignCommand(null);
- News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
+ News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
} else {
News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
}
@@ -1686,6 +1765,9 @@
//鏌ヨ鏄惁鏈夊厖鐢典换鍔�
WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(liftProtocol.getTaskNo().intValue());
if (wrkCharge != null) {
+ //鏍囪澶嶄綅
+ liftProtocol.setPakMk(true);
+
switch (wrkCharge.getWrkSts().intValue()) {
case 54://鎻愬崌鏈烘惉杩愪腑
wrkCharge.setWrkSts(55L);//鎻愬崌鏈烘惉杩愬畬鎴�
@@ -2407,7 +2489,7 @@
continue;
}
- WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue(), WrkChargeType.charge);
+ WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue());
if (wrkCharge != null) {//宸叉湁鍏呯數浠诲姟
continue;
}
@@ -2449,7 +2531,7 @@
*/
public synchronized void executeShuttleCharge() {
for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
- WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge);
+ WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttle.getId());
if (wrkCharge == null) {
continue;
}
@@ -2672,8 +2754,12 @@
assignCommand.setCommands(commands);
shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING);
- //涓嬪彂浠诲姟
- MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+
+ wrkCharge.setWrkSts(60L);//60.鍏呯數浠诲姟瀹屾垚
+ if (wrkChargeMapper.updateById(wrkCharge) > 0) {
+ //涓嬪彂浠诲姟
+ MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+ }
}
if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id) {
@@ -2682,222 +2768,6 @@
}
}
- }
-
- /**
- * 杞鍏呯數妗╂槸鍚︽湁绌洪棽灏忚溅
- */
- @Deprecated
- public synchronized void queryChargeLocOfComplete() {
- // 涓庡厖鐢典换鍔′笉鍚屾杩涜
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) { return; }
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) { return; }
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- // 妫�绱㈠厖鐢垫々
- for (SteChargeType value : SteChargeType.values()) {
- Integer steNo = basSteService.hasCarOfLocNo(value.locNo);
- if (steNo != null) {
- SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
- SteProtocol steProtocol = steThread.getSteProtocol();
- BasSte basSte = basSteService.selectById(steNo);
- if (Cools.isEmpty(steProtocol, basSte)) {
- continue;
- }
- if (steProtocol.getCharge() < 99) {
- continue;
- }
- if (steProtocol.getMode() == 0) {
- continue;
- }
- if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
- 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 : 鑷姩鍏呯數鍏� 棣堢數 鉁�
- // case 4 : 鑷姩鍏呯數鍏� 婊$數 鉁�
- if (basSte.getAutoCharge().equals("Y")
- && steProtocol.getCharge() < Float.parseFloat(basSte.getChargeLine())) {
- continue;
- }
-
- WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset);
-
- if (wrkCharge == null) {
- // 寮�濮嬬┛姊溅澶嶄綅浠诲姟
- wrkCharge = new WrkCharge();
- wrkCharge.setSteNo(steNo);
- wrkCharge.setWrkNo(commonService.getChargeWorkNo(6));
- wrkCharge.setWrkSts(41L); // 41.灏忚溅鍑嗗澶嶄綅
- wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満
- wrkCharge.setIoPri((double) 10);
- wrkCharge.setSourceLocNo(value.locNo);
- wrkCharge.setLocNo(basSte.getIdleLoc());
- wrkCharge.setMemo("reset");
- wrkCharge.setAppeTime(new Date());
- if (!wrkChargeService.insert(wrkCharge)) {
- News.error("淇濆瓨{}鍙风┛姊溅澶嶄綅浠诲姟澶辫触!!!", steNo);
- } else {
- break;
- }
- }
- }
- }
- }
-
- /**
- * 灏忚溅浠庡厖鐢垫々 鑷� 寰呮満搴撲綅
- */
- @Deprecated
- public synchronized void steFromChargeToIdleLoc() {
- WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.reset);
- if (wrkCharge == null) { return; }
- SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkCharge.getSteNo());
- SteProtocol steProtocol = steThread.getSteProtocol();
- BasSte basSte = basSteService.selectById(wrkCharge.getSteNo());
- if (Cools.isEmpty(steProtocol, basSte)) {
- return;
- }
- // 鎼繍鑷冲浐瀹氶�氶亾
- if (wrkCharge.getWrkSts() == 41L) {
- // 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾
- List<String> channel = slaveProperties.getChannel();
- for (String channelLocNo : channel) {
- Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
- if (null != otherSte) {
- News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte);
- } else {
- // 鍥哄畾鍫嗗灈鏈�
- int crnNo = 1;
- if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) {
- return;
- }
-
- LocMast channelLoc = locMastService.selectById(channelLocNo);
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
- 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(crnNo); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), false).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), false), channelLoc.getBay1(), channelLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍
- Date now = new Date();
- wrkCharge.setWrkSts(42L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼澶嶄綅浠诲姟鐘舵�� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- break;
- }
-
- }
- }
- } else if (wrkCharge.getWrkSts() == 43L) {
- // 灏忚溅琛岄┒閫氶亾
- if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- SteCommand steCommand = new SteCommand();
- steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.BACK_ORIGIN); // 鍘诲乏绔�
-
- steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), true).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姸鎬� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌
- wrkCharge.setWrkSts(44L);
- Date now = new Date();
- wrkCharge.setCrnEndTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼澶嶄綅浠诲姟鐘舵�� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
- } else if (wrkCharge.getWrkSts() == 45L) {
- if (null != wrkMastMapper.selectWorkingByCrn(wrkCharge.getCrnNo())) {
- return;
- }
-
- LocMast idleLoc = locMastService.selectById(basSte.getIdleLoc());
-
- Integer otherSte = existOtherSte(idleLoc.getLocNo(), wrkCharge.getSteNo());
- if (null != otherSte) {
- News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), idleLoc.getLocNo(), otherSte);
- } else {
- 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(idleLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(idleLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(idleLoc.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(idleLoc.getLocNo(), true), idleLoc.getBay1(), idleLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣�
- Date now = new Date();
- wrkCharge.setWrkSts(46L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
-
- }
- }
}
public List<String> crn2DemoLocs = new ArrayList<String>(); public String crn2LastLoc = "";
--
Gitblit v1.9.1