Commit 97a73ceee8d021b7a47e7e2c7c9ecec940b89817

Authored by 娄高锋
1 parent 4f89d8ce

部分车辆在其他公司线路路单营运(特别是疫情期间),加油数据又在原公司做,处理此情况造成的统计值误差问题。

src/main/java/com/bsth/repository/OilInfoRepository.java
1 -package com.bsth.repository;  
2 -  
3 -import com.bsth.entity.OilInfo;  
4 -import org.springframework.data.jpa.repository.Query;  
5 -import org.springframework.data.repository.PagingAndSortingRepository;  
6 -import org.springframework.stereotype.Repository;  
7 -  
8 -import java.util.Date;  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * Created by panzhao on 2017/3/19.  
13 - */  
14 -@Repository  
15 -public interface OilInfoRepository extends PagingAndSortingRepository<OilInfo, Long> {  
16 -  
17 -  
18 - @Query("select oil from OilInfo oil where oil.rq>?1")  
19 - List<OilInfo> findByDateLT(Date rq);  
20 -  
21 - @Query("select oil from OilInfo oil where oil.rq=?1")  
22 - List<OilInfo> findByDate(Date rq);  
23 -} 1 +package com.bsth.repository;
  2 +
  3 +import com.bsth.entity.OilInfo;
  4 +import org.springframework.data.jpa.repository.Query;
  5 +import org.springframework.data.repository.PagingAndSortingRepository;
  6 +import org.springframework.stereotype.Repository;
  7 +
  8 +import java.util.Date;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * Created by panzhao on 2017/3/19.
  13 + */
  14 +@Repository
  15 +public interface OilInfoRepository extends PagingAndSortingRepository<OilInfo, Long> {
  16 +
  17 +
  18 + @Query("select oil from OilInfo oil where oil.rq>?1")
  19 + List<OilInfo> findByDateLT(Date rq);
  20 +
  21 + @Query("select oil from OilInfo oil where oil.rq=?1 and yh > 0")
  22 + List<OilInfo> findByDate(Date rq);
  23 +}
