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,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 | //编程式事务 |