From e1769fa6dad08ec33ab9472c5865c9f91c8e76d0 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 14 二月 2025 13:27:51 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 363 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 304 insertions(+), 59 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 e06f2a1..bd7f25e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -3,9 +3,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.DateUtils; +import com.core.common.SpringUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; @@ -21,7 +21,6 @@ import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.RedisUtil; -import com.zy.common.utils.RgvUtils; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -74,8 +73,6 @@ @Autowired private LocMastService locMastService; @Autowired - private StaDescService staDescService; - @Autowired private BasCrnpService basCrnpService; @Autowired private BasRgvService basRgvService; @@ -94,8 +91,6 @@ @Autowired private BasRgvPathService basRgvPathService; @Autowired - private RedisUtil redisUtil; - @Autowired private WrkMastStaMapper wrkMastStaMapper; @Autowired private BasRgvMapMapper basRgvMapMapper; @@ -104,6 +99,9 @@ @Value("${wms.url}") private String wmsUrl; + + @Value("${wms.rgvOpen}") + private boolean rgvOpen; /** * 缁勬墭 @@ -427,9 +425,10 @@ // // 鍏ュ嚭搴撴ā寮忓垽鏂� // if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) { // WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); - WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7"); +// WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7"); + WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); if (wrkMast == null) { // 鏃犳嫞鏂欐暟鎹� continue; @@ -482,7 +481,7 @@ staProtocol.setStaNo(dto.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); // ledThread.errorReset(); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol)); if (!result) { log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); } @@ -1552,7 +1551,7 @@ } //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟 if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ - RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ continue; } @@ -2282,7 +2281,7 @@ */ public synchronized void storeEmptyPlt3() { try{ - RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ return; } @@ -2318,6 +2317,7 @@ param.setIoType(10); param.setSourceStaNo(122); param.setLocType1((short)1); + param.setRgvNo(rgvProtocol.getRgvNo()); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/pakin/empty/loc/v1") @@ -2363,7 +2363,8 @@ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); // 鍛戒护闆嗗悎 List<LedCommand> commands = new ArrayList<>(); - // 宸ヤ綔妗i泦鍚� + String orderNo = null; + // 宸ヤ綔妗i泦鍚� List<WrkMast> wrkMasts = new ArrayList<>(); for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 @@ -2423,7 +2424,13 @@ // 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))); + if (Cools.isEmpty(wrkDetls)){ + continue; + } + Integer count1 = wrkDetlService.count1(); + Integer count2 = wrkDetlService.count2(wrkDetls.get(0).getOrderNo()); + Integer count3 = wrkDetlService.count3(); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1,count2,count3))); } commands.add(ledCommand); } @@ -3344,6 +3351,14 @@ if (basDevp135.getReportSign()!=0){ continue; } + BasDevp basDevp121 = basDevpService.selectById(121); + if (basDevp121.getReportSign()!=0){ + continue; + } + BasDevp basDevp120 = basDevpService.selectById(120); + if (basDevp120.getReportSign()!=0){ + continue; + } WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131); if (Cools.isEmpty(wrkMast131)){ continue; @@ -3368,6 +3383,26 @@ } if (!staProtocol.isLoading()){ + continue; + } + StaProtocol staProtocol120 = devpThread.getStation().get(120); + if (staProtocol120 == null) { + continue; + } else { + staProtocol120 = staProtocol120.clone(); + } + + if (staProtocol120.isLoading()){ + continue; + } + StaProtocol staProtocol121 = devpThread.getStation().get(121); + if (staProtocol121 == null) { + continue; + } else { + staProtocol121 = staProtocol121.clone(); + } + + if (staProtocol121.isLoading()){ continue; } // if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){ @@ -3707,6 +3742,40 @@ } } Date date = new Date(); + + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ + continue; + } + if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ + if (staProtocol.isLoadingSuper()){ + continue; + } + } + if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ + if (!staProtocol.isEmptyMk()){ + continue; + } + } + BasDevp basDevpS = basDevpService.selectById(wrkMastSta.getStaStart()); + if (!basDevpS.getAutoing().equals("Y") || !basDevpS.getLoading().equals("Y") || basDevpS.getWrkNo()!=wrkMastSta.getWrkNo().intValue()){ + continue; + } + StaProtocol staProtocols = devpThread.getStation().get(basDevpS.getDevNo()); + if (staProtocols == null) { + log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocols.isAutoing() || !staProtocols.isLoading() || staProtocols.getWorkNo() != wrkMastSta.getWrkNo().intValue()){ + continue; + } + + log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta); log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp); boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); @@ -3790,6 +3859,27 @@ } } Date date = new Date(); + + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ + continue; + } + if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ + if (staProtocol.isLoadingSuper()){ + continue; + } + } + if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ + if (!staProtocol.isEmptyMk()){ + continue; + } + } + log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta); log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp); sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏 @@ -3877,6 +3967,27 @@ } } Date date = new Date(); + + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + log.info(date+"婊℃斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ + continue; + } + if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ + if (staProtocol.isLoadingSuper()){ + continue; + } + } + if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ + if (!staProtocol.isEmptyMk()){ + continue; + } + } + log.info(date+"婊℃斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta); log.info(date+"婊℃斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp); sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); @@ -3956,6 +4067,22 @@ } } Date date = new Date(); + + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ + continue; + } + if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ + if (!staProtocol.isEmptyMk()){ + continue; + } + } + log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta); log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp); sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏 @@ -4037,6 +4164,17 @@ continue; } Date date = new Date(); + + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + log.info(date+"婊″彇浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta); + continue; + } + if (!staProtocol.isAutoing() || staProtocol.isLoading()){ + continue; + } + log.info(date+"婊″彇浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta); log.info(date+"婊″彇浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp); sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); @@ -4107,57 +4245,85 @@ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getStatusType2() == RgvStatusType.IDLE ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ -// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){ -// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){ - if (rgvProtocol.getRgvNo()==1){ - signRgv1 = false; - }else { - signRgv2 = false; + if (rgvProtocol.getRgvNo()!=1){ + if (!rgvProtocol.getRgvPosI().equals(120) && !rgvProtocol.getRgvPosI().equals(110)){ + continue; } - } - if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ - signRgv1 = false; - continue; - } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ - signRgv2 = false; + rgvAvoidanceXY(rgvProtocol.getRgvNo()); +// return; continue; } + if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){ + continue; + } + Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y(); + if (count108Y!=0){ + continue; + } +// Integer count108 = wrkMastStaMapper.selectAllWrkCount108(); +// if (count108!=0){ +// continue; +// } + rgvAvoidanceXY(rgvProtocol.getRgvNo()); + continue; +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //鑾峰彇鍚堝苟骞叉秹椤� +// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge); +// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route); +// if (!wrkMastStaList.isEmpty()){ +// log.info("灏忚溅瀛樺湪鍙墽琛屼换鍔★紝璺宠繃閬胯锛侊紒4214"); +// return; +// } +// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ +//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){ +//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){ +// if (rgvProtocol.getRgvNo()==1){ +// signRgv1 = false; +// }else { +// signRgv2 = false; +// } +// } +// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ +// signRgv1 = false; +// continue; +// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ +// signRgv2 = false; +// continue; +// } }else { signRgv = false; break; } } - if (signRgv && (signRgv1 || signRgv2)){ - for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && rgvProtocol.getTaskNo1()==0 - && rgvProtocol.getTaskNo2()==0 - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - ) { - if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ - continue; - } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ - continue; - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - rgvAvoidanceXY(rgvProtocol.getRgvNo()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - - } - } - } +// if (signRgv && (signRgv1 || signRgv2)){ +// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); +// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); +// if (rgvProtocol == null) { +// continue; +// } +// +// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 +// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE +// && rgvProtocol.getModeType() == RgvModeType.AUTO +// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 +// && rgvProtocol.getTaskNo1()==0 +// && rgvProtocol.getTaskNo2()==0 +// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE +// && rgvProtocol.getStatusType2() == RgvStatusType.IDLE +// ) { +// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ +// continue; +// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ +// continue; +// } +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// rgvAvoidanceXY(rgvProtocol.getRgvNo()); +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); +// +// } +// } +// } }catch (Exception e){ log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); log.error("4109琛�"+e); @@ -4213,7 +4379,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)101); + rgvCommand.setSourceStaNo1( (short)104); rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� @@ -4235,7 +4401,7 @@ rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙� rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐� - rgvCommand.setSourceStaNo2((short)117); + rgvCommand.setSourceStaNo2((short)114); rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� @@ -4452,6 +4618,9 @@ * 灏忚溅鍦板浘鏇存柊 鏇存柊閿� * */ public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){ + if (rgvOpen){ + return true; + } // List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); //鏇存柊褰撳墠灏忚溅閿� @@ -4467,7 +4636,8 @@ BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� - basRgvMapOther.setEndRoute(lockEndRoute); + Integer lockEndRouteL = RouteUtils.RouteIndexFarMasL(rgvNoOther, lockEndRoute);//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� + basRgvMapOther.setEndRoute(lockEndRouteL); basRgvMapMapper.updateById(basRgvMapOther); return true; }catch (Exception e){ @@ -4476,4 +4646,79 @@ } } + + /** + * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚 + */ + public synchronized void armNoStartTwoLo() { + int[] staNos =new int[]{215,219}; + for (int staNo : staNos){ + try{ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("armNo"+staNo); + if (!Cools.isEmpty(rgvOneSign) && rgvOneSign.getRgvOneSign() == 1){ + int workNo = commonService.getWorkNo(6); + StaProtocol staProtocolnew = new StaProtocol(); + staProtocolnew.setSiteId(staNo); + staProtocolnew.setWorkNo(workNo); + staProtocolnew.setStaNo(staNo==215? 217:221); + boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolnew)); + if (!result2) { + log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", 2); + } + if (!staProtocol.isLoading()){ + updateRgvOneSign("armNo"+staNo,0); + } + } + } + }catch (Exception e){ + log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e); + } + } + } + + public synchronized void armNoCleanUpTwoLo() { + int[] staNos =new int[]{215,219}; + for (int staNo : staNos){ + try{ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (!staProtocol.isLoading()){ + updateRgvOneSign("armNo"+staNo,0); + } + }catch (Exception e){ + log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e); + } + } + } + + public void updateRgvOneSign(String signType,Integer oneSign){ + try{ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(oneSign); + rgvOneSignMapper.updateById(rgvOneSign); + } + } catch (Exception e){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(999); + rgvOneSignMapper.updateById(rgvOneSign); + } + } + } + } -- Gitblit v1.9.1