From 298adfe254be9a5976a28dfd63f915842886d588 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期三, 17 一月 2024 14:23:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 201 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 167 insertions(+), 34 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 9530193..7859cd6 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -196,6 +196,9 @@ if (jsonObject.getInteger("code").equals(200)) { StartupDto dto = jsonObject.getObject("data", StartupDto.class); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + + barcodeThread.setBarcode(""); staProtocol.setWorkNo(dto.getWorkNo()); @@ -291,7 +294,7 @@ // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.Sta inSta : devp.getInSta()) { + for (DevpSlave.Sta inSta : devp.getInWmsSta()) { // 鑾峰彇鍏ュ簱绔欎俊鎭� SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); @@ -302,9 +305,9 @@ } // // 鍏ュ嚭搴撴ā寮忓垽鏂� - if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { - continue; - } +// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { +// continue; +// } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -489,17 +492,17 @@ WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); if (wrkMast == null) { - WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); - if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ - WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L); - if (Cools.isEmpty(wrkMastSta)){ - WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); - wrkMastSta1.setType(2); - wrkMastSta1.setWrkType(1); - wrkMastStaMapper.insert(wrkMastSta1); - } - continue; - } +// WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); +// if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L); +// if (Cools.isEmpty(wrkMastSta)){ +// WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); +// wrkMastSta1.setType(2); +// wrkMastSta1.setWrkType(1); +// wrkMastStaMapper.insert(wrkMastSta1); +// } +// continue; +// } // log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�"); // 鏃犳嫞鏂欐暟鎹� continue; @@ -577,6 +580,46 @@ } + } + } + + /** + * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 鎷嗗灈浣嶇疆 + */ + public synchronized void storeEmptyPlt4() { + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍙犵洏鍏ュ簱鍙� + for (DevpSlave.Sta pickSta : devp.getEmptyInSta2()) { + + // 鑾峰彇鍏ュ簱绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId()); + if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ + continue; + } + + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) { + WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); + if (wrkMast == null) { + WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); + if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ + WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L); + if (Cools.isEmpty(wrkMastSta)){ + WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); + wrkMastSta1.setType(2); + wrkMastSta1.setWrkType(1); + wrkMastStaMapper.insert(wrkMastSta1); + } + } + } + } + } } } @@ -3125,9 +3168,16 @@ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO + && rgvProtocol.getStatusType1() == RgvStatusType.IDLE + && rgvProtocol.getStatusType2() == RgvStatusType.IDLE + && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 ) { try { + WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep3(122); + if (!Cools.isEmpty(wrkMast1)){ + continue; + } // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� SearchLocParam param = new SearchLocParam(); @@ -3148,7 +3198,7 @@ if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()==10 && wrkMast.getWrkSts()==2){ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue()); if (Cools.isEmpty(wrkMastSta)){ - WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),0); + WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),wrkMast.getStaNo()); wrkMastSta1.setWrkNo(wrkMast.getWrkNo().longValue()); wrkMastSta1.setType(2); wrkMastSta1.setWrkType(6);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀� @@ -3203,6 +3253,7 @@ // 鍑哄簱妯″紡 switch (wrkMast.getIoType()) { case 1: + case 202: ledCommand.setTitle("鍏ㄦ澘鍏ュ簱"); break; case 10: @@ -3234,34 +3285,35 @@ // ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme()))); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl))); } commands.add(ledCommand); } Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); // 鑾峰彇LED绾跨▼ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); - // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护 - if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) { - continue; - } +// // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护 +// if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) { +// continue; +// } // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- if (!commands.isEmpty()) { - if (led.getId() == 7) { +// 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); - } - } +// } +// 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); +// } +// } } @@ -3980,7 +4032,10 @@ int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼) for (int staNo : staNos){ BasDevp basDevp = basDevpService.selectById(staNo); - if (basDevp.getWrkNo()!=0){ + if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ + continue; + } + if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){ continue; } WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); @@ -4104,7 +4159,7 @@ int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼) for (int staNo : staNos){ BasDevp basDevp = basDevpService.selectById(staNo); - if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>19999) && basDevp.getWrkNo()!=32222){ + if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){ continue; } WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); @@ -4147,6 +4202,84 @@ } wrkMast.setWrkSts(55L); wrkMastMapper.updateById(wrkMast); + + } + } + }catch (Exception e){ +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e); + } + } + + /** + * 鍏朵粬 ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝� 杩愯閫斾腑鑷姩閬胯绌烘澘 + */ + public synchronized void stackingCompletionDriveTray4() { + try { + int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯) + for (int staNo : staNos){ + BasDevp basDevp = basDevpService.selectById(staNo); + BasDevp basDevp135 = basDevpService.selectById(135); + if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){ + continue; + } + if (basDevp135.getReportSign()!=0){ + continue; + } + WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131); + if (Cools.isEmpty(wrkMast131)){ + continue; + } + // 鑾峰彇绔欑偣淇℃伅 + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol135 = devpThread.getStation().get(135); + if (staProtocol135 == null) { + continue; + } else { + staProtocol135 = staProtocol135.clone(); + } + if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0 + || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){ + continue; + } + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + if (!staProtocol.isLoading()){ + continue; + } +// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){ +// log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue()); +// } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && basDevp.getReportSign()==0 + ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { + if (true){ + return; + } + + //浠诲姟瀹屾垚 + boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); + try{ + Thread.sleep(100); + }catch (Exception e){ } + basDevp135.setReportSign(2); + basDevpService.updateById(basDevp135); + staProtocol135.setWorkNo(32222); + staProtocol135.setStaNo(144); + devpThread.setPakMk(staProtocol135.getSiteId(), false); + boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); + } + boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135)); } } @@ -4428,7 +4561,7 @@ continue; } boolean sign = false; - if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//婊℃斁 + if ( wrkMastSta.getStaEnd()!=0){//婊℃斁 sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); }else { continue; @@ -4657,7 +4790,7 @@ && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); + BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); } -- Gitblit v1.9.1