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 77 schedule.setsGh(rs.getString("s_gh"));
78 78 schedule.setsName(rs.getString("s_name"));
79 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 122 return schedule;
81 123 }
82 124 });
... ... @@ -259,11 +301,15 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
259 301 Long wgfEnd = 0l;
260 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 313 // TODO Auto-generated catch block
268 314 e.printStackTrace();
269 315 }
... ... @@ -276,7 +322,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
276 322 int jhsb = 0, sjsb = 0, jhmb = 0, sjmb = 0;
277 323 int jhzgf = 0, sjzgf = 0, jhwgf = 0, sjwgf = 0;
278 324 for(ScheduleRealInfo schedule : keyMap.get(key)){
279   - schedule.setFcsjAll(schedule.getFcsj());
  325 +// schedule.setFcsjAll(schedule.getFcsj());
280 326  
281 327 //早晚高峰时段执行率
282 328 if(schedule.getFcsjT() >= zgfBegin && schedule.getFcsjT() <= zgfEnd){
... ... @@ -299,13 +345,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
299 345 if(schedule.getFcsjActual() != null){
300 346 if(schedule.getBcType().equals("out"))
301 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 350 if(schedule.getXlDir().equals("0"))
305 351 upfk++;
306 352 else if (schedule.getXlDir().equals("1"))
307 353 dnfk++;
308   - } else if(schedule.getFcsjActualTime() - schedule.getFcsjT() > 180000){
  354 + } else if(schedule.getFcsjActualTime() - schedule.getFcsjT() > 3){
309 355 if(schedule.getXlDir().equals("0"))
310 356 upfm++;
311 357 else if (schedule.getXlDir().equals("1"))
... ... @@ -314,15 +360,16 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
314 360 }
315 361 //到站时间快慢
316 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 368 if(schedule.getXlDir().equals("0"))
322 369 updk++;
323 370 else if (schedule.getXlDir().equals("1"))
324 371 dndk++;
325   - } else if(schedule.getZdsjActualTime() - schedule.getZdsjT() > 180000){
  372 + } else if(schedule.getZdsjActualTime() - schedule.getZdsjT() > 3){
326 373 if(schedule.getXlDir().equals("0"))
327 374 updm++;
328 375 else if (schedule.getXlDir().equals("1"))
... ... @@ -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 388 String clZbh = schedule.getClZbh();
342 389 if(!listMap.containsKey(clZbh))
343 390 listMap.put(clZbh, new ArrayList<ScheduleRealInfo>());
... ... @@ -366,12 +413,12 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
366 413 // System.out.println(moban.getFcsjActual() + "-末班-" + moban.getFcsj());
367 414 jhsb++;
368 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 417 sjsb++;
371 418 }
372 419 jhmb++;
373 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 422 sjmb++;
376 423 }
377 424  
... ... @@ -452,7 +499,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
452 499 if(company.length() != 0){
453 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 504 list = jdbcTemplate.query(sql,
458 505 new RowMapper<ScheduleRealInfo>(){
... ... @@ -471,13 +518,39 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
471 518 schedule.setBcsj(rs.getInt("bcsj"));
472 519 schedule.setQdzName(rs.getString("qdz_name"));
473 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 547 return schedule;
475 548 }
476 549 });
477 550  
478 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 555 ttList = jdbcTemplate.query(sql,
483 556 new RowMapper<Long>(){
... ... @@ -784,7 +857,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
784 857 List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date);
785 858  
786 859 for(ScheduleRealInfo schedule : list){
787   - if(!schedule.getBcType().equals("normal"))
  860 + if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out"))
788 861 continue;
789 862 String key = schedule.getXlName();
790 863 if(!keyMap.containsKey(key))
... ...
src/main/resources/static/pages/forms/statement/lineTimeAnaly.html
... ... @@ -417,7 +417,7 @@
417 417 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc1}}</td>
418 418 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc2}}</td>
419 419 {{/if}}
420   - <td>{{obj.wdfz}}</td>
  420 + <td class="merge">{{obj.wdfz}}</td>
421 421 <td>{{obj.jhys}}</td>
422 422 <td>{{obj.sjys}}</td>
423 423 <td>{{obj.yssjMin}}</td>
... ...