From c3946a9e503a5e2868323763c47bae4e2c63b027 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 22 Jun 2020 10:54:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E8=AE=AE=E9=A2=98=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/issue/IssueGridDTO.java | 31 + .../com/epmet/dto/issue/IssueProjectDTO.java | 32 + .../com/epmet/dto/project/ProjectGridDTO.java | 31 + .../com/epmet/dao/issue/StatsIssueDao.java | 52 ++ .../com/epmet/dao/project/ProjectDao.java | 22 + .../dao/stats/FactIssueAgencyMonthlyDao.java | 15 +- .../dao/stats/FactIssueGridMonthlyDao.java | 14 +- .../com/epmet/service/Issue/IssueService.java | 51 ++ .../service/Issue/impl/IssueServiceImpl.java | 27 + .../com/epmet/service/StatsIssueService.java | 32 +- .../service/impl/StatsIssueServiceImpl.java | 550 +++++++++++++++++- .../epmet/service/project/ProjectService.java | 21 + .../project/impl/ProjectServiceImpl.java | 11 + .../stats/FactIssueAgencyMonthlyService.java | 10 + .../stats/FactIssueGridMonthlyService.java | 10 + .../FactIssueAgencyMonthlyServiceImpl.java | 5 + .../impl/FactIssueGridMonthlyServiceImpl.java | 5 + .../resources/mapper/issue/StatsIssueDao.xml | 84 ++- .../resources/mapper/project/ProjectDao.xml | 28 + .../stats/FactIssueAgencyMonthlyDao.xml | 21 + .../mapper/stats/FactIssueGridMonthlyDao.xml | 23 +- 21 files changed, 1054 insertions(+), 21 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueGridDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectGridDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueGridDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueGridDTO.java new file mode 100644 index 0000000000..de7bacf7a2 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueGridDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.issue; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/6/19 13:56 + */ +@Data +public class IssueGridDTO implements Serializable { + private static final long serialVersionUID = 4681179503519406263L; + /** + * 组织ID + */ + private String agencyId; + /** + * 上级ID + */ + private String gridId; + /** + * 状态 + */ + private String status; + /** + * 数量 + */ + private Integer count; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectDTO.java new file mode 100644 index 0000000000..5381b77c8a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.issue; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/6/19 17:28 + */ +@Data +public class IssueProjectDTO implements Serializable { + private static final long serialVersionUID = -6457792985830058324L; + /** + * 议题ID + */ + private String issueId; + /** + * 项目ID + */ + private String projectId; + /** + * 网格ID + */ + private String gridId; + /** + * 状态 + */ + private String status; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectGridDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectGridDTO.java new file mode 100644 index 0000000000..982bce9a87 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectGridDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/6/19 16:58 + */ +@Data +public class ProjectGridDTO implements Serializable { + private static final long serialVersionUID = 7176541257563571224L; + /** + * 项目ID + */ + private String projectId; + /** + * 组织ID + */ + private String agencyId; + /** + * 议题ID + */ + private String issueId; + /** + * 状态 + */ + private String status; +} 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 4c23a2d833..98d2e0e96d 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 @@ -2,6 +2,8 @@ package com.epmet.dao.issue; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.issue.IssueAgencyDTO; +import com.epmet.dto.issue.IssueGridDTO; +import com.epmet.dto.issue.IssueProjectDTO; import com.epmet.entity.issue.IssueEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -59,4 +61,54 @@ public interface StatsIssueDao extends BaseDao { * @Description 根据客户Id查询议题库已转项目的网格项目关系数据 **/ List selectGridProjectList(@Param("customerId") String customerId); + /** + * 获取当前日期网格下议题统计结果 + * + * @param customerId + * @param date + * @return java.util.List + * @author zhaoqifeng + * @date 2020/6/17 14:13 + */ + List selectGridIssueTotal(@Param("customerId") String customerId, @Param("date") String date); + + /** + * 获取当前日期网格下议题增量 + * @author zhaoqifeng + * @date 2020/6/18 9:55 + * @param customerId + * @param date + * @return java.util.List + */ + List selectGridIssueInc(@Param("customerId") String customerId, @Param("date") String date); + + /** + * 网格已关闭议题统计 + * @author zhaoqifeng + * @date 2020/6/18 14:41 + * @param customerId + * @param date + * @return java.util.List + */ + List selectGridClosedIssueTotal(@Param("customerId") String customerId, @Param("date") String date); + + /** + * 网格已关闭议题增量 + * @author zhaoqifeng + * @date 2020/6/18 14:41 + * @param customerId + * @param date + * @return java.util.List + */ + List selectGridClosedIssueInc(@Param("customerId") String customerId, @Param("date") String date); + + /** + * 查询客户下议题和项目关系 + * @author zhaoqifeng + * @date 2020/6/19 17:34 + * @param customerId + * @return java.util.List + */ + List selectIssueProjectList(@Param("customerId") String customerId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java index 32a67d173e..a50874c99e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.project.ProjectAgencyDTO; +import com.epmet.dto.project.ProjectGridDTO; import com.epmet.entity.project.ProjectEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -60,4 +61,25 @@ public interface ProjectDao extends BaseDao { * @return java.util.List */ List selectAgencyClosedProjectInc(@Param("customerId") String customerId, @Param("date") String date); + + + /** + * 已结案项目统计 + * @author zhaoqifeng + * @date 2020/6/18 17:01 + * @param customerId + * @param date + * @return java.util.List + */ + List selectGridClosedProjectTotal(@Param("customerId") String customerId, @Param("date") String date); + + /** + * 已结案项目增量 + * @author zhaoqifeng + * @date 2020/6/18 17:01 + * @param customerId + * @param date + * @return java.util.List + */ + List selectGridClosedProjectInc(@Param("customerId") String customerId, @Param("date") String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueAgencyMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueAgencyMonthlyDao.java index 0621b2526e..acaf6e5d1b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueAgencyMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueAgencyMonthlyDao.java @@ -18,8 +18,12 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.stats.FactIssueAgencyMonthlyDTO; import com.epmet.entity.stats.FactIssueAgencyMonthlyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 组织机关议题数量(按月) @@ -29,5 +33,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface FactIssueAgencyMonthlyDao extends BaseDao { - + /** + * 统计机关议题各个指标月度增量 + * @author zhaoqifeng + * @date 2020/6/19 10:13 + * @param customerId + * @param monthId + * @return java.util.List + */ + List selectAgencyMonthlyInc(@Param("customerId") String customerId, @Param("monthId") String monthId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueGridMonthlyDao.java index 6c11e47904..2e9c335661 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIssueGridMonthlyDao.java @@ -18,8 +18,12 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.stats.FactIssueGridMonthlyDTO; import com.epmet.entity.stats.FactIssueGridMonthlyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 网格议题数量(按月) @@ -29,5 +33,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface FactIssueGridMonthlyDao extends BaseDao { - + /** + * 统计网格议题各个指标月度增量 + * @author zhaoqifeng + * @date 2020/6/19 10:41 + * @param customerId + * @param monthId + * @return java.util.List + */ + List selectGridMonthlyInc(@Param("customerId") String customerId, @Param("monthId") String monthId); } \ 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 547ca461dd..c6b8a8bee0 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 @@ -1,6 +1,8 @@ package com.epmet.service.Issue; import com.epmet.dto.issue.IssueAgencyDTO; +import com.epmet.dto.issue.IssueGridDTO; +import com.epmet.dto.issue.IssueProjectDTO; import com.epmet.entity.issue.IssueEntity; import java.util.List; @@ -57,4 +59,53 @@ public interface IssueService { * @Description 根据客户Id查询议题库已转项目的网格项目关系数据 **/ List getGridProjectList(String customerId); + + /** + * 获取以网格为单位议题统计结果 + * @author zhaoqifeng + * @date 2020/6/19 14:34 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridIssueTotal(String customerId, String date); + + /** + * 获取当前日期网格下议题增量 + * @author zhaoqifeng + * @date 2020/6/18 9:56 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridIssueInc(String customerId, String date); + + /** + * 获取截止当前日期网格下已关闭议题统计 + * @author zhaoqifeng + * @date 2020/6/18 9:56 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridClosedIssueTotal(String customerId, String date); + + /** + * 获取当前日期网格下已关闭议题增量 + * @author zhaoqifeng + * @date 2020/6/18 9:56 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridClosedIssueInc(String customerId, String date); + + /** + * 获取议题项目关系 + * @author zhaoqifeng + * @date 2020/6/19 17:40 + * @param customerId + * @return java.util.List + */ + List getIssueProjectList(String customerId); } 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 e939aa61dc..9cef7c5340 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 @@ -4,6 +4,8 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.issue.StatsIssueDao; import com.epmet.dto.issue.IssueAgencyDTO; +import com.epmet.dto.issue.IssueGridDTO; +import com.epmet.dto.issue.IssueProjectDTO; import com.epmet.entity.issue.IssueEntity; import com.epmet.service.Issue.IssueService; import org.springframework.beans.factory.annotation.Autowired; @@ -73,4 +75,29 @@ public class IssueServiceImpl implements IssueService { public List getGridProjectList(String customerId) { return statsIssueDao.selectGridProjectList(customerId); } + + @Override + public List getGridIssueTotal(String customerId, String date) { + return statsIssueDao.selectGridIssueTotal(customerId, date); + } + + @Override + public List getGridIssueInc(String customerId, String date) { + return statsIssueDao.selectGridIssueInc(customerId, date); + } + + @Override + public List getGridClosedIssueTotal(String customerId, String date) { + return statsIssueDao.selectGridClosedIssueTotal(customerId, date); + } + + @Override + public List getGridClosedIssueInc(String customerId, String date) { + return statsIssueDao.selectGridClosedIssueInc(customerId, date); + } + + @Override + public List getIssueProjectList(String customerId) { + return statsIssueDao.selectIssueProjectList(customerId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java index 89bd89f22e..9f6884b829 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java @@ -9,7 +9,7 @@ import java.util.Date; */ public interface StatsIssueService { /** - * 机关下议题统计 + * 机关下议题日统计 * @author zhaoqifeng * @date 2020/6/17 16:53 * @param customerId @@ -17,4 +17,34 @@ public interface StatsIssueService { * @return void */ void saveIssueAgencyDaily(String customerId, Date date); + + /** + * 机关下议题月统计 + * @author zhaoqifeng + * @date 2020/6/18 17:39 + * @param customerId + * @param date + * @return void + */ + void saveIssueAgencyMonthly(String customerId, Date date); + + /** + * 机关下网格议题日统计 + * @author zhaoqifeng + * @date 2020/6/19 13:53 + * @param customerId + * @param date + * @return void + */ + void saveIssueGridDaily(String customerId, Date date); + + /** + * 机关下网格议题月统计 + * @author zhaoqifeng + * @date 2020/6/19 13:53 + * @param customerId + * @param date + * @return void + */ + void saveIssueGridMonthly(String customerId, Date date); } 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 080e79dc7f..c300b22e46 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 @@ -1,27 +1,30 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.IssueConstant; import com.epmet.dto.issue.IssueAgencyDTO; +import com.epmet.dto.issue.IssueGridDTO; +import com.epmet.dto.issue.IssueProjectDTO; import com.epmet.dto.project.ProjectAgencyDTO; +import com.epmet.dto.project.ProjectGridDTO; import com.epmet.dto.stats.DimAgencyDTO; -import com.epmet.entity.stats.FactIssueAgencyDailyEntity; -import com.epmet.entity.stats.FactIssueAgencyMonthlyEntity; +import com.epmet.dto.stats.FactIssueAgencyMonthlyDTO; +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.project.ProjectService; -import com.epmet.service.stats.DimAgencyService; -import com.epmet.service.stats.FactIssueAgencyDailyService; +import com.epmet.service.stats.*; import com.epmet.util.DimIdGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author zhaoqifeng @@ -35,9 +38,15 @@ public class StatsIssueServiceImpl implements StatsIssueService { @Autowired private DimAgencyService dimAgencyService; @Autowired + private DimGridService dimGridService; + @Autowired private ProjectService projectService; @Autowired private FactIssueAgencyDailyService factIssueAgencyDailyService; + @Autowired + private FactIssueAgencyMonthlyService factIssueAgencyMonthlyService; + @Autowired + private FactIssueGridMonthlyService factIssueGridMonthlyService; @Override public void saveIssueAgencyDaily(String customerId, Date date) { @@ -51,9 +60,9 @@ public class StatsIssueServiceImpl implements StatsIssueService { //获取机关下议题各种状态的数目增量 List issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString); //获取机关下已关闭议题统计 - List issueAgencyClosedTotalList = issueService.getAgencyIssueInc(customerId, dateString); + List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); //获取机关下已关闭议题增量 - List issueAgencyClosedIncList = issueService.getAgencyIssueInc(customerId, dateString); + List issueAgencyClosedIncList = issueService.getAgencyClosedIssueInc(customerId, dateString); //已结案项目统计 List projectAgencyClosedTotalList = projectService.getAgencyClosedProjectTotal(customerId, dateString); //已结案项目增量 @@ -95,20 +104,460 @@ public class StatsIssueServiceImpl implements StatsIssueService { } } list.add(entity); + } + //批量插入 + factIssueAgencyDailyService.insertBatch(list); + } + + @Override + public void saveIssueAgencyMonthly(String customerId, Date date) { + String dateString = DateUtils.format(date); + DimAgencyDTO dimAgencyDTO = new DimAgencyDTO(); + dimAgencyDTO.setCustomerId(customerId); + //获取当前客户下所有机关 + List agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); + //获取机关下议题各种状态的数目统计 + List issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId); + //获取机关下已关闭议题统计 + List issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); + //已结案项目统计 + List projectAgencyClosedTotalList = projectService.getAgencyClosedProjectTotal(customerId, dateString); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //统计机关下议题各个指标月度增量 + List issueAgencyMonthlyIncList = factIssueAgencyMonthlyService.getAgencyMonthlyInc(customerId, dimId.getMonthId()); + + List list = new ArrayList<>(); + for (DimAgencyDTO agency : agencyList) { + FactIssueAgencyDailyEntity daily = initIssueAgencyDaily(dimId); + FactIssueAgencyMonthlyEntity monthly = initIssueAgencyMonthly(dimId); + + String pIds; + if (null == agency.getPids() || agency.getPids().isEmpty()) { + pIds = agency.getPid().concat(":").concat(agency.getId()); + } else { + pIds = ("0").concat(":").concat(agency.getPids()).concat(":").concat(agency.getId()); + } + //总量统计 + saveTotal(issueAgencyTotalList, agency, daily, pIds); + //已关闭议题已解决未解决统计 + if (daily.getClosedTotal() > NumConstant.ZERO) { + saveClosedTotal(issueAgencyClosedTotalList, agency, daily, pIds); + } + //已关闭项目已解决未解决统计 + if (daily.getShiftProjectTotal() > NumConstant.ZERO) { + saveClosedProjectTotal(projectAgencyClosedTotalList, agency, daily, pIds); + } + monthly = ConvertUtils.sourceToTarget(daily, FactIssueAgencyMonthlyEntity.class); + //各指标增量统计 + for (int i = 0; i < issueAgencyMonthlyIncList.size(); i++) { + FactIssueAgencyMonthlyDTO dto = issueAgencyMonthlyIncList.get(i); + if (agency.getId().equals(dto.getAgencyId())) { + monthly.setIssueIncr(dto.getIssueIncr()); + monthly.setShiftProjectIncr(dto.getShiftProjectIncr()); + monthly.setClosedIncr(dto.getClosedIncr()); + monthly.setClosedResolvedIncr(dto.getClosedResolvedIncr()); + monthly.setClosedUnresolvedIncr(dto.getClosedUnresolvedIncr()); + monthly.setClosedCaseIncr(dto.getClosedCaseIncr()); + monthly.setClosedCaseResolvedIncr(dto.getClosedCaseResolvedIncr()); + monthly.setClosedCaseUnresolvedIncr(dto.getClosedCaseUnresolvedIncr()); + issueAgencyMonthlyIncList.remove(i); + break; + } + } + monthly.setCustomerId(agency.getCustomerId()); + monthly.setAgencyId(agency.getId()); + monthly.setPid(agency.getPid()); + + list.add(monthly); + } + //批量插入 + factIssueAgencyMonthlyService.insertBatch(list); + } + + @Override + public void saveIssueGridDaily(String customerId, Date date) { + String dateString = DateUtils.format(date); + DimAgencyDTO dimAgencyDTO = new DimAgencyDTO(); + dimAgencyDTO.setCustomerId(customerId); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取客户下所有网格数据 + List gridList = dimGridService.getGridListByCustomerId(customerId); + //获取网格下议题各种状态的数目统计 + List gridTotalList = issueService.getGridIssueTotal(customerId, dateString); + //获取网格下议题各种状态的增量统计 + List gridIncList = issueService.getGridIssueInc(customerId, dateString); + //获取网格下已关闭议题各种状态的数目统计 + List gridClosedTotalList = issueService.getGridClosedIssueTotal(customerId, dateString); + //获取网格下已关闭议题各种状态的增量统计 + List gridClosedIncList = issueService.getGridClosedIssueInc(customerId, dateString); + //项目议题关系 + List issueProjectList = issueService.getIssueProjectList(customerId); + //已结案项目统计 + List closedProjectTotalList = projectService.getGridClosedProjectTotal(customerId, dateString); + //已结案项目增量 + List closedProjectIncList = projectService.getGridClosedProjectTotal(customerId, dateString); + Map resolveMap= new HashMap<>(); + Map unResolveMap = new HashMap<>(); + Map resolveIncMap = new HashMap<>(); + Map unResolveIncMap = new HashMap<>(); + if (null != issueProjectList) { + List totalList = issueProjectList.stream().flatMap(ip -> + closedProjectTotalList.stream().filter(closed -> ip.getIssueId().equals(closed.getIssueId())).map(project -> { + IssueProjectDTO dto = new IssueProjectDTO(); + dto.setIssueId(ip.getIssueId()); + dto.setGridId(ip.getGridId()); + dto.setProjectId(ip.getProjectId()); + dto.setStatus(project.getStatus()); + return dto; + })).collect(Collectors.toList()); + Map> totalMap = + totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); + List resolveList = totalMap.get(IssueConstant.RESLOVED); + List unResolveList = totalMap.get(IssueConstant.UNRESLOVED); + resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); + unResolveMap = unResolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, + Collectors.counting())); + List incList = issueProjectList.stream().flatMap(ip -> + closedProjectIncList.stream().filter(closed -> ip.getIssueId().equals(closed.getIssueId())).map(project -> { + IssueProjectDTO dto = new IssueProjectDTO(); + dto.setIssueId(ip.getIssueId()); + dto.setGridId(ip.getGridId()); + dto.setProjectId(ip.getProjectId()); + dto.setStatus(project.getStatus()); + return dto; + })).collect(Collectors.toList()); + Map> incMap = + incList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); + List resolveIncList = incMap.get(IssueConstant.RESLOVED); + List unResolveIncList = incMap.get(IssueConstant.UNRESLOVED); + resolveIncMap = resolveIncList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); + unResolveIncMap = unResolveIncList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, + Collectors.counting())); + } + + List list = new ArrayList<>(); + + for (DimGridEntity grid : gridList) { + FactIssueGridDailyEntity entity = initIssueGridDaily(dimId); + entity.setCustomerId(grid.getCustomerId()); + entity.setAgencyId(grid.getId()); + //总量统计 + saveGridTotal(gridTotalList, grid, entity); + //增量统计 + saveGridInc(gridIncList, grid, entity); + + if (entity.getClosedTotal() > NumConstant.ZERO) { + //已关闭议题已解决未解决数量统计 + saveGridClosedTotal(gridClosedTotalList, grid, entity); + + if (entity.getClosedIncr() > NumConstant.ZERO) { + //已关闭议题已解决未解决增量统计 + saveGridClosedInc(gridClosedIncList, grid, entity); + } + } + //已关闭项目已解决未解决统计 + saveClosedProject(resolveMap, unResolveMap, resolveIncMap, unResolveIncMap, grid, entity); + } + + } + + @Override + public void saveIssueGridMonthly(String customerId, Date date) { + String dateString = DateUtils.format(date); + DimAgencyDTO dimAgencyDTO = new DimAgencyDTO(); + dimAgencyDTO.setCustomerId(customerId); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取客户下所有网格数据 + List gridList = dimGridService.getGridListByCustomerId(customerId); + //获取网格下议题各种状态的数目统计 + List gridTotalList = issueService.getGridIssueTotal(customerId, dateString); + //获取网格下已关闭议题各种状态的数目统计 + List gridClosedTotalList = issueService.getGridClosedIssueTotal(customerId, dateString); + //增量统计 + List gridMonthlyIncListList = factIssueGridMonthlyService.getGridMonthlyInc(customerId, dimId.getMonthId()); + //项目议题关系 + List issueProjectList = issueService.getIssueProjectList(customerId); + //已结案项目统计 + List closedProjectTotalList = projectService.getGridClosedProjectTotal(customerId, dateString); + Map resolveMap= new HashMap<>(); + Map unResolveMap = new HashMap<>(); + if (null != issueProjectList) { + List totalList = issueProjectList.stream().flatMap(ip -> + closedProjectTotalList.stream().filter(closed -> ip.getIssueId().equals(closed.getIssueId())).map(project -> { + IssueProjectDTO dto = new IssueProjectDTO(); + dto.setIssueId(ip.getIssueId()); + dto.setGridId(ip.getGridId()); + dto.setProjectId(ip.getProjectId()); + dto.setStatus(project.getStatus()); + return dto; + })).collect(Collectors.toList()); + Map> totalMap = + totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); + List resolveList = totalMap.get(IssueConstant.RESLOVED); + List unResolveList = totalMap.get(IssueConstant.UNRESLOVED); + resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); + unResolveMap = unResolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, + Collectors.counting())); + } - factIssueAgencyDailyService.insertBatch(list); + List list = new ArrayList<>(); + + for (DimGridEntity grid : gridList) { + FactIssueGridDailyEntity daily = initIssueGridDaily(dimId); + FactIssueGridMonthlyEntity monthly = initIssueGridMonthly(dimId); + + //总量统计 + saveGridTotal(gridTotalList, grid, daily); + + if (daily.getClosedTotal() > NumConstant.ZERO) { + //已关闭议题已解决未解决数量统计 + saveGridClosedTotal(gridClosedTotalList, grid, daily); + } + monthly = ConvertUtils.sourceToTarget(daily, FactIssueGridMonthlyEntity.class); + + //已关闭项目已解决未解决统计 + int resolve = null == resolveMap.get(grid.getId())?0:resolveMap.get(grid.getId()).intValue(); + int unResolve = null == unResolveMap.get(grid.getId())?0:unResolveMap.get(grid.getId()).intValue(); + int total = resolve + unResolve; + monthly.setClosedCaseTotal(total); + monthly.setClosedCaseResolvedTotal(resolve); + monthly.setClosedCaseUnresolvedTotal(unResolve); + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + BigDecimal resolved = new BigDecimal(resolve); + BigDecimal unresolved = new BigDecimal(unResolve); + BigDecimal closed = new BigDecimal(total); + monthly.setClosedCaseResolvedPercent(resolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + monthly.setClosedCaseUnresolvedPercent(unresolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + + //各指标增量统计 + for (int i = 0; i < gridMonthlyIncListList.size(); i++) { + FactIssueGridMonthlyDTO dto = gridMonthlyIncListList.get(i); + if (grid.getId().equals(dto.getGridId())) { + monthly.setIssueIncr(dto.getIssueIncr()); + monthly.setShiftProjectIncr(dto.getShiftProjectIncr()); + monthly.setClosedIncr(dto.getClosedIncr()); + monthly.setClosedResolvedIncr(dto.getClosedResolvedIncr()); + monthly.setClosedUnresolvedIncr(dto.getClosedUnresolvedIncr()); + monthly.setClosedCaseIncr(dto.getClosedCaseIncr()); + monthly.setClosedCaseResolvedIncr(dto.getClosedCaseResolvedIncr()); + monthly.setClosedCaseUnresolvedIncr(dto.getClosedCaseUnresolvedIncr()); + gridMonthlyIncListList.remove(i); + break; + } + } + + monthly.setCustomerId(grid.getCustomerId()); + monthly.setAgencyId(grid.getId()); + monthly.setGridId(grid.getId()); + list.add(monthly); } + factIssueGridMonthlyService.insertBatch(list); } /** - * 已关闭项目已解决未解决增量统计 + * 已关闭项目已解决未解决统计 * @author zhaoqifeng - * @date 2020/6/18 17:23 + * @date 2020/6/22 10:35 + * @param resolveMap + * @param unResolveMap + * @param resolveIncMap + * @param unResolveIncMap + * @param grid + * @param entity + * @return void + */ + private void saveClosedProject(Map resolveMap, Map unResolveMap, Map resolveIncMap, + Map unResolveIncMap, DimGridEntity grid, FactIssueGridDailyEntity entity) { + int resolve = null == resolveMap.get(grid.getId())?0:resolveMap.get(grid.getId()).intValue(); + int unResolve = null == unResolveMap.get(grid.getId())?0:unResolveMap.get(grid.getId()).intValue(); + int resolveInc = null == resolveIncMap.get(grid.getId())?0:resolveIncMap.get(grid.getId()).intValue(); + int unResolveInc = null == unResolveIncMap.get(grid.getId())?0:unResolveIncMap.get(grid.getId()).intValue(); + int total = resolve + unResolve; + int inc = resolveInc + unResolveInc; + entity.setClosedCaseTotal(total); + entity.setClosedCaseResolvedTotal(resolve); + entity.setClosedCaseUnresolvedTotal(unResolve); + entity.setClosedCaseIncr(inc); + entity.setClosedCaseResolvedIncr(resolveInc); + entity.setClosedCaseUnresolvedIncr(unResolveInc); + + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + BigDecimal resolved = new BigDecimal(resolve); + BigDecimal unresolved = new BigDecimal(unResolve); + BigDecimal closed = new BigDecimal(total); + entity.setClosedCaseResolvedPercent(resolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + entity.setClosedCaseUnresolvedPercent(unresolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + } + + /** + * 已关闭议题已解决未解决增量统计 + * + * @param list + * @param grid + * @param entity + * @return void + * @author zhaoqifeng + * @date 2020/6/19 15:56 + */ + private void saveGridClosedInc(List list, DimGridEntity grid, FactIssueGridDailyEntity entity) { + //已解决数 + int resolvedInc = NumConstant.ZERO; + //未解决数 + int unresolvedInc = NumConstant.ZERO; + + for (IssueGridDTO dto : list) { + if (grid.getId().equals(dto.getGridId())) { + if (IssueConstant.RESLOVED.equals(dto.getStatus())) { + //表决中议题数量 + resolvedInc = dto.getCount(); + } else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { + //已转项目议题数量 + unresolvedInc = dto.getCount(); + } + } + } + entity.setClosedResolvedIncr(resolvedInc); + entity.setClosedUnresolvedIncr(unresolvedInc); + } + + /** + * 已关闭议题已解决未解决总量级占比统计 + * + * @param list + * @param grid + * @param entity + * @return void + * @author zhaoqifeng + * @date 2020/6/19 15:56 + */ + private void saveGridClosedTotal(List list, DimGridEntity grid, FactIssueGridDailyEntity entity) { + //已解决数 + int resolvedCount = NumConstant.ZERO; + //未解决数 + int unresolvedCount = NumConstant.ZERO; + + for (IssueGridDTO dto : list) { + if (grid.getId().equals(dto.getGridId())) { + if (IssueConstant.RESLOVED.equals(dto.getStatus())) { + //已解决议题数量 + resolvedCount = dto.getCount(); + } else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { + //未解决议题数量 + unresolvedCount = dto.getCount(); + } + } + } + entity.setClosedResolvedTotal(resolvedCount); + entity.setClosedUnresolvedTotal(unresolvedCount); + + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + BigDecimal resolved = new BigDecimal(resolvedCount); + BigDecimal unresolved = new BigDecimal(unresolvedCount); + BigDecimal closed = new BigDecimal(entity.getClosedTotal()); + entity.setClosedResolvedPercent(resolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + entity.setClosedUnresolvedPercent(unresolved.multiply(hundred).divide(closed, NumConstant.TWO, RoundingMode.HALF_UP)); + } + + /** + * 网格议题增量统计 + * + * @param list + * @param grid + * @param entity + * @return void + * @author zhaoqifeng + * @date 2020/6/19 15:57 + */ + private void saveGridInc(List list, DimGridEntity grid, FactIssueGridDailyEntity entity) { + //表决中增量 + int votingInc = NumConstant.ZERO; + //已转项目增量 + int shiftInc = NumConstant.ZERO; + //已关闭增量 + int closedInc = NumConstant.ZERO; + for (IssueGridDTO dto : list) { + if (grid.getId().equals(dto.getGridId())) { + if (IssueConstant.VOTING.equals(dto.getStatus())) { + //表决中议题数量 + votingInc = dto.getCount(); + } else if (IssueConstant.SHIFT_PROJECT.equals(dto.getStatus())) { + //已转项目议题数量 + shiftInc = dto.getCount(); + } else { + //已关闭议题数量 + closedInc = dto.getCount(); + } + } + } + int issueInc = votingInc + shiftInc + closedInc; + entity.setVotingIncr(votingInc); + entity.setShiftProjectIncr(shiftInc); + entity.setClosedIncr(closedInc); + entity.setIssueIncr(issueInc); + } + + /** + * 网格议题总量统计 + * + * @param list + * @param grid + * @param entity + * @return void + * @author zhaoqifeng + * @date 2020/6/19 15:57 + */ + private void saveGridTotal(List list, DimGridEntity grid, FactIssueGridDailyEntity entity) { + //表决中数量 + Integer votingCount = NumConstant.ZERO; + //已转项目数量 + Integer shiftCount = NumConstant.ZERO; + //已关闭数量 + Integer closedCount = NumConstant.ZERO; + for (IssueGridDTO dto : list) { + if (dto.getGridId().equals(grid.getId())) { + if (IssueConstant.VOTING.equals(dto.getStatus())) { + //表决中议题数量 + votingCount = dto.getCount(); + } else if (IssueConstant.SHIFT_PROJECT.equals(dto.getStatus())) { + //已转项目议题数量 + shiftCount = dto.getCount(); + } else { + //已关闭议题数量 + closedCount = dto.getCount(); + } + } + } + int issueTotal = votingCount + shiftCount + closedCount; + entity.setVotingTotal(votingCount); + entity.setShiftProjectTotal(shiftCount); + entity.setClosedTotal(closedCount); + entity.setIssueTotal(issueTotal); + if (NumConstant.ZERO != issueTotal) { + BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED); + BigDecimal voting = new BigDecimal(votingCount); + BigDecimal shift = new BigDecimal(shiftCount); + BigDecimal closed = new BigDecimal(closedCount); + BigDecimal total = new BigDecimal(issueTotal); + entity.setVotingPercent(voting.multiply(hundred).divide(total, NumConstant.TWO, RoundingMode.HALF_UP)); + entity.setShiftProjectPercent(shift.multiply(hundred).divide(total, NumConstant.TWO, RoundingMode.HALF_UP)); + entity.setClosedPercent(closed.multiply(hundred).divide(total, NumConstant.TWO, RoundingMode.HALF_UP)); + + } + } + + /** + * 已关闭项目已解决未解决增量统计 + * * @param list * @param agency * @param entity * @param pIds * @return void + * @author zhaoqifeng + * @date 2020/6/18 17:23 */ private void saveClosedProjectInc(List list, DimAgencyDTO agency, FactIssueAgencyDailyEntity entity, String pIds) { //已解决数 @@ -135,13 +584,14 @@ public class StatsIssueServiceImpl implements StatsIssueService { /** * 已关闭项目已解决未解决统计 - * @author zhaoqifeng - * @date 2020/6/18 17:23 + * * @param list * @param agency * @param entity * @param pIds * @return void + * @author zhaoqifeng + * @date 2020/6/18 17:23 */ private void saveClosedProjectTotal(List list, DimAgencyDTO agency, FactIssueAgencyDailyEntity entity, String pIds) { //已解决数 @@ -286,7 +736,7 @@ public class StatsIssueServiceImpl implements StatsIssueService { if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { //表决中议题数量 resolvedCount = resolvedCount + issueAgency.getCount(); - } else if (IssueConstant.SHIFT_PROJECT.equals(issueAgency.getStatus())) { + } else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { //已转项目议题数量 unresolvedCount = unresolvedCount + issueAgency.getCount(); } @@ -325,7 +775,7 @@ public class StatsIssueServiceImpl implements StatsIssueService { if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { //表决中议题数量 resolvedInc = resolvedInc + issueAgency.getCount(); - } else if (IssueConstant.SHIFT_PROJECT.equals(issueAgency.getStatus())) { + } else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { //已转项目议题数量 unresolvedInc = unresolvedInc + issueAgency.getCount(); } @@ -419,4 +869,72 @@ public class StatsIssueServiceImpl implements StatsIssueService { entity.setClosedCaseUnresolvedPercent(BigDecimal.ZERO); return entity; } + + private FactIssueGridDailyEntity initIssueGridDaily(DimIdGenerator.DimIdBean dimIdBean) { + FactIssueGridDailyEntity entity = new FactIssueGridDailyEntity(); + entity.setYearId(dimIdBean.getYearId()); + entity.setQuarterId(dimIdBean.getQuarterId()); + entity.setMonthId(dimIdBean.getMonthId()); + entity.setWeekId(dimIdBean.getWeekId()); + entity.setDateId(dimIdBean.getDateId()); + entity.setIssueTotal(NumConstant.ZERO); + entity.setIssueIncr(NumConstant.ZERO); + entity.setVotingTotal(NumConstant.ZERO); + entity.setVotingIncr(NumConstant.ZERO); + entity.setVotingPercent(BigDecimal.ZERO); + entity.setShiftProjectTotal(NumConstant.ZERO); + entity.setShiftProjectIncr(NumConstant.ZERO); + entity.setShiftProjectPercent(BigDecimal.ZERO); + entity.setClosedIncr(NumConstant.ZERO); + entity.setClosedResolvedIncr(NumConstant.ZERO); + entity.setClosedUnresolvedIncr(NumConstant.ZERO); + entity.setClosedTotal(NumConstant.ZERO); + entity.setClosedResolvedTotal(NumConstant.ZERO); + entity.setClosedUnresolvedTotal(NumConstant.ZERO); + entity.setClosedPercent(BigDecimal.ZERO); + entity.setClosedResolvedPercent(BigDecimal.ZERO); + entity.setClosedUnresolvedPercent(BigDecimal.ZERO); + entity.setClosedCaseIncr(NumConstant.ZERO); + entity.setClosedCaseResolvedIncr(NumConstant.ZERO); + entity.setClosedCaseUnresolvedIncr(NumConstant.ZERO); + entity.setClosedCaseTotal(NumConstant.ZERO); + entity.setClosedCaseResolvedTotal(NumConstant.ZERO); + entity.setClosedCaseUnresolvedTotal(NumConstant.ZERO); + entity.setClosedCaseResolvedPercent(BigDecimal.ZERO); + entity.setClosedCaseUnresolvedPercent(BigDecimal.ZERO); + return entity; + } + + private FactIssueGridMonthlyEntity initIssueGridMonthly(DimIdGenerator.DimIdBean dimIdBean) { + FactIssueGridMonthlyEntity entity = new FactIssueGridMonthlyEntity(); + entity.setYearId(dimIdBean.getYearId()); + entity.setQuarterId(dimIdBean.getQuarterId()); + entity.setMonthId(dimIdBean.getMonthId()); + entity.setIssueTotal(NumConstant.ZERO); + entity.setIssueIncr(NumConstant.ZERO); + entity.setVotingTotal(NumConstant.ZERO); + entity.setVotingIncr(NumConstant.ZERO); + entity.setVotingPercent(BigDecimal.ZERO); + entity.setShiftProjectTotal(NumConstant.ZERO); + entity.setShiftProjectIncr(NumConstant.ZERO); + entity.setShiftProjectPercent(BigDecimal.ZERO); + entity.setClosedIncr(NumConstant.ZERO); + entity.setClosedResolvedIncr(NumConstant.ZERO); + entity.setClosedUnresolvedIncr(NumConstant.ZERO); + entity.setClosedTotal(NumConstant.ZERO); + entity.setClosedResolvedTotal(NumConstant.ZERO); + entity.setClosedUnresolvedTotal(NumConstant.ZERO); + entity.setClosedPercent(BigDecimal.ZERO); + entity.setClosedResolvedPercent(BigDecimal.ZERO); + entity.setClosedUnresolvedPercent(BigDecimal.ZERO); + entity.setClosedCaseIncr(NumConstant.ZERO); + entity.setClosedCaseResolvedIncr(NumConstant.ZERO); + entity.setClosedCaseUnresolvedIncr(NumConstant.ZERO); + entity.setClosedCaseTotal(NumConstant.ZERO); + entity.setClosedCaseResolvedTotal(NumConstant.ZERO); + entity.setClosedCaseUnresolvedTotal(NumConstant.ZERO); + entity.setClosedCaseResolvedPercent(BigDecimal.ZERO); + entity.setClosedCaseUnresolvedPercent(BigDecimal.ZERO); + return entity; + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java index 79342835d7..45929aebb7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java @@ -19,6 +19,7 @@ package com.epmet.service.project; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.project.ProjectAgencyDTO; +import com.epmet.dto.project.ProjectGridDTO; import com.epmet.entity.project.ProjectEntity; import java.util.List; @@ -57,4 +58,24 @@ public interface ProjectService extends BaseService { * @return java.util.List */ List getAgencyClosedProjectInc(String customerId, String date); + + /** + * 已结案项目统计 + * @author zhaoqifeng + * @date 2020/6/18 17:04 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridClosedProjectTotal(String customerId, String date); + + /** + * 已结案项目增量 + * @author zhaoqifeng + * @date 2020/6/18 17:04 + * @param customerId + * @param date + * @return java.util.List + */ + List getGridClosedProjectInc(String customerId, String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java index b757a52799..0a5bac27b6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java @@ -22,6 +22,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectDao; import com.epmet.dto.project.ProjectAgencyDTO; +import com.epmet.dto.project.ProjectGridDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.service.project.ProjectService; import org.springframework.beans.factory.annotation.Autowired; @@ -59,4 +60,14 @@ public class ProjectServiceImpl extends BaseServiceImpl getGridClosedProjectTotal(String customerId, String date) { + return baseDao.selectGridClosedProjectTotal(customerId, date); + } + + @Override + public List getGridClosedProjectInc(String customerId, String date) { + return baseDao.selectGridClosedProjectInc(customerId, date); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueAgencyMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueAgencyMonthlyService.java index 0e96cc1835..ebd176bb4e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueAgencyMonthlyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueAgencyMonthlyService.java @@ -92,4 +92,14 @@ public interface FactIssueAgencyMonthlyService extends BaseService + */ + List getAgencyMonthlyInc(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java index 99a9a36769..302c320653 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java @@ -92,4 +92,14 @@ public interface FactIssueGridMonthlyService extends BaseService + */ + List getGridMonthlyInc(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueAgencyMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueAgencyMonthlyServiceImpl.java index a4d64c92c4..47db53b737 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueAgencyMonthlyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueAgencyMonthlyServiceImpl.java @@ -98,4 +98,9 @@ public class FactIssueAgencyMonthlyServiceImpl extends BaseServiceImpl getAgencyMonthlyInc(String customerId, String monthId) { + return baseDao.selectAgencyMonthlyInc(customerId, monthId); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueGridMonthlyServiceImpl.java index 33b00ffd2e..1c084b836a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueGridMonthlyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIssueGridMonthlyServiceImpl.java @@ -97,4 +97,9 @@ public class FactIssueGridMonthlyServiceImpl extends BaseServiceImpl getGridMonthlyInc(String customerId, String monthId) { + return baseDao.selectGridMonthlyInc(customerId, monthId); + } + } \ No newline at end of file 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 68c4c3fb22..3120f939d8 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 @@ -28,7 +28,7 @@ WHERE i.DEL_FLAG = '0' AND i.CUSTOMER_ID = #{customerId} - AND DATE(ip.ip.CREATED_TIME) = #{date} + AND DATE(ip.CREATED_TIME) = #{date} GROUP BY i.ORG_ID, ip.ISSUE_STATUS @@ -67,6 +67,88 @@ ORG_ID, RESOLVE_TYPE + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueAgencyMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueAgencyMonthlyDao.xml index 24e3e22dad..f6bdd808cb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueAgencyMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueAgencyMonthlyDao.xml @@ -44,5 +44,26 @@ + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueGridMonthlyDao.xml index 69538d9534..56896b9f0d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIssueGridMonthlyDao.xml @@ -44,5 +44,26 @@ - + \ No newline at end of file