From 94f53c5d70e9150b09de00480060b2afe2f6c099 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期三, 12 四月 2023 07:57:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 79 insertions(+), 23 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 a452bf7..61d1eba 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -326,15 +326,20 @@
continue;
}
short staNo;
+ List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
+ List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
+
switch (wrkMast.getSourceStaNo()) {
case 104:
case 108:
staNo = 103;
- List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
- if (basDevps1.size()!=0){
+ if (basDevps1.size()!=0 && basDevps2.size()!=0){
continue;
+ } else if (basDevps1.size()!=0){
+ staNo = 203;
}
- List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType(103);
+
+ List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
if (wrkMasts1.size()!=0){
boolean flag = false;
for (WrkMast wrkMast1:wrkMasts1){
@@ -352,11 +357,16 @@
case 204:
case 208:
staNo = 203;
- List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
- if (basDevps2.size()!=0){
+ if (basDevps1.size()!=0 && basDevps2.size()!=0){
continue;
+ } else if (basDevps2.size()!=0){
+ staNo = 103;
}
- List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType(203);
+
+// if (basDevps2.size()!=0){
+// continue;
+// }
+ List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
if (wrkMasts2.size()!=0){
boolean flag = false;
for (WrkMast wrkMast1:wrkMasts2){
@@ -493,7 +503,7 @@
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
+ News.info("鍐嶅叆搴撹幏鍙栨柊搴撲綅鎴愬姛锛岃繑鍥炴暟鎹�===>>", JSON.toJSON(dto));
// // 鑾峰彇鐩爣绔�
// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
// .eq("type_no", wrkMast.getIoType() - 50)
@@ -521,6 +531,7 @@
// 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setIoPri(13D);
wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
wrkMast.setCrnNo(dto.getCrnNo());
@@ -564,6 +575,9 @@
ledThread.errorReset();
+ if(wrkMast.getIoType()>100){
+ throw new CoolException("鍐嶅叆搴撴洿鏂板伐浣滄。澶辫触锛屼笉鑳界粰PLC涓嬪彂浠诲姟===>>" + wrkMast.getWrkNo());
+ }
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
@@ -744,6 +758,7 @@
// 鏇存柊宸ヤ綔妗g姸鎬佷负 17.鍑哄簱瀹屾垚
wrkMast.setWrkSts(17L);
wrkMast.setSteNo(0);
+ wrkMast.setIoPri(15D);
wrkMast.setCrnEndTime(new Date());
if (wrkMastMapper.updateById(wrkMast) != 0) {
// 澶嶄綅鍫嗗灈鏈�
@@ -1061,11 +1076,11 @@
if (wrkMast.getCrnNo().equals(2)){
if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
News.error("MainServiceImpl locToCrnStn"+"103闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
- continue;
+ return false;
}
if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
News.error("MainServiceImpl locToCrnStn"+"203闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
- continue;
+ return false;
}
if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
@@ -1073,7 +1088,7 @@
List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
if (wrkMasts.size() > 0){
News.error("MainServiceImpl 1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
- continue;
+ return false;
}
}
@@ -1082,7 +1097,7 @@
List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour);
if (wrkMasts.size() > 0){
News.error("MainServiceImpl 1028琛�"+"204瀛樺湪鍏ㄦ澘鍑哄簱涓揣鐗╋紝2鍙峰爢鍨涙満鏆傛椂绂佹鍏ㄦ澘鍑哄簱锛侊紒锛�");
- continue;
+ return false;
}
}
}
@@ -1154,6 +1169,8 @@
.last(" and wrk_sts in (12,13,14,15,16)"));
if(one2==null) {
moveLocForDeepLoc(slave, shallowLoc);
+ } else {
+ News.error("娴呭簱浣嶉樆濉炴椂锛屼笖娴呭簱浣嶅瓨鍦ㄤ綔涓氫腑鍑哄簱浠诲姟锛佸伐浣滃彿={}", one2.getWrkNo());
}
flag = true;
break;
@@ -1171,11 +1188,17 @@
break;
}
+ //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
+ if(shallowLoc!=null && !shallowLoc.getLocSts().equals("O")){
+ News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
+ flag = true;
+ break;
+ }
}
}
}
if(flag){
- continue;
+ return false;
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
@@ -1186,7 +1209,7 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
- News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
continue;
}
@@ -1596,6 +1619,10 @@
&& !deepLoc.getLocSts().equals("O")
&& (waitWrkMast!=null && waitWrkMast.getWrkSts()<18)){
News.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts());
+ if(waitWrkMast.getIoPri()<9999) {//璋冮珮浼樺厛绾�
+ waitWrkMast.setIoPri(waitWrkMast.getIoPri() + 1);
+ wrkMastService.updateById(waitWrkMast);
+ }
flag = true;
break;
}
@@ -1620,7 +1647,7 @@
}
}
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
- if(sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D")){
+ if(sourceLoc.getLocSts().equals("R") || sourceLoc.getLocSts().equals("D")){
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiTime(new Date());
if (!locMastService.updateById(sourceLoc)) {
@@ -2294,6 +2321,10 @@
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
SteProtocol steProtocol = steThread.getSteProtocol();
if (steProtocol == null) { return; }
+ if(steProtocol.getLoad() == 1){
+ News.error("灏忚溅涓婃柟鏈夎揣锛屾棤娉曚笅鍙戜换鍔�===>>{}", steNo);
+ return;
+ }
if (steProtocol.isIdle() && steProtocol.getLoad() == 0) {
// 鍫嗗灈鏈虹┖闂�
if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
@@ -2314,18 +2345,35 @@
crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
+
+ if( crnCommand.getSourcePosX() == crnCommand.getDestinationPosX()
+ && crnCommand.getSourcePosY() == crnCommand.getDestinationPosY()
+ && crnCommand.getSourcePosZ() == crnCommand.getDestinationPosZ()){
+ //鎵撹ˉ涓侊紝濡傛灉鍑虹幇婧愭帓鍒楀眰 鍜岀洰鏍囨帓鍒楀眰瀹屽叏鐩稿悓鏃讹紝涓嶇粰鍫嗗灈鏈哄彂浠诲姟锛岀姸鎬佺洿鎺ョ敱3 ==>> 6
// 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅
+ // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 6.灏忚溅寰呭叆
Date now = new Date();
- wrkMast.setWrkSts(4L);
+ wrkMast.setWrkSts(6L);
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ } else {
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+ steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
+ // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅
+ Date now = new Date();
+ wrkMast.setWrkSts(4L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
}
}
// 鍑哄簱鎼�
@@ -2684,7 +2732,7 @@
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙�
steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+ steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘诲緟鏈轰綅閬胯
// steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
// steCommand.setBay(steProtocol.getBay());
// steCommand.setLev(steProtocol.getLev());
@@ -2713,7 +2761,7 @@
String locSts = "";
// 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
if (wrkMast.getEmptyMk().equals("N")) {
- locSts = "F";
+ locSts = "R";
// 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
News.error("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
@@ -3404,6 +3452,7 @@
}
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
if (wrkMast.getIoType() != 110) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
wrkDetls.forEach(wrkDetl -> {
@@ -3857,7 +3906,14 @@
boolean success = true;
List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo());
for (String inside : insideLoc) {
- if (locMastService.selectById(inside).getLocSts().equals("P") || locMastService.selectById(inside).getLocSts().equals("R")) {
+ LocMast locMast = locMastService.selectById(inside);
+ if(Cools.isEmpty(locMast)){
+ continue;
+ }
+ if (locMast.getLocSts().equals("P")
+ || locMastService.selectById(inside).getLocSts().equals("R")
+ || locMastService.selectById(inside).getLocSts().equals("S")
+ || locMastService.selectById(inside).getLocSts().equals("Q")) {
success = false; break;
}
}
--
Gitblit v1.9.1