Commit 97a73ceee8d021b7a47e7e2c7c9ecec940b89817
1 parent
4f89d8ce
部分车辆在其他公司线路路单营运(特别是疫情期间),加油数据又在原公司做,处理此情况造成的统计值误差问题。
Showing
2 changed files
with
108 additions
and
89 deletions
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 | //编程式事务 | ... | ... |