src/main/java/com/bsth/server_rs/dks/DksRestService.java
@@ -424,6 +424,7 @@ public class DksRestService { @@ -424,6 +424,7 @@ public class DksRestService {
424 ArrayListMultimap<String, ElecInfo> elecInfoMap = elecRedisService.findByNbbmGroup1(nbbm2schedules.keySet(), rq); 424 ArrayListMultimap<String, ElecInfo> elecInfoMap = elecRedisService.findByNbbmGroup1(nbbm2schedules.keySet(), rq);
425 Set<String> nbbms = nbbm2schedules.keySet(); 425 Set<String> nbbms = nbbm2schedules.keySet();
426 final List<BusMileage> busMileages = new ArrayList<>(); 426 final List<BusMileage> busMileages = new ArrayList<>();
  427 + Set<String> keys = new HashSet<String>(); //保存已添加的车号
427 for (String nbbm : nbbms) { 428 for (String nbbm : nbbms) {
428 List<ScheduleRealInfo> scheduleRealInfos = nbbm2schedules.get(nbbm); 429 List<ScheduleRealInfo> scheduleRealInfos = nbbm2schedules.get(nbbm);
429 if (scheduleRealInfos.size() == 0) { 430 if (scheduleRealInfos.size() == 0) {
@@ -447,10 +448,14 @@ public class DksRestService { @@ -447,10 +448,14 @@ public class DksRestService {
447 List<ElecInfo> elecInfos = elecInfoMap.get(nbbm); 448 List<ElecInfo> elecInfos = elecInfoMap.get(nbbm);
448 Double yh = 0.0, dh = 0.0; 449 Double yh = 0.0, dh = 0.0;
449 for (OilInfo oilInfo : oilInfos) { 450 for (OilInfo oilInfo : oilInfos) {
450 - yh = Arith.add(yh, oilInfo.getYh()); 451 + if(scheduleRealInfo.getGsBm().equals(oilInfo.getSsgsdm())){
  452 + yh = Arith.add(yh, oilInfo.getYh());
  453 + }
451 } 454 }
452 for (ElecInfo elecInfo : elecInfos) { 455 for (ElecInfo elecInfo : elecInfos) {
453 - dh = Arith.add(dh, elecInfo.getHd()); 456 + if(scheduleRealInfo.getGsBm().equals(elecInfo.getSsgsdm())){
  457 + dh = Arith.add(dh, elecInfo.getHd());
  458 + }
454 } 459 }
455 busMileage.setYh(yh); 460 busMileage.setYh(yh);
456 busMileage.setDh(dh); 461 busMileage.setDh(dh);
@@ -458,77 +463,91 @@ public class DksRestService { @@ -458,77 +463,91 @@ public class DksRestService {
458 busMileage.setCompanyCode(scheduleRealInfo.getGsBm()); 463 busMileage.setCompanyCode(scheduleRealInfo.getGsBm());
459 464
460 busMileages.add(busMileage); 465 busMileages.add(busMileage);
  466 + keys.add(busMileage.getCompanyCode() + "_" + nbbm);
461 } 467 }
  468 +
462 for(String nbbm : oilInfoMap.keys()){ //有加油没路单的车。 469 for(String nbbm : oilInfoMap.keys()){ //有加油没路单的车。
463 - if(nbbms.contains(nbbm)){  
464 - List<ScheduleRealInfo> scheduleRealInfos = nbbm2schedules.get(nbbm);  
465 - if (scheduleRealInfos.size() > 0) {  
466 - continue;  
467 - } 470 + Set<String> gs_Set = new HashSet<String>();
  471 + for (OilInfo oilInfo : oilInfoMap.get(nbbm)) {
  472 + gs_Set.add(oilInfo.getSsgsdm());
  473 + }
  474 + for(String gs : gs_Set){
  475 + if(keys.contains(gs + "_" + nbbm)){
  476 + continue;
  477 + }
  478 + BusMileage busMileage = new BusMileage();
  479 + busMileage.setScheduleDate(rq);
  480 + busMileage.setNbbm(nbbm);
  481 + busMileage.setJhlc(0d);
  482 + busMileage.setSjjhlc(0d);
  483 + busMileage.setSjcclc(0d);
  484 + busMileage.setSjjclc(0d);
  485 + busMileage.setYylc(0d);
  486 + busMileage.setKslc(0d);
  487 + busMileage.setCjlc(0d);
  488 + busMileage.setLblc(0d);
  489 + busMileage.setZjlc(0d);
  490 + busMileage.setZlc(0d);
  491 + List<OilInfo> oilInfos = oilInfoMap.get(nbbm);
  492 + List<ElecInfo> elecInfos = elecInfoMap.containsKey(nbbm)?elecInfoMap.get(nbbm):new ArrayList<ElecInfo>();
  493 + Double yh = 0.0, dh = 0.0;
  494 + for (OilInfo oilInfo : oilInfos) {
  495 + if(gs.equals(oilInfo.getSsgsdm())){
  496 + yh = Arith.add(yh, oilInfo.getYh());
  497 + }
  498 + }
  499 + for (ElecInfo elecInfo : elecInfos) {
  500 + if(gs.equals(elecInfo.getSsgsdm())){
  501 + dh = Arith.add(dh, elecInfo.getHd());
  502 + }
  503 + }
  504 + busMileage.setYh(yh);
  505 + busMileage.setDh(dh);
  506 + busMileage.setCompany(BusinessCodeData.code2Name.get(gs));
  507 + busMileage.setCompanyCode(gs);
  508 +
  509 + busMileages.add(busMileage);
  510 + keys.add(busMileage.getCompanyCode() + "_" + nbbm);
468 } 511 }
469 - BusMileage busMileage = new BusMileage();  
470 - busMileage.setScheduleDate(rq);  
471 - busMileage.setNbbm(nbbm);  
472 - busMileage.setJhlc(0d);  
473 - busMileage.setSjjhlc(0d);  
474 - busMileage.setSjcclc(0d);  
475 - busMileage.setSjjclc(0d);  
476 - busMileage.setYylc(0d);  
477 - busMileage.setKslc(0d);  
478 - busMileage.setCjlc(0d);  
479 - busMileage.setLblc(0d);  
480 - busMileage.setZjlc(0d);  
481 - busMileage.setZlc(0d);  
482 - List<OilInfo> oilInfos = oilInfoMap.get(nbbm);  
483 - List<ElecInfo> elecInfos = elecInfoMap.containsKey(nbbm)?elecInfoMap.get(nbbm):new ArrayList<ElecInfo>();  
484 - Double yh = 0.0, dh = 0.0;  
485 - for (OilInfo oilInfo : oilInfos) {  
486 - yh = Arith.add(yh, oilInfo.getYh());  
487 - busMileage.setCompany(BusinessCodeData.code2Name.get(oilInfo.getSsgsdm()));  
488 - busMileage.setCompanyCode(oilInfo.getSsgsdm());  
489 - }  
490 - for (ElecInfo elecInfo : elecInfos) {  
491 - dh = Arith.add(dh, elecInfo.getHd());  
492 - }  
493 - busMileage.setYh(yh);  
494 - busMileage.setDh(dh);  
495 -  
496 - busMileages.add(busMileage);  
497 } 512 }
  513 +
498 for(String nbbm : elecInfoMap.keys()){ //有加电没路单的车。 514 for(String nbbm : elecInfoMap.keys()){ //有加电没路单的车。
499 - if(nbbms.contains(nbbm)){  
500 - List<ScheduleRealInfo> scheduleRealInfos = nbbm2schedules.get(nbbm);  
501 - if (scheduleRealInfos.size() > 0) {  
502 - continue;  
503 - } 515 + Set<String> gs_Set = new HashSet<String>();
  516 + for (ElecInfo elecInfo : elecInfoMap.get(nbbm)) {
  517 + gs_Set.add(elecInfo.getSsgsdm());
504 } 518 }
505 - if(oilInfoMap.keys().contains(nbbm)){  
506 - continue; 519 + for(String gs : gs_Set){
  520 + if(keys.contains(gs + "_" + nbbm)){
  521 + continue;
  522 + }
  523 + BusMileage busMileage = new BusMileage();
  524 + busMileage.setScheduleDate(rq);
  525 + busMileage.setNbbm(nbbm);
  526 + busMileage.setJhlc(0d);
  527 + busMileage.setSjjhlc(0d);
  528 + busMileage.setSjcclc(0d);
  529 + busMileage.setSjjclc(0d);
  530 + busMileage.setYylc(0d);
  531 + busMileage.setKslc(0d);
  532 + busMileage.setCjlc(0d);
  533 + busMileage.setLblc(0d);
  534 + busMileage.setZjlc(0d);
  535 + busMileage.setZlc(0d);
  536 + List<ElecInfo> elecInfos = elecInfoMap.get(nbbm);
  537 + Double yh = 0.0, dh = 0.0;
  538 + for (ElecInfo elecInfo : elecInfos) {
  539 + if(gs.equals(elecInfo.getSsgsdm())){
  540 + dh = Arith.add(dh, elecInfo.getHd());
  541 + }
  542 + }
  543 + busMileage.setYh(yh);
  544 + busMileage.setDh(dh);
  545 + busMileage.setCompany(BusinessCodeData.code2Name.get(gs));
  546 + busMileage.setCompanyCode(gs);
  547 +
  548 + busMileages.add(busMileage);
  549 + keys.add(busMileage.getCompanyCode() + "_" + nbbm);
507 } 550 }
508 - BusMileage busMileage = new BusMileage();  
509 - busMileage.setScheduleDate(rq);  
510 - busMileage.setNbbm(nbbm);  
511 - busMileage.setJhlc(0d);  
512 - busMileage.setSjjhlc(0d);  
513 - busMileage.setSjcclc(0d);  
514 - busMileage.setSjjclc(0d);  
515 - busMileage.setYylc(0d);  
516 - busMileage.setKslc(0d);  
517 - busMileage.setCjlc(0d);  
518 - busMileage.setLblc(0d);  
519 - busMileage.setZjlc(0d);  
520 - busMileage.setZlc(0d);  
521 - List<ElecInfo> elecInfos = elecInfoMap.get(nbbm);  
522 - Double yh = 0.0, dh = 0.0;  
523 - for (ElecInfo elecInfo : elecInfos) {  
524 - dh = Arith.add(dh, elecInfo.getHd());  
525 - busMileage.setCompany(BusinessCodeData.code2Name.get(elecInfo.getSsgsdm()));  
526 - busMileage.setCompanyCode(elecInfo.getSsgsdm());  
527 - }  
528 - busMileage.setYh(yh);  
529 - busMileage.setDh(dh);  
530 -  
531 - busMileages.add(busMileage);  
532 } 551 }
533 552
534 //编程式事务 553 //编程式事务