Commit 2283456a93ba4ae9b2372ebfde0560e97c5e7fb3

Authored by 娄高锋
1 parent f49348db

LGF 时刻表分析负数时间处理

src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
@@ -77,6 +77,48 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -77,6 +77,48 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
77 schedule.setsGh(rs.getString("s_gh")); 77 schedule.setsGh(rs.getString("s_gh"));
78 schedule.setsName(rs.getString("s_name")); 78 schedule.setsName(rs.getString("s_name"));
79 schedule.setSpId(rs.getLong("sp_id")); 79 schedule.setSpId(rs.getLong("sp_id"));
  80 +
  81 + if(schedule.getFcsj() != null && schedule.getZdsj() != null){
  82 + String[] split1 = schedule.getFcsj().split(":");
  83 + String[] split2 = schedule.getZdsj().split(":");
  84 + int fcsj = Integer.valueOf(split1[0]) * 60 + Integer.valueOf(split1[1]);
  85 + int zdsj = Integer.valueOf(split2[0]) * 60 + Integer.valueOf(split2[1]);
  86 + if(fcsj > zdsj){
  87 + zdsj += 1440;
  88 + schedule.setZdsj((zdsj/60>9?zdsj/60:"0"+zdsj/60) + ":" + (zdsj%60>9?zdsj%60:"0"+zdsj%60));
  89 + }
  90 + }
  91 + if(schedule.getFcsj() != null){
  92 + String[] split = schedule.getFcsj().split(":");
  93 + int fcsj = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  94 + schedule.setFcsjT((long)fcsj);
  95 + }
  96 + if(schedule.getZdsj() != null){
  97 + String[] split = schedule.getZdsj().split(":");
  98 + int zdsj = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  99 + schedule.setZdsjT((long)zdsj);
  100 + }
  101 + if(schedule.getFcsjActual() != null && schedule.getZdsjActual() != null){
  102 + String[] split1 = schedule.getFcsjActual().split(":");
  103 + String[] split2 = schedule.getZdsjActual().split(":");
  104 + int fcsjA = Integer.valueOf(split1[0]) * 60 + Integer.valueOf(split1[1]);
  105 + int zdsjA = Integer.valueOf(split2[0]) * 60 + Integer.valueOf(split2[1]);
  106 + if(fcsjA > zdsjA){
  107 + zdsjA += 1440;
  108 + schedule.setZdsjActual((zdsjA/60>9?zdsjA/60:"0"+zdsjA/60) + ":" + (zdsjA%60>9?zdsjA%60:"0"+zdsjA%60));
  109 + }
  110 + }
  111 + if(schedule.getFcsjActual() != null){
  112 + String[] split = schedule.getFcsjActual().split(":");
  113 + int fcsjA = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  114 + schedule.setFcsjActualTime((long)fcsjA);
  115 + }
  116 + if(schedule.getZdsjActual() != null){
  117 + String[] split = schedule.getZdsjActual().split(":");
  118 + int zdsjA = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  119 + schedule.setZdsjActualTime((long)zdsjA);
  120 + }
  121 +
