From 3d2a161ca245484a3162b439cadf348b2f3a75fa Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期三, 23 四月 2025 15:06:37 +0800 Subject: [PATCH] 初始化 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 675 +++++++++---------------------------------------------- 1 files changed, 116 insertions(+), 559 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 e5d2421..936b175 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -48,10 +48,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import springfox.documentation.spring.web.json.Json; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @@ -152,59 +149,32 @@ errMsg = errMsg + "鎵爜澶辫触"; back = true; } - // 閫�鍥� - if (back) { - // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); - } - continue; - } String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode) && !barcode.equals("00000000")) { - 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; - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9992 && staProtocol.getWorkNo() <= 9999) + && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) { -// if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { -// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); -// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣 -// staProtocol.setWorkNo((short)9999); -// staProtocol.setStaNo((short)172); -// devpThread.setPakMk(staProtocol.getSiteId(), false); -// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// if (!result) { -// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); -// } -// continue; -// } + + // 閫�鍥� + if (back ||(!Cools.isEmpty(barcode) && barcode.equals("00000000"))) { + staProtocol.setWorkNo((short) 9999); + staProtocol.setStaNo(inSta.getBackSta().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + // led 寮傚父鏄剧ず + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); + } + continue; + } // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); if (wrkMast != null) { News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); - continue; - } - // 鑾峰彇鍏ュ簱閫氱煡妗� - List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); - if (waitPakins.isEmpty()) { - log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode); continue; } @@ -216,7 +186,6 @@ param.setIoType(1); param.setSourceStaNo(inSta.getStaNo()); param.setLocType1(locTypeDto.getLocType1()); -// param.setPackNo(pack); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/pakin/loc/v1") @@ -809,9 +778,6 @@ staProtocol = staProtocol.clone(); } -// // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); if (staDetl == null) { @@ -831,11 +797,6 @@ // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { - //娴嬭瘯搴撲綅鍑哄簱蹇呴』瑕佹寜鍚姩鎸夐挳鎵嶈兘鍑哄簱 - if ((wrkMast.getStaNo() == 206 || wrkMast.getStaNo() == 1000) && locMast.getCtnKind() == 0) { - News.error("鍑哄簱 ===>> 绛夊緟鍚姩鍑哄簱鎸夐挳", wrkMast); - continue; - } // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -1051,30 +1012,22 @@ WrkMast wrkMast = null; if (Cools.isEmpty(wrkMasts)) { return; + }else { + wrkMast = wrkMasts.get(0); } - //鍏堟煡娴嬭瘯搴撲綅杞琌K鎴栬�匩G搴撲綅鎸変簡鎸夐挳鐨� - for (WrkMast wm : wrkMasts) { - LocMast sourceSta1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wm.getSourceLocNo())); - if (!Cools.isEmpty(sourceSta1.getCtnKind())) { - if (sourceSta1.getCtnKind() == 1) { - wrkMast = wm; - break; - } - } - } - //鍚庢煡绛夊緟搴撲綅杞祴璇曞簱浣� - if (Cools.isEmpty(wrkMast)) { - for (WrkMast wm : wrkMasts) { - LocMast sourceSta1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wm.getSourceLocNo())); - if (sourceSta1.getLocType1() == 3) { - wrkMast = wm; - } - } - } - //閮芥病鏈夋弧瓒虫潯浠剁殑锛岃烦杩囩Щ搴� - if (Cools.isEmpty(wrkMast)) { - return; - } +// //鍚庢煡绛夊緟搴撲綅杞祴璇曞簱浣� +// if (Cools.isEmpty(wrkMast)) { +// for (WrkMast wm : wrkMasts) { +// LocMast sourceSta1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wm.getSourceLocNo())); +// if (sourceSta1.getLocType1() == 3) { +// wrkMast = wm; +// } +// } +// } +// //閮芥病鏈夋弧瓒虫潯浠剁殑锛岃烦杩囩Щ搴� +// if (Cools.isEmpty(wrkMast)) { +// return; +// } // 鑾峰彇婧愬簱浣嶄俊鎭� LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); @@ -1430,7 +1383,8 @@ * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� */ @Async - public synchronized void ledExecute() { + public synchronized void ledExecute(Integer mark) { + for (LedSlave led : slaveProperties.getLed()) { // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); @@ -1441,16 +1395,18 @@ for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo()) { + if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { continue; } else { staProtocol = staProtocol.clone(); } // 鑾峰彇宸ヤ綔妗f暟鎹� WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); +// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } if (null == wrkMast) { continue; } + log.info(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�"); wrkMasts.add(wrkMast); // 缁勮鍛戒护 LedCommand ledCommand = new LedCommand(); @@ -1481,39 +1437,18 @@ ledCommand.setEmptyMk(true); break; default: - News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); + News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); break; } ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); + ledCommand.setLocNo(wrkMast.getLocNo()); ledCommand.setStaNo(wrkMast.getStaNo()); - ledCommand.setBarcode(wrkMast.getBarcode()); +// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - - wrkDetls.forEach(wrkDetl -> { - Double total = 0.0; - EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); - LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); - if (Cools.isEmpty(locDetl)) { - total = wrkDetl.getAnfme(); - } else { - total = locDetl.getAnfme(); - } - if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total)); - } - if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total)); - } - if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total)); - } - }); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs()))); } commands.add(ledCommand); - } - if (Cools.isEmpty(wrkMasts)) { - continue; } Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); // 鑾峰彇LED绾跨▼ @@ -1522,11 +1457,32 @@ if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) { continue; } +// 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- +// if (!commands.isEmpty()) { +// if (led.getId() < 7) { +// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { +// News.error(""+mark+" - 2"+" - {}鍙稬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))) { +// News.error(""+mark+" - 3"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); +// continue; +// } else { +// ledThread.setLedMk(false); +// } +// } +// +// } // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- if (!commands.isEmpty()) { - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { - News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { + News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); continue; + }else { + ledThread.setLedMk(false); } } @@ -1536,6 +1492,7 @@ wrkMast.setOveMk("Y"); wrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�"); throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); } } @@ -1549,6 +1506,7 @@ } } + log.info(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�"); } /** @@ -1958,38 +1916,6 @@ } } - /** - * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� - */ - public void ioConvert() { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - - WrkMast pakout = wrkMastMapper.selectWorkingPakout(); - if (pakout != null) { - if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { - // 鍑哄簱鍒囨崲涓� - devpThread.ioMode = IoModeType.PAKOUT_BOOTING; - - WrkMast pakin = wrkMastMapper.selectWorkingPakin(); - if (pakin == null) { - // 鍑哄簱妯″紡 - devpThread.ioMode = IoModeType.PAKOUT_MODE; - } - } - } else { - // 鍏ュ簱妯″紡 - devpThread.ioMode = IoModeType.PAKIN_MODE; - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - } - public void outOfDevp() { List<WrkMast> wrkMasts = wrkMastMapper.selectPick(); for (WrkMast wrkMast : wrkMasts) { @@ -2076,232 +2002,6 @@ } } - /** - * 鏍规嵁PLC鎸夐挳娴嬭瘯銆佸畬鎴愩�佹殏鍋滀俊鍙凤紝鏇存柊testMast琛ㄤ腑status鍊硷紝浜ょ敱WMS绯荤粺澶勭悊 - */ - @Transactional - public void packTest() { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - if (null != devpThread) { - for (int i = 0; i < 48; i++) { - int olsStatus = 0;//testMast琛ㄥ師鏉tatus鏁版嵁鐘舵�� - int newStatus = 0;//testMast琛ㄥ緟淇敼鐨剆tatus鏁版嵁鐘舵�� - short newSingle = 0; //PLC鍦板潃寰呬慨鏀圭殑鏂板�� - switch (devpThread.startSignal[i][0]) {//鏍规嵁淇″彿鏌ユ壘testMast琛ㄤ腑瀵瑰簲鐘舵�佹潯浠�,olsStatus锛宯ewStatus鏍规嵁瀹為檯娴佺▼璋冩暣 - case 0://鍒濆鐘舵�侊紝鍏ュ簱 - olsStatus = 1;//寰呮祴 - newStatus = 1;//寰呮祴 - newSingle = 1;//搴撳瓨鏈夎祫鏂欙紝瀵勫瓨鍣ㄥ湴鍧�锛�0===>>1 - break; - case 2://鍚姩澶嶆牳淇″彿 - olsStatus = 1;//寰呮祴 - newStatus = 2;//澶嶆牳涓� - newSingle = 3;//娴嬭瘯澶嶆牳锛屽瘎瀛樺櫒鍦板潃锛�2===>>3 - break; - case 3://娴嬭瘯瀹屾垚 - olsStatus = 4;//娴嬭瘯瀹屾垚 - newStatus = 4;//娴嬭瘯瀹屾垚 - newSingle = 4;//锛圢G:4\OK:41锛夋祴璇曞畬鎴愶紝瀵勫瓨鍣ㄥ湴鍧�锛�3===>>4\41 - break; - case 5://NG娴嬭瘯淇″彿 - case 6://瀹屾垚娴嬭瘯淇″彿 - case 22://瀹屾垚娴嬭瘯淇″彿 - olsStatus = 4;//娴嬭瘯瀹屾垚 - newStatus = 5;//宸茬Щ搴� - newSingle = 0;//鍚姩绉诲簱锛屽瘎瀛樺櫒鍦板潃娓呴浂锛�5/6===>>0 - break; - case 7://鏆傚仠淇″彿 - olsStatus = 99;//plc缁欏嚭鏆傚仠淇″彿 - newStatus = 0;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast - newSingle = 8;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�7===>>8 - break; - case 9://绱ф�ュ嚭搴撶‘璁ゅ厖鐢电嚎宸茬粡鎷斿嚭 - olsStatus = 99;//plc缁欏嚭鏆傚仠淇″彿 - newStatus = 0;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast - newSingle = 8;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�9===>>8 - break; - case 10://瑙i櫎鏆傚仠淇″彿 - olsStatus = 0;//plc缁欏嚭鏆傚仠淇″彿 - newStatus = 1;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast - newSingle = 0;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�10===>>0/11 - break; - case 12://绱ф�ュ嚭搴撶‘璁ゅ厖鐢电嚎宸茬粡鎷斿嚭 - newSingle = 11;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�12===>>11 - break; - case 13://鍏ュ簱鍓嶅垽鏂厖鐢电嚎鏄惁鏀惧ソ - newSingle = 14;//绂佺敤搴撲綅锛屽瘎瀛樺櫒鍦板潃锛�13===>>14 - break; - case 15://鍏呯數绾挎斁濂� - newSingle = 0;//澶嶄綅锛屽瘎瀛樺櫒鍦板潃锛�12===>>0 - break; - default: - log.info("璇诲彇閫氶亾" + (i + 1) + "娴嬭瘯搴撲綅鎸夐挳淇″彿:涓�" + devpThread.startSignal[i][0]); - continue; - } - - TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("channel", (i + 1)).eq("status", olsStatus));//鏌ユ壘鍘熸潵鐨勭姸鎬� - LocMast locMast = null; - boolean sign = false; - switch (devpThread.startSignal[i][0]) { - case 0: - if (!Cools.isEmpty(testMast)) { - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")) { - sign = true; - } - } - break; - case 3: - if (!Cools.isEmpty(testMast)) { - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")) { - sign = true; - if (locMast.getPackStatus() == 3) {//娴嬭瘯瀹屾垚 - newSingle = 41; - } else if (locMast.getPackStatus() == 4) {//娴嬭瘯澶辫触 - newSingle = 4; - } else { - log.info("璇诲彇閫氶亾" + (i + 1) + "娴嬭瘯搴撲綅鎸夐挳淇″彿:涓�" + devpThread.startSignal[i][0] + "閫氶亾搴撲綅pack鐘舵�佷俊鎭紓甯�" + locMast.getPackStatus()); - sign = false; - } - } - } - break; - case 5: - case 6: - if (!Cools.isEmpty(testMast)) { - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")) { - if (devpThread.startSignal[i][0] == 5 && locMast.getPackStatus() == 4) { - sign = true; - } else if (devpThread.startSignal[i][0] == 6 && locMast.getPackStatus() == 3) { - sign = true; - } else { - log.error("娴嬭瘯瀹屾垚绉诲簱鏃舵寜涓嬪畬鎴愭寜閽笌娴嬭瘯缁撴灉涓嶄竴鑷�===>>[channel:{}", i + 1); - } - } else { - log.error("娴嬭瘯瀹屾垚绉诲簱鏃舵湭鏌ヨ鍒版祴璇曟。妗�===>>[channel:{}", i + 1); - } - } - break; - case 2: - if (!Cools.isEmpty(testMast)) { - testMast.setStatus(newStatus); - testMast.setModiTime(new Date()); - if (!testMastService.update(testMast, new EntityWrapper<TestMast>().eq("channel", (i + 1)).eq("barcode", testMast.getBarcode()))) { - throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�"); - } else { - sign = true; - } - } else { - log.error("鍚姩娴嬭瘯鏃舵湭鏌ヨ鍒版祴璇曟。妗�===>>[channel:{}", i + 1); - } - break; - case 7: - SearchLocParam param = new SearchLocParam(); - param.setBarcode(i + 1 + ""); - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/mobile/test/suspend/auth") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - testMast = testMastService.selectOne(new EntityWrapper<TestMast>().eq("channel", (i + 1))); - testMast.setStatus(newStatus); - testMast.setModiTime(new Date()); - if (!testMastService.update(testMast, new EntityWrapper<TestMast>().eq("channel", (i + 1)).eq("barcode", testMast.getBarcode()))) { - log.error("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�"); - } - sign = true; - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/mobile/test/suspend/auth", JSON.toJSONString(param), response); - } - break; - case 9: - case 12: - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { - locMast.setPackStatus(8); //8.绱ф�ュ嚭搴� - if (locMastService.update(locMast, new EntityWrapper<LocMast>().eq("channel", (i + 1)))) { - log.info("搴撲綅锛歿}锛岀揣鎬ュ嚭搴擄紒", locMast.getLocNo()); - } - } else { - log.error("搴撲綅涓嶆槸鍦ㄥ簱鐘舵�侊紝鏃犻渶绱ф�ュ嚭搴擄紒"); - } - sign = true; - break; - case 10: - if (!Cools.isEmpty(testMast)) { - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")) { - if (locMast.getFireStatus().equals(1)) { - newSingle = 11; - } else { - testMast.setStatus(newStatus); - testMast.setModiTime(new Date()); - if (!testMastService.update(testMast, new EntityWrapper<TestMast>().eq("channel", (i + 1)).eq("barcode", testMast.getBarcode()))) { - throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�"); - } else { - sign = true; - } - } - } - } - sign = true; - break; - case 13: - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (locMast.getLocSts().equals("O")) { - locMast.setLocSts("X"); - locMastService.update(locMast, new EntityWrapper<LocMast>().eq("channel", (i + 1))); - } - sign = true; - break; - case 15: - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (locMast.getLocSts().equals("X")) { - locMast.setLocSts("O"); - locMastService.update(locMast, new EntityWrapper<LocMast>().eq("channel", (i + 1))); - } - sign = true; - break; - default: - log.info("璇诲彇閫氶亾" + (i + 1) + "娴嬭瘯搴撲綅鎸夐挳淇″彿:涓�" + devpThread.startSignal[i][0]); - continue; - } - if (sign) { - boolean result = messageQueueOffer(i, newSingle, SlaveType.Devp, devp.getId()); - if (!result) { - log.error("鏇存柊娴嬭瘯淇″彿澶辫触===>>[channel:{},locNo:{},barcode:{}]", i + 1, testMast.getLocNo(), testMast.getBarcode()); - } else { - devpThread.startSignal[i][0] = newSingle; - } - } - try { - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", (i + 1))); - if (devpThread.startSignal[i][1] != locMast.getFireStatus()) { - messageQueueOffer2(i + 1, (short) ((int) locMast.getFireStatus()), SlaveType.Devp, devp.getId()); - } - } catch (Exception e) { - log.error("鐏 ===>> 缁欒緭閫佺嚎鍙戦�佽鎶ュけ璐�,閫氶亾鍙凤細", i + 1); - } - } - - } - - } - } catch (Exception e) { - log.error("鍚姩娴嬭瘯 ===>> 鍚姩娴嬭瘯澶辫触", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } public boolean messageQueueOffer(int i, short newSingle, SlaveType devp, Integer id) { //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被 @@ -2320,216 +2020,73 @@ } /** - * 灏嗙伀璀︽姤璀︿俊鍙峰啓鍏ュ埌鍫嗗灈鏈篜LC涓� - */ - @Transactional - public void fierCrn() { - try { - for (CrnSlave crn : slaveProperties.getCrn()) { - if (crn.getId() != 1) { - continue; - } - // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("fire_status", 1)); - if (!Cools.isEmpty(locMast)) { - //鎶ヨ淇″彿鍐欏叆1 - if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(4, 1))) { - News.error("鐏 ===>> 缁欏爢鍨涙満鍙戦�佹姤璀︿俊鍙峰け璐�"); - } - News.error("鐏!!!!!!! ===>> 缁欏爢鍨涙満鍙戦�佹姤璀︿俊鍙锋垚鍔�"); - } else { - //鎶ヨ淇″彿娌℃湁鍚庯紝澶嶄綅鍦板潃 - if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(4, 0))) { - News.error("鐏 ===>> 缁欏爢鍨涙満娓呴浂澶嶄綅鎶ヨ淇″彿澶辫触"); - } - } - } - } catch (Exception e) { - News.error("鐏 ===>> 缁欏爢鍨涙満鍙戦�佽鎶ュけ璐�", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - - /** - * 103绔欑偣鏈夌墿涓嬪彂pack鐮� - */ - @Transactional - public void packDevp() { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 103)); - if (Cools.isEmpty(basDevp)) { - News.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�"); - } - if (basDevp.getAutoing().equals("Y") && basDevp.getWrkNo() > 0 && basDevp.getLoading().equals("Y")) { - WrkDetl wrkDetl = wrkDetlService.devpPackNo(basDevp.getWrkNo()); - if (Cools.isEmpty(wrkDetl)) { - News.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�"); - } - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, wrkDetl.getMatnr())); - } - } - } catch (Exception e) { - News.error("103 ===>> 缁欒緭閫佺嚎鍙戦�丳ack鐮佸け璐�", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - - /** - * 鏍规嵁PLC鎸夐挳娴嬭瘯銆佸畬鎴愩�佹殏鍋滀俊鍙凤紝鏇存柊testMast琛ㄤ腑status鍊硷紝浜ょ敱WMS绯荤粺澶勭悊 + * 鏇存柊PLC搴撲綅鐘舵�併�佹洿鏂板簱浣嶅惎鍔ㄧ姸鎬� */ @Transactional public void packTest1() { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { - log.info("2363琛岀▼搴忓紑濮嬭繍琛�"); SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - if (null != devpThread) { - for (int i = 0; i < 48; i++) { -// log.info("2367琛岀▼搴忓紑濮嬭繍琛岋紝绗�"+i+"娆�"); - boolean fig = false; + if(null != devpThread){ + //devpThread.startSignal[i][0] + //0:绌洪棽,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触; + + //locMast.setPackStatus + // "浜у搧鐘舵�亄0:绌洪棽,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触;}" + + //testMast.setStatus + //"鐘舵�� 0: 鏃犺揣 1: 绛夊緟娴嬭瘯 2:娴嬭瘯涓� 3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触; " + for (int i = 0; i < 24; i++){ //鏌ヨ鍦ㄥ簱鍜岄绾﹀嚭搴� - LocMast locMast = locMastService.selectztgx("F", "R", i); - if (!Cools.isEmpty(locMast)) { -// log.info("2372琛岀▼搴忓紑濮嬭繍琛岋紝鏌ヨ娴嬭瘯妗�"); - TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("loc_no", locMast.getLocNo()) - .eq("user_id", locMast.getBarcode())); - if (Cools.isEmpty(testMast)) { + LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",i+1)); + if(!Cools.isEmpty(locMast)){ + if (locMast.getLocSts().equals("F")){ + TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no",locMast.getLocNo()) + .eq("user_id",locMast.getBarcode())); + if(Cools.isEmpty(testMast)){ // log.info("2377琛岀▼搴忓紑濮嬭繍琛岋紝娴嬭瘯妗d负绌猴紝璺宠繃"); - continue; - } -// log.info("2380琛岀▼搴忓紑濮嬭繍琛岋紝娴嬭瘯妗d笉涓虹┖锛屼笅涓�姝�"); - //devpThread.startSignal[i][0] - //0:绌�,1:鍚姩涓�,2:宸ヤ綔涓�,3:鑷姩鏆傚仠,4:姝e父瀹屾垚(OK),5:寮傚父鍋滄(NG),6:鍦ㄧ嚎,7:绂荤嚎,8:绌洪棽 - - //locMast.setPackStatus - // "浜у搧鐘舵�亄0:鏃�,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触;5.闈欑疆涓�;6:闈欑疆瀹屾垚;7:鏆傚仠娴嬭瘯;8:绱ф�ュ嚭搴�;9:鍦ㄧ嚎;10:绂荤嚎;11:绌洪棽;}" - - //testMast.setStatus - //"鐘舵�� 0: 寰呯敵璇� 1: 鐢宠涓� 2: 宸插鏍� 3:娴嬭瘯涓� 4:瀹屾垚 5:绉诲簱 6:鐏" - if (devpThread.startSignal[i][0] == 8) { - News.info("2390琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 1銆佺敵璇蜂腑锛屽紑濮嬩慨鏀瑰墠锛�" + JSON.toJSONString(testMast)); - testMast.setStatus(1); - locMast.setPackStatus(1); - testMast.setModiTime(new Date()); - log.info("2394琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 1銆佺敵璇蜂腑,淇敼鏁版嵁鍚庛�佹湭鏇存柊" + JSON.toJSONString(testMast)); - } else if (devpThread.startSignal[i][0] == 2 && locMast.getPackStatus() != 2) { - News.info("2396琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 3銆佹祴璇曚腑锛屽紑濮嬩慨鏀瑰墠锛�" + JSON.toJSONString(testMast)); - testMast.setStatus(3); - locMast.setPackStatus(2); - testMast.setModiTime(new Date()); - log.info("2400锛屼慨鏀规祴璇曟。鐘舵�佷负 3銆佹祴璇曚腑,淇敼鏁版嵁鍚庛�佹湭鏇存柊" + JSON.toJSONString(testMast)); - //NG杞琌K闇�瑕佽繕鍘熸簮搴撲綅鍜岀洰鏍囧簱浣嶇姸鎬侊紝OK杞琋G 鍒犻櫎浠诲姟妗� - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() - .eq("source_loc_no", locMast.getLocNo()) - .eq("wrk_sts", 11)); - News.info("2405锛屾煡璇㈢姸鎬佷负鐢熸垚鍑哄簱id鐨勬祴璇曞畬鎴愶紙NG鎴朞K锛変换鍔℃。锛�" + JSON.toJSONString(wrkMast)); - if (!Cools.isEmpty(wrkMast)) { - if (wrkMast.getWrkSts() == 11) { - if (wrkMast.getIoType() == 11) { - log.info("2409锛屽垹闄や换鍔℃。涓虹Щ搴撶殑锛�" + JSON.toJSONString(wrkMast)); - LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo())); - locMast1.setLocSts("O"); - locMastService.update(locMast1, new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo())); - } - wrkMastMapper.deleteById(wrkMast); - log.info("2415锛屽垹闄ゅ伐浣滄。" + JSON.toJSONString(wrkMast) + JSON.toJSONString(locMast)); - locMast.setLocSts("F"); - log.info("2417锛屽垹闄ゅ伐浣滄。" + JSON.toJSONString(wrkMast) + JSON.toJSONString(locMast)); - wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); - log.info("2419锛屽垹闄ゅ伐浣滄槑缁�" + wrkMast.getWrkNo()); - if (!locMastService.update(locMast, new EntityWrapper<LocMast>() - .eq("channel", i + 1))) { - log.error("2422淇敼娴嬭瘯搴撲綅鐘舵�佸け璐�" + locMast.getLocNo() + JSON.toJSONString(locMast)); - } else { - log.error("2424淇敼娴嬭瘯搴撲綅鐘舵�佹垚鍔�" + locMast.getLocNo() + JSON.toJSONString(locMast)); - fig = true; - } - } - } - } else if (devpThread.startSignal[i][0] == 3) { - locMast.setPackStatus(7); - testMast.setModiTime(new Date()); - } else if (devpThread.startSignal[i][0] == 4 && testMast.getStatus() != 4 && locMast.getFireStatus() != 1 && testMast.getStatus() != 6) { - locMast.setPackStatus(3); - testMast.setStatus(4); - testMast.setModiTime(new Date()); - testMastService.insertPackQualified(true, new Date(), testMast.getBarcode()); - } else if (devpThread.startSignal[i][0] == 5 && testMast.getStatus() != 4 && locMast.getFireStatus() != 1 && testMast.getStatus() != 6) { - locMast.setPackStatus(4); - testMast.setStatus(4); - testMast.setModiTime(new Date()); - testMastService.insertPackQualified(false, new Date(), testMast.getBarcode()); - } -// else if(devpThread.startSignal[i][0]==6||devpThread.startSignal[i][0]==7||devpThread.startSignal[i][0]==8){ -// locMast.setPackStatus(devpThread.startSignal[i][0]+3); -// } - //閫氶亾鍚姩鎸夐挳鐘舵�侊紝1:鍙互鍚姩鍑哄簱鎴栬�呯Щ搴擄紝0:涓嶈兘鍚姩鍑哄簱鎴栬�呯Щ搴� - locMast.setCtnKind(devpThread.startSignal[i][2]); - if (devpThread.startSignal[i][2] == 1) { - if (!locMastService.update(locMast, new EntityWrapper<LocMast>() - .eq("loc_sts", "R") - .eq("channel", i + 1))) { - News.error("淇敼鍚姩鎸夐挳鐘舵�侊紝娴嬭瘯搴撲綅鐘舵�佸け璐�" + locMast.getLocNo(), locMast); - } - } else if (!locMast.getLocSts().equals("R")) { - if (!fig) { - if (!locMastService.update(locMast, new EntityWrapper<LocMast>() - .eq("loc_sts", "F") - .eq("channel", i + 1))) { - News.error("淇敼娴嬭瘯搴撲綅鐘舵�佸け璐�" + locMast.getLocNo(), locMast); - } - } - if (!testMastService.update(testMast, new EntityWrapper<TestMast>() - .eq("loc_no", locMast.getLocNo()) - .eq("user_id", locMast.getBarcode()))) { - News.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast); - } - } - } - } - //褰撳厖鏀剧數搴撲綅涓篛绌哄簱浣嶆椂 - //搴撲綅鐘舵�佹敼涓�8绌洪棽 - //缁橮LC鍐欐秷闃蹭俊鍙� - for (int i = 0; i < 48; i++) { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", i + 1)); - TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("loc_no", locMast.getLocNo()) - .eq("user_id", locMast.getBarcode())); - if ((locMast.getLocSts().equals("O") || locMast.getLocSts().equals("S")) && devpThread.startSignal[i][0] != 8) { - Thread.sleep(1000); - MessageQueue.offer(SlaveType.Devp, 1, new Task(6, locMast.getChannel() - 1)); - } - try { - if (locMast.getFireStatus() != devpThread.startSignal[i][1]) { - messageQueueOffer2(i, (short) ((int) locMast.getFireStatus()), SlaveType.Devp, devp.getId()); - if (Cools.isEmpty(testMast)) { continue; } - if (locMast.getFireStatus() == 1) { - testMast.setStatus(6);//鐏 - if (!testMastService.update(testMast, new EntityWrapper<TestMast>() - .eq("loc_no", locMast.getLocNo()) - .eq("user_id", locMast.getBarcode()))) { - News.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast); + HashMap<String,Short> hashMap=new HashMap<>(); + if(devpThread.startSignal[i][0]!=locMast.getPackStatus()){ + hashMap.put("locSts",locMast.getPackStatus().shortValue()); + hashMap.put("channel",(short)(i*2)); + MessageQueue.offer(SlaveType.Devp, 1, new Task(6,hashMap)); + } + //鍚屾璁惧鐘舵�� + if(locMast.getPackStatus()!=testMast.getStatus()){ + testMast.setStatus(locMast.getPackStatus()); + testMastService.updateById(testMast); + } + if(devpThread.startSignal[i][1]!=locMast.getCtnKind()){ + locMast.setCtnKind(devpThread.startSignal[i][1]); + locMastService.updateById(locMast); + } + }else if(locMast.getLocSts().equals("O")){ + //褰撳厖鏀剧數搴撲綅涓篛绌哄簱浣嶆椂 + //搴撲綅鐘舵�佹敼涓�0绌洪棽 + locMast=locMastService.selectztgx("O",i); + if(!Cools.isEmpty(locMast)){ + HashMap<String,Short> hashMap=new HashMap<>(); + if(devpThread.startSignal[i][0]!=locMast.getPackStatus()){ + hashMap.put("locSts",(short)0); + hashMap.put("channel",(short)(i*2)); + MessageQueue.offer(SlaveType.Devp, 1, new Task(6,hashMap)); + locMast.setPackStatus(0); + locMastService.updateById(locMast); + } + + if(devpThread.startSignal[i][1]!=locMast.getChannel()){ + locMast.setCtnKind(devpThread.startSignal[i][1]); + locMastService.updateById(locMast); } } } - } catch (Exception e) { - News.error("鐏 ===>> 缁欒緭閫佺嚎鍙戦�佽鎶ュけ璐�,閫氶亾鍙凤細", i + 1); } } - - } - } } catch (Exception e) { News.error("鑾峰緱娴嬭瘯搴撲綅鐘舵�佸け璐�", e); -- Gitblit v1.9.1