From 9eff448bf1bee9a54ccbc423da1f265ddf549119 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期日, 09 十月 2022 14:58:38 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 99 insertions(+), 10 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 c40662a..9768a5b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -114,11 +114,33 @@ } String barcode = barcodeThread.getBarcode(); if(!Cools.isEmpty(barcode)) { - log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); - if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { +// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { + staProtocol.setWorkNo((short) 9995); + staProtocol.setStaNo(inSta.getBackSta().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + // led 寮傚父鏄剧ず + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } continue; } } else { + staProtocol.setWorkNo((short) 9995); + staProtocol.setStaNo(inSta.getBackSta().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + // led 寮傚父鏄剧ず + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } continue; } @@ -143,19 +165,39 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); // plc 澶勭悊 barcodeThread.setBarcode(""); staProtocol.setWorkNo(dto.getWorkNo().shortValue()); staProtocol.setStaNo(dto.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response); + } else if (code == 500){ + if (ledThread != null) { + String errorMsg = jsonObject.getString("msg"); + if (!Cools.isEmpty(errorMsg)) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } + } + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); + } else if (code == 700) { + staProtocol.setWorkNo((short) 9995); + 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 = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } } } catch (Exception e) { e.printStackTrace(); @@ -492,7 +534,7 @@ // 鐩爣搴撲綅 ===>> 鏈�澶栧眰搴撲綅 if (locMastService.isOutMost(wrkMast.getLocNo())) { // 鍒ゆ柇灏忚溅鏄惁鍦ㄦ渶澶栧眰搴撲綅锛屽鏋滄槸鍒欐惉璧帮紝濡傛灉涓嶆槸锛屽垯鐩存帴鍫嗗灈鏈哄叆搴� - Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo()); + Integer steNo = this.hasCar(wrkMast.getLocNo()); // 鏈夊皬杞� if (steNo != null) { // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣 @@ -839,6 +881,8 @@ if (locMastService.isOutMost(wrkMast.getSourceLocNo())) { // 鐩爣搴撲綅 ===>> 鏈�澶栧眰搴撲綅 if (locMastService.isOutMost(wrkMast.getLocNo())) { + // todo:luxiaotao 鍒ゆ柇鐩爣搴撲綅鏄惁瀛樺湪灏忚溅锛屽鏋滃瓨鍦紝鍒欐惉璧板皬杞� + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� @@ -1078,6 +1122,22 @@ } } } + } + + /** + * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞� + */ + public Integer hasCar(String locNo) { + for (SteSlave ste : slaveProperties.getSte()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) { + return steProtocol.getSteNo().intValue(); + } + } + return null; } /** @@ -1909,14 +1969,36 @@ staProtocol = staProtocol.clone(); } // 绔欑偣鏉′欢鍒ゆ柇 - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999) || staProtocol.getWorkNo() == 9997) && staProtocol.isPakMk()) { + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && staProtocol.isEmptyMk() + && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo() >= 9990 || staProtocol.getWorkNo() <= 9999)) + && staProtocol.isPakMk()) { + + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + String barcode = null; + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode()); + if (barcodeThread != null) { + String barcode0 = barcodeThread.getBarcode(); + if(!Cools.isEmpty(barcode0)) { +// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", emptyInSta.getBarcode(), barcode0); + if(!"NG".endsWith(barcode0) && !"NoRead".equals(barcode0) && !"empty".equals(barcode0)) { + barcode = barcode0; + } + } + } + + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed()); try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); SearchLocParam param = new SearchLocParam(); param.setIoType(10); + if (!Cools.isEmpty(barcode)) { + param.setBarcode(barcode); + } param.setSourceStaNo(emptyInSta.getStaNo()); param.setLocType1(locTypeDto.getLocType1()); String response = new HttpHandler.Builder() @@ -1926,7 +2008,8 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 @@ -1938,7 +2021,13 @@ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response); + if (ledThread != null) { + String errorMsg = jsonObject.getString("msg"); + if (!Cools.isEmpty(errorMsg)) { + MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg)); + } + } + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); } } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.9.1