From 5a3218fc35dd3e949bb017c77839aedda8c528c8 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 25 四月 2024 18:10:22 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 251 -------------------------------------------------- 1 files changed, 1 insertions(+), 250 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 41c240f..d4eaf2f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -603,6 +603,7 @@ if (crn.getId() == 5){ continue; } + this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱 crnProtocol.setLastIo("O"); } @@ -2020,261 +2021,11 @@ } - //RGV鎼繍 - public synchronized void rgvIoExecute() { - for (RgvSlave slave : slaveProperties.getRgv()) { - ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getId()); - if (rgvThread == null) { - return; - } - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return; - } - // 鍒ゆ柇RGV鏄惁绌洪棽 - if (rgvProtocol.getModeType() == RgvModeType.COMPUTER - && rgvProtocol.getStatusType() == RgvStatusType.IDLE) { - // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡锛屽垯浼樺厛鎵弿鍑哄簱绔欑偣 - if (rgvProtocol.getLastIo().equals("I")) { - this.rgvOutExecute(rgvThread, rgvProtocol);//鍑哄簱 - rgvProtocol.setLastIo("O"); - }else { - this.rgvInExecute(rgvThread, rgvProtocol);//鍏ュ簱 - rgvProtocol.setLastIo("I"); - } - //妫�鏌ユ槸鍚﹀瓨鍦ㄥ伐浣�1浠诲姟瓒呮椂娌′笅鍙� - if (rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0) { - if (System.currentTimeMillis() - rgvProtocol.getTask1SendTime() > (1000*60)) { - //宸ヤ綅1涓嬪彂鏃堕棿瓒呰繃60s - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvProtocol.getRgvNo());//RGV缂栧彿 - rgvCommand.setCommand((short) 1);//宸ヤ綅1纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvCommand.getRgvNo(), new Task(4, rgvCommand))) { - log.error("RGV纭鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - return; - } - log.error("RGV纭鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - } - } - } - } - } - //rgv鍏ュ簱 - public synchronized void rgvInExecute(ZyRgvThread rgvThread, RgvProtocol rgvProtocol) { - for (RgvSlave.Sta sta : rgvThread.getSlave().getInStn()) { - if (rgvProtocol.getTaskNo1() > 0) { - //妫�娴媟gv宸ヤ綅1鏄惁涓哄叆搴撲换鍔� - WrkMast wrkMast1 = wrkMastMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); - if (wrkMast1.getWrkSts() > 100) { - continue;//鍑哄簱浠诲姟璺宠繃 - } - } - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, sta.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(sta.getSourceStaNo()); - //鍒ゆ柇杈撻�佺嚎鏄惁鑷姩銆佹湁鐗┿�佸彲鍏ャ�佹湁宸ヤ綔鍙� - if (!(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isOutEnable() && (staProtocol.getWorkNo() > 0))) { - continue; - } - - //鎼滅储宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo().intValue()); - if (wrkMast == null) { - continue;//宸ヤ綔妗d笉瀛樺湪 - } - - //鑾峰彇RGV鏀捐揣绔欑偣 - Integer staNo = Utils.getRgvStaNo(rgvProtocol.getRgvNo(), sta.getSourceStaNo(), staProtocol.getStaNo().intValue(), true); - if (staNo == null) { - continue;//RGV鏀捐揣绔欑偣涓嶅瓨鍦� - } - - //鍒ゆ柇鐩爣绔欐槸鍚﹁嚜鍔ㄣ�佸彲鍏ャ�佹棤鐗┿�佹棤宸ヤ綔鍙� - StaProtocol staProtocol1 = devpThread.getStation().get(staNo); - if (!(staProtocol1.isAutoing() && staProtocol1.isInEnable() && !staProtocol1.isLoading() && (staProtocol1.getWorkNo() == 0))) { - continue; - } - - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvProtocol.getRgvNo());//RGV缂栧彿 - rgvCommand.setAckFinish((short) 0); - - //鍒ゆ柇rgv宸ヤ綅1鏄惁鍙敤 - if (rgvProtocol.getTaskNo1() == 0) { - rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue());//宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.PICK_RELEASE);//宸ヤ綔妯″紡 鍙栨斁璐� - rgvCommand.setSourceStaNo1(staProtocol.getStaNo());//婧愮珯 - rgvCommand.setDestinationStaNo1(staNo.shortValue());//鐩爣绔� - rgvCommand.setCommand((short) 0);//宸ヤ綅1鏆備笉纭 - } else if (rgvProtocol.getTaskNo2() == 0) {//鍒ゆ柇rgv宸ヤ綅2鏄惁鍙敤 - rgvCommand.setTaskNo2(wrkMast.getWrkNo().shortValue());//宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.PICK_RELEASE);//宸ヤ綔妯″紡 鍙栨斁璐� - rgvCommand.setSourceStaNo2(staProtocol.getStaNo());//婧愮珯 - rgvCommand.setDestinationStaNo2(staNo.shortValue());//鐩爣绔� - rgvCommand.setCommand((short) 1);//宸ヤ綅2纭 - }else { - continue;//娌℃湁鍙敤RGV宸ヤ綅 - } - - if (!MessageQueue.offer(SlaveType.Rgv, rgvCommand.getRgvNo(), new Task(2, rgvCommand))) { - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - continue; - } - - log.error("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - } - } - - //rgv鍑哄簱 - public synchronized void rgvOutExecute(ZyRgvThread rgvThread, RgvProtocol rgvProtocol) { - for (RgvSlave.Sta sta : rgvThread.getSlave().getOutStn()) { - if (rgvProtocol.getTaskNo1() > 0) { - //妫�娴媟gv宸ヤ綅1鏄惁涓哄嚭搴撲换鍔� - WrkMast wrkMast1 = wrkMastMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); - if (wrkMast1.getWrkSts() < 100) { - continue;//鍏ュ簱浠诲姟璺宠繃 - } - } - - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, sta.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(sta.getSourceStaNo()); - //鍒ゆ柇杈撻�佺嚎鏄惁鑷姩銆佹湁鐗┿�佸彲鍑恒�佹湁宸ヤ綔鍙� - if (!(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isOutEnable() && (staProtocol.getWorkNo() > 0))) { - continue; - } - - //鎼滅储宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo().intValue()); - if (wrkMast == null) { - continue;//宸ヤ綔妗d笉瀛樺湪 - } - - //鑾峰彇RGV鏀捐揣绔欑偣 - Integer staNo = Utils.getRgvStaNo(rgvProtocol.getRgvNo(), sta.getSourceStaNo(), staProtocol.getStaNo().intValue(), false); - if (staNo == null) { - continue;//RGV鏀捐揣绔欑偣涓嶅瓨鍦� - } - - //鍒ゆ柇鐩爣绔欐槸鍚﹁嚜鍔ㄣ�佸彲鍑恒�佹棤鐗┿�佹棤宸ヤ綔鍙� - StaProtocol staProtocol1 = devpThread.getStation().get(staNo); - if (!(staProtocol1.isAutoing() && staProtocol1.isOutEnable() && !staProtocol1.isLoading() && (staProtocol1.getWorkNo() == 0))) { - continue; - } - - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvProtocol.getRgvNo());//RGV缂栧彿 - rgvCommand.setAckFinish((short) 0); - - //鍒ゆ柇rgv宸ヤ綅1鏄惁鍙敤 - if (rgvProtocol.getTaskNo1() == 0) { - rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue());//宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.PICK_RELEASE);//宸ヤ綔妯″紡 鍙栨斁璐� - rgvCommand.setSourceStaNo1(staProtocol.getStaNo());//婧愮珯 - rgvCommand.setDestinationStaNo1(staNo.shortValue());//鐩爣绔� - rgvCommand.setCommand((short) 0);//宸ヤ綅1鏆備笉纭 - } else if (rgvProtocol.getTaskNo2() == 0) {//鍒ゆ柇rgv宸ヤ綅2鏄惁鍙敤 - rgvCommand.setTaskNo2(wrkMast.getWrkNo().shortValue());//宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.PICK_RELEASE);//宸ヤ綔妯″紡 鍙栨斁璐� - rgvCommand.setSourceStaNo2(staProtocol.getStaNo());//婧愮珯 - rgvCommand.setDestinationStaNo2(staNo.shortValue());//鐩爣绔� - rgvCommand.setCommand((short) 1);//宸ヤ綅2纭 - }else { - continue;//娌℃湁鍙敤RGV宸ヤ綅 - } - - if (!MessageQueue.offer(SlaveType.Rgv, rgvCommand.getRgvNo(), new Task(2, rgvCommand))) { - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - continue; - } - - log.error("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); - } - } - - //RGV宸ヤ綔瀹屾垚 - public synchronized void rgvFinished() { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - for (RgvSlave slave : slaveProperties.getRgv()) { - ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getId()); - if (rgvThread == null) { - return; - } - - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return; - } - - // 鐘舵�侊細绛夊緟纭 - if (rgvProtocol.getStatusType() == RgvStatusType.WAITING) { - if (rgvProtocol.getTaskNo1() == 9999) { - // RGV澶嶄綅 - rgvThread.setResetFlag1(true); - }else { - // 鑾峰彇寰呯‘璁ゅ伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue()); - if (wrkMast == null) { - log.error("RGV澶勪簬绛夊緟纭涓斾换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�俁GV鍙�={}锛屽伐浣滃彿={}", rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); - continue; - } - - if (rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskFinish1() == 1) { - //宸ヤ綅1浠诲姟瀹屾垚 - // RGV澶嶄綅 - rgvThread.setResetFlag1(true); - - //缁欑洰鏍囩珯杈撻�佺嚎鍐欏叆鏁版嵁 - Short destinationPos1 = rgvProtocol.getDestinationPos1();//鑾峰彇宸ヤ綅1鐩爣绔� - StaProtocol staProtocol = devpThread.getStation().get(destinationPos1.intValue()).clone(); - staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());//鍐欏叆宸ヤ綔鍙� - staProtocol.setStaNo(wrkMast.getStaNo().shortValue());//鍐欏叆鐩爣绔� - if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) { - log.info("{}浠诲姟锛孯GV鎼繍鎴愬姛锛屽啓鍏ヨ緭閫佹暟鎹け璐}", wrkMast.getWrkNo(), JSON.toJSONString(staProtocol)); - } - - //2鍙稲GV鍜�3鍙稲GV宸ヤ綔瀹屾垚鍚庨渶瑕佹洿鏂板伐浣滄。鐘舵�� - if (rgvProtocol.getRgvNo() == 2 || rgvProtocol.getRgvNo() == 3) { - if (wrkMast.getWrkSts() == 13) {//13.RGV鎼繍涓� => 14.宸插嚭搴� - wrkMast.setWrkSts(14L); - wrkMast.setModiTime(new Date()); - wrkMastMapper.updateById(wrkMast); - } - } - } - - if (rgvProtocol.getTaskNo2() > 0 && rgvProtocol.getTaskFinish2() == 1) { - //宸ヤ綅2浠诲姟瀹屾垚 - // RGV澶嶄綅 - rgvThread.setResetFlag2(true); - - //缁欑洰鏍囩珯杈撻�佺嚎鍐欏叆鏁版嵁 - Short destinationPos2 = rgvProtocol.getDestinationPos2();//鑾峰彇宸ヤ綅2鐩爣绔� - StaProtocol staProtocol = devpThread.getStation().get(destinationPos2.intValue()).clone(); - staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());//鍐欏叆宸ヤ綔鍙� - staProtocol.setStaNo(wrkMast.getStaNo().shortValue());//鍐欏叆鐩爣绔� - if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) { - log.info("{}浠诲姟锛孯GV鎼繍鎴愬姛锛屽啓鍏ヨ緭閫佹暟鎹け璐}", wrkMast.getWrkNo(), JSON.toJSONString(staProtocol)); - } - - //2鍙稲GV鍜�3鍙稲GV宸ヤ綔瀹屾垚鍚庨渶瑕佹洿鏂板伐浣滄。鐘舵�� - if (rgvProtocol.getRgvNo() == 2 || rgvProtocol.getRgvNo() == 3) { - if (wrkMast.getWrkSts() == 13) {//13.RGV鎼繍涓� => 14.宸插嚭搴� - wrkMast.setWrkSts(14L); - wrkMast.setModiTime(new Date()); - wrkMastMapper.updateById(wrkMast); - } - } - } - } - } - } - } /** * 鎵弿纰熺洏鏈鸿嚜鍔ㄥ叆搴撶┖鎵樼洏 -- Gitblit v1.9.1