From 84b74dfb03ee81307e88b128d57d55cbbe47678e Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期五, 10 三月 2023 13:51:06 +0800 Subject: [PATCH] # 演示 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 372 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 213 insertions(+), 159 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 efe3ab1..7f27dce 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -21,6 +21,7 @@ import com.zy.common.service.CommonService; import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; +import com.zy.common.utils.News; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -101,16 +102,42 @@ for (DevpSlave.Sta inSta : devp.getInSta()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); + if (barcodeThread == null) { continue; } String barcode = barcodeThread.getBarcode(); + + + //101绔欐湁3涓壂鐮佸櫒锛屽綋0鎵爜鍣ㄦ病鏈夋暟鎹椂锛岃幏鍙�9銆�10涓や釜鎵爜鍣ㄦ暟鎹� + if((inSta.getStaNo().equals(101) || inSta.getStaNo().equals(104)) && ( "NoRead".equals(barcode) || Cools.isEmpty(barcode) )){ + BarcodeThread barcodeThread1 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode1()); + if (barcodeThread1 != null) { + barcode = barcodeThread1.getBarcode(); + } + + if("NoRead".equals(barcode) || Cools.isEmpty(barcode)) { + BarcodeThread barcodeThread2 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode2()); + if (barcodeThread2 != null) { + barcode = barcodeThread2.getBarcode(); + + } + } + } + + if (!Cools.isEmpty(barcode)) { log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { continue; } } else { + // 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; } @@ -169,11 +196,15 @@ // } // 鍒ゆ柇閲嶅宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); - if (wrkMast != null) { - log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); - continue; + WrkMast wrkMast = new WrkMast(); + if (barcode.length() == 8) { + wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); + if (wrkMast != null) { + log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + continue; + } } + // // 鑾峰彇鍏ュ簱閫氱煡妗� // List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); // if (waitPakins.isEmpty()) { @@ -190,6 +221,7 @@ param.setIoType(1); param.setSourceStaNo(inSta.getStaNo()); param.setLocType1(locTypeDto.getLocType1()); + param.setFull(staProtocol.isFull()); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/pakin/loc/v1") @@ -197,6 +229,8 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + Integer code = jsonObject.getInteger("code"); if (jsonObject.getInteger("code").equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); @@ -204,12 +238,32 @@ staProtocol.setWorkNo(dto.getWorkNo().shortValue()); staProtocol.setStaNo(dto.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + + ledThread.errorReset(); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } - } else { + } 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)); + } } @@ -302,22 +356,22 @@ } // // 鍏ュ嚭搴撴ā寮忓垽鏂� - if (inSta.getStaNo() == 101 && devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 104 && devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) { continue; } - if (inSta.getStaNo() == 104 && devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 101 && devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) { continue; } - if (inSta.getStaNo() == 111 && devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 114 && devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) { continue; } - if (inSta.getStaNo() == 114 && devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 111 && devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) { continue; } - if (inSta.getStaNo() == 201 && devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 204 && devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) { continue; } - if (inSta.getStaNo() == 204 && devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) { + if (inSta.getStaNo() == 201 && devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) { continue; } if (inSta.getStaNo() == 301 && devpThread.ioModeOf3F1 != IoModeType.PAKOUT_MODE) { @@ -370,20 +424,39 @@ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� for (DevpSlave.Sta pickSta : devp.getPickSta()) { -// // 鑾峰彇鏉$爜鎵弿浠俊鎭� -// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); -// if (barcodeThread == null) { -// continue; -// } -// String barcode = barcodeThread.getBarcode(); -// if(!Cools.isEmpty(barcode)) { -// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); -// if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); + + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + + + //101绔欐湁3涓壂鐮佸櫒锛屽綋0鎵爜鍣ㄦ病鏈夋暟鎹椂锛岃幏鍙�9銆�10涓や釜鎵爜鍣ㄦ暟鎹� + if((pickSta.getStaNo().equals(101) || pickSta.getStaNo().equals(104)) && ( "NoRead".equals(barcode) || Cools.isEmpty(barcode) )){ + BarcodeThread barcodeThread1 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode1()); + if (barcodeThread1 != null) { + barcode = barcodeThread1.getBarcode(); + } + + if("NoRead".equals(barcode) || Cools.isEmpty(barcode)) { + BarcodeThread barcodeThread2 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode2()); + if (barcodeThread2 != null) { + barcode = barcodeThread2.getBarcode(); + + } + } + } + + if (!Cools.isEmpty(barcode) && "NoRead".equals(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); +// if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { // continue; // } -// } else { -// continue; -// } + } else { + continue; + } // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); @@ -394,30 +467,29 @@ staProtocol = staProtocol.clone(); } -// // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { // WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); + if (wrkMast == null) { + wrkMast = wrkMastMapper.selectPickStep(barcode); + } if (wrkMast == null) { // 鏃犳嫞鏂欐暟鎹� + + if (ledThread != null) { + String errorMsg = "鏆傛棤鎷f枡淇℃伅锛侊紒锛�"; + MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg)); + } continue; } if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { continue; } + ledThread.errorReset(); - // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹� -// int stnNo = 0; -// if (wrkMast.getStaNo() == 109) { -// stnNo = 127; -// } else if (wrkMast.getStaNo() == 113) { -// stnNo = 128; -// } else { -// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo()); -// } // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", wrkMast.getIoType() - 50) @@ -649,6 +721,7 @@ crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + crnCommand.setLocType1((short) 0); // 璐х墿绫诲瀷 if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); } @@ -761,6 +834,7 @@ crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + crnCommand.setLocType1(locMast.getLocType1().shortValue()); // 璐х墿绫诲瀷 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); } else { @@ -808,9 +882,9 @@ continue; } // 鑾峰彇婧愬簱浣嶄俊鎭� - LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); - if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) { - log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts()); + LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); + if (!locMast.getLocSts().equals("R") && !locMast.getLocSts().equals("P")) { + log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts()); continue; } // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 @@ -923,12 +997,13 @@ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setSourcePosX(locMast.getRow1().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(locMast.getBay1().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(locMast.getLev1().shortValue()); // 婧愬簱浣嶅眰 crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� + crnCommand.setLocType1(locMast.getLocType1().shortValue()); // 璐х墿绫诲瀷 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); } else { @@ -1048,6 +1123,7 @@ // crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� // crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� // crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� +// crnCommand.setLocType1(locMast.getLocType1().shortValue()); // 璐х墿绫诲瀷 // if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { // log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); // } else { @@ -1074,18 +1150,18 @@ return; } // 鑾峰彇婧愬簱浣嶄俊鎭� - LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); - if (null == sourceSta) { + LocMast sourceLocMast = locMastService.selectById(wrkMast.getSourceLocNo()); + if (null == sourceLocMast) { log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); return; } // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂� - if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("S")) { + if (!sourceLocMast.getLocSts().equals("R") && !sourceLocMast.getLocSts().equals("S")) { return; } // 鑾峰彇鐩爣搴撲綅淇℃伅 - LocMast sta = locMastService.selectById(wrkMast.getLocNo()); - if (null == sta) { + LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); + if (null == locMast) { log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo()); return; } @@ -1111,12 +1187,13 @@ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞� + crnCommand.setSourcePosX(sourceLocMast.getRow1().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(sourceLocMast.getBay1().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(sourceLocMast.getLev1().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + crnCommand.setLocType1(locMast.getLocType1().shortValue()); // 璐х墿绫诲瀷 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); } else { @@ -1302,7 +1379,7 @@ public synchronized void storeEmptyPlt() { for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻绌烘澘鍏ュ簱鍙� - for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { + for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); @@ -1314,7 +1391,8 @@ // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) { + && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() > 9990 + && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) { try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); @@ -1431,10 +1509,7 @@ } // 鑾峰彇宸ヤ綔妗f暟鎹� WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); -// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } - if (null == wrkMast) { - continue; - } + if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } wrkMasts.add(wrkMast); // 缁勮鍛戒护 LedCommand ledCommand = new LedCommand(); @@ -1442,12 +1517,6 @@ ledCommand.setIoType(wrkMast.getIoType()); // 鍑哄簱妯″紡 switch (wrkMast.getIoType()) { - case 1: - ledCommand.setTitle("鍏ㄦ澘鍏ュ簱"); - break; - case 10: - ledCommand.setTitle("绌烘澘鍏ュ簱"); - break; case 101: ledCommand.setTitle("鍏ㄦ澘鍑哄簱"); break; @@ -1465,16 +1534,24 @@ ledCommand.setEmptyMk(true); break; default: - log.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); + News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); break; } ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); - ledCommand.setLocNo(wrkMast.getLocNo()); ledCommand.setStaNo(wrkMast.getStaNo()); -// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); - if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { + if (wrkMast.getIoType() != 110) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme()))); + wrkDetls.forEach(wrkDetl -> { + if (wrkMast.getIoType() == 101) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())); + } + if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())); + } + if (wrkMast.getIoType() == 107) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())); + } + }); } commands.add(ledCommand); } @@ -1487,22 +1564,10 @@ } // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- if (!commands.isEmpty()) { - if (led.getId() == 7) { - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { - log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); - continue; - } else { - ledThread.setLedMk(false); - } - } else { - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { - log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); - continue; - } else { - ledThread.setLedMk(false); - } + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { + News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); + continue; } - } try { @@ -1530,33 +1595,6 @@ * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 */ public synchronized void ledReset() { -// for (LedSlave led : slaveProperties.getLed()) { -// // 鑾峰彇杈撻�佺嚎plc绾跨▼ -// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); -// // 鍛戒护闆嗗悎 -// boolean reset = true; -// for (Integer staNo : led.getStaArr()) { -// // 鑾峰彇鍙夎溅绔欑偣 -// StaProtocol staProtocol = devpThread.getStation().get(staNo); -// if (staProtocol == null) { -// continue; -// } else { -// staProtocol = staProtocol.clone(); -// } -// if (staProtocol.getWorkNo() != 0) { -// reset = false; -// break; -// } -// } -// // 鑾峰彇led绾跨▼ -// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); -// // led鏄剧ず榛樿鍐呭 -// if (reset) { -// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { -// log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); -// } -// } -// } for (LedSlave led : slaveProperties.getLed()) { // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); @@ -1565,32 +1603,18 @@ for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } - if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { + if (staProtocol == null) { continue; } + if (staProtocol.getWorkNo() != 0) { reset = false; break; } } // 鑾峰彇led绾跨▼ - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); // led鏄剧ず榛樿鍐呭 - if (reset && !ledThread.isLedMk()) { - if (led.getId() == 7) { - ledThread.setLedMk(true); - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { - log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); - } else { - - } - } else { - ledThread.setLedMk(true); - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { - log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); - } else { - - } + if (reset) { + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { + News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); } } } @@ -1815,8 +1839,11 @@ } LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId()); - LocMast loc = locMastService.queryDemoLoc(crn.getId()); - if (null == sourceLoc || null == loc) { + if (null == sourceLoc ) { + continue; + } + LocMast loc = locMastService.queryDemoLoc0(crn.getId(),sourceLoc.getLocType1()); + if ( null == loc) { continue; } @@ -1951,20 +1978,47 @@ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); for (DevpSlave.Sta inSta : devp.getInSta()) { - if (inSta.getStaNo() == 2) { - continue; +// if (inSta.getStaNo() == 2) { +// continue; +// } + Integer staNo = 0; + switch (inSta.getStaNo()){ + case 101: + staNo = 102; + break; + case 104: + staNo = 106; + break; + case 111: + staNo = 112; + break; + case 114: + staNo = 116; + break; + case 201: + staNo = 202; + break; + case 204: + staNo = 205; + break; + case 301: + staNo = 302; + break; + case 304: + staNo = 305; + break; } - WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo()); + WrkMast pakout = wrkMastMapper.selectWorkingPakout(staNo); switch (inSta.getStaNo()) { - case 102: // 1F1 + case 101: // 1F1 if (pakout != null) { if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F1 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf1F1 = IoModeType.PAKOUT_MODE; } @@ -1974,15 +2028,15 @@ devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE; } break; - case 106: // 1F2 + case 104: // 1F2 if (pakout != null) { if (devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F2 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf1F2 = IoModeType.PAKOUT_MODE; } @@ -1992,15 +2046,15 @@ devpThread.ioModeOf1F2 = IoModeType.PAKIN_MODE; } break; - case 112: // 1F3 + case 111: // 1F3 if (pakout != null) { if (devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F3 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf1F3 = IoModeType.PAKOUT_MODE; } @@ -2010,15 +2064,15 @@ devpThread.ioModeOf1F3 = IoModeType.PAKIN_MODE; } break; - case 116: // 1F4 + case 114: // 1F4 if (pakout != null) { if (devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F4 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf1F4 = IoModeType.PAKOUT_MODE; } @@ -2028,15 +2082,15 @@ devpThread.ioModeOf1F4 = IoModeType.PAKIN_MODE; } break; - case 202: // 2F1 + case 201: // 2F1 if (pakout != null) { if (devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F1 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf2F1 = IoModeType.PAKOUT_MODE; } @@ -2046,15 +2100,15 @@ devpThread.ioModeOf2F1 = IoModeType.PAKIN_MODE; } break; - case 205: // 2F2 + case 204: // 2F2 if (pakout != null) { if (devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf2F2 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf2F2 = IoModeType.PAKOUT_MODE; } @@ -2064,15 +2118,15 @@ devpThread.ioModeOf2F2 = IoModeType.PAKIN_MODE; } break; - case 302: // 3F1 + case 301: // 3F1 if (pakout != null) { if (devpThread.ioModeOf3F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf3F1 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf3F1 = IoModeType.PAKOUT_MODE; } @@ -2082,15 +2136,15 @@ devpThread.ioModeOf3F1 = IoModeType.PAKIN_MODE; } break; - case 305: // 3F2 + case 304: // 3F2 if (pakout != null) { if (devpThread.ioModeOf3F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf3F2 = 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) { + && !devpThread.getStation().get(inSta.getStaNo() - 1).isLoading() + && devpThread.getStation().get(inSta.getStaNo() - 1).getWorkNo() == 0) { // 鍑哄簱妯″紡 devpThread.ioModeOf3F2 = IoModeType.PAKOUT_MODE; } -- Gitblit v1.9.1