Commit 601e2bce8b7cb766fef509deb3ca356d0f2c67ca
1 parent
3d52808e
给谢灿的首末班准点接口,计划首末班次的班次类型从计划排班获取,实际首末班次的班次类型从实际路单获取。
Showing
1 changed file
with
93 additions
and
31 deletions
src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
| ... | ... | @@ -132,7 +132,20 @@ public class BigscreenService { |
| 132 | 132 | if(s.getBcType().equals("ldks")){ |
| 133 | 133 | fage=true; |
| 134 | 134 | } |
| 135 | - | |
| 135 | + return fage; | |
| 136 | + } | |
| 137 | + | |
| 138 | + public static boolean isInOut(String bcType){ | |
| 139 | + boolean fage=false; | |
| 140 | + if(bcType.equals("in")){ | |
| 141 | + fage=true; | |
| 142 | + } | |
| 143 | + if(bcType.equals("out")){ | |
| 144 | + fage=true; | |
| 145 | + } | |
| 146 | + if(bcType.equals("ldks")){ | |
| 147 | + fage=true; | |
| 148 | + } | |
| 136 | 149 | return fage; |
| 137 | 150 | } |
| 138 | 151 | |
| ... | ... | @@ -3260,8 +3273,9 @@ public class BigscreenService { |
| 3260 | 3273 | Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>(); |
| 3261 | 3274 | Map<String, Map<String, Object>> lineXX = new HashMap<String, Map<String, Object>>(); |
| 3262 | 3275 | for(ScheduleRealInfo s : findAll){ |
| 3263 | - if(s.getBcType().equals("region") || s.getBcType().equals("venting") | |
| 3264 | - || s.getBcType().equals("major") || isInOut(s)){ | |
| 3276 | +// if(s.getBcType().equals("region") || s.getBcType().equals("venting") | |
| 3277 | +// || s.getBcType().equals("major") || isInOut(s)){ | |
| 3278 | + if(s.getBcType().equals("region") || isInOut(s)){ | |
| 3265 | 3279 | continue; //区间班次、直放班次、放站班次与空驶班次不做首末班统计 |
| 3266 | 3280 | } |
| 3267 | 3281 | if(!("77".equals(s.getGsBm())) && yyLine.containsKey(s.getXlBm())){ //只统计营运线路 |
| ... | ... | @@ -3368,17 +3382,29 @@ public class BigscreenService { |
| 3368 | 3382 | //上行 |
| 3369 | 3383 | if(listjh0.size() > 0){ |
| 3370 | 3384 | ScheduleRealInfo jhsb = listjh0.get(0); //计划首班 |
| 3385 | + for(int f = 0; f < listjh0.size(); f++){ | |
| 3386 | + jhsb = listjh0.get(f); //计划首班 | |
| 3387 | + String bcType = jhsb.getBcType(); | |
| 3388 | + List<String> oList = scheduleRealInfoRepository.findoOriginalType(jhsb.getSpId()); | |
| 3389 | + if(oList.size() > 0 && oList.get(0) != null | |
| 3390 | + && oList.get(0).trim().length() > 0){ | |
| 3391 | + bcType = oList.get(0).trim(); | |
| 3392 | + } | |
| 3393 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3394 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3395 | + continue; | |
| 3396 | + } | |
| 3397 | + break; | |
| 3398 | + } | |
| 3371 | 3399 | if("1".equals(sfss) ? createDate.getTime() > jhsb.getFcsjT() : true){ |
| 3372 | 3400 | jhFirst++; |
| 3373 | -// if(listsj0.size() > 0){ | |
| 3374 | -// ScheduleRealInfo sjsb = listsj0.get(0); //实际首班 | |
| 3375 | -// long wd = sjsb.getFcsjActualTime() - jhsb.getFcsjT(); //误点,快1慢2 | |
| 3376 | -// if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ | |
| 3377 | -// sjzdFirst++; | |
| 3378 | -// } | |
| 3379 | -// } | |
| 3380 | 3401 | for(int i = 0; i < listsj0.size(); i++){ |
| 3381 | 3402 | ScheduleRealInfo sjsb = listsj0.get(i); //实际首班 |
| 3403 | + String bcType = sjsb.getBcType(); | |
| 3404 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3405 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3406 | + continue; | |
| 3407 | + } | |
| 3382 | 3408 | long wd = sjsb.getFcsjActualTime() - jhsb.getFcsjT(); //误点,快1慢2 |
| 3383 | 3409 | if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ |
| 3384 | 3410 | sjzdFirst++; |
| ... | ... | @@ -3389,17 +3415,29 @@ public class BigscreenService { |
| 3389 | 3415 | |
| 3390 | 3416 | if(listjh0.size() > 1){ |
| 3391 | 3417 | ScheduleRealInfo jhmb = listjh0.get(listjh0.size() - 1); //计划末班 |
| 3418 | + for(int l = listjh0.size() - 1; l >= 0; l--){ | |
| 3419 | + jhmb = listjh0.get(l); //计划首班 | |
| 3420 | + String bcType = jhmb.getBcType(); | |
| 3421 | + List<String> oList = scheduleRealInfoRepository.findoOriginalType(jhmb.getSpId()); | |
| 3422 | + if(oList.size() > 0 && oList.get(0) != null | |
| 3423 | + && oList.get(0).trim().length() > 0){ | |
| 3424 | + bcType = oList.get(0).trim(); | |
| 3425 | + } | |
| 3426 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3427 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3428 | + continue; | |
| 3429 | + } | |
| 3430 | + break; | |
| 3431 | + } | |
| 3392 | 3432 | if("1".equals(sfss) ? createDate.getTime() > jhmb.getFcsjT() : true){ |
| 3393 | 3433 | jhLast++; |
| 3394 | -// if(listsj0.size() > 1){ | |
| 3395 | -// ScheduleRealInfo sjmb = listsj0.get(listsj0.size() - 1); //实际末班 | |
| 3396 | -// long wd = sjmb.getFcsjActualTime() - jhmb.getFcsjT(); //误点,快1慢2 | |
| 3397 | -// if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ | |
| 3398 | -// sjzdLast++; | |
| 3399 | -// } | |
| 3400 | -// } | |
| 3401 | 3434 | for(int i = listsj0.size() - 1; i >= 0; i--){ |
| 3402 | 3435 | ScheduleRealInfo sjmb = listsj0.get(i); //实际末班 |
| 3436 | + String bcType = sjmb.getBcType(); | |
| 3437 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3438 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3439 | + continue; | |
| 3440 | + } | |
| 3403 | 3441 | long wd = sjmb.getFcsjActualTime() - jhmb.getFcsjT(); //误点,快1慢2 |
| 3404 | 3442 | if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ |
| 3405 | 3443 | sjzdLast++; |
| ... | ... | @@ -3413,17 +3451,29 @@ public class BigscreenService { |
| 3413 | 3451 | //下行 |
| 3414 | 3452 | if(listjh1.size() > 0){ |
| 3415 | 3453 | ScheduleRealInfo jhsb = listjh1.get(0); //计划首班 |
| 3454 | + for(int f = 0; f < listjh1.size(); f++){ | |
| 3455 | + jhsb = listjh1.get(f); //计划首班 | |
| 3456 | + String bcType = jhsb.getBcType(); | |
| 3457 | + List<String> oList = scheduleRealInfoRepository.findoOriginalType(jhsb.getSpId()); | |
| 3458 | + if(oList.size() > 0 && oList.get(0) != null | |
| 3459 | + && oList.get(0).trim().length() > 0){ | |
| 3460 | + bcType = oList.get(0).trim(); | |
| 3461 | + } | |
| 3462 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3463 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3464 | + continue; | |
| 3465 | + } | |
| 3466 | + break; | |
| 3467 | + } | |
| 3416 | 3468 | if("1".equals(sfss) ? createDate.getTime() > jhsb.getFcsjT() : true){ |
| 3417 | 3469 | jhFirst++; |
| 3418 | -// if(listsj1.size() > 0){ | |
| 3419 | -// ScheduleRealInfo sjsb = listsj1.get(0); //实际首班 | |
| 3420 | -// long wd = sjsb.getFcsjActualTime() - jhsb.getFcsjT(); //误点,快1慢2 | |
| 3421 | -// if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ | |
| 3422 | -// sjzdFirst++; | |
| 3423 | -// } | |
| 3424 | -// } | |
| 3425 | 3470 | for(int i = 0; i < listsj1.size(); i++){ |
| 3426 | 3471 | ScheduleRealInfo sjsb = listsj1.get(i); //实际首班 |
| 3472 | + String bcType = sjsb.getBcType(); | |
| 3473 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3474 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3475 | + continue; | |
| 3476 | + } | |
| 3427 | 3477 | long wd = sjsb.getFcsjActualTime() - jhsb.getFcsjT(); //误点,快1慢2 |
| 3428 | 3478 | if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ |
| 3429 | 3479 | sjzdFirst++; |
| ... | ... | @@ -3434,17 +3484,29 @@ public class BigscreenService { |
| 3434 | 3484 | |
| 3435 | 3485 | if(listjh1.size() > 1){ |
| 3436 | 3486 | ScheduleRealInfo jhmb = listjh1.get(listjh1.size() - 1); //计划末班 |
| 3487 | + for(int l = listjh1.size() - 1; l >= 0; l--){ | |
| 3488 | + jhmb = listjh1.get(l); //计划首班 | |
| 3489 | + String bcType = jhmb.getBcType(); | |
| 3490 | + List<String> oList = scheduleRealInfoRepository.findoOriginalType(jhmb.getSpId()); | |
| 3491 | + if(oList.size() > 0 && oList.get(0) != null | |
| 3492 | + && oList.get(0).trim().length() > 0){ | |
| 3493 | + bcType = oList.get(0).trim(); | |
| 3494 | + } | |
| 3495 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3496 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3497 | + continue; | |
| 3498 | + } | |
| 3499 | + break; | |
| 3500 | + } | |
| 3437 | 3501 | if("1".equals(sfss) ? createDate.getTime() > jhmb.getFcsjT() : true){ |
| 3438 | 3502 | jhLast++; |
| 3439 | -// if(listsj1.size() > 1){ | |
| 3440 | -// ScheduleRealInfo sjmb = listsj1.get(listsj1.size() - 1); //实际末班 | |
| 3441 | -// long wd = sjmb.getFcsjActualTime() - jhmb.getFcsjT(); //误点,快1慢2 | |
| 3442 | -// if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ | |
| 3443 | -// sjzdLast++; | |
| 3444 | -// } | |
| 3445 | -// } | |
| 3446 | 3503 | for(int i = listsj1.size() - 1; i >= 0; i--){ |
| 3447 | 3504 | ScheduleRealInfo sjmb = listsj1.get(i); //实际末班 |
| 3505 | + String bcType = sjmb.getBcType(); | |
| 3506 | + if(bcType.equals("region") || bcType.equals("venting") | |
| 3507 | + || bcType.equals("major") || isInOut(bcType)){ | |
| 3508 | + continue; | |
| 3509 | + } | |
| 3448 | 3510 | long wd = sjmb.getFcsjActualTime() - jhmb.getFcsjT(); //误点,快1慢2 |
| 3449 | 3511 | if(-1l * 1000 * 60 <= wd && wd <= 2l * 1000 * 60){ |
| 3450 | 3512 | sjzdLast++; | ... | ... |