Commit f95dc66b9d480d5a51b3a8782a4715a4b7d23614
1 parent
b69e5ebb
update...
Showing
8 changed files
with
117 additions
and
7 deletions
src/main/java/com/bsth/controller/realcontrol/RealMapController.java
| 1 | package com.bsth.controller.realcontrol; | 1 | package com.bsth.controller.realcontrol; |
| 2 | 2 | ||
| 3 | +import com.bsth.data.gpsdata.arrival.GeoCacheData; | ||
| 4 | +import com.bsth.data.gpsdata.arrival.entity.TimedEnableStationRoute; | ||
| 3 | import com.bsth.service.realcontrol.RealMapService; | 5 | import com.bsth.service.realcontrol.RealMapService; |
| 4 | import org.springframework.beans.factory.annotation.Autowired; | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 5 | import org.springframework.web.bind.annotation.RequestMapping; | 7 | import org.springframework.web.bind.annotation.RequestMapping; |
| 8 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
| 6 | import org.springframework.web.bind.annotation.RequestParam; | 9 | import org.springframework.web.bind.annotation.RequestParam; |
| 7 | import org.springframework.web.bind.annotation.RestController; | 10 | import org.springframework.web.bind.annotation.RestController; |
| 8 | 11 | ||
| @@ -74,4 +77,9 @@ public class RealMapController { | @@ -74,4 +77,9 @@ public class RealMapController { | ||
| 74 | public Map<String, Object> multiSectionRoute(@RequestParam String codeIdx){ | 77 | public Map<String, Object> multiSectionRoute(@RequestParam String codeIdx){ |
| 75 | return realMapService.multiSectionRoute(codeIdx); | 78 | return realMapService.multiSectionRoute(codeIdx); |
| 76 | } | 79 | } |
| 80 | + | ||
| 81 | + @RequestMapping(value = "/lockAndFlxedTimeEnabled", method = RequestMethod.POST) | ||
| 82 | + public void lockAndFlxedTimeEnabled(TimedEnableStationRoute tes){ | ||
| 83 | + GeoCacheData.tesMap.put(tes.getLineCode(), tes); | ||
| 84 | + } | ||
| 77 | } | 85 | } |
src/main/java/com/bsth/data/gpsdata/arrival/GeoCacheData.java
| @@ -2,6 +2,7 @@ package com.bsth.data.gpsdata.arrival; | @@ -2,6 +2,7 @@ package com.bsth.data.gpsdata.arrival; | ||
| 2 | 2 | ||
| 3 | import com.bsth.data.gpsdata.GpsEntity; | 3 | import com.bsth.data.gpsdata.GpsEntity; |
| 4 | import com.bsth.data.gpsdata.arrival.entity.StationRoute; | 4 | import com.bsth.data.gpsdata.arrival.entity.StationRoute; |
| 5 | +import com.bsth.data.gpsdata.arrival.entity.TimedEnableStationRoute; | ||
| 5 | import com.bsth.data.gpsdata.arrival.utils.CircleQueue; | 6 | import com.bsth.data.gpsdata.arrival.utils.CircleQueue; |
| 6 | import com.bsth.data.gpsdata.arrival.utils.StationRouteComp; | 7 | import com.bsth.data.gpsdata.arrival.utils.StationRouteComp; |
| 7 | import com.google.common.collect.ArrayListMultimap; | 8 | import com.google.common.collect.ArrayListMultimap; |
| @@ -53,6 +54,10 @@ public class GeoCacheData { | @@ -53,6 +54,10 @@ public class GeoCacheData { | ||
| 53 | //线路限速信息 | 54 | //线路限速信息 |
| 54 | private static Map<String, Double> speedLimitMap; | 55 | private static Map<String, Double> speedLimitMap; |
| 55 | 56 | ||
| 57 | + //需要定时刷新的站点路由 | ||
| 58 | + public static Map<String, TimedEnableStationRoute> tesMap = new HashMap<>(); | ||
| 59 | + //TimedEnableStationRoute | ||
| 60 | + | ||
| 56 | @Autowired | 61 | @Autowired |
| 57 | JdbcTemplate jdbcTemplate; | 62 | JdbcTemplate jdbcTemplate; |
| 58 | 63 | ||
| @@ -282,6 +287,28 @@ public class GeoCacheData { | @@ -282,6 +287,28 @@ public class GeoCacheData { | ||
| 282 | connectStationRoute(tempMap.get(key)); | 287 | connectStationRoute(tempMap.get(key)); |
| 283 | } | 288 | } |
| 284 | 289 | ||
| 290 | + //定时启用的站点走向 | ||
| 291 | + if(tesMap.size() > 0){ | ||
| 292 | + List<String> rems = new ArrayList<>(); | ||
| 293 | + long t = System.currentTimeMillis(); | ||
| 294 | + for(TimedEnableStationRoute tes : tesMap.values()){ | ||
| 295 | + if(tes.getEnableTime() > t){ | ||
| 296 | + logger.info("锁住站点路由," + tes.getLineCode()); | ||
| 297 | + tempMap.replaceValues(tes.getLineCode() + "_0", stationCacheMap.get(tes.getLineCode() + "_0")); | ||
| 298 | + tempMap.replaceValues(tes.getLineCode() + "_1", stationCacheMap.get(tes.getLineCode() + "_1")); | ||
| 299 | + } | ||
| 300 | + else | ||
| 301 | + rems.add(tes.getLineCode()); | ||
| 302 | + } | ||
| 303 | + | ||
| 304 | + //remove | ||
| 305 | + if(rems.size() > 0){ | ||
| 306 | + for(String lineCode : rems){ | ||
| 307 | + logger.info("启用路由," + lineCode); | ||
| 308 | + tesMap.remove(lineCode); | ||
| 309 | + } | ||
| 310 | + } | ||
| 311 | + } | ||
| 285 | stationCacheMap = tempMap; | 312 | stationCacheMap = tempMap; |
| 286 | routeCodeMap = codeMap; | 313 | routeCodeMap = codeMap; |
| 287 | } | 314 | } |
src/main/java/com/bsth/data/gpsdata/arrival/entity/TimedEnableStationRoute.java
0 → 100644
| 1 | +package com.bsth.data.gpsdata.arrival.entity; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 定时启用站点路由 | ||
| 5 | + * Created by panzhao on 2017/8/28. | ||
| 6 | + */ | ||
| 7 | +public class TimedEnableStationRoute { | ||
| 8 | + | ||
| 9 | + private String lineCode; | ||
| 10 | + | ||
| 11 | + private Long enableTime; | ||
| 12 | + | ||
| 13 | + public String getLineCode() { | ||
| 14 | + return lineCode; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public void setLineCode(String lineCode) { | ||
| 18 | + this.lineCode = lineCode; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public Long getEnableTime() { | ||
| 22 | + return enableTime; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public void setEnableTime(Long enableTime) { | ||
| 26 | + this.enableTime = enableTime; | ||
| 27 | + } | ||
| 28 | +} |
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
| @@ -117,8 +117,7 @@ public class SchAttrCalculator { | @@ -117,8 +117,7 @@ public class SchAttrCalculator { | ||
| 117 | for(int i = 1; i < len; i ++){ | 117 | for(int i = 1; i < len; i ++){ |
| 118 | curr = list.get(i); | 118 | curr = list.get(i); |
| 119 | 119 | ||
| 120 | - if(prve.getZdzName().equals(curr.getQdzName()) | ||
| 121 | - || prve.getZdzCode().equals(curr.getQdzCode())){ | 120 | + if(isJoin(prve, curr)){ |
| 122 | curr.setQdzArrDatejh(prve.getZdsj()); | 121 | curr.setQdzArrDatejh(prve.getZdsj()); |
| 123 | if(StringUtils.isNotEmpty(prve.getZdsjActual())) | 122 | if(StringUtils.isNotEmpty(prve.getZdsjActual())) |
| 124 | curr.setQdzArrDatesj(prve.getZdsjActual()); | 123 | curr.setQdzArrDatesj(prve.getZdsjActual()); |
| @@ -126,6 +125,13 @@ public class SchAttrCalculator { | @@ -126,6 +125,13 @@ public class SchAttrCalculator { | ||
| 126 | prve = curr; | 125 | prve = curr; |
| 127 | } | 126 | } |
| 128 | } | 127 | } |
| 128 | + | ||
| 129 | + private boolean isJoin(ScheduleRealInfo prve, ScheduleRealInfo curr) { | ||
| 130 | + return prve.getZdzName().equals(curr.getQdzName())//名称相等 | ||
| 131 | + || prve.getZdzCode().equals(curr.getQdzCode())//编码相等 | ||
| 132 | + || prve.getZdzName().startsWith(curr.getQdzName())//起始包括 | ||
| 133 | + || curr.getQdzName().startsWith(prve.getZdzName());//起始包括 | ||
| 134 | + } | ||
| 129 | 135 | ||
| 130 | /** | 136 | /** |
| 131 | * | 137 | * |
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
| @@ -64,7 +64,7 @@ input[type=checkbox].disabled{ | @@ -64,7 +64,7 @@ input[type=checkbox].disabled{ | ||
| 64 | position: absolute; | 64 | position: absolute; |
| 65 | z-index: 2; | 65 | z-index: 2; |
| 66 | top: 20px; | 66 | top: 20px; |
| 67 | - background: red; | 67 | + background: white; |
| 68 | color: white; | 68 | color: white; |
| 69 | padding: 7px 25px 7px 7px; | 69 | padding: 7px 25px 7px 7px; |
| 70 | right: calc(50% - 250px); | 70 | right: calc(50% - 250px); |
| @@ -87,14 +87,17 @@ input[type=checkbox].disabled{ | @@ -87,14 +87,17 @@ input[type=checkbox].disabled{ | ||
| 87 | box-shadow: none; | 87 | box-shadow: none; |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | -.map-system-msg.flex-left a:before{ | ||
| 91 | - content: '老版本地图'; | 90 | +.map-system-msg.flex-left a.now_map{ |
| 91 | + top: 35px; | ||
| 92 | + width: 50px; | ||
| 93 | +} | ||
| 94 | + | ||
| 95 | +.map-system-msg.flex-left a:after{ | ||
| 92 | position: absolute; | 96 | position: absolute; |
| 93 | width: 100%; | 97 | width: 100%; |
| 94 | z-index: 2; | 98 | z-index: 2; |
| 95 | height: 100%; | 99 | height: 100%; |
| 96 | background: #ffffff; | 100 | background: #ffffff; |
| 97 | - top: 0; | ||
| 98 | left: 0; | 101 | left: 0; |
| 99 | text-align: center; | 102 | text-align: center; |
| 100 | font-size: 12px; | 103 | font-size: 12px; |
| @@ -102,6 +105,26 @@ input[type=checkbox].disabled{ | @@ -102,6 +105,26 @@ input[type=checkbox].disabled{ | ||
| 102 | color: #969696; | 105 | color: #969696; |
| 103 | } | 106 | } |
| 104 | 107 | ||
| 108 | +.map-system-msg.flex-left a.old_map:after{ | ||
| 109 | + content: '老版本地图'; | ||
| 110 | + top: 0; | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +.map-system-msg.flex-left a.now_map>i{ | ||
| 114 | + font-size: 12px; | ||
| 115 | + vertical-align: top; | ||
| 116 | + color: #535151; | ||
| 117 | + margin-top: -1px; | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | +.map-system-msg.flex-left a.now_map:after{ | ||
| 121 | + content: '单屏地图'; | ||
| 122 | + top: 0; | ||
| 123 | + left: 20px; | ||
| 124 | + text-align: left; | ||
| 125 | + text-indent: 7px; | ||
| 126 | +} | ||
| 127 | + | ||
| 105 | .map-system-msg a:hover{ | 128 | .map-system-msg a:hover{ |
| 106 | text-decoration: none; | 129 | text-decoration: none; |
| 107 | } | 130 | } |
src/main/resources/static/real_control_v2/mapmonitor/js/config.js
| @@ -111,6 +111,8 @@ var gb_map_config = (function () { | @@ -111,6 +111,8 @@ var gb_map_config = (function () { | ||
| 111 | function trafficSwitch(val) { | 111 | function trafficSwitch(val) { |
| 112 | //修改配置项 | 112 | //修改配置项 |
| 113 | set('traffic', this.checked); | 113 | set('traffic', this.checked); |
| 114 | + | ||
| 115 | + gb_map_imap.call('transparent_line', this.checked); | ||
| 114 | gb_map_imap.call('traffic', this.checked); | 116 | gb_map_imap.call('traffic', this.checked); |
| 115 | } | 117 | } |
| 116 | 118 |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
| @@ -57,6 +57,19 @@ var gb_map_baidu = (function(){ | @@ -57,6 +57,19 @@ var gb_map_baidu = (function(){ | ||
| 57 | 57 | ||
| 58 | //根据ID保存映射 | 58 | //根据ID保存映射 |
| 59 | polylines[opt.id]=_pLines; | 59 | polylines[opt.id]=_pLines; |
| 60 | + } | ||
| 61 | + , | ||
| 62 | + transparent_line: function (checked) { | ||
| 63 | + for(var id in polylines){ | ||
| 64 | + for(var i=0,polyline;polyline=polylines[id][i++];){ | ||
| 65 | + if(polyline.isVisible()){ | ||
| 66 | + if(checked) | ||
| 67 | + polyline.setStrokeOpacity(0); | ||
| 68 | + else | ||
| 69 | + polyline.setStrokeOpacity(1); | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | + } | ||
| 60 | }, | 73 | }, |
| 61 | traffic: function (enable) { | 74 | traffic: function (enable) { |
| 62 | if(enable) | 75 | if(enable) |
src/main/resources/static/real_control_v2/mapmonitor/real.html
| @@ -6,7 +6,10 @@ | @@ -6,7 +6,10 @@ | ||
| 6 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css" merge="map_plugins"> | 6 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css" merge="map_plugins"> |
| 7 | 7 | ||
| 8 | <div class="map-system-msg flex-left"> | 8 | <div class="map-system-msg flex-left"> |
| 9 | - <a class="z-depth-2" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a> | 9 | + <a class="z-depth-2 old_map" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a> |
| 10 | + <a class="z-depth-2 now_map" href="/real_control_v2/mapmonitor/alone_page/alone_wrap.html" target="_blank"> | ||
| 11 | + <i class="uk-icon-send-o"></i> | ||
| 12 | + </a> | ||
| 10 | </div> | 13 | </div> |
| 11 | 14 | ||
| 12 | <div id="real_map_container"></div> | 15 | <div id="real_map_container"></div> |