From 4250f417343a4804896f2f0560117032095f00b2 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 11 Nov 2021 13:25:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GridAndOrgCategoryCountResultDTO.java | 2 ++ .../screen/ScreenProjectDataDao.java | 15 +++++++++++++++ ...jectCategoryGridAndOrgDailyServiceImpl.java | 8 ++++++++ .../screen/ScreenProjectDataDao.xml | 18 ++++++++++++------ 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java index f62e1c3d54..7f3f9aa96d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java @@ -44,6 +44,8 @@ public class GridAndOrgCategoryCountResultDTO implements Serializable { private String customerId; + private String categoryOriginCustomerId; + /** * 分类CODE */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java index 5a9155f237..e402f3268f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -96,4 +96,19 @@ public interface ScreenProjectDataDao extends BaseDao { List selectOrgCategoryProjectCount(@Param("dateId") String dateId, @Param("status")String status, @Param("customerId") String customerId, @Param("subCount")Integer subCount, @Param("allAgencies") List allAgencies); + + /** + * @Description 查询组织下的1级项目分类 + * @param dateId + * @param status + * @param customerId + * @param subCount + * @param allAgencies + * @author zxc + * @date 2021/11/11 11:14 上午 + */ + List selectOrgCategoryOneLevelProjectCount(@Param("dateId") String dateId, @Param("status")String status, + @Param("customerId") String customerId, @Param("subCount")Integer subCount, + @Param("allAgencies") List allAgencies); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridAndOrgDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridAndOrgDailyServiceImpl.java index 9e4c01f4d2..53a3376dd8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridAndOrgDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridAndOrgDailyServiceImpl.java @@ -137,6 +137,10 @@ public class ScreenProjectCategoryGridAndOrgDailyServiceImpl implements ScreenPr List agencies = screenCustomerAgencyDao.selectAgencyByCustomer(customerId); List allAgencies = ConvertUtils.sourceToTarget(agencies, GridAndOrgCategoryCountResultDTO.class); result = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.FOUR, allAgencies); + List oneLevelList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.FOUR, allAgencies); + if (CollectionUtils.isNotEmpty(oneLevelList)){ + result.addAll(oneLevelList); + } List closedList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.FOUR, allAgencies); result.forEach(r -> closedList.stream().filter(c -> r.getOrgId().equals(c.getOrgId()) && r.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> r.setClosedProjectTotal(c.getClosedProjectTotal()))); }else { @@ -154,6 +158,10 @@ public class ScreenProjectCategoryGridAndOrgDailyServiceImpl implements ScreenPr List allOrgCategoryList = result; partition.forEach(p -> { List allOrgList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.TWO, p); + List oneLevelList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.FOUR, allAgencies); + if (CollectionUtils.isNotEmpty(oneLevelList)){ + allOrgList.addAll(oneLevelList); + } List closedOrgList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.TWO, p); allOrgList.forEach(a -> closedOrgList.stream().filter(c -> a.getOrgId().equals(c.getOrgId()) && a.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> a.setClosedProjectTotal(c.getClosedProjectTotal()))); allOrgCategoryList.addAll(allOrgList); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml index 2988342b64..c6a59a972d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml @@ -336,6 +336,7 @@ SELECT #{dateId} AS dateId, #{customerId} AS customerId, + pd.customer_id AS categoryOriginCustomerId, pc.CATEGORY_CODE, #{a.orgId} AS orgId, #{a.pid} AS pid, @@ -358,10 +359,15 @@ AND pd.PROJECT_STATUS_CODE IN ('closed','closed_case') GROUP BY pc.CATEGORY_CODE - UNION ALL + + + +