| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | |
| | | */ |
| | | public synchronized int[][] getStePositionNearby(Integer siteNo) { |
| | | try { |
| | | List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true)); |
| | | List<BasDevpPosition> basDevpPositions = basDevpPositionService.list(new QueryWrapper<BasDevpPosition>().orderByAsc("plc_position")); |
| | | if (basDevpPositions.isEmpty()) { |
| | | log.error("获取所有站点信息异常"); |
| | | return null; |
| | |
| | | log.info("更新小车排序信息异常={}", rgvNo); |
| | | return null; |
| | | } |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true)); |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.list(new QueryWrapper<BasCircularShuttle>().orderByAsc("rgv_id")); |
| | | int[][] ints = new int[basCircularShuttleList.size()][2]; |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) { |
| | | ints[basCircularShuttle.getRgvNo() - 1] = new int[]{basCircularShuttle.getRgvNo(), basCircularShuttle.getRgvId()}; |
| | |
| | | try { |
| | | boolean sign = false; |
| | | Integer rgvNo = 0; |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true)); |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.list(new QueryWrapper<BasCircularShuttle>().orderByAsc("rgv_id")); |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) { |
| | | if (basCircularShuttle.getStatus() != 0){ |
| | | sign = true; |
| | |
| | | */ |
| | | private void dispatchTaskByFlow() { |
| | | Date now = new Date(); |
| | | List<WrkMast> taskPool = wrkMastService.selectList( |
| | | new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).orderBy("modi_time", true) |
| | | List<WrkMast> taskPool = wrkMastService.list( |
| | | new QueryWrapper<WrkMast>().eq("wrk_sts", 1L).orderByAsc("modi_time") |
| | | ); |
| | | if (taskPool.isEmpty()) { |
| | | return; |
| | |
| | | return; |
| | | } |
| | | |
| | | List<BasDevpPosition> sitePositions = basDevpPositionService.selectList( |
| | | new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true) |
| | | List<BasDevpPosition> sitePositions = basDevpPositionService.list( |
| | | new QueryWrapper<BasDevpPosition>().orderByAsc("plc_position") |
| | | ); |
| | | if (sitePositions == null || sitePositions.isEmpty()) { |
| | | return; |
| | |
| | | |
| | | private List<RgvRuntimeState> loadAvailableRgvs() { |
| | | List<RgvRuntimeState> result = new ArrayList<>(); |
| | | List<BasCircularShuttle> shuttles = basCircularShuttleService.selectList( |
| | | new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true) |
| | | List<BasCircularShuttle> shuttles = basCircularShuttleService.list( |
| | | new QueryWrapper<BasCircularShuttle>().orderByAsc("rgv_id") |
| | | ); |
| | | if (shuttles == null || shuttles.isEmpty()) { |
| | | return result; |
| | |
| | | } |
| | | |
| | | private boolean isRgvRunningTask(Integer rgvNo) { |
| | | List<WrkMast> running = wrkMastService.selectList( |
| | | new EntityWrapper<WrkMast>().eq("rgv_no", rgvNo).eq("wrk_sts", 2L) |
| | | List<WrkMast> running = wrkMastService.list( |
| | | new QueryWrapper<WrkMast>().eq("rgv_no", rgvNo).eq("wrk_sts", 2L) |
| | | ); |
| | | return running != null && !running.isEmpty(); |
| | | } |
| | |
| | | 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)); |
| | | List<WrkMast> wrkMastList = wrkMastService.list(new QueryWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderByAsc("modi_time")); |
| | | for (WrkMast wrkMast : wrkMastList) { |
| | | if (!Cools.isEmpty(wrkMast)) { |
| | | if (siteList.contains(wrkMast.getSourceStaNo())){ |
| | | 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)); |
| | | List<WrkMast> wrkMastListS = wrkMastService.list(new QueryWrapper<WrkMast>().eq("source_sta_no", wrkMast.getSourceStaNo()).eq("wrk_sts", 1L).orderByAsc("modi_time")); |
| | | if (wrkMastListS.isEmpty()){ |
| | | continue; |
| | | } |
| | |
| | | List<WrkMast> wrkMastlistA = new ArrayList<>(); |
| | | List<WrkMast> wrkMastlistB = 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)); |
| | | List<WrkMast> wrkMastList = wrkMastService.list(new QueryWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderByAsc("modi_time")); |
| | | for (WrkMast wrkMast : wrkMastList) { |
| | | if (!Cools.isEmpty(wrkMast)) { |
| | | if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) { |
| | |
| | | continue; |
| | | } |
| | | |
| | | BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo)); |
| | | BasCircularShuttle basCircularShuttle = basCircularShuttleService.getOne(new QueryWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo)); |
| | | if (basCircularShuttle.getStatus() != 0){ |
| | | continue ; |
| | | } |
| | |
| | | continue; |
| | | } |
| | | |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo()).eq("wrk_sts", 2L)); |
| | | List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo()).eq("wrk_sts", 2L)); |
| | | if (!wrkMasts.isEmpty()) { |
| | | continue; |
| | | } |
| | |
| | | && rgvProtocol.getTaskNo1() == 0 |
| | | && rgvProtocol.getRgvPosInt() != 0 |
| | | && rgvProtocol.getAlarm() == 0) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast.getSourceStaNo())); |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.getOne(new QueryWrapper<BasDevpPosition>().eq("dev_no", wrkMast.getSourceStaNo())); |
| | | if (basDevpPosition.getPlcPosition()>rgvProtocol.getRgvPos()){ |
| | | if (basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()>taskRunPerimeter){ |
| | | if (!rgvNoM.contains(rgvProtocol.getRgvNo())){ |
| | |
| | | double finalVelocity = 0.0; // 最终速度 (m/s) |
| | | double distance = (Math.pow(finalVelocity, 2) - Math.pow(rgvProtocol.instantaneousSpeed / 60, 2)) / (2 * acceleration); |
| | | if ((distance * proportion + (rgvProtocol.instantaneousSpeed / 60) * proportion * rgvDate) > (SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPosition.getPlcPosition(), rgvProtocol.getRgvPos(), perimeter) )) { |
| | | // List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true)); |
| | | // List<BasDevpPosition> basDevpPositions = basDevpPositionService.list(new QueryWrapper<BasDevpPosition>().orderByAsc("plc_position")); |
| | | // if (basDevpPositions.isEmpty()) { |
| | | // log.error("获取所有站点信息异常,RGV任务下发失败,请联系管理员!!!"); |
| | | // break runRgv; |
| | |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); |
| | | BasRgv basRgv = basRgvService.getById(rgvSlave.getId()); |
| | | if (basRgv == null) { |
| | | log.error("{}号RGV尚未在数据库进行维护!", rgvSlave.getId()); |
| | | continue; |
| | |
| | | && rgvProtocol.getTaskNo1() != 0 |
| | | ) { |
| | | // log.info("{}号小车等待wcs确认,状态{},参数{}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()).eq("rgv_no",rgvProtocol.getRgvNo())); |
| | | WrkMast wrkMast = wrkMastService.getOne(new QueryWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()).eq("rgv_no",rgvProtocol.getRgvNo())); |
| | | if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) { |
| | | log.error("未查到小车执行任务或者执行任务状态不符合!" + wrkMast); |
| | | continue; |
| | |
| | | wrkMast1.setModiTime(now); |
| | | wrkMast1.setAppeTime(now); |
| | | wrkMast1.setMemo("测试数据"); |
| | | wrkMastService.insert(wrkMast1); |
| | | wrkMastService.save(wrkMast1); |
| | | } |
| | | continue; |
| | | } |
| | |
| | | } |
| | | log.info("RGV取消命令下发成功,RGV号={},任务数据={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); |
| | | |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvCommand.getTaskNo1().longValue()).eq("rgv_no",rgvCommand.getRgvNo())); |
| | | WrkMast wrkMast = wrkMastService.getOne(new QueryWrapper<WrkMast>().eq("wrk_no", rgvCommand.getTaskNo1().longValue()).eq("rgv_no",rgvCommand.getRgvNo())); |
| | | if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) { |
| | | log.error("未查到小车执行任务或者执行任务状态不符合!" + wrkMast); |
| | | continue; |