Commit 5dab9b2a92baac97858db7fc8e8dae0047562692
Merge branch 'minhang' of
http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
9 changed files
with
93 additions
and
69 deletions
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
| ... | ... | @@ -155,12 +155,32 @@ public class InOutStationSignalHandle extends SignalHandle{ |
| 155 | 155 | } |
| 156 | 156 | else if(sch.getBcType().equals("out")){ |
| 157 | 157 | ScheduleRealInfo next = dayOfSchedule.nextSame(sch); |
| 158 | + //如果下一个班次是区间,并且是环线 | |
| 159 | + if(next != null && next.getBcType().equals("region")){ | |
| 160 | + next = dayOfSchedule.nextSame(next); | |
| 161 | + if(next == null || !next.getQdzName().equals(next.getZdzName())){ | |
| 162 | + return; | |
| 163 | + } | |
| 164 | + } | |
| 158 | 165 | if(next != null && prev.getStopNo().equals(next.getQdzCode())){ |
| 159 | 166 | //发下一个班次 |
| 160 | 167 | dayOfSchedule.addExecPlan(next); |
| 161 | 168 | outStation(gps, prev); |
| 162 | 169 | } |
| 163 | 170 | } |
| 171 | + //当前班次是区间 | |
| 172 | + else if(sch.getBcType().equals("region")){ | |
| 173 | + ScheduleRealInfo next = dayOfSchedule.nextSame(sch); | |
| 174 | + if(next==null || !next.getQdzName().equals(next.getZdzName())){ | |
| 175 | + return; | |
| 176 | + } | |
| 177 | + //是环线 | |
| 178 | + if(prev.getStopNo().equals(next.getQdzCode())){ | |
| 179 | + //发下一个班次 | |
| 180 | + dayOfSchedule.addExecPlan(next); | |
| 181 | + outStation(gps, prev); | |
| 182 | + } | |
| 183 | + } | |
| 164 | 184 | } |
| 165 | 185 | |
| 166 | 186 | ... | ... |
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
| ... | ... | @@ -60,7 +60,7 @@ public class GpsDataRecovery implements ApplicationContextAware { |
| 60 | 60 | for (String nbbm : keys) { |
| 61 | 61 | Collections.sort(listMap.get(nbbm), comp); |
| 62 | 62 | threadPool.execute(new RecoveryThread(listMap.get(nbbm), count)); |
| 63 | - /*if(nbbm.equals("SXC-YD012")) | |
| 63 | + /*if(nbbm.equals("W9G-013")) | |
| 64 | 64 | new RecoveryThread(listMap.get(nbbm), count).run();*/ |
| 65 | 65 | } |
| 66 | 66 | |
| ... | ... | @@ -150,6 +150,8 @@ public class GpsDataRecovery implements ApplicationContextAware { |
| 150 | 150 | CircleQueue<GpsEntity> prevs; |
| 151 | 151 | boolean task; |
| 152 | 152 | for (GpsEntity gps : list) { |
| 153 | + /*if(gps.getTimestamp() > 1491951840000L) | |
| 154 | + System.out.print("");*/ | |
| 153 | 155 | |
| 154 | 156 | //是否有任务 |
| 155 | 157 | ... | ... |
src/main/java/com/bsth/data/safe_driv/SafeDrivCenter.java
| ... | ... | @@ -46,8 +46,8 @@ public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware |
| 46 | 46 | if(sd.getYczltype().indexOf("A") == -1) |
| 47 | 47 | sd.setYczltype("A" + sd.getYczltype()); |
| 48 | 48 | |
| 49 | - SafeDriv old = safeMap.get(sd.getClzbh()); | |
| 50 | - if(old == null || sd.getTs() > old.getTs()){ | |
| 49 | + //SafeDriv old = safeMap.get(sd.getClzbh()); | |
| 50 | + if(!data.contains(sd)){ | |
| 51 | 51 | //通知客户端 |
| 52 | 52 | sendUtils.sendSafeDriv(sd); |
| 53 | 53 | data.add(sd); |
| ... | ... | @@ -67,7 +67,7 @@ public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware |
| 67 | 67 | @Override |
| 68 | 68 | public void run(String... strings) throws Exception { |
| 69 | 69 | //定时加载安全驾驶数据 |
| 70 | - //Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 60, TimeUnit.SECONDS); | |
| 70 | + //Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 4, TimeUnit.SECONDS); | |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | @Override | ... | ... |
src/main/resources/static/real_control_v2/css/north.css
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
src/main/resources/static/real_control_v2/main.html
| ... | ... | @@ -5,27 +5,27 @@ |
| 5 | 5 | <meta charset="UTF-8"> |
| 6 | 6 | <title>线路调度 v2.0</title> |
| 7 | 7 | <!-- uikit core style--> |
| 8 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/css/uikit.gradient.min.css"/> | |
| 9 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.gradient.min.css"/> | |
| 10 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.gradient.min.css"/> | |
| 8 | + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/css/uikit.gradient.min.css" merge="uikit"/> | |
| 9 | + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.gradient.min.css" merge="uikit"/> | |
| 10 | + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.gradient.min.css" merge="uikit"/> | |
| 11 | 11 | <link rel="stylesheet" |
| 12 | - href="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.gradient.min.css"/> | |
| 13 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.gradient.min.css"/> | |
| 14 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/slidenav.gradient.min.css"/> | |
| 12 | + href="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.gradient.min.css" merge="uikit"/> | |
| 13 | + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.gradient.min.css" merge="uikit"/> | |
| 14 | + <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/slidenav.gradient.min.css" merge="uikit"/> | |
| 15 | 15 | |
| 16 | 16 | <!-- main style --> |
| 17 | - <link rel="stylesheet" href="/real_control_v2/css/main.css"/> | |
| 17 | + <link rel="stylesheet" href="/real_control_v2/css/main.css" merge="custom_style"/> | |
| 18 | 18 | <!-- north style --> |
| 19 | - <link rel="stylesheet" href="/real_control_v2/css/north.css"/> | |
| 19 | + <link rel="stylesheet" href="/real_control_v2/css/north.css" merge="custom_style"/> | |
| 20 | 20 | <!-- home style --> |
| 21 | - <link rel="stylesheet" href="/real_control_v2/css/home.css"/> | |
| 21 | + <link rel="stylesheet" href="/real_control_v2/css/home.css" merge="custom_style"/> | |
| 22 | 22 | <!-- line style --> |
| 23 | - <link rel="stylesheet" href="/real_control_v2/css/line_schedule.css"/> | |
| 24 | - <link rel="stylesheet" href="/real_control_v2/css/sch_autocomp_result.css"/> | |
| 23 | + <link rel="stylesheet" href="/real_control_v2/css/line_schedule.css" merge="custom_style"/> | |
| 24 | + <link rel="stylesheet" href="/real_control_v2/css/sch_autocomp_result.css" merge="custom_style"/> | |
| 25 | 25 | <!-- custom table --> |
| 26 | - <link rel="stylesheet" href="/real_control_v2/css/ct_table.css"/> | |
| 26 | + <link rel="stylesheet" href="/real_control_v2/css/ct_table.css" merge="custom_style"/> | |
| 27 | 27 | <!-- jquery contextMenu style --> |
| 28 | - <link rel="stylesheet" href="/real_control_v2/assets/css/jquery.contextMenu.min.css"/> | |
| 28 | + <link rel="stylesheet" href="/real_control_v2/assets/css/jquery.contextMenu.min.css" /> | |
| 29 | 29 | <!-- formvalidation style --> |
| 30 | 30 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/formvalidation/formValidation.min.css"/> |
| 31 | 31 | <!-- js tree --> |
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/qtip/jquery.qtip.min.css"/> |
| 35 | 35 | <link rel="stylesheet" href="/real_control_v2/css/pace.css"/> |
| 36 | 36 | |
| 37 | - <link rel="stylesheet" href="/real_control_v2/css/modal_extend.css"/> | |
| 37 | + <link rel="stylesheet" href="/real_control_v2/css/modal_extend.css" merge="custom_style"/> | |
| 38 | 38 | </head> |
| 39 | 39 | |
| 40 | 40 | <body> |
| ... | ... | @@ -116,14 +116,14 @@ |
| 116 | 116 | <!-- main js --> |
| 117 | 117 | <script src="/real_control_v2/js/main.js"></script> |
| 118 | 118 | <!-- uikit core --> |
| 119 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/uikit.min.js"></script> | |
| 120 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.min.js"></script> | |
| 121 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/pagination.min.js"></script> | |
| 122 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.min.js"></script> | |
| 123 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.min.js"></script> | |
| 124 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.min.js"></script> | |
| 125 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/timepicker.min.js"></script> | |
| 126 | -<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/lightbox.min.js"></script> | |
| 119 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/uikit.min.js" merge="uikit_js"></script> | |
| 120 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.min.js" merge="uikit_js"></script> | |
| 121 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/pagination.min.js" merge="uikit_js"></script> | |
| 122 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.min.js" merge="uikit_js"></script> | |
| 123 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.min.js" merge="uikit_js"></script> | |
| 124 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/accordion.min.js" merge="uikit_js"></script> | |
| 125 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/timepicker.min.js" merge="uikit_js"></script> | |
| 126 | +<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/lightbox.min.js" merge="uikit_js"></script> | |
| 127 | 127 | |
| 128 | 128 | <!-- jquery contextMenu --> |
| 129 | 129 | <script src="/real_control_v2/assets/js/jquery.contextMenu.min.js"></script> |
| ... | ... | @@ -140,52 +140,52 @@ |
| 140 | 140 | <script src="/real_control_v2/assets/plugins/qtip/jquery.qtip.min.js"></script> |
| 141 | 141 | |
| 142 | 142 | <!-- 数据 --> |
| 143 | -<script src="/real_control_v2/js/data/data_basic.js"></script> | |
| 144 | -<script src="/real_control_v2/js/data/data_gps.js"></script> | |
| 145 | -<script src="/real_control_v2/js/data/gps_abnormal.js"></script> | |
| 143 | +<script src="/real_control_v2/js/data/data_basic.js" merge="custom_js"></script> | |
| 144 | +<script src="/real_control_v2/js/data/data_gps.js" merge="custom_js"></script> | |
| 145 | +<script src="/real_control_v2/js/data/gps_abnormal.js" merge="custom_js"></script> | |
| 146 | 146 | <!-- 线路模拟图 --> |
| 147 | -<script src="/real_control_v2/js/utils/svg_chart.js"></script> | |
| 148 | -<script src="/real_control_v2/js/utils/svg_data_convert.js"></script> | |
| 149 | -<script src="/real_control_v2/js/utils/svg_chart_tooltip.js"></script> | |
| 150 | -<script src="/real_control_v2/js/utils/svg_chart_map.js"></script> | |
| 147 | +<script src="/real_control_v2/js/utils/svg_chart.js" merge="custom_js"></script> | |
| 148 | +<script src="/real_control_v2/js/utils/svg_data_convert.js" merge="custom_js"></script> | |
| 149 | +<script src="/real_control_v2/js/utils/svg_chart_tooltip.js" merge="custom_js"></script> | |
| 150 | +<script src="/real_control_v2/js/utils/svg_chart_map.js" merge="custom_js"></script> | |
| 151 | 151 | |
| 152 | 152 | <!-- custom table js --> |
| 153 | -<script src="/real_control_v2/js/utils/ct_table.js"></script> | |
| 153 | +<script src="/real_control_v2/js/utils/ct_table.js" merge="custom_js"></script> | |
| 154 | 154 | <!-- north js --> |
| 155 | -<script src="/real_control_v2/js/north/toolbar.js"></script> | |
| 156 | -<script src="/real_control_v2/js/north/tabs.js"></script> | |
| 155 | +<script src="/real_control_v2/js/north/toolbar.js" merge="custom_js"></script> | |
| 156 | +<script src="/real_control_v2/js/north/tabs.js" merge="custom_js"></script> | |
| 157 | 157 | <!-- home js --> |
| 158 | -<script src="/real_control_v2/js/home/layout.js"></script> | |
| 159 | -<script src="/real_control_v2/js/home/line_panel.js"></script> | |
| 160 | -<script src="/real_control_v2/js/home/context_menu.js"></script> | |
| 158 | +<script src="/real_control_v2/js/home/layout.js" merge="custom_js"></script> | |
| 159 | +<script src="/real_control_v2/js/home/line_panel.js" merge="custom_js"></script> | |
| 160 | +<script src="/real_control_v2/js/home/context_menu.js" merge="custom_js"></script> | |
| 161 | 161 | <!-- line schedule js --> |
| 162 | -<script src="/real_control_v2/js/line_schedule/legend.js"></script> | |
| 163 | -<script src="/real_control_v2/js/line_schedule/layout.js"></script> | |
| 164 | -<script src="/real_control_v2/js/line_schedule/sch_table.js"></script> | |
| 165 | -<script src="/real_control_v2/js/line_schedule/context_menu.js"></script> | |
| 166 | -<script src="/real_control_v2/js/line_schedule/dbclick.js"></script> | |
| 167 | -<script src="/real_control_v2/js/line_schedule/search.js"></script> | |
| 162 | +<script src="/real_control_v2/js/line_schedule/legend.js" merge="custom_js"></script> | |
| 163 | +<script src="/real_control_v2/js/line_schedule/layout.js" merge="custom_js"></script> | |
| 164 | +<script src="/real_control_v2/js/line_schedule/sch_table.js" merge="custom_js"></script> | |
| 165 | +<script src="/real_control_v2/js/line_schedule/context_menu.js" merge="custom_js"></script> | |
| 166 | +<script src="/real_control_v2/js/line_schedule/dbclick.js" merge="custom_js"></script> | |
| 167 | +<script src="/real_control_v2/js/line_schedule/search.js" merge="custom_js"></script> | |
| 168 | 168 | |
| 169 | 169 | <!-- 字典相关 --> |
| 170 | -<script src="/assets/js/dictionary.js"></script> | |
| 170 | +<script src="/assets/js/dictionary.js" merge="custom_js"></script> | |
| 171 | 171 | <!-- websocket --> |
| 172 | 172 | <script src="/assets/js/sockjs.min.js"></script> |
| 173 | -<script src="/real_control_v2/js/websocket/sch_websocket.js"></script> | |
| 173 | +<script src="/real_control_v2/js/websocket/sch_websocket.js" merge="custom_js"></script> | |
| 174 | 174 | <!-- tts --> |
| 175 | -<script src="/real_control_v2/js/utils/tts.js"></script> | |
| 175 | +<script src="/real_control_v2/js/utils/tts.js" merge="custom_js"></script> | |
| 176 | 176 | |
| 177 | 177 | <!-- echart --> |
| 178 | 178 | <script src="/real_control_v2/assets/echarts-3/echarts.js"></script> |
| 179 | 179 | <!-- Geolib --> |
| 180 | 180 | <script src="/real_control_v2/geolib/geolib.js"></script> |
| 181 | 181 | |
| 182 | -<script src="/real_control_v2/js/signal_state/signal_state.js"></script> | |
| 183 | -<script src="/real_control_v2/js/utils/dispatch_pattern.js"></script> | |
| 182 | +<script src="/real_control_v2/js/signal_state/signal_state.js" merge="custom_js"></script> | |
| 183 | +<script src="/real_control_v2/js/utils/dispatch_pattern.js" merge="custom_js"></script> | |
| 184 | 184 | |
| 185 | 185 | <!-- 处理表单片段嵌入问题 --> |
| 186 | -<script src="/real_control_v2/js/forms/form_embed.js"></script> | |
| 186 | +<script src="/real_control_v2/js/forms/form_embed.js" merge="custom_js"></script> | |
| 187 | 187 | <!-- 模态框扩展 --> |
| 188 | -<script src="/real_control_v2/js/modal_extend.js"></script> | |
| 188 | +<script src="/real_control_v2/js/modal_extend.js" merge="custom_js"></script> | |
| 189 | 189 | |
| 190 | 190 | <!-- #### 安全驾驶 start ### --> |
| 191 | 191 | <div class="safe_driv_pop_wrap" ></div> |
| ... | ... | @@ -199,7 +199,7 @@ |
| 199 | 199 | </div> |
| 200 | 200 | </script> |
| 201 | 201 | |
| 202 | -<script src="/real_control_v2/js/safe_driv/safeDriv.js" ></script> | |
| 202 | +<script src="/real_control_v2/js/safe_driv/safeDriv.js" merge="custom_js"></script> | |
| 203 | 203 | <!-- #### 安全驾驶 end ### --> |
| 204 | 204 | </body> |
| 205 | 205 | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v2/main.html
| ... | ... | @@ -320,7 +320,7 @@ |
| 320 | 320 | |
| 321 | 321 | var init = function (data) { |
| 322 | 322 | //设置初始值 |
| 323 | - /*if (data.nbbm) | |
| 323 | + if (data.nbbm) | |
| 324 | 324 | $('[name=nbbm]', f).val(data.nbbm); |
| 325 | 325 | var st = moment().subtract(2, 'hour'); |
| 326 | 326 | if (data.st) |
| ... | ... | @@ -331,15 +331,15 @@ |
| 331 | 331 | if (data.et) |
| 332 | 332 | et = moment(data.et, 'YYYY-MM-DD HH:mm'); |
| 333 | 333 | $('[name=eDate]', f).val(et.format('YYYY-MM-DD')); |
| 334 | - $('[name=eTime]', f).val(et.format('HH:mm'));*/ | |
| 334 | + $('[name=eTime]', f).val(et.format('HH:mm')); | |
| 335 | 335 | |
| 336 | 336 | |
| 337 | - $('[name=nbbm]', f).val('W0A-018'); | |
| 337 | + /*$('[name=nbbm]', f).val('W0A-018'); | |
| 338 | 338 | $('[name=sDate]', f).val('2017-04-06'); |
| 339 | 339 | $('[name=sTime]', f).val('04:49'); |
| 340 | 340 | |
| 341 | 341 | $('[name=eDate]', f).val('2017-04-06'); |
| 342 | - $('[name=eTime]', f).val('09:49'); | |
| 342 | + $('[name=eTime]', f).val('09:49');*/ | |
| 343 | 343 | //搜索事件 |
| 344 | 344 | $('button[type=submit]', f).on('click', search); |
| 345 | 345 | }; |
| ... | ... | @@ -575,6 +575,8 @@ |
| 575 | 575 | |
| 576 | 576 | var matchOut = function (prevInfo, gps) { |
| 577 | 577 | var oi = gps['inout_stop_info']; |
| 578 | + if(!oi) | |
| 579 | + return; | |
| 578 | 580 | if(prevInfo && prevInfo.stopName == oi.stopName){ |
| 579 | 581 | prevInfo['out_ts'] = oi.ts; |
| 580 | 582 | return null; | ... | ... |
src/main/resources/static/real_control_v2/mapmonitor/real.html
| ... | ... | @@ -51,14 +51,14 @@ |
| 51 | 51 | </div> |
| 52 | 52 | |
| 53 | 53 | <script src="/real_control_v2/assets/js/GeoUtils_min.js"></script> |
| 54 | -<script src="/real_control_v2/mapmonitor/js/config.js"></script> | |
| 55 | -<script src="/real_control_v2/mapmonitor/js/gps_tree.js"></script> | |
| 56 | -<script src="/real_control_v2/mapmonitor/js/spatial_data.js"></script> | |
| 57 | -<script src="/real_control_v2/mapmonitor/js/map_overlay_manager.js"></script> | |
| 58 | -<script src="/real_control_v2/mapmonitor/js/real.js"></script> | |
| 59 | -<script src="/real_control_v2/mapmonitor/js/map/iMap.js"></script> | |
| 60 | -<script src="/real_control_v2/mapmonitor/js/map/platform/baidu.js"></script> | |
| 61 | -<script src="/real_control_v2/mapmonitor/js/map/platform/gaode.js"></script> | |
| 54 | +<script src="/real_control_v2/mapmonitor/js/config.js" merge="custom_map_js"></script> | |
| 55 | +<script src="/real_control_v2/mapmonitor/js/gps_tree.js" merge="custom_map_js"></script> | |
| 56 | +<script src="/real_control_v2/mapmonitor/js/spatial_data.js" merge="custom_map_js"></script> | |
| 57 | +<script src="/real_control_v2/mapmonitor/js/map_overlay_manager.js" merge="custom_map_js"></script> | |
| 58 | +<script src="/real_control_v2/mapmonitor/js/real.js" merge="custom_map_js"></script> | |
| 59 | +<script src="/real_control_v2/mapmonitor/js/map/iMap.js" merge="custom_map_js"></script> | |
| 60 | +<script src="/real_control_v2/mapmonitor/js/map/platform/baidu.js" merge="custom_map_js"></script> | |
| 61 | +<script src="/real_control_v2/mapmonitor/js/map/platform/gaode.js" merge="custom_map_js"></script> | |
| 62 | 62 | <!-- jquery ui --> |
| 63 | 63 | <script src="/real_control_v2/assets/plugins/jquery.ui/core.js"></script> |
| 64 | 64 | <script src="/real_control_v2/assets/plugins/jquery.ui/widget.js"></script> |
| ... | ... | @@ -67,4 +67,4 @@ |
| 67 | 67 | <!-- 颜色选择器 --> |
| 68 | 68 | <script src="/real_control_v2/assets/plugins/spectrum/spectrum.js"></script> |
| 69 | 69 | <!-- play back --> |
| 70 | -<script src="/real_control_v2/mapmonitor/js/playback.js"></script> | |
| 71 | 70 | \ No newline at end of file |
| 71 | +<script src="/real_control_v2/mapmonitor/js/playback.js" merge="custom_map_js"></script> | |
| 72 | 72 | \ No newline at end of file | ... | ... |