diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java index cd771a5a9f..23f44b8184 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java @@ -462,19 +462,34 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl> groupByStatus = categoryProjectExists.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getStatus)); + List twoResult = new ArrayList<>(); if (!CollectionUtils.isEmpty(groupByStatus.get(false))){ - List entities = ConvertUtils.sourceToTarget(groupByStatus.get(false), ScreenProjectCategoryOrgDailyEntity.class); - entities.forEach(e -> { - e.setOrgId(entity.getAgencyId()); - }); - result.addAll(entities); + twoResult.addAll(groupByStatus.get(false)); } if (!CollectionUtils.isEmpty(categoryProjectNotExists)){ - List entities = ConvertUtils.sourceToTarget(categoryProjectNotExists, ScreenProjectCategoryOrgDailyEntity.class); - entities.forEach(e -> { - e.setOrgId(entity.getAgencyId()); + twoResult.addAll(categoryProjectNotExists); + } + if (!CollectionUtils.isEmpty(twoResult)){ + Map> groupOrigin = twoResult.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getCategoryOriginCustomerId)); + List finalResult1 = result; + groupOrigin.forEach((originCustomerId, list) -> { + // 父客户存在但是未使用的分类 + 父客户不存在的分类,根据categoryCode分组 + Map> sonGroupByCode = list.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getCategoryCode)); + sonGroupByCode.forEach((code,list2) -> { + ScreenProjectCategoryOrgDailyEntity e = new ScreenProjectCategoryOrgDailyEntity(); + e.setCustomerId(customerId); + e.setCategoryOriginCustomerId(originCustomerId); + e.setCategoryCode(code); + e.setOrgId(entity.getAgencyId()); + e.setProjectTotal(CollectionUtils.isEmpty(list2) ? NumConstant.ZERO : list2.stream().collect(Collectors.summingInt(CategoryProjectResultDTO::getProjectTotal))); + e.setPid(entity.getPid()); + e.setPids(StringUtils.isEmpty(entity.getPids()) ? NumConstant.ZERO_STR : entity.getPids()); + // 因为根据categoryCode分组,所以level都一样,取第一条的 + e.setLevel(list2.get(NumConstant.ZERO).getLevel()); + finalResult1.add(e); + }); }); - result.addAll(entities); + } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml index e6293d01f2..cdce01974a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -81,7 +81,7 @@ AND od.pid = '0' AND od.date_id = #{dateId} - GROUP BY categoryCode,od.pid + GROUP BY categoryCode,od.ORG_ID