80 return schedule; 122 return schedule;
81 } 123 }
82 }); 124 });
@@ -259,11 +301,15 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -259,11 +301,15 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
259 Long wgfEnd = 0l; 301 Long wgfEnd = 0l;
260 try { 302 try {
261 //早晚高峰时段 303 //早晚高峰时段
262 - zgfBegin = sdf.parse(date + "06:30").getTime();  
263 - zgfEnd = sdf.parse(date + "08:30").getTime();  
264 - wgfBegin = sdf.parse(date + "16:00").getTime();  
265 - wgfEnd = sdf.parse(date + "18:00").getTime();  
266 - } catch (ParseException e) { 304 +// zgfBegin = sdf.parse(date + "06:30").getTime();
  305 +// zgfEnd = sdf.parse(date + "08:30").getTime();
  306 +// wgfBegin = sdf.parse(date + "16:00").getTime();
  307 +// wgfEnd = sdf.parse(date + "18:00").getTime();
  308 + zgfBegin = 6l * 60l + 30l;
  309 + zgfEnd = 8l * 60l + 30l;
  310 + wgfBegin = 16l * 60l + 0l;
  311 + wgfEnd = 18l * 60l + 0l;
  312 + } catch (Exception e) {
267 // TODO Auto-generated catch block 313 // TODO Auto-generated catch block
268 e.printStackTrace(); 314 e.printStackTrace();
269 } 315 }
@@ -276,7 +322,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -276,7 +322,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
276 int jhsb = 0, sjsb = 0, jhmb = 0, sjmb = 0; 322 int jhsb = 0, sjsb = 0, jhmb = 0, sjmb = 0;
277 int jhzgf = 0, sjzgf = 0, jhwgf = 0, sjwgf = 0; 323 int jhzgf = 0, sjzgf = 0, jhwgf = 0, sjwgf = 0;
278 for(ScheduleRealInfo schedule : keyMap.get(key)){ 324 for(ScheduleRealInfo schedule : keyMap.get(key)){
279 - schedule.setFcsjAll(schedule.getFcsj()); 325 +// schedule.setFcsjAll(schedule.getFcsj());
280 326
281 //早晚高峰时段执行率 327 //早晚高峰时段执行率
282 if(schedule.getFcsjT() >= zgfBegin && schedule.getFcsjT() <= zgfEnd){ 328 if(schedule.getFcsjT() >= zgfBegin && schedule.getFcsjT() <= zgfEnd){
@@ -299,13 +345,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -299,13 +345,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
299 if(schedule.getFcsjActual() != null){ 345 if(schedule.getFcsjActual() != null){
300 if(schedule.getBcType().equals("out")) 346 if(schedule.getBcType().equals("out"))
301 sjcc++; 347 sjcc++;
302 - schedule.setFcsjActualAll(schedule.getFcsjActual());  
303 - if(schedule.getFcsjActualTime() - schedule.getFcsjT() < -60000){ 348 +// schedule.setFcsjActualAll(schedule.getFcsjActual());
  349 + if(schedule.getFcsjActualTime() - schedule.getFcsjT() < -1){
304 if(schedule.getXlDir().equals("0")) 350 if(schedule.getXlDir().equals("0"))
305 upfk++; 351 upfk++;
306 else if (schedule.getXlDir().equals("1")) 352 else if (schedule.getXlDir().equals("1"))
307 dnfk++; 353 dnfk++;
308 - } else if(schedule.getFcsjActualTime() - schedule.getFcsjT() > 180000){ 354 + } else if(schedule.getFcsjActualTime() - schedule.getFcsjT() > 3){
309 if(schedule.getXlDir().equals("0")) 355 if(schedule.getXlDir().equals("0"))
310 upfm++; 356 upfm++;
311 else if (schedule.getXlDir().equals("1")) 357 else if (schedule.getXlDir().equals("1"))
@@ -314,15 +360,16 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -314,15 +360,16 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
314 } 360 }
315 //到站时间快慢 361 //到站时间快慢
316 if(schedule.getZdsjActual() != null && schedule.getBcsj() != null){ 362 if(schedule.getZdsjActual() != null && schedule.getBcsj() != null){
317 - schedule.setZdsjActualAll(schedule.getZdsjActual());  
318 - schedule.setDfsjAll(schedule.getDfsj());  
319 - schedule.calcEndTime();  
320 - if(schedule.getZdsjActualTime() - schedule.getZdsjT() < -60000){ 363 +// schedule.setZdsjActualAll(schedule.getZdsjActual());
  364 +// schedule.setDfsjAll(schedule.getDfsj());
  365 +// schedule.calcEndTime();
  366 + schedule.setZdsjT(schedule.getFcsjT() + schedule.getBcsj());
  367 + if(schedule.getZdsjActualTime() - schedule.getZdsjT() < -1){
321 if(schedule.getXlDir().equals("0")) 368 if(schedule.getXlDir().equals("0"))
322 updk++; 369 updk++;
323 else if (schedule.getXlDir().equals("1")) 370 else if (schedule.getXlDir().equals("1"))
324 dndk++; 371 dndk++;
325 - } else if(schedule.getZdsjActualTime() - schedule.getZdsjT() > 180000){ 372 + } else if(schedule.getZdsjActualTime() - schedule.getZdsjT() > 3){
326 if(schedule.getXlDir().equals("0")) 373 if(schedule.getXlDir().equals("0"))
327 updm++; 374 updm++;
328 else if (schedule.getXlDir().equals("1")) 375 else if (schedule.getXlDir().equals("1"))
@@ -337,7 +384,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -337,7 +384,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
337 } 384 }
338 } 385 }
339 386
340 - if(schedule.getBcType().equals("normal")){ 387 + if(!schedule.getBcType().equals("in") && !schedule.getBcType().equals("out")){
341 String clZbh = schedule.getClZbh(); 388 String clZbh = schedule.getClZbh();
342 if(!listMap.containsKey(clZbh)) 389 if(!listMap.containsKey(clZbh))
343 listMap.put(clZbh, new ArrayList<ScheduleRealInfo>()); 390 listMap.put(clZbh, new ArrayList<ScheduleRealInfo>());
@@ -366,12 +413,12 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -366,12 +413,12 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
366 // System.out.println(moban.getFcsjActual() + "-末班-" + moban.getFcsj()); 413 // System.out.println(moban.getFcsjActual() + "-末班-" + moban.getFcsj());
367 jhsb++; 414 jhsb++;
368 if(shouban.getFcsjActual() != null){ 415 if(shouban.getFcsjActual() != null){
369 - if(shouban.getFcsjActualTime() - shouban.getFcsjT() >= -60000 && shouban.getFcsjActualTime() - shouban.getFcsjT() <= 180000) 416 + if(shouban.getFcsjActualTime() - shouban.getFcsjT() >= -1 && shouban.getFcsjActualTime() - shouban.getFcsjT() <= 3)
370 sjsb++; 417 sjsb++;
371 } 418 }
372 jhmb++; 419 jhmb++;
373 if(moban.getFcsjActual() != null){ 420 if(moban.getFcsjActual() != null){
374 - if(moban.getFcsjActualTime() - moban.getFcsjT() >= -60000 && moban.getFcsjActualTime() - moban.getFcsjT() <= 180000) 421 + if(moban.getFcsjActualTime() - moban.getFcsjT() >= -1 && moban.getFcsjActualTime() - moban.getFcsjT() <= 3)
375 sjmb++; 422 sjmb++;
376 } 423 }
377 424
@@ -452,7 +499,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -452,7 +499,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
452 if(company.length() != 0){ 499 if(company.length() != 0){
453 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'"; 500 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
454 } 501 }
455 - sql += " and bc_type = 'normal'"; 502 + sql += " and bc_type != 'in' and bc_type != 'out'";
456 503
457 list = jdbcTemplate.query(sql, 504 list = jdbcTemplate.query(sql,
458 new RowMapper<ScheduleRealInfo>(){ 505 new RowMapper<ScheduleRealInfo>(){
@@ -471,13 +518,39 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -471,13 +518,39 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
471 schedule.setBcsj(rs.getInt("bcsj")); 518 schedule.setBcsj(rs.getInt("bcsj"));
472 schedule.setQdzName(rs.getString("qdz_name")); 519 schedule.setQdzName(rs.getString("qdz_name"));
473 schedule.setSpId(rs.getLong("sp_id")); 520 schedule.setSpId(rs.getLong("sp_id"));
  521 +
  522 + if(schedule.getFcsj() != null && schedule.getZdsj() != null){
  523 + String[] split1 = schedule.getFcsj().split(":");
  524 + String[] split2 = schedule.getZdsj().split(":");
  525 + int fcsj = Integer.valueOf(split1[0]) * 60 + Integer.valueOf(split1[1]);
  526 + int zdsj = Integer.valueOf(split2[0]) * 60 + Integer.valueOf(split2[1]);
  527 + if(zdsj < fcsj){
  528 + zdsj += 1440;
  529 + schedule.setZdsj((zdsj/60>9?zdsj/60:"0"+zdsj/60) + ":" + (zdsj%60>9?zdsj%60:"0"+zdsj%60));
  530 + }
  531 + schedule.setFcsjT((long)fcsj);
  532 + schedule.setZdsjT((long)zdsj);
  533 + }
  534 + if(schedule.getFcsjActual() != null && schedule.getZdsjActual() != null){
  535 + String[] split3 = schedule.getFcsjActual().split(":");
  536 + String[] split4 = schedule.getZdsjActual().split(":");
  537 + int fcsjA = Integer.valueOf(split3[0]) * 60 + Integer.valueOf(split3[1]);
  538 + int zdsjA = Integer.valueOf(split4[0]) * 60 + Integer.valueOf(split4[1]);
  539 + if(fcsjA > zdsjA){
  540 + zdsjA += 1440;
  541 + schedule.setZdsjActual((zdsjA/60>9?zdsjA/60:"0"+zdsjA/60) + ":" + (zdsjA%60>9?zdsjA%60:"0"+zdsjA%60));
  542 + }
  543 + schedule.setFcsjActualTime((long)fcsjA);
  544 + schedule.setZdsjActualTime((long)zdsjA);
  545 + }
  546 +
474 return schedule; 547 return schedule;
475 } 548 }
476 }); 549 });
477 550
478 if(model.length() != 0){ 551 if(model.length() != 0){
479 -// sql = "select * from bsth_c_s_ttinfo_detail where ttinfo = '"+model+"' and bc_type = 'normal'";  
480 - sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type = 'normal'"; 552 +// sql = "select * from bsth_c_s_ttinfo_detail where ttinfo = '"+model+"' and bc_type != 'in' and bc_type != 'out'";
  553 + sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out'";
481 554
482 ttList = jdbcTemplate.query(sql, 555 ttList = jdbcTemplate.query(sql,
483 new RowMapper<Long>(){ 556 new RowMapper<Long>(){
@@ -784,7 +857,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -784,7 +857,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
784 List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date); 857 List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date);
785 858
786 for(ScheduleRealInfo schedule : list){ 859 for(ScheduleRealInfo schedule : list){
787 - if(!schedule.getBcType().equals("normal")) 860 + if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out"))
788 continue; 861 continue;
789 String key = schedule.getXlName(); 862 String key = schedule.getXlName();
790 if(!keyMap.containsKey(key)) 863 if(!keyMap.containsKey(key))
src/main/resources/static/pages/forms/statement/lineTimeAnaly.html
@@ -417,7 +417,7 @@ @@ -417,7 +417,7 @@
417 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc1}}</td> 417 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc1}}</td>
418 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc2}}</td> 418 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc2}}</td>
419 {{/if}} 419 {{/if}}
420 - <td>{{obj.wdfz}}</td> 420 + <td class="merge">{{obj.wdfz}}</td>
421 <td>{{obj.jhys}}</td> 421 <td>{{obj.jhys}}</td>
422 <td>{{obj.sjys}}</td> 422 <td>{{obj.sjys}}</td>
423 <td>{{obj.yssjMin}}</td> 423 <td>{{obj.yssjMin}}</td>