Commit 01360ea5963dc0a5ec9d66f762834b51c70c12a6
1 parent
43c1ea3c
update...
Showing
5 changed files
with
26 additions
and
213 deletions
src/main/java/com/bsth/XDApplication.java
| @@ -160,7 +160,7 @@ public class XDApplication implements CommandLineRunner { | @@ -160,7 +160,7 @@ public class XDApplication implements CommandLineRunner { | ||
| 160 | 160 | ||
| 161 | /** 线调业务 */ | 161 | /** 线调业务 */ |
| 162 | sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 | 162 | sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 |
| 163 | - sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 15, TimeUnit.SECONDS);//检查班次误点 | 163 | + sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点 |
| 164 | sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据 | 164 | sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据 |
| 165 | sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 | 165 | sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 |
| 166 | 166 |
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
| @@ -109,8 +109,18 @@ public class LateAdjustHandle implements ApplicationContextAware { | @@ -109,8 +109,18 @@ public class LateAdjustHandle implements ApplicationContextAware { | ||
| 109 | if (gps.getInstation() <= 0 || null == sch) | 109 | if (gps.getInstation() <= 0 || null == sch) |
| 110 | return; | 110 | return; |
| 111 | 111 | ||
| 112 | - if (!lateSchMap.containsKey(sch.getId())) | ||
| 113 | - return; | 112 | + if (!lateSchMap.containsKey(sch.getId())) { |
| 113 | + //班次是否误点(可能处于误点线程扫描的空隙,所以再判定一次) | ||
| 114 | + if (sch.getDfsjT() <= gps.getTimestamp()) { | ||
| 115 | + putLate(sch); | ||
| 116 | + | ||
| 117 | + if (!lateSchMap.containsKey(sch.getId())) | ||
| 118 | + return; | ||
| 119 | + | ||
| 120 | + logger.info("线程空隙漏掉的误点,id: " + sch.getId()); | ||
| 121 | + } else | ||
| 122 | + return; | ||
| 123 | + } | ||
| 114 | 124 | ||
| 115 | 125 | ||
| 116 | //可能是延迟信号,gps时间没有误点 | 126 | //可能是延迟信号,gps时间没有误点 |
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
| @@ -743,11 +743,12 @@ public class GpsServiceImpl implements GpsService { | @@ -743,11 +743,12 @@ public class GpsServiceImpl implements GpsService { | ||
| 743 | row.setHeight((short) (1.5 * 256)); | 743 | row.setHeight((short) (1.5 * 256)); |
| 744 | row.createCell(0).setCellValue("序号"); | 744 | row.createCell(0).setCellValue("序号"); |
| 745 | row.createCell(1).setCellValue("车辆"); | 745 | row.createCell(1).setCellValue("车辆"); |
| 746 | - row.createCell(2).setCellValue("所在道路"); | ||
| 747 | - row.createCell(3).setCellValue("经度"); | ||
| 748 | - row.createCell(4).setCellValue("纬度"); | ||
| 749 | - row.createCell(5).setCellValue("时间"); | ||
| 750 | - row.createCell(6).setCellValue("速度"); | 746 | + row.createCell(2).setCellValue("牌照号"); |
| 747 | + row.createCell(3).setCellValue("所在道路"); | ||
| 748 | + row.createCell(4).setCellValue("经度"); | ||
| 749 | + row.createCell(5).setCellValue("纬度"); | ||
| 750 | + row.createCell(6).setCellValue("时间"); | ||
| 751 | + row.createCell(7).setCellValue("速度"); | ||
| 751 | //数据 | 752 | //数据 |
| 752 | DateTimeFormatter fmtHHmmss = DateTimeFormat.forPattern("HH:mm.ss"), | 753 | DateTimeFormatter fmtHHmmss = DateTimeFormat.forPattern("HH:mm.ss"), |
| 753 | fmt = DateTimeFormat.forPattern("yyyyMMddHHmm"); | 754 | fmt = DateTimeFormat.forPattern("yyyyMMddHHmm"); |
| @@ -757,11 +758,12 @@ public class GpsServiceImpl implements GpsService { | @@ -757,11 +758,12 @@ public class GpsServiceImpl implements GpsService { | ||
| 757 | row = sheet.createRow(i + 1); | 758 | row = sheet.createRow(i + 1); |
| 758 | row.createCell(0).setCellValue(i + 1); | 759 | row.createCell(0).setCellValue(i + 1); |
| 759 | row.createCell(1).setCellValue(nbbm); | 760 | row.createCell(1).setCellValue(nbbm); |
| 760 | - row.createCell(2).setCellValue(gps.getSection_name()); | ||
| 761 | - row.createCell(3).setCellValue(gps.getLon()); | ||
| 762 | - row.createCell(4).setCellValue(gps.getLat()); | ||
| 763 | - row.createCell(5).setCellValue(fmtHHmmss.print(gps.getTimestamp())); | ||
| 764 | - row.createCell(6).setCellValue(gps.getSpeed()); | 761 | + row.createCell(2).setCellValue(BasicData.nbbmCompanyPlateMap.get(nbbm)); |
| 762 | + row.createCell(3).setCellValue(gps.getSection_name()); | ||
| 763 | + row.createCell(4).setCellValue(gps.getLon()); | ||
| 764 | + row.createCell(5).setCellValue(gps.getLat()); | ||
| 765 | + row.createCell(6).setCellValue(fmtHHmmss.print(gps.getTimestamp())); | ||
| 766 | + row.createCell(7).setCellValue(gps.getSpeed()); | ||
| 765 | } | 767 | } |
| 766 | 768 | ||
| 767 | st = st * 1000; | 769 | st = st * 1000; |
src/main/resources/static/pages/permission/authorize_all/user_auth.html
| @@ -149,7 +149,7 @@ | @@ -149,7 +149,7 @@ | ||
| 149 | var fgs_name_mapp={ | 149 | var fgs_name_mapp={ |
| 150 | '55_3': '上南公司(六分公司)', '55_1': '上南公司(二分公司)', '55_2': '上南公司(三分公司)', '55_4': '上南公司(一分公司)', '55_5': '上南公司(培训部)', | 150 | '55_3': '上南公司(六分公司)', '55_1': '上南公司(二分公司)', '55_2': '上南公司(三分公司)', '55_4': '上南公司(一分公司)', '55_5': '上南公司(培训部)', |
| 151 | '22_2': '金高公司(二分公司)', '22_1': '金高公司(四分公司)', '22_3': '金高公司(三分公司)', '22_5': '金高公司(一分公司)', | 151 | '22_2': '金高公司(二分公司)', '22_1': '金高公司(四分公司)', '22_3': '金高公司(三分公司)', '22_5': '金高公司(一分公司)', |
| 152 | - '26_3': '南汇公司(三分公司)', '26_2': '南汇公司(南汇二分)', '26_1': '南汇公司(南汇一分)', '26_4': '南汇公司(南汇维修公司)', '26_5': '南汇公司(南汇公司)', '26_6': '南汇公司(航头枢纽站)', | 152 | + '26_3': '南汇公司(三分公司)', '26_2': '南汇公司(南汇二分)', '26_1': '南汇公司(南汇一分)', '26_4': '南汇公司(南汇维修公司)', '26_5': '南汇公司(南汇公司)', '26_6': '南汇公司(南汇六分)', |
| 153 | '05_5': '杨高公司(杨高分公司)', '05_6': '杨高公司(周浦分公司)', '05_3': '杨高公司(芦潮港分公司)', '05_1': '杨高公司(川沙分公司)', '05_2': '杨高公司(金桥分公司)', | 153 | '05_5': '杨高公司(杨高分公司)', '05_6': '杨高公司(周浦分公司)', '05_3': '杨高公司(芦潮港分公司)', '05_1': '杨高公司(川沙分公司)', '05_2': '杨高公司(金桥分公司)', |
| 154 | '77_78': '闵行公司', '99_100': '青浦公交','24_1': '一车队', '24_2': '二车队', '24_3': '三车队' | 154 | '77_78': '闵行公司', '99_100': '青浦公交','24_1': '一车队', '24_2': '二车队', '24_3': '三车队' |
| 155 | }; | 155 | }; |
src/main/resources/static/real_control_v2/js/utils/svg_data_convert_bf.js deleted
100644 → 0
| 1 | -var gb_svg_data_convert = (function () { | ||
| 2 | - | ||
| 3 | - /** | ||
| 4 | - * 合并上下行路由 | ||
| 5 | - * type 0 上行 1 下行 2 同名合并 3 异名合并 | ||
| 6 | - * | ||
| 7 | - * enableAttr: 是否启用配置信息 | ||
| 8 | - */ | ||
| 9 | - function mergeRoute(routes, enableAttr, lineCode, loopLine) { | ||
| 10 | - console.log('routesroutes', routes); | ||
| 11 | - //按上下行拆分 | ||
| 12 | - routes = gb_common.groupBy(routes, 'directions'); | ||
| 13 | - var up = routes[0], | ||
| 14 | - down = routes[1]; | ||
| 15 | - //排序 | ||
| 16 | - up.sort(upSort); | ||
| 17 | - down.sort(downSort); | ||
| 18 | - var data = []; | ||
| 19 | - | ||
| 20 | - //根据配置处理一下数据 | ||
| 21 | - if (enableAttr) { | ||
| 22 | - var svgAttr = gb_data_basic.getSvgAttr(lineCode); | ||
| 23 | - if (svgAttr) { | ||
| 24 | - up = filterByAttrs(svgAttr, up); | ||
| 25 | - down = filterByAttrs(svgAttr, down); | ||
| 26 | - } | ||
| 27 | - } | ||
| 28 | - | ||
| 29 | - //环线 只画上行 | ||
| 30 | - if(loopLine){ | ||
| 31 | - for (var j = 0; j < up.length; j++) { | ||
| 32 | - var upS = nvl_get(up, j); | ||
| 33 | - op = { | ||
| 34 | - name: [upS.stationName], | ||
| 35 | - id: [get_station_code(upS)], | ||
| 36 | - type: 0, | ||
| 37 | - stationMark: upS.stationMark | ||
| 38 | - }; | ||
| 39 | - data.push(op); | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - //上下行GPS容器 | ||
| 43 | - $.each(data, function () { | ||
| 44 | - this.gpsUps = []; | ||
| 45 | - this.gpsDowns = []; | ||
| 46 | - }); | ||
| 47 | - | ||
| 48 | - return data; | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - | ||
| 52 | - //同名站点合并 | ||
| 53 | - for (var j = 0; j < up.length; j++) { | ||
| 54 | - var upS = nvl_get(up, j), | ||
| 55 | - downS = nvl_get(down, j), | ||
| 56 | - op = { | ||
| 57 | - name: [upS.stationName], | ||
| 58 | - id: [get_station_code(upS), get_station_code(downS)], | ||
| 59 | - type: 2, | ||
| 60 | - stationMark: upS.stationMark//站点标记 | ||
| 61 | - }; | ||
| 62 | - | ||
| 63 | - if (upS.stationName != downS.stationName) { | ||
| 64 | - //下行站点在上行路由中是否存在 | ||
| 65 | - var dIndex = station_indexof(down, upS, j); | ||
| 66 | - //上行站点在下行路由中是否存在 | ||
| 67 | - var uIndex = station_indexof(up, downS, j); | ||
| 68 | - if (dIndex == -1 || dIndex - j > 4) { | ||
| 69 | - if (uIndex == -1 && dIndex - j < 4) { | ||
| 70 | - op.type = 3; | ||
| 71 | - op.name = [upS.stationName, downS.stationName]; | ||
| 72 | - } | ||
| 73 | - else { | ||
| 74 | - op.type = 0; | ||
| 75 | - op.id = [get_station_code(upS), -1]; | ||
| 76 | - //占位 | ||
| 77 | - down.splice(j, 0, {}); | ||
| 78 | - } | ||
| 79 | - } else { | ||
| 80 | - for (var t = j; t < dIndex - 1; t++) { | ||
| 81 | - var temp = down[t]; | ||
| 82 | - data.push({ | ||
| 83 | - name: [temp.stationName], | ||
| 84 | - type: 1, | ||
| 85 | - id: [get_station_code(temp)] | ||
| 86 | - }); | ||
| 87 | - } | ||
| 88 | - //delete | ||
| 89 | - down.splice(j, dIndex - 1 - j); | ||
| 90 | - j--; | ||
| 91 | - continue; | ||
| 92 | - } | ||
| 93 | - } | ||
| 94 | - data.push(op); | ||
| 95 | - } | ||
| 96 | - | ||
| 97 | - //将上下行挨着的异名站点合并 | ||
| 98 | - var len = data.length - 1, | ||
| 99 | - first, sec; | ||
| 100 | - for (var s = 0; s < len; s++) { | ||
| 101 | - first = data[s]; | ||
| 102 | - sec = data[s + 1]; | ||
| 103 | - | ||
| 104 | - if (first.type == 0 && | ||
| 105 | - sec.type == 1) { | ||
| 106 | - data.splice(s, 2, { | ||
| 107 | - name: [first['name'][0], sec['name'][0]], | ||
| 108 | - type: 3, | ||
| 109 | - id: [first['id'][0], sec['id'][0]] | ||
| 110 | - }); | ||
| 111 | - len--; | ||
| 112 | - } else if (first.type == 1 && sec.type == 0) { | ||
| 113 | - data.splice(s, 2, { | ||
| 114 | - name: [first['name'][0], sec['name'][0]], | ||
| 115 | - type: 3, | ||
| 116 | - id: [first['id'][0], sec['id'][0]] | ||
| 117 | - }); | ||
| 118 | - len--; | ||
| 119 | - } | ||
| 120 | - } | ||
| 121 | - | ||
| 122 | - //上下行GPS容器 | ||
| 123 | - $.each(data, function () { | ||
| 124 | - this.gpsUps = []; | ||
| 125 | - this.gpsDowns = []; | ||
| 126 | - }); | ||
| 127 | - return data; | ||
| 128 | - }; | ||
| 129 | - | ||
| 130 | - var filterByAttrs = function (svgAttr, routes) { | ||
| 131 | - var hideStations = svgAttr.hideStations ? svgAttr.hideStations : []; | ||
| 132 | - var nicknames = svgAttr.nicknames ? svgAttr.nicknames : {}; | ||
| 133 | - var stationCode; | ||
| 134 | - $.each(routes, function (i) { | ||
| 135 | - stationCode = this.stationCode | ||
| 136 | - //要隐藏的站点 | ||
| 137 | - $.each(hideStations, function (j, hide) { | ||
| 138 | - if (stationCode == hide) | ||
| 139 | - delete routes[i]; | ||
| 140 | - }); | ||
| 141 | - | ||
| 142 | - //要重命名的站点 | ||
| 143 | - if (nicknames[this.stationName]) { | ||
| 144 | - this.stationName = nicknames[this.stationName]; | ||
| 145 | - } | ||
| 146 | - }); | ||
| 147 | - | ||
| 148 | - var newRoutes = []; | ||
| 149 | - $.each(routes, function (i, station) { | ||
| 150 | - if(station) | ||
| 151 | - newRoutes.push(station); | ||
| 152 | - }); | ||
| 153 | - | ||
| 154 | - return newRoutes; | ||
| 155 | - }; | ||
| 156 | - | ||
| 157 | - var upSort = function (a, b) { | ||
| 158 | - return a.stationRouteCode - b.stationRouteCode; | ||
| 159 | - }; | ||
| 160 | - | ||
| 161 | - var downSort = function (a, b) { | ||
| 162 | - return b.stationRouteCode - a.stationRouteCode; | ||
| 163 | - }; | ||
| 164 | - | ||
| 165 | - var station_indexof = function (array, station, start) { | ||
| 166 | - var res = -1; | ||
| 167 | - for (var i = start, obj; obj = array[i++];) { | ||
| 168 | - if (obj.stationName == station.stationName) { | ||
| 169 | - res = i; | ||
| 170 | - break; | ||
| 171 | - } | ||
| 172 | - } | ||
| 173 | - return res; | ||
| 174 | - }; | ||
| 175 | - | ||
| 176 | - var get_station_code = function (station) { | ||
| 177 | - return station.stationCode + '_' + station.directions; | ||
| 178 | - }; | ||
| 179 | - | ||
| 180 | - var nvl_get = function (list, index) { | ||
| 181 | - return list[index] == null ? {} : list[index]; | ||
| 182 | - }; | ||
| 183 | - | ||
| 184 | - var groupByStationAndUpdown = function (data) { | ||
| 185 | - //gb_common.groupBy(data, 'stopNo') | ||
| 186 | - var rs = {}, | ||
| 187 | - key; | ||
| 188 | - $.each(data, function () { | ||
| 189 | - key = this['stopNo'] + '_' + this['upDown']; | ||
| 190 | - if (!rs[key]) | ||
| 191 | - rs[key] = []; | ||
| 192 | - | ||
| 193 | - rs[key].push(this); | ||
| 194 | - }); | ||
| 195 | - | ||
| 196 | - return rs; | ||
| 197 | - }; | ||
| 198 | - return {mergeRoute: mergeRoute, groupByStationAndUpdown: groupByStationAndUpdown}; | ||
| 199 | -})(); |