From 5e4d358ec9bf65501358ad43971b7c630494a435 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 25 一月 2024 21:21:03 +0800 Subject: [PATCH] #双车+自动出入空板 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 108 insertions(+), 65 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 276409d..6684db3 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -173,6 +173,7 @@ staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 @@ -224,6 +225,7 @@ staProtocol.setStaNo(dto.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂2锛�"+dto.getWorkNo()+","+dto.getStaNo()); if (!result) { News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触"); @@ -304,6 +306,7 @@ staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂3锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); if (result) { // 鏇存柊宸ヤ綔涓绘。 wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋 @@ -394,6 +397,7 @@ staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1)); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂4锛�"+9989+","+(pickSta.getStaNo().shortValue()-(short)1)); //LED LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); // led 寮傚父鏄剧ず @@ -449,6 +453,7 @@ staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); if (!result) { News.error(""+mark+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); } @@ -1353,6 +1358,7 @@ && staProtocol.isInEnable() && staProtocol.isEmptyMk() && staProtocol.isPakMk() + && (staProtocol.getWorkNo() !=0 && staProtocol.getWorkNo() > 9700) ) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�"); @@ -1378,6 +1384,7 @@ staProtocol.setStaNo(staProtocol.getSiteId().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.error("杈撻�佺嚎涓嬪彂6锛�"+dto.getWorkNo()+","+staProtocol.getSiteId()); if (!result) { News.errorNoLog(""+mark+" - 1"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触"); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); @@ -2033,79 +2040,104 @@ public synchronized void autoEmptyOut() { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); - Integer autoOutSite = 12; - //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔� - StaProtocol staProtocol = devpThread.getStation().get(autoOutSite); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() //鑷姩 - && !staProtocol.isLoading() //鏃犵墿 - && staProtocol.isOutEnable() //鍙嚭淇″彿 - && staProtocol.getWorkNo() == 0 - ) { - WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite); - if (null != pakoutEmpty) { + List<Integer> list = new ArrayList<>(); + list.add(102);list.add(111); + for (Integer site:list){ + //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔� + StaProtocol staProtocol = devpThread.getStation().get(site); + if (staProtocol == null) { return; + } else { + staProtocol = staProtocol.clone(); } - try { - 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"); - News.info((String) data.get("msg")); - } else { - News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); + if (staProtocol.isAutoing() //鑷姩 + && !staProtocol.isLoading() //鏃犵墿 + && staProtocol.isOutEnable() //鍙嚭淇″彿 + && staProtocol.getWorkNo() == 0 + ) { + WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site); + if (null != pakoutEmpty) { + return; } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + Short loctype1 = 1; + if (site == 102){ + loctype1 = 2; + } + LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); + locTypeDto.setSiteId(site); + try { + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/auto/emptyOut/v1") + .setJson(JSON.toJSONString(locTypeDto)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + JSONObject data = (JSONObject) jsonObject.get("data"); + News.info((String) data.get("msg")); + } else { + News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } } } + } public synchronized void autoEmptyIn() { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); - Integer autoInSite = 12; - StaProtocol staProtocol = devpThread.getStation().get(autoInSite); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() //鑷姩 - && staProtocol.isLoading() //鏈夌墿 - && staProtocol.isInEnable() //鍙叆淇″彿 - && (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(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - News.info((String) jsonObject.get("msg")); - } else { - News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response); - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + List<Integer> list = new ArrayList<>(); + list.add(153);list.add(157); + for (Integer site:list){ + StaProtocol staProtocol = devpThread.getStation().get(site); + if (staProtocol == null) { + return; + } else { + staProtocol = staProtocol.clone(); } + if (staProtocol.isAutoing() //鑷姩 + && staProtocol.isLoading() //鏈夌墿 + && staProtocol.isInEnable() //鍙叆淇″彿 + && staProtocol.isPakMk() + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� + ) { + + try { + Short loctype1 = 1; + if (site == 153){ + loctype1 = 2; + } + LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); + locTypeDto.setSiteId(site); + + 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")); + staProtocol.setWorkNo(jsonObject.get("data").hashCode()); + staProtocol.setStaNo(site.shortValue()); + devpThread.setPakMk(site,false); + MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); + } else { + News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response); + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + } + } /* @@ -2196,7 +2228,7 @@ ){ log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); if (rgvProtocol.getTaskNo1()!=0){ - if (rgvProtocol.getTaskNo1()==9999){ + if (rgvProtocol.getTaskNo1()==32222){ boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); if (!rgvComplete){ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); @@ -2226,6 +2258,7 @@ staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { continue; } @@ -2257,6 +2290,7 @@ * 鎵ц灏忚溅鎼繍浠诲姟 */ public synchronized void rgvRunWrkMastFullSta() { + boolean wrkEnable = false; try{ for (RgvSlave rgvSlave:slaveProperties.getRgv()) { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); @@ -2288,6 +2322,7 @@ continue; } boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 + wrkEnable = true; if (sign){ boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd()); if (signMap){ @@ -2297,7 +2332,7 @@ }catch (Exception e){ log.error("鏇存柊灏忚溅浠诲姟澶辫触"); } - return; + break; }else { log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); } @@ -2308,6 +2343,9 @@ } } + } + if (!wrkEnable){ + rgvRunWrkMastEmptyStaAvoidance(); } }catch (Exception e){ log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�"); @@ -2475,6 +2513,11 @@ if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ continue; } + if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){ + continue; + } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){ + continue; + } rgvAvoidanceXY(rgvProtocol.getRgvNo()); rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); } @@ -2522,7 +2565,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)161); + rgvCommand.setSourceStaNo1( (short)157); rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� -- Gitblit v1.9.1