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,6 +16,7 @@ import com.bsth.entity.LineVersions;
16 import com.bsth.entity.directive.D80; 16 import com.bsth.entity.directive.D80;
17 import com.bsth.entity.realcontrol.ScheduleRealInfo; 17 import com.bsth.entity.realcontrol.ScheduleRealInfo;
18 import com.bsth.repository.CarParkRepository; 18 import com.bsth.repository.CarParkRepository;
  19 +import com.bsth.repository.LineRepository;
19 import com.bsth.repository.LineVersionsRepository; 20 import com.bsth.repository.LineVersionsRepository;
20 import com.bsth.repository.StationRepository; 21 import com.bsth.repository.StationRepository;
21 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 22 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
@@ -87,6 +88,9 @@ public class GpsServiceImpl implements GpsService { @@ -87,6 +88,9 @@ public class GpsServiceImpl implements GpsService {
87 @Autowired 88 @Autowired
88 LineVersionsRepository lineVersionsRepository; 89 LineVersionsRepository lineVersionsRepository;
89 90
  91 + @Autowired
  92 + LineRepository lineRepository;
  93 +
90 // 历史gps查询 94 // 历史gps查询
91 @Override 95 @Override
92 public List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions) { 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,50 +232,69 @@ public class GpsServiceImpl implements GpsService {
228 //查询GPS数据 232 //查询GPS数据
229 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); 233 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
230 List<Map<String, Object>> dataList = jdbcTemplate_ms.queryForList(sql.toString()); 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 Float lon, lat; 236 Float lon, lat;
261 Location bdLoc, gdLoc; 237 Location bdLoc, gdLoc;
262 int inOutStop; 238 int inOutStop;
263 long serviceState; 239 long serviceState;
264 ArrivalEntity arrival; 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 Map<String, Object> map = null; 252 Map<String, Object> map = null;
267 for(Map<String, Object> rs : dataList){ 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 serviceState = map_get_long(rs, "SERVICE_STATE"); 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 map = new HashMap<>(); 282 map = new HashMap<>();
273 lon = map_get_float(rs, "LON"); 283 lon = map_get_float(rs, "LON");
274 lat = map_get_float(rs, "LAT"); 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 gdLoc = TransGPS.transformFromWGSToGCJ(TransGPS.LocationMake(lon, lat)); 299 gdLoc = TransGPS.transformFromWGSToGCJ(TransGPS.LocationMake(lon, lat));
277 map.put("gcj_lon", gdLoc.getLng()); 300 map.put("gcj_lon", gdLoc.getLng());
@@ -292,7 +315,7 @@ public class GpsServiceImpl implements GpsService { @@ -292,7 +315,7 @@ public class GpsServiceImpl implements GpsService {
292 315
293 map.put("lineId", map_get_str(rs, "LINE_ID")); 316 map.put("lineId", map_get_str(rs, "LINE_ID"));
294 map.put("speed", map_get_float(rs,"SPEED_GPS")); 317 map.put("speed", map_get_float(rs,"SPEED_GPS"));
295 - 318 + lineSet.add(map_get_str(rs, "LINE_ID"));
296 inOutStop = Integer.parseInt(rs.get("INOUT_STOP").toString()); 319 inOutStop = Integer.parseInt(rs.get("INOUT_STOP").toString());
297 map.put("inout_stop", inOutStop); 320 map.put("inout_stop", inOutStop);
298 321
@@ -310,6 +333,48 @@ public class GpsServiceImpl implements GpsService { @@ -310,6 +333,48 @@ public class GpsServiceImpl implements GpsService {
310 map.put("section_code", map_get_str(rs,"SECTION_CODE")); 333 map.put("section_code", map_get_str(rs,"SECTION_CODE"));
311 list.add(map); 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 Collections.sort(list, new Comparator<Map<String, Object>>() { 379 Collections.sort(list, new Comparator<Map<String, Object>>() {
315 380
@@ -321,6 +386,9 @@ public class GpsServiceImpl implements GpsService { @@ -321,6 +386,9 @@ public class GpsServiceImpl implements GpsService {
321 386
322 rsMap.put("list", list); 387 rsMap.put("list", list);
323 rsMap.put("dcs", dcs); 388 rsMap.put("dcs", dcs);
  389 + rsMap.put("gpsNotValid",gpsNotValidList);
  390 + rsMap.put("lineSwitch",lineSwitch);
  391 + rsMap.put("lonlatZero",gpsEqualsZeroList);
324 return rsMap; 392 return rsMap;
325 } 393 }
326 394
@@ -749,6 +817,9 @@ public class GpsServiceImpl implements GpsService { @@ -749,6 +817,9 @@ public class GpsServiceImpl implements GpsService {
749 rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000)); 817 rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000));
750 rs.put("dcs", gpsMap.get("dcs")); 818 rs.put("dcs", gpsMap.get("dcs"));
751 rs.put("lineVerson",gpsMap.get("lineVerson")); 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 } catch (Exception e) { 823 } catch (Exception e) {
753 logger.error("", e); 824 logger.error("", e);
754 rs.put("status", ResponseCode.ERROR); 825 rs.put("status", ResponseCode.ERROR);
src/main/resources/static/pages/permission/user/authorize.html
@@ -309,15 +309,6 @@ @@ -309,15 +309,6 @@
309 <div class="ct_cont uk-grid-small uk-child-width-expand" uk-grid> 309 <div class="ct_cont uk-grid-small uk-child-width-expand" uk-grid>
310 <div class="role_list uk-width-1-4 "> 310 <div class="role_list uk-width-1-4 ">
311 <div class="uk-card uk-card-default"> 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 <div class="ct-card-body" > 312 <div class="ct-card-body" >
322 <ul class="uk-list uk-list-large uk-list-divider role-list"> 313 <ul class="uk-list uk-list-large uk-list-divider role-list">
323 </ul> 314 </ul>
@@ -326,15 +317,6 @@ @@ -326,15 +317,6 @@
326 </div> 317 </div>
327 <div class="user_list uk-width-1-5 "> 318 <div class="user_list uk-width-1-5 ">
328 <div class="uk-card uk-card-default"> 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 <div class="ct-card-body"> 320 <div class="ct-card-body">
339 <ul class="uk-list uk-list-large user-list"> 321 <ul class="uk-list uk-list-large user-list">
340 </ul> 322 </ul>
@@ -343,7 +325,6 @@ @@ -343,7 +325,6 @@
343 </div> 325 </div>
344 <div class="auth_cont "> 326 <div class="auth_cont ">
345 <div class="uk-card uk-card-default authorize_right_cont"> 327 <div class="uk-card uk-card-default authorize_right_cont">
346 -  
347 </div> 328 </div>
348 </div> 329 </div>
349 </div> 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,7 +29,6 @@ var gb_schedule_table = (function () {
29 29
30 var show = function (cb) { 30 var show = function (cb) {
31 //从服务器获取班次数据 31 //从服务器获取班次数据
32 - debugger  
33 $.get('/realSchedule/lines', { 32 $.get('/realSchedule/lines', {
34 lines: gb_data_basic.line_idx 33 lines: gb_data_basic.line_idx
35 }, function (rs) { 34 }, function (rs) {
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/layout.html
@@ -96,13 +96,21 @@ @@ -96,13 +96,21 @@
96 <dl> 96 <dl>
97 <dd> 97 <dd>
98 {{if item.abnormalType == 'speed'}} 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 {{else if item.abnormalType == 'outbound'}} 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 {{/if}} 114 {{/if}}
107 </dd> 115 </dd>
108 <dd>{{item.st_str}}</dd> 116 <dd>{{item.st_str}}</dd>
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/left.html
@@ -218,7 +218,7 @@ @@ -218,7 +218,7 @@
218 fillTrailTable(rs.list);//填充行车轨迹表格 218 fillTrailTable(rs.list);//填充行车轨迹表格
219 fillArivalStationTable(rs.list);//填充到离站表格 219 fillArivalStationTable(rs.list);//填充到离站表格
220 $('.sum_mileage_span', leftWrap).text('共约 ' + rs.sumMileage + ' 公里'); 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 rs.arrivalData = arrivalData; 223 rs.arrivalData = arrivalData;
224 $('.gps-play-back-panel-v3>div.right-panel .play-back-tools-wrap').trigger('ready-to-play', rs); 224 $('.gps-play-back-panel-v3>div.right-panel .play-back-tools-wrap').trigger('ready-to-play', rs);
@@ -461,14 +461,21 @@ @@ -461,14 +461,21 @@
461 for(var i = 0; i < arguments.length; i ++){ 461 for(var i = 0; i < arguments.length; i ++){
462 array = array.concat(arguments[i]); 462 array = array.concat(arguments[i]);
463 } 463 }
  464 + var i=null;
464 //格式化时间 465 //格式化时间
465 $.each(array, function () { 466 $.each(array, function () {
  467 + if(!this.abnormalType&&this.version){
  468 + i=array.indexOf(this);
  469 + }
466 if(this.st) 470 if(this.st)
467 this.st_str = moment(this.st).format('HH:mm.ss'); 471 this.st_str = moment(this.st).format('HH:mm.ss');
468 if(this.et) 472 if(this.et)
469 this.et_str = moment(this.et).format('HH:mm.ss'); 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 array.sort(function (a, b) { 480 array.sort(function (a, b) {
474 return a.st - b.st; 481 return a.st - b.st;
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
@@ -84,7 +84,6 @@ @@ -84,7 +84,6 @@
84 var currentVersion; 84 var currentVersion;
85 85
86 $('.play-back-tools-wrap', rightWrap).on('ready-to-play', function (e, data) { 86 $('.play-back-tools-wrap', rightWrap).on('ready-to-play', function (e, data) {
87 - debugger  
88 e.stopPropagation(); 87 e.stopPropagation();
89 //reset 88 //reset
90 reset(); 89 reset();
@@ -191,7 +190,6 @@ @@ -191,7 +190,6 @@
191 $('.top-btn-list .play', rightWrap).on('click', function () { 190 $('.top-btn-list .play', rightWrap).on('click', function () {
192 if(toolsDisabled()) 191 if(toolsDisabled())
193 return; 192 return;
194 -debugger  
195 if(!$(this).hasClass('pause')){ 193 if(!$(this).hasClass('pause')){
196 //第一次点击播放,清除一下 194 //第一次点击播放,清除一下
197 if(play_before_flag){ 195 if(play_before_flag){
@@ -344,7 +342,6 @@ debugger @@ -344,7 +342,6 @@ debugger
344 //从localStorage获取路段 342 //从localStorage获取路段
345 routes = JSON.parse(storage.getItem(lineCode+"_"+lineVersion + '_route')); 343 routes = JSON.parse(storage.getItem(lineCode+"_"+lineVersion + '_route'));
346 if(!routes){ 344 if(!routes){
347 - debugger  
348 var name = gb_data_basic.lineCode2NameAll()[lineCode]; 345 var name = gb_data_basic.lineCode2NameAll()[lineCode];
349 notify_err("缺少" + name + "的路段信息,请选择" + name + "进入线调"); 346 notify_err("缺少" + name + "的路段信息,请选择" + name + "进入线调");
350 return; 347 return;