Commit 601e2bce8b7cb766fef509deb3ca356d0f2c67ca

Authored by 娄高锋
1 parent 3d52808e

给谢灿的首末班准点接口,计划首末班次的班次类型从计划排班获取,实际首末班次的班次类型从实际路单获取。

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++;
... ...