Commit 806da7abe0ff312d9951e0c1630de5948f8a5076
Merge branch 'minhang' of
http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
19 changed files
with
123 additions
and
20 deletions
src/main/java/com/bsth/XDApplication.java
| ... | ... | @@ -84,6 +84,7 @@ public class XDApplication implements CommandLineRunner { |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | public void devInit(){ |
| 87 | + log.info("devInit..."); | |
| 87 | 88 | ScheduledExecutorService sexec = Application.mainServices; |
| 88 | 89 | //抓取GPS数据 |
| 89 | 90 | gpsDataLoader.setFlag(-1); |
| ... | ... | @@ -98,12 +99,13 @@ public class XDApplication implements CommandLineRunner { |
| 98 | 99 | } |
| 99 | 100 | |
| 100 | 101 | public void prodInit(){ |
| 102 | + log.info("prodInit..."); | |
| 101 | 103 | ScheduledExecutorService sexec = Application.mainServices; |
| 102 | 104 | //发车信息 |
| 103 | 105 | sexec.scheduleWithFixedDelay(fcxxUpdateThread, 60, 40, TimeUnit.SECONDS); |
| 104 | 106 | //抓取GPS数据 |
| 105 | 107 | sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS); |
| 106 | - //检查设备掉离线 | |
| 108 | + //GPS设备掉离线 | |
| 107 | 109 | sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS); |
| 108 | 110 | //实际排班更新线程 |
| 109 | 111 | sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); | ... | ... |
src/main/java/com/bsth/data/ThreadMonotor.java
| ... | ... | @@ -26,7 +26,7 @@ public class ThreadMonotor extends Thread{ |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | if(GpsRealAnalyse.isIdle()){ |
| 29 | - //尝试使用网关的GPS实时对照数据 | |
| 29 | + //切换到备用的网关实时GPS对照数据 | |
| 30 | 30 | GpsDataLoaderThread.setFlag(-1); |
| 31 | 31 | } |
| 32 | 32 | |
| ... | ... | @@ -42,4 +42,4 @@ public class ThreadMonotor extends Thread{ |
| 42 | 42 | DirectivePushQueue.start(); |
| 43 | 43 | } |
| 44 | 44 | } |
| 45 | -} | |
| 45 | +} | |
| 46 | 46 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/data/gpsdata/GpsEntity.java
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
| ... | ... | @@ -56,9 +56,9 @@ public class GpsRealAnalyse { |
| 56 | 56 | |
| 57 | 57 | public void analyse(List<GpsEntity> list) { |
| 58 | 58 | try { |
| 59 | - st = System.currentTimeMillis(); | |
| 60 | - if (GpsDataRecovery.run) | |
| 59 | + if(list.size() == 0 || GpsDataRecovery.run) | |
| 61 | 60 | return; |
| 61 | + st = System.currentTimeMillis(); | |
| 62 | 62 | |
| 63 | 63 | //按线路分组gps |
| 64 | 64 | ArrayListMultimap multimap = ArrayListMultimap.create(); | ... | ... |
src/main/java/com/bsth/data/gpsdata/thread/GpsDataLoaderThread.java
| ... | ... | @@ -176,6 +176,10 @@ public class GpsDataLoaderThread extends Thread { |
| 176 | 176 | String nbbm; |
| 177 | 177 | for (GpsEntity gps : list) { |
| 178 | 178 | |
| 179 | + //没有设备号 | |
| 180 | + if (StringUtils.isBlank(gps.getDeviceId())) | |
| 181 | + continue; | |
| 182 | + | |
| 179 | 183 | nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId()); |
| 180 | 184 | if (StringUtils.isBlank(nbbm)) |
| 181 | 185 | gps.setIncomplete(true);//标记为异常数据 | ... | ... |
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
| ... | ... | @@ -21,7 +21,7 @@ import java.util.List; |
| 21 | 21 | @Component |
| 22 | 22 | public class SafeDrivDataLoadThread extends Thread{ |
| 23 | 23 | |
| 24 | - private final static String url = "http://180.166.5.82:9988//bsth-safedriving/Crlcxb/realtimeInterface.do"; | |
| 24 | + private final static String url = "http://118.178.187.115/bsth-safedriving/Crlcxb/realtimeInterface.do"; | |
| 25 | 25 | |
| 26 | 26 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 27 | 27 | ... | ... |
src/main/resources/static/pages/control/lineallot/allot.html
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/edit.html
| ... | ... | @@ -73,7 +73,7 @@ |
| 73 | 73 | icnames="cl.insideCode" |
| 74 | 74 | datatype="cci2" |
| 75 | 75 | dataassociate="true" |
| 76 | - dataparam="{{ {'xl.id_eq': ctrl.scheduleRuleManageForSave.xl.id, 'isCancel_eq': false} | json }}" | |
| 76 | + dataparam="{{ {'xl.id_eq': ctrl.scheduleRuleManageForSave.xl.id} | json }}" | |
| 77 | 77 | mlp="true" |
| 78 | 78 | required > |
| 79 | 79 | </sa-Select3> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/form.html
| ... | ... | @@ -73,7 +73,7 @@ |
| 73 | 73 | icnames="cl.insideCode" |
| 74 | 74 | datatype="cci2" |
| 75 | 75 | dataassociate="true" |
| 76 | - dataparam="{{ {'xl.id_eq': ctrl.scheduleRuleManageForSave.xl.id, 'isCancel_eq': false} | json }}" | |
| 76 | + dataparam="{{ {'xl.id_eq': ctrl.scheduleRuleManageForSave.xl.id} | json }}" | |
| 77 | 77 | mlp="true" |
| 78 | 78 | required > |
| 79 | 79 | </sa-Select3> | ... | ... |
src/main/resources/static/real_control_v2/css/home.css
src/main/resources/static/real_control_v2/css/line_schedule.css
| ... | ... | @@ -17,12 +17,12 @@ |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | .line_schedule .footer-chart { |
| 20 | - height: 243px; | |
| 20 | + height: 233px; | |
| 21 | 21 | margin-top: 5px; |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | .line_schedule .uk-grid.top-container { |
| 25 | - height: calc(100% - 260px); | |
| 25 | + height: calc(100% - 250px); | |
| 26 | 26 | margin-top: 5px; |
| 27 | 27 | overflow: hidden; |
| 28 | 28 | } |
| ... | ... | @@ -127,7 +127,7 @@ |
| 127 | 127 | } |
| 128 | 128 | |
| 129 | 129 | .schedule-body { |
| 130 | - height: calc(100% - 37px); | |
| 130 | + height: calc(100% - 31px); | |
| 131 | 131 | background: #fff; |
| 132 | 132 | } |
| 133 | 133 | ... | ... |
src/main/resources/static/real_control_v2/css/north.css
| 1 | 1 | .north { |
| 2 | - height: 120px; | |
| 2 | + /*height: 120px;*/ | |
| 3 | 3 | position: relative; |
| 4 | 4 | transition: all .3s ease; |
| 5 | + padding-bottom: 0; | |
| 5 | 6 | } |
| 6 | 7 | |
| 7 | 8 | .north.main { |
| 8 | 9 | background: linear-gradient(to right, #082F4A, #125688, #0a3f64); |
| 9 | 10 | /*background-image: url('/assets/img/title-bg.jpg');*/ |
| 11 | + padding-bottom: 0; | |
| 10 | 12 | } |
| 11 | 13 | |
| 12 | 14 | .north.monitor { |
| ... | ... | @@ -65,10 +67,10 @@ |
| 65 | 67 | } |
| 66 | 68 | |
| 67 | 69 | .north .north-tabs { |
| 68 | - position: absolute; | |
| 69 | 70 | width: 100%; |
| 70 | 71 | bottom: 1px; |
| 71 | 72 | margin-left: -14px; |
| 73 | + margin-top: 35px; | |
| 72 | 74 | } |
| 73 | 75 | |
| 74 | 76 | .north .north-tabs .uk-tab { |
| ... | ... | @@ -81,7 +83,7 @@ |
| 81 | 83 | } |
| 82 | 84 | |
| 83 | 85 | .north .north-tabs .uk-tab > li.tab-line > a { |
| 84 | - padding: 8px 0px 8px 12px; | |
| 86 | + padding: 8px 0px 8px 17px; | |
| 85 | 87 | } |
| 86 | 88 | |
| 87 | 89 | .north .north-tabs .uk-tab > li > a:hover, |
| ... | ... | @@ -352,4 +354,15 @@ |
| 352 | 354 | .user_detail_tip .qtip-content{ |
| 353 | 355 | width: 300px; |
| 354 | 356 | height: 220px; |
| 357 | +} | |
| 358 | + | |
| 359 | +.op-beijingtime-time{ | |
| 360 | + padding-left: 0px; | |
| 361 | + width: 107px; | |
| 362 | +} | |
| 363 | + | |
| 364 | +.op-beijingtime-time>span{ | |
| 365 | + font-size: 18px !important; | |
| 366 | + font-family: Microsoft Yahei !important; | |
| 367 | + color: blue !important; | |
| 355 | 368 | } |
| 356 | 369 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/fragments/north/toolbar.html
| ... | ... | @@ -55,6 +55,9 @@ |
| 55 | 55 | </li> |
| 56 | 56 | {{/each}} |
| 57 | 57 | </ul> |
| 58 | + <a class="uk-navbar-brand op-beijingtime-time" title="每次秒数到0与服务器同步一次,睡眠状态唤醒会短暂异常,可鼠标右击横幅任意区域立刻同步!"> | |
| 59 | + <span></span> | |
| 60 | + </a> | |
| 58 | 61 | <div class="uk-navbar-content uk-navbar-flip uk-hidden-small" style="padding-left: 0;"> |
| 59 | 62 | <div class="uk-button-group"> |
| 60 | 63 | <button class="uk-button uk-button-danger exit-system">退出线调</button> | ... | ... |
src/main/resources/static/real_control_v2/js/main.js
| ... | ... | @@ -169,8 +169,8 @@ var disabled_submit_btn = function (form) { |
| 169 | 169 | function showUpdateDescription() { |
| 170 | 170 | //更新说明 |
| 171 | 171 | var updateDescription = { |
| 172 | - date: '2017-05-12', | |
| 173 | - text: '<h5>现在班次调整时,备注是必填项</h5><h5>现在中途更换设备后,需要刷新缓存数据后,再刷新线调页面。</h5><h5>分班套跑车辆将在上午最后一个班次完成后发送线路切换指令。捕捉到出场信号时也会切换至出场班次所在线路,驾驶员请求出场时候也会同步一次状态</h5><h5>修复了一些其他问题。</h5>' | |
| 172 | + date: '2017-05-16', | |
| 173 | + text: '<h5>菜单栏加入了服务器时间</h5>' | |
| 174 | 174 | }; |
| 175 | 175 | |
| 176 | 176 | var storage = window.localStorage | ... | ... |
src/main/resources/static/real_control_v2/js/north/second_timer.js
0 → 100644
| 1 | +/** | |
| 2 | + * 工具栏上的时钟 | |
| 3 | + * @type {{}} | |
| 4 | + */ | |
| 5 | +var gb_second_timer = (function () { | |
| 6 | + | |
| 7 | + var now; | |
| 8 | + var _this; | |
| 9 | + var secondTimer; | |
| 10 | + var contextFlag; | |
| 11 | + | |
| 12 | + var init = function () { | |
| 13 | + _this = $('.op-beijingtime-time>span')[0]; | |
| 14 | + getServerTime(function (time) { | |
| 15 | + now = time; | |
| 16 | + $('div.north').bind("contextmenu", function () { | |
| 17 | + contextFlag = true; | |
| 18 | + }); | |
| 19 | + setTime(); | |
| 20 | + | |
| 21 | + secondTimer = window.setInterval(function () { | |
| 22 | + if(0 == now.getSeconds() || true == contextFlag){ | |
| 23 | + minuteTimer(); | |
| 24 | + contextFlag = false; | |
| 25 | + } | |
| 26 | + | |
| 27 | + now = new Date(now.getTime() + 1e3); | |
| 28 | + setTime(); | |
| 29 | + }, 1e3); | |
| 30 | + }); | |
| 31 | + }; | |
| 32 | + | |
| 33 | + var getServerTime = function (callback) { | |
| 34 | + function oncallback(jqXHR) { | |
| 35 | + var time = jqXHR && jqXHR.getResponseHeader("Date"); | |
| 36 | + if (time) | |
| 37 | + callback(new Date(time)) | |
| 38 | + } | |
| 39 | + | |
| 40 | + if ("function" == typeof callback) | |
| 41 | + $.ajax({ | |
| 42 | + url: "/real_control_v2/assets/imgs/time.gif", | |
| 43 | + type: "HEAD" | |
| 44 | + }).done(function (data, textStatus, jqXHR) { | |
| 45 | + oncallback(jqXHR) | |
| 46 | + }).fail(function (jqXHR, textStatus, errorThrown) { | |
| 47 | + oncallback(jqXHR) | |
| 48 | + }) | |
| 49 | + }; | |
| 50 | + | |
| 51 | + var timeFormat = function(str) { | |
| 52 | + return ("0" + str).slice(-2) | |
| 53 | + }; | |
| 54 | + | |
| 55 | + var setTime = function () { | |
| 56 | + _this.innerHTML = timeFormat(now.getHours()) + ':' + timeFormat(now.getMinutes()) + '.' + timeFormat(now.getSeconds()); | |
| 57 | + }; | |
| 58 | + | |
| 59 | + var minuteTimer = function () { | |
| 60 | + getServerTime(function(time) { | |
| 61 | + now = time; | |
| 62 | + setTime() | |
| 63 | + }) | |
| 64 | + }; | |
| 65 | + | |
| 66 | + window.setTimeout(init, 6000); | |
| 67 | +})(); | |
| 0 | 68 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/js/north/tabs.js
| ... | ... | @@ -17,6 +17,7 @@ var gb_tabs = (function() { |
| 17 | 17 | $('.north-tabs').html(tabHtmlStr); |
| 18 | 18 | $('.main-container').html(tabContentHtmlStr); |
| 19 | 19 | |
| 20 | + setTimeout(renderStyle, 4000); | |
| 20 | 21 | //地图选项卡初始点击 |
| 21 | 22 | $('#north_tabs_map_btn').one('click', function () { |
| 22 | 23 | if(typeof(gb_map_overlay_mge)!="undefined"){ |
| ... | ... | @@ -37,6 +38,15 @@ var gb_tabs = (function() { |
| 37 | 38 | }); |
| 38 | 39 | }; |
| 39 | 40 | |
| 41 | + function renderStyle(){ | |
| 42 | + var rows = parseInt($('.north-tabs').height() / 32); | |
| 43 | + if(rows > 1){ | |
| 44 | + var contHeight = 120 + ((rows - 1) * 36 - 15); | |
| 45 | + $('.main-container').css('height', 'calc(100% - '+contHeight+'px)'); | |
| 46 | + $('.north .north-tabs').css('margin-top', '20px'); | |
| 47 | + } | |
| 48 | + } | |
| 49 | + | |
| 40 | 50 | //文件载入完毕 |
| 41 | 51 | res_load_ep.emitLater('load_tab'); |
| 42 | 52 | ... | ... |
src/main/resources/static/real_control_v2/js/safe_driv/safeDriv.js
src/main/resources/static/real_control_v2/main.html
| ... | ... | @@ -163,6 +163,7 @@ |
| 163 | 163 | <!-- north js --> |
| 164 | 164 | <script src="/real_control_v2/js/north/toolbar.js" merge="custom_js"></script> |
| 165 | 165 | <script src="/real_control_v2/js/north/tabs.js" merge="custom_js"></script> |
| 166 | +<script src="/real_control_v2/js/north/second_timer.js" merge="custom_js"></script> | |
| 166 | 167 | <!-- home js --> |
| 167 | 168 | <script src="/real_control_v2/js/home/layout.js" merge="custom_js"></script> |
| 168 | 169 | <script src="/real_control_v2/js/home/line_panel.js" merge="custom_js"></script> | ... | ... |