Commit 6303b954f46e46b13f109f36192cf3adfc60c4ae

Authored by lizhuojun
1 parent 98eb12d0

线调更新

src/main/java/com/bsth/service/gps/GpsServiceImpl.java
... ... @@ -16,6 +16,7 @@ import com.bsth.entity.LineVersions;
16 16 import com.bsth.entity.directive.D80;
17 17 import com.bsth.entity.realcontrol.ScheduleRealInfo;
18 18 import com.bsth.repository.CarParkRepository;
  19 +import com.bsth.repository.LineRepository;
19 20 import com.bsth.repository.LineVersionsRepository;
20 21 import com.bsth.repository.StationRepository;
21 22 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
... ... @@ -87,6 +88,9 @@ public class GpsServiceImpl implements GpsService {
87 88 @Autowired
88 89 LineVersionsRepository lineVersionsRepository;
89 90  
  91 + @Autowired
  92 + LineRepository lineRepository;
  93 +
90 94 // 历史gps查询
91 95 @Override
92 96 public List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions) {
... ... @@ -228,50 +232,69 @@ public class GpsServiceImpl implements GpsService {
228 232 //查询GPS数据
229 233 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
230 234 List<Map<String, Object>> dataList = jdbcTemplate_ms.queryForList(sql.toString());
231   - if (!dataList.isEmpty()){
232 235  
233   - int lineId=Integer.parseInt(map_get_str(dataList.get(0), "LINE_ID"));
234   - List<LineVersions> lvs=lineVersionsRepository.findBylineId(lineId);
235   - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
236   - List<Map<String,Object>> vlist=new ArrayList<>();
237   - Map<String,Object> vMap;
238   - if (lvs!=null&&!lvs.isEmpty()){
239   - for (LineVersions lv : lvs) {
240   - vMap=new HashMap();
241   - Long sd=lv.getStartDate().getTime();
242   - Long ed=lv.getEndDate().getTime();
243   - if (sd<st&&et<ed){
244   - vMap.put("version",lv.getVersions());
245   - vMap.put("vtime","all");
246   - vlist.add(vMap);
247   - }else if(sd<st&&et>ed&&st<ed){
248   - vMap.put("version",lv.getVersions());
249   - vMap.put("endTime",lv.getEndDate().getTime());
250   - vlist.add(vMap);
251   - }else if(st<sd&&et<ed&&sd<et){
252   - vMap.put("version",lv.getVersions());
253   - vMap.put("startTime",lv.getStartDate().getTime());
254   - vlist.add(vMap);
255   - }
256   - }
257   - }
258   - rsMap.put("lineVerson",vlist);
259   - }
260 236 Float lon, lat;
261 237 Location bdLoc, gdLoc;
262 238 int inOutStop;
263 239 long serviceState;
264 240 ArrivalEntity arrival;
265   -
  241 + Set<String> lineSet=new HashSet();
  242 + String firstLineCode="";
  243 + List<Map<String,Object>> lineSwitch=new ArrayList<>();
  244 +
  245 + List<Map> gpsNotValidList=new ArrayList();
  246 + List<Map> versionSwitchList=new ArrayList();
  247 + List<Map> gpsEqualsZeroList=new ArrayList();
  248 + Map<String,Object> zeroMap=null;
  249 + Map<String,Object> gpsNotValidMap=null;
  250 + boolean isFirstNotValid=true;
  251 + boolean isFirstLonlatZero=true;
266 252 Map<String, Object> map = null;
267 253 for(Map<String, Object> rs : dataList){
  254 + int index=dataList.indexOf(rs);
  255 + if (index< dataList.size()-1&&!map_get_str( rs,"LINE_ID").equals(map_get_str( dataList.get(index+1),"LINE_ID"))){
  256 + Map<String,Object> LSmap=new HashMap<>();
  257 + String name=lineRepository.findOne(Integer.valueOf(map_get_str( rs,"LINE_ID"))).getName();
  258 + String NextName=lineRepository.findOne(Integer.valueOf(map_get_str( dataList.get(index+1),"LINE_ID"))).getName();
  259 + LSmap.put("abnormalType","linesSwitch");
  260 + LSmap.put("line_line",name+"-->"+NextName);
  261 + LSmap.put("st",map_get_long(rs, "TS"));
  262 + LSmap.put("et",index== dataList.size()-1?map_get_long(rs, "TS"):map_get_long( dataList.get(index+1), "TS"));
  263 + lineSwitch.add(LSmap);
  264 + }
268 265 serviceState = map_get_long(rs, "SERVICE_STATE");
269   - if(getGpsValid(serviceState) == 1)
270   - continue;
  266 + if(getGpsValid(serviceState) == 1){
  267 + if (isFirstNotValid) {
  268 + gpsNotValidMap=new HashMap<>();
  269 + gpsNotValidMap.put("abnormalType","gpsNotValid");
  270 + gpsNotValidMap.put("st",map_get_long(rs,"TS"));
  271 + isFirstNotValid=false;
  272 + }
  273 + if (index== dataList.size()-1||index< dataList.size()-1&&getGpsValid(map_get_long(dataList.get(index+1), "SERVICE_STATE"))!=1){
  274 + gpsNotValidMap.put("et",map_get_long(rs,"TS"));
  275 + gpsNotValidList.add(gpsNotValidMap);
  276 + isFirstNotValid=true;
  277 + gpsNotValidMap=null;
  278 + }
  279 + }
  280 + //continue;
271 281  
272 282 map = new HashMap<>();
273 283 lon = map_get_float(rs, "LON");
274 284 lat = map_get_float(rs, "LAT");
  285 + if (lon==0||lat==0){
  286 + if (isFirstLonlatZero){
  287 + zeroMap=new HashMap<>();
  288 + zeroMap.put("abnormalType","gpsZero");
  289 + zeroMap.put("st",map_get_long(rs,"TS"));
  290 + isFirstLonlatZero=false;
  291 + }
  292 + if (index<dataList.size()-1&&(map_get_float(dataList.get(index+1),"LON")!=0&&map_get_float(dataList.get(index+1),"LAT")!=0)){
  293 + zeroMap.put("et",map_get_long(rs,"TS"));
  294 + gpsEqualsZeroList.add(zeroMap);
  295 + isFirstLonlatZero=true;
  296 + }
  297 + }
275 298 // 高德坐标
276 299 gdLoc = TransGPS.transformFromWGSToGCJ(TransGPS.LocationMake(lon, lat));
277 300 map.put("gcj_lon", gdLoc.getLng());
... ... @@ -292,7 +315,7 @@ public class GpsServiceImpl implements GpsService {
292 315  
293 316 map.put("lineId", map_get_str(rs, "LINE_ID"));
294 317 map.put("speed", map_get_float(rs,"SPEED_GPS"));
295   -
  318 + lineSet.add(map_get_str(rs, "LINE_ID"));
296 319 inOutStop = Integer.parseInt(rs.get("INOUT_STOP").toString());
297 320 map.put("inout_stop", inOutStop);
298 321  
... ... @@ -310,6 +333,48 @@ public class GpsServiceImpl implements GpsService {
310 333 map.put("section_code", map_get_str(rs,"SECTION_CODE"));
311 334 list.add(map);
312 335 }
  336 +
  337 + if (lineSet.size()>0){
  338 + for (String s : lineSet) {
  339 + int lineId=Integer.parseInt(s);
  340 + List<LineVersions> lvs=lineVersionsRepository.findBylineId(lineId);
  341 + List<Map<String,Object>> vlist=new ArrayList<>();
  342 + Map<String,Object> vMap;
  343 + Long qt=0L;
  344 + if (lvs!=null&&!lvs.isEmpty()){
  345 + for (LineVersions lv : lvs) {
  346 + vMap=new HashMap();
  347 + Long sd=lv.getStartDate().getTime();
  348 + Long ed=lv.getEndDate().getTime();
  349 + if (sd<st&&et<ed){
  350 + vMap.put("version",lv.getVersions());
  351 + vMap.put("vtime","all");
  352 + vlist.add(vMap);
  353 + }else if(sd<st&&et>ed&&st<ed){
  354 + vMap.put("version",lv.getVersions());
  355 + vMap.put("endTime",lv.getEndDate().getTime());
  356 + vMap.put("abnormalType","versionSwitch");
  357 + vMap.put("st",lv.getEndDate().getTime());
  358 + //vMap.put("et",lvs.indexOf(lv)==lvs.size()-1?lv.getEndDate().getTime():lvs.get(lvs.indexOf(lv)+1).getStartDate().getTime());
  359 + qt=lv.getEndDate().getTime();
  360 + vlist.add(vMap);
  361 + }else if(st<sd&&et<ed&&sd<et){
  362 + vMap.put("version",lv.getVersions());
  363 + vMap.put("startTime",lv.getStartDate().getTime());
  364 + vlist.add(vMap);
  365 + }
  366 + }
  367 + }
  368 + rsMap.put("lineVerson",vlist);
  369 + if (vlist.size()>1){
  370 + Map<String,Object> VSmap=new HashMap<>();
  371 + VSmap.put("abnormalType","vserionSwitch");
  372 + VSmap.put("st",qt);
  373 + versionSwitchList.add(VSmap);
  374 + }
  375 + }
  376 +
  377 + }
313 378 // 按时间排序
314 379 Collections.sort(list, new Comparator<Map<String, Object>>() {
315 380  
... ... @@ -321,6 +386,9 @@ public class GpsServiceImpl implements GpsService {
321 386  
322 387 rsMap.put("list", list);
323 388 rsMap.put("dcs", dcs);
  389 + rsMap.put("gpsNotValid",gpsNotValidList);
  390 + rsMap.put("lineSwitch",lineSwitch);
  391 + rsMap.put("lonlatZero",gpsEqualsZeroList);
324 392 return rsMap;
325 393 }
326 394  
... ... @@ -749,6 +817,9 @@ public class GpsServiceImpl implements GpsService {
749 817 rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000));
750 818 rs.put("dcs", gpsMap.get("dcs"));
751 819 rs.put("lineVerson",gpsMap.get("lineVerson"));
  820 + rs.put("gpsInvalid",gpsMap.get("gpsNotValid"));
  821 + rs.put("gpslineSwitch",gpsMap.get("lineSwitch"));
  822 + rs.put("gpslonlatex",gpsMap.get("lonlatZero"));
752 823 } catch (Exception e) {
753 824 logger.error("", e);
754 825 rs.put("status", ResponseCode.ERROR);
... ...
src/main/resources/static/pages/permission/user/authorize.html
... ... @@ -309,15 +309,6 @@
309 309 <div class="ct_cont uk-grid-small uk-child-width-expand" uk-grid>
310 310 <div class="role_list uk-width-1-4 ">
311 311 <div class="uk-card uk-card-default">
312   - <form>
313   - <div class="uk-margin">
314   - <div class="uk-inline" >
315   - <!--<span class="uk-form-icon uk-form-icon-flip" uk-icon="icon: search"></span>-->
316   - <!--<input class="uk-input role_search_input" type="text" placeholder="搜索角色">-->
317   - </div>
318   - </div>
319   - </form>
320   -
321 312 <div class="ct-card-body" >
322 313 <ul class="uk-list uk-list-large uk-list-divider role-list">
323 314 </ul>
... ... @@ -326,15 +317,6 @@
326 317 </div>
327 318 <div class="user_list uk-width-1-5 ">
328 319 <div class="uk-card uk-card-default">
329   - <form>
330   - <div class="uk-margin">
331   - <div class="uk-inline" >
332   - <!--<span class="uk-form-icon uk-form-icon-flip" uk-icon="icon: search"></span>-->
333   - <!--<input class="uk-input user_search_input" type="text" placeholder="搜索用户">-->
334   - </div>
335   - </div>
336   - </form>
337   -
338 320 <div class="ct-card-body">
339 321 <ul class="uk-list uk-list-large user-list">
340 322 </ul>
... ... @@ -343,7 +325,6 @@
343 325 </div>
344 326 <div class="auth_cont ">
345 327 <div class="uk-card uk-card-default authorize_right_cont">
346   -
347 328 </div>
348 329 </div>
349 330 </div>
... ...
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
... ... @@ -29,7 +29,6 @@ var gb_schedule_table = (function () {
29 29  
30 30 var show = function (cb) {
31 31 //从服务器获取班次数据
32   - debugger
33 32 $.get('/realSchedule/lines', {
34 33 lines: gb_data_basic.line_idx
35 34 }, function (rs) {
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/layout.html
... ... @@ -96,13 +96,21 @@
96 96 <dl>
97 97 <dd>
98 98 {{if item.abnormalType == 'speed'}}
99   - {{if item.speed>=100}}
100   - 速度异常
101   - {{else}}
102   - 超速({{item.speed}})
103   - {{/if}}
  99 + {{if item.speed>=100}}
  100 + 速度异常
  101 + {{else}}
  102 + 超速({{item.speed}})
  103 + {{/if}}
104 104 {{else if item.abnormalType == 'outbound'}}
105 105 越界
  106 + {{else if item.abnormalType == 'gpsNotValid'}}
  107 + gps无效
  108 + {{else if item.abnormalType == 'linesSwitch'}}
  109 + <span style="font-size:12px;-webkit-transform:scale(0.9);display:block;text-indent: 5px;">{{item.line_line}}</span>
  110 + {{else if item.abnormalType == 'versionSwitch'}}
  111 + 线路版本切换
  112 + {{else if item.abnormalType == 'gpsZero'}}
  113 + 经纬度为0
106 114 {{/if}}
107 115 </dd>
108 116 <dd>{{item.st_str}}</dd>
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/left.html
... ... @@ -218,7 +218,7 @@
218 218 fillTrailTable(rs.list);//填充行车轨迹表格
219 219 fillArivalStationTable(rs.list);//填充到离站表格
220 220 $('.sum_mileage_span', leftWrap).text('共约 ' + rs.sumMileage + ' 公里');
221   - fillAbnormalTable(rs['outboundList'], rs['speedList']);//填充异常信息表格
  221 + fillAbnormalTable(rs['outboundList'], rs['speedList'],rs['gpsInvalid'],rs['gpslineSwitch'],rs['lineVerson'],rs['gpslonlatex']);//填充异常信息表格
222 222 //准备播放
223 223 rs.arrivalData = arrivalData;
224 224 $('.gps-play-back-panel-v3>div.right-panel .play-back-tools-wrap').trigger('ready-to-play', rs);
... ... @@ -461,14 +461,21 @@
461 461 for(var i = 0; i < arguments.length; i ++){
462 462 array = array.concat(arguments[i]);
463 463 }
  464 + var i=null;
464 465 //格式化时间
465 466 $.each(array, function () {
  467 + if(!this.abnormalType&&this.version){
  468 + i=array.indexOf(this);
  469 + }
466 470 if(this.st)
467 471 this.st_str = moment(this.st).format('HH:mm.ss');
468 472 if(this.et)
469 473 this.et_str = moment(this.et).format('HH:mm.ss');
470 474 });
471 475  
  476 + if(i){
  477 + array.splice(i,1);
  478 + }
472 479 //排序
473 480 array.sort(function (a, b) {
474 481 return a.st - b.st;
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
... ... @@ -84,7 +84,6 @@
84 84 var currentVersion;
85 85  
86 86 $('.play-back-tools-wrap', rightWrap).on('ready-to-play', function (e, data) {
87   - debugger
88 87 e.stopPropagation();
89 88 //reset
90 89 reset();
... ... @@ -191,7 +190,6 @@
191 190 $('.top-btn-list .play', rightWrap).on('click', function () {
192 191 if(toolsDisabled())
193 192 return;
194   -debugger
195 193 if(!$(this).hasClass('pause')){
196 194 //第一次点击播放,清除一下
197 195 if(play_before_flag){
... ... @@ -344,7 +342,6 @@ debugger
344 342 //从localStorage获取路段
345 343 routes = JSON.parse(storage.getItem(lineCode+"_"+lineVersion + '_route'));
346 344 if(!routes){
347   - debugger
348 345 var name = gb_data_basic.lineCode2NameAll()[lineCode];
349 346 notify_err("缺少" + name + "的路段信息,请选择" + name + "进入线调");
350 347 return;
... ...