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 424 ArrayListMultimap<String, ElecInfo> elecInfoMap = elecRedisService.findByNbbmGroup1(nbbm2schedules.keySet(), rq);
425 425 Set<String> nbbms = nbbm2schedules.keySet();
426 426 final List<BusMileage> busMileages = new ArrayList<>();
  427 + Set<String> keys = new HashSet<String>(); //保存已添加的车号
427 428 for (String nbbm : nbbms) {
428 429 List<ScheduleRealInfo> scheduleRealInfos = nbbm2schedules.get(nbbm);
429 430 if (scheduleRealInfos.size() == 0) {
... ... @@ -447,10 +448,14 @@ public class DksRestService {
447 448 List<ElecInfo> elecInfos = elecInfoMap.get(nbbm);
448 449 Double yh = 0.0, dh = 0.0;
449 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 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 460 busMileage.setYh(yh);
456 461 busMileage.setDh(dh);
... ... @@ -458,77 +463,91 @@ public class DksRestService {
458 463 busMileage.setCompanyCode(scheduleRealInfo.getGsBm());
459 464  
460 465 busMileages.add(busMileage);
  466 + keys.add(busMileage.getCompanyCode() + "_" + nbbm);
461 467 }
  468 +
462 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 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 //编程式事务
... ...