| | |
| | | return; |
| | | } |
| | | long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(wrkMasts.get(0).getModiTime(), new Date()); |
| | | if (differenceInSeconds <= 100) { |
| | | if (differenceInSeconds <= 1000) { |
| | | return; |
| | | } |
| | | |
| | |
| | | //获取小车取放任务列表失败 |
| | | public synchronized List<List<List<WrkMast>>> getWrkMastListAll(List<List<Integer>> siteListAll ,BasDevpPosition[] basDevpPositionsListUN) { |
| | | List<List<List<WrkMast>>> wrkMastListAll = new ArrayList<>(); |
| | | List<Integer> sourceStaNoList = new ArrayList<>(); |
| | | |
| | | for (List<Integer> siteList : siteListAll){ |
| | | List<List<WrkMast>> wrkMastLists = new ArrayList<>(); |
| | | try { |
| | | List<WrkMast> wrkMastlistA = new ArrayList<>(); |
| | | List<WrkMast> wrkMastlistB = new ArrayList<>(); |
| | | List<WrkMast> wrkMastlistC = new ArrayList<>(); |
| | | List<WrkMast> wrkMastlistD = new ArrayList<>(); |
| | | for (BasDevpPosition basDevpPosition : basDevpPositionsListUN) { |
| | | List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderBy("modi_time", true)); |
| | | for (WrkMast wrkMast : wrkMastList) { |
| | | if (!Cools.isEmpty(wrkMast)) { |
| | | if (siteList.contains(wrkMast.getSourceStaNo())){ |
| | | if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) { |
| | | wrkMastlistA.add(wrkMast); |
| | | if (!sourceStaNoList.contains(wrkMast.getSourceStaNo())){ |
| | | List<WrkMast> wrkMastListS = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_sta_no", wrkMast.getSourceStaNo()).eq("wrk_sts", 1L).orderBy("modi_time", true)); |
| | | if (wrkMastListS.isEmpty()){ |
| | | continue; |
| | | } |
| | | } else { |
| | | wrkMastlistB.add(wrkMast); |
| | | continue; |
| | | } |
| | | long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(wrkMast.getModiTime(), new Date()); |
| | | |
| | | if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) { |
| | | sourceStaNoList.add(wrkMast.getSourceStaNo()); |
| | | if (differenceInSeconds>600000){ |
| | | wrkMastlistA.add(wrkMast); |
| | | } else { |
| | | wrkMastlistC.add(wrkMast); |
| | | } |
| | | } else { |
| | | sourceStaNoList.add(wrkMast.getSourceStaNo()); |
| | | if (differenceInSeconds>600000){ |
| | | wrkMastlistB.add(wrkMast); |
| | | } else { |
| | | wrkMastlistD.add(wrkMast); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | wrkMastLists.add(wrkMastlistA); |
| | | wrkMastLists.add(wrkMastlistB); |
| | | wrkMastLists.add(wrkMastlistC); |
| | | wrkMastLists.add(wrkMastlistD); |
| | | // return wrkMastLists; |
| | | wrkMastListAll.add(wrkMastLists); |
| | | } catch (Exception e) { |
| | |
| | | |
| | | List<Integer> rgvNoM = new ArrayList<>(); |
| | | List<Integer> rgvNoR = new ArrayList<>(); |
| | | Integer wrkMastRunCount = 0; |
| | | Long devperimeter = 0L; |
| | | int wrkMastRunCount = 0; |
| | | long devperimeter = 0L; |
| | | for (List<List<WrkMast>> wrkMastLists : wrkMastListAll) { |
| | | long rgvId = 0; |
| | | runRgv: |
| | |
| | | if (basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()>taskRunPerimeter){ |
| | | if (!rgvNoM.contains(rgvProtocol.getRgvNo())){ |
| | | rgvNoM.add(rgvProtocol.getRgvNo()); |
| | | if (wrkMastRunCount == 0){ |
| | | devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+10000>perimeter? 10000:basDevpPosition.getPlcPosition()-taskRunPerimeter+10000; |
| | | } |
| | | wrkMastRunCount++; |
| | | break; |
| | | } |
| | |
| | | if (rgvProtocol.getRgvPos()+ perimeter -basDevpPosition.getPlcPosition()>taskRunPerimeter){ |
| | | if (!rgvNoM.contains(rgvProtocol.getRgvNo())){ |
| | | rgvNoM.add(rgvProtocol.getRgvNo()); |
| | | if (wrkMastRunCount == 0){ |
| | | devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+10000>perimeter? 10000:basDevpPosition.getPlcPosition()-taskRunPerimeter+10000; |
| | | } |
| | | wrkMastRunCount++; |
| | | break; |
| | | } |
| | |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) { |
| | | // |
| | | log.error("RGV命令下发失败,RGV号={},任务数据={}", rgvId, JSON.toJSON(rgvCommand)); |
| | | wrkMast.setLogErrTime(new Date()); |
| | | wrkMast.setLogErrMemo("RGV命令下发失败,RGV号={"+rgvId+"}===>跳过"); |
| | | wrkMastService.updateById(wrkMast); |
| | | break runRgv; |
| | | } |
| | | log.info("RGV命令下发成功,RGV号={},任务数据={}", rgvId, JSON.toJSON(rgvCommand)); |
| | |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | |
| | | wrkMastRunCount--; |
| | | if (rgvProtocol != null |
| | | && rgvProtocol.modeType == RgvModeType.AUTO |
| | | && rgvProtocol.getStatusType() == RgvStatusType.IDLE |
| | | && rgvProtocol.getTaskNo1() == 0 |
| | | && rgvProtocol.getAlarm() == 0) { |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(4,devperimeter))) { |
| | | log.error("RGV漫游启动命令下发失败,RGV号={},任务数据={}", rgvNo, "漫游指令"); |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(5,devperimeter))) { |
| | | log.error("RGV漫游启动命令下发失败,RGV号={},任务数据={}", rgvNo, "漫游指令,目的地:"+devperimeter); |
| | | break; |
| | | } else { |
| | | log.info("RGV漫游启动命令下发成功,RGV号={},任务数据={}", rgvNo, "漫游指令,目的地:"+devperimeter); |
| | | } |
| | | wrkMastRunCount--; |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | |
| | | wrkMastService.updateById(wrkMast); |
| | | continue; |
| | | }else { |
| | | log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败"); |
| | | log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败1"); |
| | | } |
| | | } else { |
| | | //测试用 |