From 47b2f5bda621c97f16ee258bd6c4e845e419d7c8 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 16 Aug 2021 13:38:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=86=E7=B1=BB=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScreenProjectCategoryOrgDailyDao.java | 9 ++++++ .../ScreenProjectCategoryOrgDailyEntity.java | 4 +++ ...eenProjectCategoryOrgDailyServiceImpl.java | 32 ++++++++++++++++--- .../ScreenProjectCategoryOrgDailyDao.xml | 24 ++++++++++++++ 4 files changed, 65 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java index df66aca920..d591f56b2b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java @@ -75,4 +75,13 @@ public interface ScreenProjectCategoryOrgDailyDao extends BaseDao orgIds); + + /** + * @Description 计算平阴县的分类时使用,查询内部客户组织的项目分类 + * @Param dateId + * @Param orgIds + * @author zxc + * @date 2021/8/16 10:36 上午 + */ + List selectSelfAgencyCategory(@Param("dateId") String dateId,@Param("orgIds")List orgIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java index 5c097997a6..eb656c6bc7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java @@ -19,6 +19,7 @@ package com.epmet.entity.evaluationindex.screen; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.EqualsAndHashCode; @@ -79,4 +80,7 @@ public class ScreenProjectCategoryOrgDailyEntity extends BaseEpmetEntity { * 分类等级1、2.... */ private Integer level; + + @JsonIgnore + private Boolean useStatus = false; } 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 14402b1f86..44436cbe95 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 @@ -413,7 +413,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl> groupByCategoryCode = categoryProjectResultDTOS.stream().collect(Collectors.groupingBy(CategoryProjectResultDTO::getCategoryCode)); // 这时的result集合要清空,因为被上边使用 【result = ConvertUtils.sourceToTarget(categoryProjectResultDTOS,ScreenProjectCategoryOrgDailyEntity.class);】 result.clear(); - List finalResult = result; + List finalResult = new ArrayList<>(); groupByCategoryCode.forEach((code, list) -> { ScreenProjectCategoryOrgDailyEntity e = new ScreenProjectCategoryOrgDailyEntity(); e.setCustomerId(customerId); @@ -428,7 +428,32 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl entities = ConvertUtils.sourceToTarget(sonResult, ScreenProjectCategoryOrgDailyEntity.class); - result.addAll(entities); + finalResult.addAll(entities); + } + Map> groupByLevel = agencyIdList.stream().collect(Collectors.groupingBy(CustomerAgencyInfoResultDTO::getLevel)); + List levelAgencyInfo = groupByLevel.get(level); + // 计算内部客户的分类 + if (!CollectionUtils.isEmpty(levelAgencyInfo)){ + List orgIdss = levelAgencyInfo.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); + orgIds.addAll(orgIdss); + List selfOrgCategory = baseDao.selectSelfAgencyCategory(dateId, orgIdss); + if (!CollectionUtils.isEmpty(selfOrgCategory)){ + List selfResult = ConvertUtils.sourceToTarget(selfOrgCategory, ScreenProjectCategoryOrgDailyEntity.class); + selfResult.forEach(s -> { + finalResult.forEach(f -> { + if (s.getCategoryCode().equals(f.getCategoryCode())){ + s.setProjectTotal(s.getProjectTotal() + f.getProjectTotal()); + f.setUseStatus(true); + } + }); + }); + result.addAll(selfResult); + } + } + Map> groupByStatus = finalResult.stream().collect(Collectors.groupingBy(ScreenProjectCategoryOrgDailyEntity::getUseStatus)); + List falseList = groupByStatus.get(false); + if (!CollectionUtils.isEmpty(falseList)){ + result.addAll(falseList); } // 添加此 锦水、孔村、榆山 orgId,删除时使用 orgIds.add(PingYinConstant.JIN_SHUI_AGENCY_ID); @@ -441,9 +466,8 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl levelAgencyInfo = groupByLevel.get(level); if (!CollectionUtils.isEmpty(levelAgencyInfo)) { List orgIdss = levelAgencyInfo.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); - orgIds.addAll(orgIdss); // 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】 - List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId); + List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIdss, customerId); if (!CollectionUtils.isEmpty(result)) { if (!CollectionUtils.isEmpty(screenProjectCategory)) { result.forEach(r -> { 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 0210980d7d..163afbee13 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 @@ -76,4 +76,28 @@ GROUP BY od.CATEGORY_CODE,od.pid + + + \ No newline at end of file