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 875efb82e1..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 @@ -26,7 +26,8 @@ public interface StatsIssueDao extends BaseDao { * @author zhaoqifeng * @date 2020/6/17 14:13 */ - List selectAgencyIssueTotal(@Param("customerId") String customerId, @Param("date") String date); + List selectAgencyIssueTotal(@Param("customerId") String customerId, @Param("date") String date, + @Param("gridList") List gridList); /** * 获取当前日期组织下议题增量 @@ -37,7 +38,8 @@ public interface StatsIssueDao extends BaseDao { * @author zhaoqifeng * @date 2020/6/18 9:55 */ - List selectAgencyIssueInc(@Param("customerId") String customerId, @Param("date") String date); + List selectAgencyIssueInc(@Param("customerId") String customerId, @Param("date") String date, + @Param("gridList") List gridList); /** * 已关闭议题统计 @@ -48,7 +50,8 @@ public interface StatsIssueDao extends BaseDao { * @author zhaoqifeng * @date 2020/6/18 14:41 */ - List selectAgencyClosedIssueTotal(@Param("customerId") String customerId, @Param("date") String date); + List selectAgencyClosedIssueTotal(@Param("customerId") String customerId, @Param("date") String date, + @Param("gridList") List gridList); /** * 已关闭议题增量 @@ -59,7 +62,8 @@ public interface StatsIssueDao extends BaseDao { * @author zhaoqifeng * @date 2020/6/18 14:41 */ - List selectAgencyClosedIssueInc(@Param("customerId") String customerId, @Param("date") String date); + List selectAgencyClosedIssueInc(@Param("customerId") String customerId, @Param("date") String date, + @Param("gridList") List gridList); /** * @param issueEntity @@ -181,4 +185,14 @@ public interface StatsIssueDao extends BaseDao { List selectIssueVoteStatis(@Param("customerId") String customerId, @Param("dateId") String dateId); List selectCategory(@Param("customerId") String customerId, @Param("ids") Set set); + + + 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 93b72c077a..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 @@ -87,4 +87,12 @@ public interface CustomerGridDao extends BaseDao { * @return java.util.List */ 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 b920c0e29a..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 @@ -28,7 +28,7 @@ public interface IssueService { * @param date * @return java.util.List */ - List getAgencyIssueTotal(String customerId, String date); + List getAgencyIssueTotal(String customerId, String date, List gridList); /** * 获取当前日期组织下议题增量 @@ -38,7 +38,7 @@ public interface IssueService { * @param date * @return java.util.List */ - List getAgencyIssueInc(String customerId, String date); + List getAgencyIssueInc(String customerId, String date, List gridList); /** * 获取截止当前日期组织下已关闭议题统计 @@ -48,7 +48,7 @@ public interface IssueService { * @param date * @return java.util.List */ - List getAgencyClosedIssueTotal(String customerId, String date); + List getAgencyClosedIssueTotal(String customerId, String date, List gridList); /** * 获取当前日期组织下已关闭议题增量 @@ -58,7 +58,7 @@ public interface IssueService { * @param date * @return java.util.List */ - List getAgencyClosedIssueInc(String customerId, String date); + List getAgencyClosedIssueInc(String customerId, String date, List gridList); /** * @param issueEntity @@ -183,4 +183,31 @@ public interface IssueService { * @date 2021.03.09 00:23 */ Map getIntegratedProjectCategory(Map> param,String customerId); + + /** + * 获取议题总数 + * @author zhaoqifeng + * @date 2021/7/20 16:20 + * @param customerId + * @param date + * @return java.util.List + */ + List getIssueTotalList(String customerId, String date); + + + /** + * 获取议题增量 + * @author zhaoqifeng + * @date 2021/7/20 16:20 + * @param customerId + * @param date + * @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 44578a426a..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 @@ -34,23 +34,23 @@ public class IssueServiceImpl implements IssueService { private StatsIssueDao statsIssueDao; @Override - public List getAgencyIssueTotal(String customerId, String date) { - return statsIssueDao.selectAgencyIssueTotal(customerId, date); + public List getAgencyIssueTotal(String customerId, String date, List gridList) { + return statsIssueDao.selectAgencyIssueTotal(customerId, date, gridList); } @Override - public List getAgencyIssueInc(String customerId, String date) { - return statsIssueDao.selectAgencyIssueInc(customerId, date); + public List getAgencyIssueInc(String customerId, String date, List gridList) { + return statsIssueDao.selectAgencyIssueInc(customerId, date, gridList); } @Override - public List getAgencyClosedIssueTotal(String customerId, String date) { - return statsIssueDao.selectAgencyClosedIssueTotal(customerId, date); + public List getAgencyClosedIssueTotal(String customerId, String date, List gridList) { + return statsIssueDao.selectAgencyClosedIssueTotal(customerId, date, gridList); } @Override - public List getAgencyClosedIssueInc(String customerId, String date) { - return statsIssueDao.selectAgencyClosedIssueInc(customerId, date); + public List getAgencyClosedIssueInc(String customerId, String date, List gridList) { + return statsIssueDao.selectAgencyClosedIssueInc(customerId, date, gridList); } /** @@ -169,4 +169,42 @@ public class IssueServiceImpl implements IssueService { return map; } + + /** + * 获取议题总数 + * + * @param customerId + * @param date + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/20 16:20 + */ + @Override + public List getIssueTotalList(String customerId, String date) { + return null; + } + + /** + * 获取议题增量 + * + * @param customerId + * @param date + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/20 16:20 + */ + @Override + 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/StatsIssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java index 7c0a98776f..c359035647 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java @@ -17,6 +17,7 @@ import com.epmet.dto.stats.FactIssueGridMonthlyDTO; import com.epmet.entity.stats.*; import com.epmet.service.Issue.IssueService; import com.epmet.service.StatsIssueService; +import com.epmet.service.org.CustomerGridService; import com.epmet.service.project.ProjectService; import com.epmet.service.stats.*; import com.epmet.util.DimIdGenerator; @@ -57,6 +58,8 @@ public class StatsIssueServiceImpl implements StatsIssueService { private FactIssueGridDailyService factIssueGridDailyService; @Autowired private FactIssueGridMonthlyService factIssueGridMonthlyService; + @Autowired + private CustomerGridService customerGridService; @Override public void agencyGridIssueStats(StatsFormDTO formDTO) { @@ -119,16 +122,17 @@ public class StatsIssueServiceImpl implements StatsIssueService { DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); //清空数据 factIssueAgencyDailyService.deleteByCustomerId(customerId, dimId.getDateId()); + List gridList = customerGridService.getDelGridList(customerId); //获取当前客户下所有机关 List agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); //获取机关下议题各种状态的数目统计 - List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString); + List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString, gridList); //获取机关下议题各种状态的数目增量 - List issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString); + List issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString, gridList); //获取机关下已关闭议题统计 - List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); + List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString, gridList); //获取机关下已关闭议题增量 - List issueAgencyClosedIncList = issueService.getAgencyClosedIssueInc(customerId, dateString); + List issueAgencyClosedIncList = issueService.getAgencyClosedIssueInc(customerId, dateString, gridList); //已结案项目统计 List projectAgencyClosedTotalList = projectService.getAgencyClosedProjectTotal(customerId, dateString); //已结案项目增量 @@ -180,14 +184,15 @@ public class StatsIssueServiceImpl implements StatsIssueService { dimAgencyDTO.setCustomerId(customerId); //获取日期相关维度 DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + List gridList = customerGridService.getDelGridList(customerId); //清空数据 factIssueAgencyMonthlyService.deleteByCustomerId(customerId, dimId.getMonthId()); //获取当前客户下所有机关 List agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); //获取机关下议题各种状态的数目统计 - List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString); + List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString, gridList); //获取机关下已关闭议题统计 - List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); + List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString, gridList); //已结案项目统计 List projectAgencyClosedTotalList = projectService.getAgencyClosedProjectTotal(customerId, dateString); //统计机关下议题各个指标月度增量 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 392b90bc89..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 @@ -61,4 +61,20 @@ public interface CustomerGridService extends BaseService { * @return java.util.List */ List getCustomerStaffGridList(String customerId); + + /** + * 获取已删除的grid + * @author zhaoqifeng + * @date 2021/7/20 16:33 + * @param customerId + * @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 680c9892bb..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) { @@ -79,4 +84,35 @@ public class CustomerGridServiceImpl extends BaseServiceImpl getCustomerStaffGridList(String customerId) { return customerGridDao.getCustomerStaffGridList(customerId); } + + /** + * 获取已删除的grid + * + * @param customerId + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/20 16:33 + */ + @Override + public List 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 59219341a1..3ee79011e8 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 @@ -13,6 +13,11 @@ DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} AND DATE(UPDATED_TIME) #{date} + + + AND GRID_ID != #{gridId} + + GROUP BY ORG_ID, ISSUE_STATUS @@ -34,6 +39,11 @@ i.DEL_FLAG = '0' AND i.CUSTOMER_ID = #{customerId} AND DATE(ip.CREATED_TIME) = #{date} + + + AND i.GRID_ID != #{gridId} + + GROUP BY i.ORG_ID, ip.ISSUE_STATUS @@ -55,6 +65,11 @@ AND ISSUE_STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE(UPDATED_TIME) #{date} + + + AND GRID_ID != #{gridId} + + GROUP BY ORG_ID, RESOLVE_TYPE @@ -72,6 +87,11 @@ AND ISSUE_STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE(UPDATED_TIME) = #{date} + + + AND GRID_ID != #{gridId} + + GROUP BY ORG_ID, RESOLVE_TYPE @@ -301,4 +321,31 @@ order by a.category_type,a.sort + + + + \ 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 ed9d05b49a..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 @@ -106,4 +106,24 @@ csg.DEL_FLAG = '0' AND csg.CUSTOMER_ID = #{customerId} + + + + \ No newline at end of file