From 55a497c0c859009440d4edf79a9c5cac9db258f7 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期一, 31 三月 2025 15:27:08 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 168 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 84 insertions(+), 84 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 980186a..c270c19 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -113,113 +113,113 @@ private CrnController crnController; @Autowired private SiteController siteController; - //鍑哄簱绔欑偣鑷�112寰幆绔欑偣 @Synchronized - public void shiftTargetToCyclePoint() throws IOException, InterruptedException{ - try{ + public void shiftTargetToCyclePoint() throws IOException, InterruptedException { + try { for (DevpSlave devp : slaveProperties.getDevp()) { for (DevpSlave.Sta outSta : devp.getOutSta()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo()); - StaProtocol staProtocol1 = devpThread.getStation().get(1001); - StaProtocol staProtocol2 = devpThread.getStation().get(1002); - StaProtocol staProtocol3 = devpThread.getStation().get(1003); - StaProtocol staProtocol4 = devpThread.getStation().get(1004); - StaProtocol staProtocol6 = devpThread.getStation().get(111); + if (devpThread == null) { + continue; + } + + StaProtocol staProtocol = getClonedStation(devpThread, outSta.getStaNo()); if (staProtocol == null) { continue; - } else { - staProtocol = staProtocol.clone(); } - if (staProtocol1 == null) { - continue; - } else { - staProtocol1 = staProtocol1.clone(); - } - if (staProtocol2 == null) { - continue; - } else { - staProtocol2 = staProtocol2.clone(); - } - if (staProtocol3 == null) { - continue; - } else { - staProtocol3 = staProtocol3.clone(); - } - if (staProtocol4 == null) { - continue; - } else { - staProtocol4 = staProtocol4.clone(); - } - if (staProtocol6 == null) { - continue; - } else { - staProtocol6 = staProtocol6.clone(); - } - boolean result = false; - switch(outSta.getStaNo()){ - case 105: if (staProtocol1.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 105){ - result = true; - } - case 107: if (staProtocol2.isLoading()){ - result = true; - } - case 109: if (staProtocol3.isLoading()){ - result = true; - } - case 110: if ((staProtocol4.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 110) || ((staProtocol6.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 111))){ - result = true; - } - default: break; + // 鑾峰彇鍏朵粬鐩稿叧绔欑偣 + StaProtocol staProtocol1 = getClonedStation(devpThread, 1001); + StaProtocol staProtocol2 = getClonedStation(devpThread, 1002); + StaProtocol staProtocol3 = getClonedStation(devpThread, 1003); + StaProtocol staProtocol4 = getClonedStation(devpThread, 1004); + StaProtocol staProtocol6 = getClonedStation(devpThread, 111); + + boolean result = false; + switch (outSta.getStaNo()) { + case 105: + result = (staProtocol1 != null && staProtocol1.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 105); + break; + case 107: + result = (staProtocol2 != null && staProtocol2.isLoading()); + break; + case 109: + result = (staProtocol3 != null && staProtocol3.isLoading()); + break; + case 110: + result = ((staProtocol4 != null && staProtocol4.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 110) || + (staProtocol6 != null && staProtocol6.isLoading() && staProtocol.isLoading() && staProtocol.getStaNo() == 111)); + break; + default: + break; } - if(result){ - if(staProtocol.getSiteId() == 107 || staProtocol.getSiteId() == 109){ - StaProtocol staProtocol5 = devpThread.getStation().get(staProtocol.getSiteId() - 1); - if (staProtocol5== null) { - continue; - } else { - staProtocol5 = staProtocol5.clone(); - } - if((staProtocol5.isLoading() && staProtocol5.getStaNo() == 107) || ((staProtocol5.isLoading() && staProtocol5.getStaNo() == 109))){ + + if (result) { + if (staProtocol.getSiteId() == 107 || staProtocol.getSiteId() == 109) { + StaProtocol staProtocol5 = getClonedStation(devpThread, staProtocol.getSiteId() - 1); + if (staProtocol5 != null && (staProtocol5.isLoading() && (staProtocol5.getStaNo() == 107 || staProtocol5.getStaNo() == 109))) { + short workNo = staProtocol5.getWorkNo(); + staProtocol5.setWorkNo(workNo); staProtocol5.setStaNo((short) 112); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol5)); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol5)); } - }else{ - staProtocol.setStaNo((short) 112); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } else { + if(staProtocol.isLoading() && (staProtocol.getStaNo() == 105 || staProtocol.getStaNo() == 110 || staProtocol.getStaNo() == 111)){ + short workNo = staProtocol.getWorkNo(); + staProtocol.setWorkNo(workNo); + staProtocol.setStaNo((short) 112); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); + } } } } } - }catch (Exception e) { - log.error("generateStoreWrkFile e", e); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } catch (Exception e) { + log.error("shiftTargetToCyclePoint error", e); } } - //112寰幆绔欑偣鑷冲嚭搴撶珯 - public synchronized void shiftCyclePointToTarget() throws IOException, InterruptedException{ - try{ + /** + * 鑾峰彇绔欑偣骞跺厠闅� + */ + private StaProtocol getClonedStation(DevpThread devpThread, int staNo) { + StaProtocol staProtocol = devpThread.getStation().get(staNo); + return (staProtocol != null) ? staProtocol.clone() : null; + } + + // 112寰幆绔欑偣鑷冲嚭搴撶珯 + public synchronized void shiftCyclePointToTarget() throws IOException, InterruptedException { + try { for (DevpSlave devp : slaveProperties.getDevp()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(112); - if (staProtocol == null) { + if (devpThread == null) { continue; - } else { - staProtocol = staProtocol.clone(); } - TaskWrk taskWrk = taskWrkMapper.selectById(staProtocol.getWorkNo()); - if(taskWrk != null && taskWrk.getWrkNo() < 9001 && taskWrk.getWrkNo() > 6000){ - staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + StaProtocol staProtocol = devpThread.getStation().get(112); + if (staProtocol.getStaNo() != 112 || staProtocol.getWorkNo() == 0 || !staProtocol.isLoading() || staProtocol.getWorkNo() > 9000 || staProtocol.getWorkNo() < 6000) { + continue; } + // 鏌ヨ浠诲姟淇℃伅 + TaskWrk taskWrk = taskWrkMapper.selectStaWorking(Integer.valueOf(staProtocol.getWorkNo())); + if (taskWrk == null || taskWrk.getWrkNo() < 6001 || taskWrk.getWrkNo() > 9000) { + continue; + } + + short workNo = staProtocol.getWorkNo(); + // 鍐嶅啓鍏ョ洰鏍囩珯鐐� + staProtocol.setWorkNo(workNo); + staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); + Thread.sleep(200); + + log.info("Shifted from cycle station 112 to target {}, workNo: {}", taskWrk.getTargetPoint(), workNo); } - }catch (Exception e) { - log.error("generateStoreWrkFile e", e); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } catch (Exception e) { + log.error("shiftCyclePointToTarget error", e); } } + @@ -320,7 +320,7 @@ staProtocol.setStaNo((short)107); }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) { staProtocol.setStaNo((short)109); - }else{ + }else if (staProtocol.getWorkNo()>=9876 && staProtocol.getWorkNo() <= 9900){ staProtocol.setStaNo((short)110); } devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -963,9 +963,9 @@ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { break; } - int storeCount = taskWrkService.getStoreCount(taskWrk.getCrnNo()); + int storeCount = basDevpService.getStoreCount(); if(storeCount >= maxCount){ - log.error("{}鍙峰爢鍨涙満鏆傚瓨鏁板凡婊�!", taskWrk.getCrnNo()); + log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}",storeCount); break; } -- Gitblit v1.9.1