From 334af33faa80e2e91d0fd98475e10df7a420c801 Mon Sep 17 00:00:00 2001 From: yxFwq <1> Date: 星期五, 03 一月 2025 15:35:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 680 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 468 insertions(+), 212 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 2c4ee46..91463f8 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,7 +7,9 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; +import com.core.common.SpringUtils; import com.core.exception.CoolException; +import com.zy.asrs.domain.enums.LedErrorAreaType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; @@ -56,10 +58,9 @@ public class MainServiceImpl { public static final long COMMAND_TIMEOUT = 5 * 1000; -// private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}}; private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}}; - private static final Integer jarMaxLoc = 7; + private static Integer jarMaxLoc = 0; private static final Float jarTemperature = 50F; @Autowired private CommonService commonService; @@ -190,13 +191,7 @@ // 閫�鍥� if (back) { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg(errMsg); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); continue; } @@ -238,6 +233,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,238); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } return; @@ -283,17 +279,12 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,283); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code")); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); } @@ -342,7 +333,7 @@ // 灏哄妫�娴嬪紓甯� boolean back = false; - String errMsg = "寮傚父锛�"; + String errMsg = inSta.getStaNo()+"绔欑偣锛�"; if (staProtocol.isFrontErr()) { errMsg = errMsg+"鍓嶈秴闄愶紱"; back = true; @@ -374,13 +365,7 @@ // 閫�鍥� if (back) { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg(errMsg); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); continue; } @@ -422,6 +407,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,422); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } return; @@ -467,6 +453,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,467); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else if (jsonObject.getInteger("code").equals(700)){ @@ -497,13 +484,7 @@ } } else { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code")); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); } @@ -557,7 +538,7 @@ // 灏哄妫�娴嬪紓甯� boolean back = false; - String errMsg = "寮傚父锛�"; + String errMsg = inSta.getStaNo()+"绔欑偣锛�"; if (staProtocol.isFrontErr()) { errMsg = errMsg+"鍓嶈秴闄愶紱"; back = true; @@ -589,13 +570,7 @@ // 閫�鍥� if (back) { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg(errMsg); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); continue; } @@ -623,6 +598,8 @@ // if (!result) { // throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); // } + String msg =inSta.getStaNo()+"绔欑偣鏉$爜寮傚父,鏉$爜="+barcode; + LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); continue; } @@ -631,18 +608,15 @@ if (wrkMast111 != null) { LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); barcodeThread.setBarcode(""); - staProtocol.setWorkNo(wrkMast111.getWrkNo()); - staProtocol.setStaNo(wrkMast111.getStaNo()); + StaProtocol staProtocol1 = new StaProtocol(); + staProtocol1.setSiteId(staProtocol.getSiteId()); + staProtocol1.setWorkNo(wrkMast111.getWrkNo()); + staProtocol1.setStaNo(wrkMast111.getStaNo()); - devpThread.setPakMk(staProtocol.getSiteId(), false,637); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + devpThread.setPakMk(staProtocol1.getSiteId(), false,637); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); if (!result) { - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo()); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } return; @@ -652,6 +626,8 @@ WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); if (wrkMast != null) { log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + String msg ="宸ヤ綔妗d腑宸插瓨鍦�"+inSta.getStaNo()+"绔欑偣鏁版嵁,宸ヤ綔鍙�="+wrkMast.getWrkNo(); + LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(),LedErrorAreaType.TWO_PAKIN.getDesc()); continue; } // // 鑾峰彇鍏ュ簱閫氱煡妗� @@ -681,43 +657,45 @@ StartupDto dto = jsonObject.getObject("data", StartupDto.class); LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - + StaProtocol staProtocol1 = new StaProtocol(); + staProtocol1.setSiteId(staProtocol.getSiteId()); barcodeThread.setBarcode(""); - staProtocol.setWorkNo(dto.getWorkNo()); + staProtocol1.setWorkNo(dto.getWorkNo()); if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) { - staProtocol.setStaNo(dto.getStaNo()); + staProtocol1.setStaNo(dto.getStaNo()); } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯 - staProtocol.setStaNo(dto.getRgvSstaNo()); + staProtocol1.setStaNo(dto.getRgvSstaNo()); } - devpThread.setPakMk(staProtocol.getSiteId(), false,695); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + devpThread.setPakMk(staProtocol1.getSiteId(), false,695); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(),LedErrorAreaType.ONE_OTHER.getDesc()); + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + try{ if (ledThread != null) { ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo()); - errMsg1.setArea("1"); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); } - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } catch (Exception e){ + log.error("鍏ュ簱鎴愬姛!鐢佃鏈轰俊鎭洿鏂板け璐ワ紝灏忔枡绠卞叆搴擄紒锛侊紒request锛歿}锛況esponse锛歿}",JSON.toJSONString(param), response); } } else { log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response); + String msg = inSta.getStaNo()+"绔欑偣锛�"+jsonObject.getString("msg"); + LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(), LedErrorAreaType.TWO_PAKIN.getDesc()); + Thread.sleep(1000); } - } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } - } - - } } - } /** @@ -757,7 +735,7 @@ // 灏哄妫�娴嬪紓甯� boolean back = false; - String errMsg = "寮傚父锛�"; + String errMsg = inSta.getStaNo()+"绔欑偣锛�"; if (staProtocol.isFrontErr()) { errMsg = errMsg+"鍓嶈秴闄愶紱"; back = true; @@ -789,13 +767,7 @@ // 閫�鍥� if (back) { // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg(errMsg); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); continue; } @@ -837,19 +809,16 @@ if (wrkMast != null) { LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); barcodeThread.setBarcode(""); - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo()); + StaProtocol staProtocol1 = new StaProtocol(); + staProtocol1.setWorkNo(wrkMast.getWrkNo()); + staProtocol1.setStaNo(wrkMast.getStaNo()); + staProtocol1.setSiteId(staProtocol.getSiteId()); - devpThread.setPakMk(staProtocol.getSiteId(), false,843); - log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol.getSiteId(),staProtocol.getWorkNo(),barcode); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + devpThread.setPakMk(staProtocol1.getSiteId(), false,843); + log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol1.getSiteId(),staProtocol1.getWorkNo(),barcode); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); if (!result) { - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo()); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } return; @@ -879,59 +848,65 @@ JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); - + StaProtocol staProtocol1 = new StaProtocol(); + staProtocol1.setSiteId(staProtocol.getSiteId()); barcodeThread.setBarcode(""); - staProtocol.setWorkNo(dto.getWorkNo()); + staProtocol1.setWorkNo(dto.getWorkNo()); if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) { - staProtocol.setStaNo(dto.getStaNo()); + staProtocol1.setStaNo(dto.getStaNo()); } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯 - staProtocol.setStaNo(dto.getRgvSstaNo()); + staProtocol1.setStaNo(dto.getRgvSstaNo()); } - devpThread.setPakMk(staProtocol.getSiteId(), false,892); - log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol.getStaNo(),staProtocol.getWorkNo(),barcode); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + devpThread.setPakMk(staProtocol1.getSiteId(), false,892); + log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol1.getStaNo(),staProtocol1.getWorkNo(),barcode); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } - } else if (jsonObject.getInteger("code").equals(700)){ - SearchLocParam param2 = new SearchLocParam(); - param2.setBarcode(barcode); - param2.setSourceStaNo(inSta.getStaNo()); - param2.setLocType1(locTypeDto.getLocType1()); - String response2 = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/pakin/yx/loc/v33") - .setJson(JSON.toJSONString(param2)) - .build() - .doPost(); - JSONObject jsonObject2 = JSON.parseObject(response2); - if (jsonObject2.getInteger("code").equals(200)) { - log.info("澶ф枡绠辫嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�"); - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); - + try{ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo()); - errMsg1.setArea("1"); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); } + } catch (Exception e){ + log.error("鍏ュ簱鎴愬姛!鐢佃鏈轰俊鎭洿鏂板け璐ワ紝澶ф枡绠卞叆搴擄紒锛侊紒request锛歿}锛況esponse锛歿}",JSON.toJSONString(param), response); } + +// } else if (jsonObject.getInteger("code").equals(700)){ +// SearchLocParam param2 = new SearchLocParam(); +// param2.setBarcode(barcode); +// param2.setSourceStaNo(inSta.getStaNo()); +// param2.setLocType1(locTypeDto.getLocType1()); +// String response2 = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath("/rpc/pakin/yx/loc/v33") +// .setJson(JSON.toJSONString(param2)) +// .build() +// .doPost(); +// JSONObject jsonObject2 = JSON.parseObject(response2); +// if (jsonObject2.getInteger("code").equals(200)) { +// log.info("澶ф枡绠辫嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�"); +// } else { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); +// +// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); +// +// if (ledThread != null) { +// ErrMsg errMsg1 = new ErrMsg(); +// errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo()); +// errMsg1.setArea("1"); +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); +// } +// } } else { log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); - - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - - if (ledThread != null) { - ErrMsg errMsg1 = new ErrMsg(); - errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo()); - errMsg1.setArea("1"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); - } + String msg = inSta.getStaNo()+"绔欑偣锛�"+jsonObject.getString("msg"); + LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(),LedErrorAreaType.TWO_PAKIN.getDesc()); + Thread.sleep(1000); } } catch (Exception e) { @@ -1160,7 +1135,7 @@ String barcode = wrkMast.getBarcode(); if(!Cools.isEmpty(barcode)) { - if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { + if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || "empty".equals(barcode)) { continue; } } else { @@ -2180,6 +2155,7 @@ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther()); continue; } + boolean signStanOther81 = false; if (staProtocolOther.getWorkNo()!=0){ WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(staProtocolOther.getWorkNo()); if (Cools.isEmpty(wrkMastOther)){ @@ -2281,29 +2257,33 @@ return; } } + return; } - return; + signStanOther81 = true; + crnStation=2; } - StaProtocol staProtocolOther1 = devpThread.getStation().get(crnStn.getStaNoOther1()); - if (staProtocolOther1 == null) { - continue; - } else { - staProtocolOther1 = staProtocolOther1.clone(); - } + if (!signStanOther81){ + StaProtocol staProtocolOther1 = devpThread.getStation().get(crnStn.getStaNoOther1()); + if (staProtocolOther1 == null) { + continue; + } else { + staProtocolOther1 = staProtocolOther1.clone(); + } - if (staProtocolOther1.isAutoing() && staProtocolOther1.getWorkNo()!=0){ - return; - } + if (staProtocolOther1.isLoading() || !staProtocolOther1.getWorkNo().equals(0)){ + return; + } - StaProtocol staProtocolOther2 = devpThread.getStation().get(crnStn.getStaNoOther2()); - if (staProtocolOther2 == null) { - continue; - } else { - staProtocolOther2 = staProtocolOther2.clone(); - } - if (staProtocolOther2.isAutoing() && staProtocolOther2.getWorkNo()!=0){ - return; + StaProtocol staProtocolOther2 = devpThread.getStation().get(crnStn.getStaNoOther2()); + if (staProtocolOther2 == null) { + continue; + } else { + staProtocolOther2 = staProtocolOther2.clone(); + } + if (staProtocolOther2.isLoading() || !staProtocolOther2.getWorkNo().equals(0)){ + return; + } } crnStation = 2; // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -3097,6 +3077,10 @@ if (wrkMast == null) { continue; } +// if (wrkMast.getStaNoSign().equals(signBigTurn)){ +// continue; +// } + crnStation = crnStation1; @@ -3111,18 +3095,52 @@ continue; } + Integer turnBigInt = 0; +// if (wrkMast.booleanStaNoSign()){ +// RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("LineUp"+wrkMast.getStaNo()); +// if (Cools.isEmpty(rgvOneSign)){ +// continue; +// } +// RgvOneSign trunBig = rgvOneSignMapper.selectOneSign("TrunBig"+wrkMast.getStaNo()); +// if (Cools.isEmpty(trunBig)){ +// continue; +// } +// turnBigInt = trunBig.getRgvOneSign(); +// int wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).eq("wrk_sts",12L)); +// +// if (trunBig.getRgvOneSign()+wrkCount+rgvOneSign.getRgvOneSign()>2){ +// continue; +// } +// int wrkCountGt = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).gt("wrk_sts",11L)); +// if (wrkCountGt > 2){ +// continue; +// } +//// RgvOneSign bigTurn = rgvOneSignMapper.selectOneSign("bigTurn"); +//// if (Cools.isEmpty(bigTurn)){ +//// continue; +//// } +//// if (bigTurn.getRgvOneSign()>13){ +//// continue; +//// } +//// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); +//// StaProtocol staProtocolEnt = devpThread.getStation().get(wrkMast.getStaNoBying()); +//// if (staProtocolEnt.isLoading() || staProtocolEnt.getWorkNo()!=0){ +//// continue; +//// } +// } + // 宸ヤ綔妗g姸鎬佸垽鏂� if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) { log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType()); continue; } - //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟 - if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ - RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); - if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ - continue; - } - } +// //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟 +// if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ +// RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); +// if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ +// continue; +// } +// } // 鑾峰彇婧愬簱浣嶄俊鎭� LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) { @@ -3253,6 +3271,9 @@ crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� + if (wrkMast.booleanStaNoSign()){ + updateRgvOneSign("TrunBig"+wrkMast.getStaNo(),turnBigInt+1); + } if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand)); } else { @@ -3329,7 +3350,29 @@ // } } } +// signBigTurn++; +// if (signBigTurn > 2){ +// signBigTurn = 0; +// } + } + + public void updateRgvOneSign(String signType,Integer oneSign){ + RgvOneSignMapper rgvOneSignMapper = SpringUtils.getBean(RgvOneSignMapper.class); + + try{ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(oneSign); + rgvOneSignMapper.updateById(rgvOneSign); + } + } catch (Exception e){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(999); + rgvOneSignMapper.updateById(rgvOneSign); + } + } } /** @@ -4005,12 +4048,12 @@ } else { staProtocol = staProtocol.clone(); } - if (emptyInSta.getStaNo()==607 && staProtocol.getStaNo()==0 && staProtocol.getWorkNo()==0 + if (emptyInSta.getStaNo()==607 && staProtocol.getStaNo()==0 && staProtocol.getWorkNo().equals(0) && staProtocol.isLoading() && staProtocol.isAutoing() && staProtocol.isInEnable()){ String barcode = staProtocol.getBarcode(); if (!Cools.isEmpty(barcode)) { // log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); - if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) { + if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) { continue; } } else { @@ -4087,6 +4130,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,4087); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+emptyInSta.getStaNo(),emptyInSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else { @@ -4150,6 +4194,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,4150); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+emptyInSta.getStaNo(),emptyInSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else { @@ -4213,6 +4258,7 @@ devpThread.setPakMk(staProtocol.getSiteId(), false,4213); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+emptyInSta.getStaNo(),emptyInSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } } else { @@ -5107,12 +5153,17 @@ break; } BasJar basJar = basJarMapper.selectById(jarSlave.getId()); - int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11)); + BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId()); + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0 || basJarOther.getJarCount() == 0) { + break; + } + int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 5)); if (count>0){ break; } if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){ - if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)==7){ + if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 3).equals(basJarOther.getJarCount())){ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId()); JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol(); if (jarOtherProtocol == null) { @@ -5198,7 +5249,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -5228,7 +5279,7 @@ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴 if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ - if (jarProtocol.statusType != JarStatusType.SOS){ + if (jarProtocol.statusType != JarStatusType.SOS && jarProtocol.statusType != JarStatusType.SOS2){ log.error("Jar浠诲姟鍒涘缓===銆嬫墽琛�===>琛�={}",4537); BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit); basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣 @@ -5316,10 +5367,12 @@ case 3: case 4: signExecute = jarWrkMastExecuteGenerateJar(signExecute,sign);//纭寲缃愪换鍔� - case 5: - signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎 +// case 5: +// signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉幓杈撻�佺嚎 default: jarWrkMastExecuteGenerateSte(signExecute,sign);//灏忚溅绉诲姩 +// signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎 + } if (!signExecute[0] && !signExecute[1]){ //Ste绉诲姩 @@ -5575,7 +5628,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ return false; } if (jarProtocol.getJarTemperature()>jarTemperature){ @@ -5653,7 +5706,7 @@ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ add(4); }}); - if (basJarMastList.size() != jarMaxLoc){ + if (basJarMastList.isEmpty()){ return false; } @@ -5683,7 +5736,7 @@ return false; } - if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -5696,13 +5749,20 @@ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); return false; } - if (!basJar.getJarCount().equals(jarMaxLoc)){ - log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount()); + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0) { + return false; + } +// if (!basJar.getJarCount().equals(jarMaxLoc)){ +// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount()); +// return false; +// } + if (basJarMastList.size() != jarMaxLoc){ return false; } //闂ㄤ綔涓� 鏃� - if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS && jarProtocol.jarErr==0 + if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS && jarProtocol.statusType!= JarStatusType.SOS2 && jarProtocol.jarErr==0 && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ //鍏宠繘鏂欓棬 @@ -5734,14 +5794,9 @@ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ add(6); }}); - if (basJarMastList.size() != jarMaxLoc){ + if (basJarMastList.isEmpty()){ return false; } -// if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0 -// && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=7 -// && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=14){ -// return false; -// } BasJarMast basJarMastSign = basJarMastList.get(0); if (Cools.isEmpty(basJarMastSign)){ @@ -5770,7 +5825,7 @@ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -5783,6 +5838,13 @@ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); return false; } + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0) { + return false; + } + if (basJarMastList.size() != jarMaxLoc){ + return false; + } //闂ㄤ綔涓� 鏃� if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING2 && jarProtocol.jarErr==0 @@ -5793,6 +5855,15 @@ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign)); } return true; + } else if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS && jarProtocol.statusType != JarStatusType.SOS2 + && jarProtocol.statusType != JarStatusType.WAITING2 && jarProtocol.jarErr==0 + && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ + Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 6, 8); + if (basJarMastList.size()!=integer){ + log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer); + } + return true; } return false; } else { @@ -5814,6 +5885,12 @@ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } + List<BasJarMast> basJarMastList1 = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getJarOtherId(), new ArrayList<Integer>() {{ + add(0);add(1);add(2);add(3); + }}); + if (!basJarMastList1.isEmpty()){ + return false; + } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ add(8); }}); @@ -5823,12 +5900,6 @@ List<BasJarMast> basJarMastList10 = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ add(10); }}); - if (basJarMastList10.size()==jarMaxLoc){ - return false; - } - if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=7){ - return false; - } BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),8,8); if (Cools.isEmpty(jarMastByJarIdMin)){ @@ -5861,7 +5932,7 @@ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -5871,6 +5942,34 @@ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); return false; } + + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0) { + return false; + } + if (basJarMastList10.size()==jarMaxLoc){ + return false; + } + + BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId()); + if (Cools.isEmpty(basJarOther)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarSlave.getJarOtherId()); + return false; + } + + if (basJarOther.getJarCount() == 0) { + return false; + } + + List<BasJarMast> basJarMastListOther = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getJarOtherId(), new ArrayList<Integer>() {{ + add(8); + }}); + if (!basJarMastListOther.isEmpty() && basJarMastListOther.size() < basJarOther.getJarCount()){ + return false; + } +// if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && !basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 4).equals(basJarOther.getJarCount() )){ +// return false; +// } // //涓存椂 // if (basJar.getJarCode()==1){ @@ -6363,12 +6462,12 @@ if (jarWrkMastExecuteActionExecute5Three(wrkMastExecute,sign)){ break; } - return; + continue; case 6: if (jarWrkMastExecuteActionExecute6Three(wrkMastExecute,sign)){ break; } - return; + continue; } } } catch (Exception e){ @@ -6401,7 +6500,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -6529,7 +6628,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -6657,7 +6756,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -6773,7 +6872,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -6889,7 +6988,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -7025,7 +7124,7 @@ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -7103,7 +7202,7 @@ return false; } //璋冭溅 == > 鍙栬揣 - if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT25.id,SteTaskModeType.STE_WFFH_13,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){ + if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_WFFH_13,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); } @@ -7497,7 +7596,7 @@ return false; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); return false; } @@ -7549,7 +7648,7 @@ continue; } - if (jarProtocolOther.statusType .equals(JarStatusType.SOS)){ + if (jarProtocolOther.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ // log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo()); continue; } @@ -7827,35 +7926,89 @@ try{ switch (sign){ case 1: - case 5: - case 9: if (jarWrkMastExecuteGenerateSteComplete(sign)){ - break; + return; } case 2: - case 6: - case 10: if (jarWrkMastExecuteGenerateJarComplete(sign)){ - break; + return; } case 3: - case 7: - case 11: if (jarWrkMastExecuteGenerateRgvComplete1(sign)){ - break; + return; } case 4: - case 8: - case 12: if (jarWrkMastExecuteGenerateRgvComplete2(sign)){ - break; + return; } default: - return; + break; } + jarWrkMastExecuteGenerateDevComplete(sign); }catch (Exception e){ log.error("JarWrkMastExecute浠诲姟瀹屾垚鎶ラ敊锛�"+e); } + } + + /** + * JarWrkMastExecute浠诲姟瀹屾垚 ===>Devp //瀹屾垚 + */ + public synchronized boolean jarWrkMastExecuteGenerateDevComplete(Integer sign) { + try{ + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getOutJarInSta()) { + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + // 鍒ゆ柇鏄惁婊¤冻鏉′欢 + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && staProtocol.getWorkNo() == 0 + && staProtocol.isPakMk()) { + for (DevpSlave.Jar jar : inSta.getJarList()) { + // 鍒ゆ柇閲嶅宸ヤ綔妗� + List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListB(jar.getBurial(), new ArrayList<Integer>() {{ + add(9); + add(11); + }}); + if (basJarMastList.isEmpty()){ + continue; + } + BasJarMast jarMastByWrkNo = basJarMastList.get(0); + jarMastByWrkNo.setStatus(jarMastByWrkNo.getStatusComplete(6)); + + + StaProtocol staProtocolNew = new StaProtocol(); + staProtocolNew.setSiteId(staProtocol.getSiteId()); + staProtocolNew.setWorkNo(basJarMastList.get(0).getWrkNo().intValue()); + staProtocolNew.setStaNo(jar.getEndStaNo()); + devpThread.setPakMk(staProtocolNew.getSiteId(), false,7989); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew)); + if (!result) { + LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + if (!basJarMastService.updateById(jarMastByWrkNo)){ + log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,BasJarMast={},寮傚父淇℃伅={}",JSON.toJSONString(jarMastByWrkNo),"鏇存柊basJarMast澶辫触"); + throw new CoolException("鏇存柊basJarMast澶辫触"); + } + break; + } + } + } + } + return true; + }catch (Exception e){ + log.error("JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste鎶ラ敊锛�"+e); + } + return false; } /** @@ -7892,6 +8045,7 @@ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSON(steProtocol),sign); } + Thread.sleep(500); return true; } } @@ -7999,6 +8153,30 @@ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); continue; } + if (jarProtocol.getJarErr()==0 && (jarProtocol.getStatusType().equals(JarStatusType.WAITING1) || jarProtocol.getStatusType().equals(JarStatusType.MOVING)) + && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0 + ){ + List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ + add(6);//纭寲瀹屾垚 + }}); + if (!basJarMastList.isEmpty()){ + WrkMastExecute wrkMastExecuteSou = new WrkMastExecute(); + wrkMastExecuteSou.setWrkSts(3); + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou); + for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){ + if (wrkMastExecute.getIoType() == 3){ + wrkMastExecute.setWrkSts(4); + if (!wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护淇敼澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + return false; + } + return true; + } + } + } + } //WAITING2(4, "纭寲瀹屾垚"), if (jarProtocol.getJarErr()==0 && jarProtocol.getStatusType().equals(JarStatusType.WAITING2) && !jarProtocol.isRightDoor() && !jarProtocol.isLeftDoor() @@ -8059,7 +8237,7 @@ && (jarProtocol.leftDoorClose==2 || jarProtocol.rightDoorClose==2)){ if (jarProtocol.getJarTemperature()>jarTemperature){ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo()); - return false; + continue; } WrkMastExecute wrkMastExecuteSou = new WrkMastExecute(); wrkMastExecuteSou.setWrkSts(3); @@ -8355,6 +8533,13 @@ /** * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚 */ + public synchronized void signTrunBig() { + updateRgvOneSign("TrunSma126",0); + updateRgvOneSign("TrunSma131",0); + updateRgvOneSign("TrunBig310",0); + updateRgvOneSign("TrunBig312",0); + } + public synchronized boolean jarChargeGenerate() { try{ //80%鐢甸噺 鏃犱换鍔� 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數 @@ -8365,7 +8550,14 @@ continue; } SteProtocol steProtocol = steThread.getSteProtocol(); - if (steProtocol == null || steProtocol.getChargeStatus()!=0) { + if (steProtocol == null) { + continue; + } + if (Cools.isEmpty(steProtocol.getChargeStatus())) { + log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString()); + continue; + } + if (steProtocol.getChargeStatus()!=0) { continue; } WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId()); @@ -8382,6 +8574,9 @@ add(5); add(11); add(17); + add(99); + add(100); + add(999); }}); if(!basJarMastList.isEmpty()){ continue; @@ -8432,7 +8627,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ continue; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ continue; } if (jarProtocol.getJarTemperature()>jarTemperature){ @@ -8479,7 +8674,14 @@ continue; } SteProtocol steProtocol = steThread.getSteProtocol(); - if (steProtocol == null || steProtocol.getChargeStatus()!=1) { + if (steProtocol == null) { + continue; + } + if (Cools.isEmpty(steProtocol.getChargeStatus())) { + log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString()); + continue; + } + if (steProtocol.getChargeStatus()!=1) { continue; } @@ -8489,6 +8691,9 @@ add(5); add(11); add(17); + add(99); + add(100); + add(999); }}); if(basJarMastList.isEmpty()){ if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){ @@ -8513,7 +8718,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ continue; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ continue; } if (jarProtocol.getJarTemperature()>jarTemperature){ @@ -8558,6 +8763,11 @@ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}", wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge)); } + try{ + Thread.sleep(1000); + } catch (Exception e){ + + } wrkMastExecuteByCharge.setWrkType(2); wrkMastExecuteByCharge.setWrkSts(100); if (!wrkMastExecuteService.updateById(wrkMastExecuteByCharge)){ @@ -8585,7 +8795,7 @@ String barcode = staProtocol607.getBarcode(); if (!Cools.isEmpty(barcode)) { // log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); - if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) { + if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) { return; } } else { @@ -8595,9 +8805,13 @@ && staProtocol607.getStaNo() == 0 && staProtocol607.isInEnable()){ WrkMast wrkMast = wrkMastMapper.selectByBarcodeTwo(barcode); if (!Cools.isEmpty(wrkMast)){ - staProtocol607.setWorkNo(wrkMast.getWrkNo()); - staProtocol607.setStaNo(staNo1); - boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol607)); + + StaProtocol staProtocolNew = new StaProtocol(); + staProtocolNew.setSiteId(staProtocol607.getSiteId()); + staProtocolNew.setWorkNo(wrkMast.getWrkNo()); + staProtocolNew.setStaNo(staNo1); +// devpThread.setPakMk(staProtocolNew.getSiteId(), false,7989); + boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolNew)); } } } else { @@ -8615,14 +8829,39 @@ } } - - } + public synchronized void stackingCompletionDriveTray2() { + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(518); + String barcode = staProtocol.getBarcode(); + if (!Cools.isEmpty(barcode)) { + if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) { + return; + } + } else { + return; + } + if (staProtocol.getWorkNo()==0 && staProtocol.isLoading() && staProtocol.isAutoing() + && staProtocol.getStaNo() == 0 && staProtocol.isInEnable()){ + WrkMast wrkMast = wrkMastMapper.selectByBarcodeTwo(barcode); + if (!Cools.isEmpty(wrkMast)){ + StaProtocol staProtocolNew = new StaProtocol(); + staProtocolNew.setSiteId(staProtocol.getSiteId()); + staProtocolNew.setWorkNo(wrkMast.getWrkNo()); + staProtocolNew.setStaNo(wrkMast.getStaNo()); + devpThread.setPakMk(staProtocolNew.getSiteId(), false,7989); + boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolNew)); + } + } + } + + + public synchronized Integer jarGetStartStaNo(Integer staNo) { try { int[] jarNos=new int[]{3,1,4,2};//(607鍒嗛厤纭寲缃�) ArrayList<Integer> staNos = new ArrayList<Integer>() {{ - add(607);add(608);add(609);add(610);add(611);add(612); + add(608);add(609);add(610);add(611);add(612); add(613);add(614);add(615);add(616);add(617);add(618); add(619);add(620);add(621);add(622); }}; @@ -8638,6 +8877,16 @@ add(4); }}); if (basJarMastList.isEmpty()){ + continue; + } + BasJar basJar = basJarMapper.selectById(jarNo); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarNo); + continue; + } + + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0) { continue; } if (basJarMastList.size()>0 && basJarMastList.size()<jarMaxLoc){ @@ -8689,7 +8938,7 @@ if (jarProtocol.modeType != JarModeType.AUTO){ continue; } - if (jarProtocol.statusType .equals(JarStatusType.SOS)){ + if (jarProtocol.statusType .equals(JarStatusType.SOS) || jarProtocol.statusType .equals(JarStatusType.SOS2)){ continue; } if (jarProtocol.getJarTemperature()>jarTemperature){ @@ -8702,6 +8951,10 @@ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); continue; } + jarMaxLoc = basJar.getJarCount(); + if (jarMaxLoc == 0) { + continue; + } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{ add(0); add(1); @@ -8709,13 +8962,16 @@ add(3); add(4); }}); - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + Integer count = basJarMastList.size(); ArrayList<Integer> wrkNoList = new ArrayList<>(); - for (Integer staNoEnt : staNos){ + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); StaProtocol staProtocolEnt = devpThread.getStation().get(staNoEnt); - if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){ + if (staProtocolEnt == null || (staProtocolEnt.isLoading() && staProtocolEnt.getWorkNo()==0)){ +// log.error("绔欑偣寮傚父,璁℃暟鍔犱竴锛岀珯鐐瑰彿锛�"+staNoEnt); + count++; + } else if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){ if (staProtocolEnt.getStaNo().equals(basJar.getEntStaNo$())){ count++; wrkNoList.add(staProtocolEnt.getWorkNo()); -- Gitblit v1.9.1