|
|
@@ -56,46 +56,45 @@ public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapp
|
|
|
;
|
|
|
List<PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonalList = this.selectJoinList(PbVXsxxsfytbPersonal.class, pbVXsxxsfytbMPJLambdaWrapper);
|
|
|
|
|
|
- BigDecimal totalConsumption = new BigDecimal("0");
|
|
|
-
|
|
|
- Map<String, List<PbVXsxxsfytbPersonal>> PbVXsxxsfytbPersonalBySemesterMap = pbVXsxxsfytbPersonalList.stream()
|
|
|
- .collect(Collectors.groupingBy(PbVXsxxsfytbPersonal::getBaseSemester));
|
|
|
-
|
|
|
- List<PbVXsxxsfytbPersonalMap> pbVXsxxsfytbPersonalMapList = new ArrayList<>();
|
|
|
- for (Map.Entry<String, List<PbVXsxxsfytbPersonal>> entry : PbVXsxxsfytbPersonalBySemesterMap.entrySet()) {
|
|
|
- String baseSemester = entry.getKey();
|
|
|
- List<PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonals = entry.getValue();
|
|
|
-
|
|
|
- Map<String, PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonalByItemMap = new HashMap<>();
|
|
|
- for (PbVXsxxsfytbPersonal pbVXsxxsfytbPersonal : pbVXsxxsfytbPersonals){
|
|
|
- //统计总的消费金额
|
|
|
- totalConsumption = totalConsumption.add(pbVXsxxsfytbPersonal.getFactrecarmny());
|
|
|
- totalConsumption = totalConsumption.add(pbVXsxxsfytbPersonal.getArrearagemny());
|
|
|
-
|
|
|
- //将相同缴费项目合并
|
|
|
- if (pbVXsxxsfytbPersonalByItemMap.containsKey(pbVXsxxsfytbPersonal.getFeeitemcode())){
|
|
|
- PbVXsxxsfytbPersonal p = pbVXsxxsfytbPersonalByItemMap.get(pbVXsxxsfytbPersonal.getFeeitemcode());
|
|
|
- p.setFactar(p.getFactar().add(pbVXsxxsfytbPersonal.getFactar()));
|
|
|
- p.setFactrecarmny(p.getFactrecarmny().add(pbVXsxxsfytbPersonal.getFactrecarmny()));
|
|
|
- p.setAdjustmny(p.getAdjustmny().add(pbVXsxxsfytbPersonal.getAdjustmny()));
|
|
|
- p.setArrearagemny(p.getArrearagemny().add(pbVXsxxsfytbPersonal.getArrearagemny()));
|
|
|
- }else {
|
|
|
- pbVXsxxsfytbPersonalByItemMap.put(pbVXsxxsfytbPersonal.getFeeitemcode(), pbVXsxxsfytbPersonal);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- PbVXsxxsfytbPersonalMap pbVXsxxsfytbPersonalMap = new PbVXsxxsfytbPersonalMap();
|
|
|
- pbVXsxxsfytbPersonalMap.setBaseSemester(baseSemester);
|
|
|
- pbVXsxxsfytbPersonalMap.setBaseSemesterCn(pbVXsxxsfytbPersonals.get(0).getBaseSemesterCn());
|
|
|
- pbVXsxxsfytbPersonalMap.setPbVXsxxsfytbPersonalList(pbVXsxxsfytbPersonals);
|
|
|
- pbVXsxxsfytbPersonalMapList.add(pbVXsxxsfytbPersonalMap);
|
|
|
- }
|
|
|
-
|
|
|
- PersonalPortraitFeeInformationVo p = new PersonalPortraitFeeInformationVo();
|
|
|
- p.setTotalConsumption(totalConsumption);
|
|
|
- p.setPbVXsxxsfytbPersonalMapList(pbVXsxxsfytbPersonalMapList);
|
|
|
-
|
|
|
- return p;
|
|
|
+ // 统计总消费金额
|
|
|
+ BigDecimal totalConsumption = pbVXsxxsfytbPersonalList.stream()
|
|
|
+ .map(p -> p.getFactrecarmny().add(p.getArrearagemny()))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ // 按学期分组并处理数据
|
|
|
+ List<PbVXsxxsfytbPersonalMap> pbVXsxxsfytbPersonalMapList = pbVXsxxsfytbPersonalList.stream()
|
|
|
+ .collect(Collectors.groupingBy(PbVXsxxsfytbPersonal::getBaseSemester))
|
|
|
+ .entrySet().stream()
|
|
|
+ .map(entry -> {
|
|
|
+ String baseSemester = entry.getKey();
|
|
|
+ List<PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonals = entry.getValue();
|
|
|
+
|
|
|
+ // 合并相同缴费项目
|
|
|
+ Map<String, PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonalByItemMap = pbVXsxxsfytbPersonals.stream()
|
|
|
+ .collect(Collectors.toMap(PbVXsxxsfytbPersonal::getFeeitemcode, p -> p, (existing, replacement) -> {
|
|
|
+ existing.setFactar(existing.getFactar().add(replacement.getFactar()));
|
|
|
+ existing.setFactrecarmny(existing.getFactrecarmny().add(replacement.getFactrecarmny()));
|
|
|
+ existing.setAdjustmny(existing.getAdjustmny().add(replacement.getAdjustmny()));
|
|
|
+ existing.setArrearagemny(existing.getArrearagemny().add(replacement.getArrearagemny()));
|
|
|
+ return existing;
|
|
|
+ }));
|
|
|
+
|
|
|
+ // 构建PbVXsxxsfytbPersonalMap对象
|
|
|
+ PbVXsxxsfytbPersonalMap pbVXsxxsfytbPersonalMap = new PbVXsxxsfytbPersonalMap();
|
|
|
+ pbVXsxxsfytbPersonalMap.setBaseSemester(baseSemester);
|
|
|
+ pbVXsxxsfytbPersonalMap.setBaseSemesterCn(pbVXsxxsfytbPersonals.get(0).getBaseSemesterCn());
|
|
|
+ pbVXsxxsfytbPersonalMap.setPbVXsxxsfytbPersonalList(new ArrayList<>(pbVXsxxsfytbPersonalByItemMap.values()));
|
|
|
+
|
|
|
+ return pbVXsxxsfytbPersonalMap;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 构建返回对象
|
|
|
+ PersonalPortraitFeeInformationVo personalPortraitFeeInformationVo = new PersonalPortraitFeeInformationVo();
|
|
|
+ personalPortraitFeeInformationVo.setTotalConsumption(totalConsumption);
|
|
|
+ personalPortraitFeeInformationVo.setPbVXsxxsfytbPersonalMapList(pbVXsxxsfytbPersonalMapList);
|
|
|
+
|
|
|
+ return personalPortraitFeeInformationVo;
|
|
|
}
|
|
|
|
|
|
@Override
|