From 17e41c4b535eb30a4768c7d17b8707bad74bbb22 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期三, 04 九月 2024 17:56:15 +0800 Subject: [PATCH] 移库逻辑调整 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 401 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 232 insertions(+), 169 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 68662bd..3dd16f4 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -91,17 +91,17 @@ @Value("${wms.url}") private String wmsUrl; - private Short getWorkMode(Integer bay) { - if (bay == 2 || bay == 7) { + private Short getWorkMode(Short locType1, Integer bay) { + if (locType1 == 2) { return (short) 3; - } else if (bay == 3) { - return (short) 1; - } else if (bay == 4) { - return (short) 2; - } else if (bay == 5) { - return (short) 1; + } else if (locType1 == 5) { + return (short) 3; } else { - return (short) 0; + if (bay == 5) { + return (short) 1; + } else { + return (short) 2; + } } } @@ -165,7 +165,7 @@ if (back) { log.info("errmsg: " + errMsg); // News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg)); if (!staProtocol.isLoading()) { continue; } @@ -178,52 +178,23 @@ devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + inSta.getBackSta()); + + // led 寮傚父鏄剧ず + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg)); + } + continue; } - - - - - //LED - //LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } -// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { -// continue; -// } - //System.out.println(staProtocol); // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (!staProtocol.isLoading()) { continue; } - String barcode11 = barcodeThread.getBarcode(); - if (Cools.isEmpty(barcode11)) { - if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 9999 && staProtocol.isPakMk() && staProtocol.getStamp() == 2) { - staProtocol.setStamp(3); - News.info("" + mark + " - 7" + " - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode11, inSta.getStaNo()); - staProtocol.setWorkNo((short) 9989); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - // led 寮傚父鏄剧ず - if (ledThread != null) { - String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); - } - continue; - } - } - if (staProtocol.isAutoing() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) - && staProtocol.isPakMk() && staProtocol.getStamp() >= 2 && staProtocol.getStamp() != 3) {// && !Cools.isEmpty(barcode)) { - News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); -// try { -// Thread.sleep(300); -// }catch (Exception e){} + if (staProtocol.isAutoing() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) && staProtocol.isPakMk() && staProtocol.getStamp() >= 2 && staProtocol.getStamp() != 3) {// && !Cools.isEmpty(barcode)) { + News.warn("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); - //String barcode = barcodeThread.getBarcode(); if (!Cools.isEmpty(barcode)) { - News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); - if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { + News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + if ("NG".endsWith(barcode) || barcode.equals("00000000") || "NoRead".equals(barcode) || "empty".equals(barcode)) { staProtocol.setWorkNo((short) 9999); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -295,12 +266,7 @@ } else if (inSta.getStaNo() == 201) { param.setLocType2((short) 4); } - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/pakin/loc/v1") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); + String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/pakin/loc/v1").setJson(JSON.toJSONString(param)).build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); @@ -352,9 +318,7 @@ } } else { - News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() - + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp()); + News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp()); } } @@ -390,9 +354,7 @@ if (!staProtocol.isLoading()) { continue; } - if (staProtocol.isAutoing() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) - && staProtocol.isPakMk()) { + if (staProtocol.isAutoing() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo()); @@ -419,9 +381,7 @@ } } else { - News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() - + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp()); + News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp()); } } } @@ -438,12 +398,77 @@ for (DevpSlave.Sta pickSta : devp.getPickSta()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (barcodeThread == null) { continue; } String barcode = barcodeThread.getBarcode(); + // 灏哄妫�娴嬪紓甯� + boolean back = false; + String errMsg = ""; + if (staProtocol.isFrontErr()) { + errMsg = "鍓嶈秴闄�"; + back = true; + } + if (!back && staProtocol.isBackErr()) { + errMsg = "鍚庤秴闄�"; + back = true; + } + if (!back && staProtocol.isHighErr()) { + errMsg = "楂樿秴闄�"; + back = true; + } + if (!back && staProtocol.isLeftErr()) { + errMsg = "宸﹁秴闄�"; + back = true; + } + if (!back && staProtocol.isRightErr()) { + errMsg = "鍙宠秴闄�"; + back = true; + } + if (!back && staProtocol.isWeightErr()) { + errMsg = "瓒呴噸"; + back = true; + } + if (!back && staProtocol.isBarcodeErr()) { + errMsg = "鎵爜澶辫触"; + back = true; + } + + // 閫�鍥� + if (back) { + log.info("errmsg: " + errMsg); +// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); + MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg)); + if (!staProtocol.isLoading()) { + continue; + } + if (!staProtocol.isPakMk()) { + continue; + } + staProtocol.setWorkNo((short) 9999); + News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, (short) 9999); + staProtocol.setStaNo(pickSta.getBackSta().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta()); + + // led 寮傚父鏄剧ず + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg)); + } + continue; + } if (!Cools.isEmpty(barcode)) { - News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); + News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { continue; } @@ -452,8 +477,6 @@ } // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); if (staProtocol == null) { continue; } else { @@ -471,8 +494,7 @@ // 鏃犳嫞鏂欐暟鎹� continue; } - if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) - || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { + if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { continue; } @@ -486,9 +508,7 @@ // log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo()); // } // 鑾峰彇鐩爣绔� - Wrapper<StaDesc> wrapper = new QueryWrapper<StaDesc>() - .eq("type_no", wrkMast.getIoType() - 50) - .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 + Wrapper<StaDesc> wrapper = new QueryWrapper<StaDesc>().eq("type_no", wrkMast.getIoType() - 50).eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.getOne(wrapper); if (Cools.isEmpty(staDesc)) { @@ -498,7 +518,6 @@ devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); //LED - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); // led 寮傚父鏄剧ず if (ledThread != null) { String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣"; @@ -557,8 +576,7 @@ } } else { - News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk()); + News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk()); } } @@ -600,10 +618,15 @@ // 绉诲姩涓� continue; } + CrnStatusType statusType = crnProtocol.getStatusType(); + CrnStatusType statusTypeTwo = crnProtocol.getStatusTypeTwo(); + Boolean wait = false; + if (statusType == CrnStatusType.WAITING_ONE || statusTypeTwo == CrnStatusType.WAITING_TWO || (statusType == CrnStatusType.WAITING_All && statusTypeTwo == CrnStatusType.WAITING_All)) { + wait = true; + } // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� - if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) - && crnProtocol.statusType == CrnStatusType.WAITING - && crnProtocol.forkPosType == CrnForkPosType.HOME) { + if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && wait && crnProtocol.forkPosType == CrnForkPosType.HOME) { + News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -614,18 +637,16 @@ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } - // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 wrkMast.setWrkSts(14L); wrkMast.setCrnEndTime(new Date()); if (wrkMastMapper.updateById(wrkMast) != 0) { // 澶嶄綅鍫嗗灈鏈� - Short mode = crnProtocol.getMode(); - if (mode == 1) { + if (statusType == CrnStatusType.WAITING_ONE) { crnThread.setResetFlag(true); - } else if (mode == 2) { + } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { crnThread.setResetFlagTwo(true); - } else if (mode == 3) { + } else { crnThread.setResetFlag(true); crnThread.setResetFlagTwo(true); } @@ -634,11 +655,7 @@ } } else { - News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�" - + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO - + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue() - + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING - + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME); + News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�" + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue() + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING_ONE + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME); } } @@ -670,8 +687,7 @@ // continue; // } // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO - && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { + if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�"); // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 if (crnProtocol.getLastIo().equals("I")) { @@ -783,16 +799,12 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() - && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { flag = true; } if (!flag) { //TODO - News.error("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):" - + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() - + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable() - + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining()); + News.error("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):" + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable() + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining()); continue; } // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 @@ -818,7 +830,6 @@ // News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo()); continue; } - System.out.println("aas"); // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (wrkMastMapper.selectWorking(slave.getId()) != null) { continue; @@ -866,16 +877,13 @@ } } } - System.out.println("434323"); - News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue() - , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue() - , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue()); + News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue(), locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue()); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(locMast.getBay1()); + Short workMode = getWorkMode(locMast.getLocType1(), locMast.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -916,7 +924,6 @@ // Thread.sleep(500); // }catch(Exception ignore){} // } - System.out.println("ererdfd"); // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� Date now = new Date(); wrkMast.setWrkSts(3L); @@ -981,8 +988,7 @@ // continue; } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -1046,17 +1052,16 @@ // return; } - News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue() - , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue() - , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()); + News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()); String locNo = sourceSta.getLocNo(); - + // 鑾峰彇鐩爣搴撲綅淇℃伅 + LocMast sta = locMastService.getById(sourceSta.getLocNo()); // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -1258,15 +1263,13 @@ return; } - News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue() - , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue() - , sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue()); + News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue()); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� @@ -1318,17 +1321,22 @@ if (crnProtocol == null) { continue; } + CrnStatusType statusType = crnProtocol.getStatusType(); + CrnStatusType statusTypeTwo = crnProtocol.getStatusTypeTwo(); + boolean wait = false; + if (statusType == CrnStatusType.WAITING_ONE || statusTypeTwo == CrnStatusType.WAITING_TWO || (statusType == CrnStatusType.WAITING_All && statusTypeTwo == CrnStatusType.WAITING_All)) { + wait = true; + } // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 - if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { - News.warn("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔"); + if (wait && crnProtocol.getTaskNo() != 0) { + News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔"); if (crnProtocol.getTaskNo() == 9999) { // 鍫嗗灈鏈哄浣� - Short mode = crnProtocol.getMode(); - if (mode == 1) { + if (statusType == CrnStatusType.WAITING_ONE) { crnThread.setResetFlag(true); - } else if (mode == 2) { + } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { crnThread.setResetFlagTwo(true); - } else if (mode == 3) { + } else { crnThread.setResetFlag(true); crnThread.setResetFlagTwo(true); } @@ -1351,16 +1359,17 @@ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 if (wrkMastMapper.updateById(wrkMast) > 0) { // 鍫嗗灈鏈哄浣� - News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); - Short mode = crnProtocol.getMode(); - if (mode == 1) { + News.info("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); + if (statusType == CrnStatusType.WAITING_ONE) { crnThread.setResetFlag(true); - } else if (mode == 2) { + } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { crnThread.setResetFlagTwo(true); - } else if (mode == 3) { + } else { crnThread.setResetFlag(true); crnThread.setResetFlagTwo(true); } + } else { + News.error("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 澶辫触锛侊紒锛屽爢鍨涙満鍙�={}", crnThread.getCrnProtocol().getCrnNo()); } } @@ -1397,8 +1406,7 @@ } BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); - BasErrLog basErrLog = new BasErrLog( - null, // 缂栧彿 + BasErrLog basErrLog = new BasErrLog(null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� now, // 鍙戠敓鏃堕棿 null, // 缁撴潫鏃堕棿 @@ -1445,8 +1453,7 @@ if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); - BasErrLog basErrLog = new BasErrLog( - null, // 缂栧彿 + BasErrLog basErrLog = new BasErrLog(null, // 缂栧彿 null, // 宸ヤ綔鍙� now, // 鍙戠敓鏃堕棿 null, // 缁撴潫鏃堕棿 @@ -1503,6 +1510,8 @@ // 閬嶅巻绌烘澘鍏ュ簱鍙� for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode()); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed()); SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); if (staProtocol == null) { @@ -1511,9 +1520,65 @@ staProtocol = staProtocol.clone(); } - LedThread ledThread = null; - if (!Cools.isEmpty(emptyInSta.getLed())) { - ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + // 灏哄妫�娴嬪紓甯� + boolean back = false; + String errMsg = ""; + if (staProtocol.isFrontErr()) { + errMsg = "鍓嶈秴闄�"; + back = true; + } + if (!back && staProtocol.isBackErr()) { + errMsg = "鍚庤秴闄�"; + back = true; + } + if (!back && staProtocol.isHighErr()) { + errMsg = "楂樿秴闄�"; + back = true; + } + if (!back && staProtocol.isLeftErr()) { + errMsg = "宸﹁秴闄�"; + back = true; + } + if (!back && staProtocol.isRightErr()) { + errMsg = "鍙宠秴闄�"; + back = true; + } + if (!back && staProtocol.isWeightErr()) { + errMsg = "瓒呴噸"; + back = true; + } + if (!back && staProtocol.isBarcodeErr()) { + errMsg = "鎵爜澶辫触"; + back = true; + } + + // 閫�鍥� + if (back) { + log.info("errmsg: " + errMsg); +// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); + MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(5, errMsg)); + if (!staProtocol.isLoading()) { + continue; + } + if (!staProtocol.isPakMk()) { + continue; + } + staProtocol.setWorkNo((short) 9999); + News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", emptyInSta.getStaNo(), errMsg, (short) 9999); + staProtocol.setStaNo(emptyInSta.getBackSta().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + emptyInSta.getBackSta()); + + // led 寮傚父鏄剧ず + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(5, errMsg)); + } + continue; } if (!staProtocol.isLoading()) { @@ -1521,11 +1586,7 @@ } // 绔欑偣鏉′欢鍒ゆ柇 - if (staProtocol.isAutoing() - && staProtocol.isInEnable() - && staProtocol.isEmptyMk() - && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) - && staProtocol.isPakMk() && staProtocol.getStamp() >= 2) { + if (staProtocol.isAutoing() && staProtocol.isInEnable() && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk() && staProtocol.getStamp() >= 2) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�"); try { @@ -1543,12 +1604,7 @@ } else if (emptyInSta.getStaNo() == 201) { param.setLocType2((short) 4); } - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/pakin/loc/v1") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); + String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/pakin/loc/v1").setJson(JSON.toJSONString(param)).build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); @@ -1601,9 +1657,7 @@ } } else { - News.errorNoLog("" + mark + " - 4" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() - + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk()); + News.errorNoLog("" + mark + " - 4" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk()); } } } @@ -1865,8 +1919,7 @@ LocMast loc = null; for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); - + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (loc != null) { if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); @@ -1877,14 +1930,26 @@ } } if (null != loc) { + //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { break; + // } } } } if (null == loc) { for (Integer row : rows) { if (Utils.isShallowLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱 String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); @@ -1895,7 +1960,19 @@ } if (null != loc) { +// //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { break; + // } } } } @@ -2151,9 +2228,7 @@ // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; } @@ -2169,9 +2244,7 @@ // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING; WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; } @@ -2224,18 +2297,13 @@ if (staProtocol.isAutoing() //鑷姩 && !staProtocol.isLoading() //鏃犵墿 && staProtocol.isOutEnable() //鍙嚭淇″彿 - && staProtocol.getWorkNo() == 0 - ) { + && staProtocol.getWorkNo() == 0) { WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite); if (null != pakoutEmpty) { return; } try { - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/auto/emptyOut/v1") - .build() - .doPost(); + String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/auto/emptyOut/v1").build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { JSONObject data = (JSONObject) jsonObject.get("data"); @@ -2262,19 +2330,14 @@ if (staProtocol.isAutoing() //鑷姩 && staProtocol.isLoading() //鏈夌墿 && staProtocol.isInEnable() //鍙叆淇″彿 - && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() >= 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� ) { try { LocTypeDto locTypeDto = new LocTypeDto((short) 1, (short) 1, (short) 1); - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/auto/emptyIn/v1") - .setJson(JSON.toJSONString(locTypeDto)) - .build() - .doPost(); + String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/auto/emptyIn/v1").setJson(JSON.toJSONString(locTypeDto)).build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { News.info((String) jsonObject.get("msg")); -- Gitblit v1.9.1