From d17e6183def25d45dd8e41805e185dacb0d80397 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 21 Jul 2021 15:21:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE-=E6=95=B0=E6=8D=AE-=E6=9C=BA?= =?UTF-8?q?=E5=85=B3=E6=97=A5=E7=BB=9F=E8=AE=A1=E9=80=BB=E8=BE=91=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dao/issue/StatsIssueDao.java | 7 +++++ .../com/epmet/dao/org/CustomerGridDao.java | 6 ++++ .../com/epmet/service/Issue/IssueService.java | 6 ++++ .../service/Issue/impl/IssueServiceImpl.java | 10 +++++++ .../service/impl/StatsProjectServiceImpl.java | 29 +++++++++++++++++++ .../service/org/CustomerGridService.java | 7 +++++ .../org/impl/CustomerGridServiceImpl.java | 23 +++++++++++++++ .../resources/mapper/issue/StatsIssueDao.xml | 13 +++++++++ .../resources/mapper/org/CustomerGridDao.xml | 11 +++++++ 9 files changed, 112 insertions(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java index 08ad046672..ac3043d843 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java @@ -188,4 +188,11 @@ public interface StatsIssueDao extends BaseDao { List getIssueTotalList(@Param("customerId") String customerId, @Param("date") String date); + + /** + * @Author sun + * @Description 查询议题库已删除网格下可能存在的项目Id集合 + **/ + List selectProjectByGrids(@Param("gridIds") List gridIds); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java index 3881b2fb7a..a2123a127f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java @@ -89,4 +89,10 @@ public interface CustomerGridDao extends BaseDao { List getCustomerStaffGridList(@Param("customerId") String customerId); List getDelGridList(@Param("customerId") String customerId); + + /** + * @Author sun + * @Description 查询客户已删除网格列表 + **/ + List selectDelGridList(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java index 8ffb3a8e92..4096fcb500 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java @@ -204,4 +204,10 @@ public interface IssueService { * @return java.util.List */ List getIssueIncrList(String customerId, String date); + + /** + * @Author sun + * @Description 查询议题库已删除网格下可能存在的项目Id集合 + **/ + List getProjectByGrids(List gridIds); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java index d8c293ba83..fd5702c71b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java @@ -197,4 +197,14 @@ public class IssueServiceImpl implements IssueService { public List getIssueIncrList(String customerId, String date) { return null; } + + /** + * @Author sun + * @Description 查询议题库已删除网格下可能存在的项目Id集合 + **/ + @Override + public List getProjectByGrids(List gridIds) { + return statsIssueDao.selectProjectByGrids(gridIds); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java index af00a87d3b..ca28b9fd3e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java @@ -12,6 +12,7 @@ import com.epmet.entity.project.ProjectProcessEntity; import com.epmet.entity.stats.*; import com.epmet.service.Issue.IssueService; import com.epmet.service.StatsProjectService; +import com.epmet.service.org.CustomerGridService; import com.epmet.service.project.ProjectProcessService; import com.epmet.service.project.ProjectService; import com.epmet.service.stats.*; @@ -29,6 +30,7 @@ import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * 数据统计-项目(独立于任何具体数据源外层的service) @@ -59,6 +61,8 @@ public class StatsProjectServiceImpl implements StatsProjectService { private FactGridProjectDailyService factGridProjectDailyService; @Autowired private FactGridProjectMonthlyService factGridProjectMonthlyService; + @Autowired + private CustomerGridService customerGridService; /** * @Author sun @@ -123,6 +127,31 @@ public class StatsProjectServiceImpl implements StatsProjectService { log.info("StatsProjectServiceImpl.customerAgencyStats-根据客户Id查询项目进展表业务数据,对应客户Id:" + customerId); List processList = projectProcessService.getProcessList(projectEntity); + //20210721 sun 业务逻辑调整,网格删除,组织没有删除情况,相应的组织层级数据统计应舍弃以删除网格数据 start + //处理逻辑:查询已删除网格下项目Id,将已查询的项目、节点数据中的脏数据剔除【项目库有张表有网格Id,可以查出每个项目所属网格,但是关联该表后sql查询效率极低固舍弃此方案】 + //4-1.查询客户下已删除网格列表下存在的项目Id集合 + List list = customerGridService.getdelGridProjectIdList(customerId); + if (list.size() > NumConstant.ZERO) { + Map map = list.stream().collect(Collectors.toMap(String::toString, v -> v, (c1, c2) -> c1)); + //4-2.遍历删除项目主表查询的无效数据 + Iterator proiter = projectList.iterator(); + while (proiter.hasNext()) { + ProjectEntity next = proiter.next(); + if (map.containsKey(next.getId())) { + proiter.remove(); + } + } + //4-3.遍历删除项目节点表查询的无效数据 + Iterator iterator = processList.iterator(); + while (iterator.hasNext()) { + ProjectProcessEntity next = iterator.next(); + if (map.containsKey(next.getProjectId())) { + iterator.remove(); + } + } + } + //20210721 sun end + //5:机关层级日月统计 if (null != dimAgencyList && dimAgencyList.size() > NumConstant.ZERO) { //5.1:执行机关日数据统计 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java index 3de9b0f61c..2da4de7518 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java @@ -70,4 +70,11 @@ public interface CustomerGridService extends BaseService { * @return java.util.List */ List getDelGridList(String customerId); + + /** + * @Author sun + * @Description 查询客户下已删除网格列表下存在的项目Id集合 + **/ + List getdelGridProjectIdList(String customerId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java index dc5255398a..0d1ccf9b0d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.org.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.org.CustomerGridDao; import com.epmet.dto.group.AgencyDTO; @@ -10,10 +11,12 @@ import com.epmet.dto.group.result.GridIdListByCustomerResultDTO; import com.epmet.dto.org.CustomerStaffGridDTO; import com.epmet.dto.org.GridInfoDTO; import com.epmet.entity.org.CustomerGridEntity; +import com.epmet.service.Issue.IssueService; import com.epmet.service.org.CustomerGridService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -23,6 +26,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl listGridsByCreateTime(Date start, Date end) { @@ -92,4 +97,22 @@ public class CustomerGridServiceImpl extends BaseServiceImpl getDelGridList(String customerId) { return null; } + + /** + * @Author sun + * @Description 查询客户下已删除网格列表下存在的项目Id集合 + **/ + @Override + public List getdelGridProjectIdList(String customerId) { + List resultList = new ArrayList<>(); + //1.查询客户已删除网格列表 + List gridIds = customerGridDao.selectDelGridList(customerId); + if (gridIds.size() < NumConstant.ONE) { + return resultList; + } + //2.查询议题库已删除网格下可能存在的项目Id集合 + resultList = issueService.getProjectByGrids(gridIds); + return resultList; + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml index ab7c05e7b2..dda0e207bb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml @@ -327,4 +327,17 @@ GROUP BY ORG_ID, ISSUE_STATUS + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml index cc19044173..d84d884cb3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml @@ -115,4 +115,15 @@ DEL_FLAG = '1' and customer_id = #{customerId} + + + \ No newline at end of file