| | |
| | | return false; |
| | | } |
| | | List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); |
| | | List<Integer> routeNear = RouteUtils.getRoute(basRgvMap.getStartRouteOther(), basRgvMap.getEndRouteOther()); |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | if (rgvProtocol.getRgvNo()==1){//切换近范围 |
| | | route = routeNear; |
| | | } |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=1 || wrkMastSta.getWrkType()!=3){//1:满版 3:取放 |
| | |
| | | log.info(date+"取放任务下发:目标站状态:"+basDevp); |
| | | boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); |
| | | if (sign){ |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd()); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),rgvProtocol.getRgvNo()==1); |
| | | if (signMap){ |
| | | wrkMastSta.setWrkSts(1); |
| | | try{ |
| | |
| | | } |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//获取活动范围 |
| | | List<Integer> routeNear = RouteUtils.getRoute(basRgvMap.getStartRouteOther(), basRgvMap.getEndRouteOther()); |
| | | if (rgvProtocol.getRgvNo()==2){//切换近范围 |
| | | route = routeNear; |
| | | } |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//查询可执行任务 |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:空板 || 工作类型 1:取(叠盘) 2:拆盘 5:满取 6:满放 |
| | |
| | | continue; |
| | | } |
| | | if (sign){ |
| | | boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd()); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd(),rgvProtocol.getRgvNo()==2); |
| | | if (signMap){ |
| | | wrkMastSta.setWrkSts(2); |
| | | try{ |
| | |
| | | } |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//获取活动范围 |
| | | List<Integer> routeNear = RouteUtils.getRoute(basRgvMap.getStartRouteOther(), basRgvMap.getEndRouteOther()); |
| | | if (rgvProtocol.getRgvNo()==2){//切换近范围 |
| | | route = routeNear; |
| | | } |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//查询可执行任务 |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:空板 || 工作类型 1:取(叠盘) 2:拆盘 5:满取 6:满放 7:提升 |
| | |
| | | continue; |
| | | } |
| | | if (sign){ |
| | | boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd()); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd(),rgvProtocol.getRgvNo()==2); |
| | | if (signMap){ |
| | | wrkMastSta.setWrkSts(2); |
| | | try{ |
| | |
| | | return false; |
| | | } |
| | | List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); |
| | | List<Integer> routeNear = RouteUtils.getRoute(basRgvMap.getStartRouteOther(), basRgvMap.getEndRouteOther()); |
| | | if (rgvProtocol.getRgvNo()==2){//切换近范围 |
| | | route = routeNear; |
| | | } |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | |
| | | continue; |
| | | } |
| | | if (sign){ |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute()); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute(),rgvProtocol.getRgvNo()==2); |
| | | if (signMap){ |
| | | wrkMastSta.setWrkSts(1); |
| | | try{ |
| | |
| | | } |
| | | List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<Integer> routeNear = RouteUtils.getRoute(basRgvMap.getStartRouteOther(), basRgvMap.getEndRouteOther()); |
| | | if (rgvProtocol.getRgvNo()==2){//切换近范围 |
| | | route = routeNear; |
| | | } |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | WrkMast wrkMast = wrkMastMapper.selectBy122ManQu(122,110,15L); |
| | | if (!Cools.isEmpty(wrkMast)){ |
| | |
| | | continue; |
| | | } |
| | | if (sign){ |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute()); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute(),rgvProtocol.getRgvNo()==2); |
| | | if (signMap){ |
| | | wrkMastSta.setWrkSts(1); |
| | | try{ |
| | |
| | | && rgvProtocol.getStatusType2() == RgvStatusType.IDLE |
| | | ) { |
| | | // 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(),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 { |
| | |
| | | * 小车XY移动 避让 |
| | | * */ |
| | | public synchronized boolean rgvAvoidanceXY(Integer rgvId, Integer[] rgvRunSta){ |
| | | if (rgvId==1){ |
| | | if (rgvId==2){ |
| | | try{ |
| | | // BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | |
| | | /* |
| | | * 小车地图更新 更新锁 |
| | | * */ |
| | | public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,boolean sign){ |
| | | if (sign){ |
| | | staStart = RouteUtils.RouteIndexFarMasOtherNearUpMap(basRgvMapCurrent.getRgvNo(),staStart); |
| | | staEnd = RouteUtils.RouteIndexFarMasOtherNearUpMap(basRgvMapCurrent.getRgvNo(),staEnd); |
| | | } |
| | | return rgvMapUpdate(basRgvMapCurrent,staStart,staEnd); |
| | | } |
| | | public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){ |
| | | |
| | | // List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); |
| | |
| | | List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); |
| | | Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//另一台小车可活动最远位置 |
| | | basRgvMapOther.setEndRoute(lockEndRoute); |
| | | basRgvMapOther.setEndRouteOther(RouteUtils.RouteIndexFarMasOtherNear(rgvNoOther,lockEndRoute)); |
| | | basRgvMapMapper.updateById(basRgvMapOther); |
| | | return true; |
| | | }catch (Exception e){ |