From 2422ea3549e949cae9ed72f16163783a31771514 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 13:58:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E6=A0=BC=20=E6=B2=BB=E7=90=86?= =?UTF-8?q?=E8=83=BD=E5=8A=9B=20=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/constant/ExtractConstant.java | 2 + .../form/GovernAbilityGridMonthlyFormDTO.java | 148 ++++++++++++++++++ .../extract/form/GridIssueCountResultDTO.java | 45 ++++++ .../result/GridProjectCountResultDTO.java | 31 ++++ .../extract/FactOriginIssueMainDailyDao.java | 21 +++ .../FactIndexGovrnAblityGridMonthlyDao.java | 9 ++ .../extract/IssueExtractService.java | 23 +++ .../extract/impl/CalGridIndexServiceImpl.java | 93 ++++++++++- .../extract/impl/IssueExtractServiceImpl.java | 32 +++- .../extract/FactOriginIssueMainDailyDao.xml | 35 +++++ .../FactIndexGovrnAblityGridMonthlyDao.xml | 13 ++ 11 files changed, 446 insertions(+), 6 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java index 7bf337367d..8e01f5ee46 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java @@ -18,4 +18,6 @@ public interface ExtractConstant { String ISSUE_PROCESS = "查询查询议题process集合为空"; + String SHIFT_PROJECT = "shift_project"; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java new file mode 100644 index 0000000000..890e663083 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java @@ -0,0 +1,148 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.extract.form; + +import java.io.Serializable; +import java.util.Date; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 治理能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-18 + */ +@Data +public class GovernAbilityGridMonthlyFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 网格所属机关Id + */ + private String agencyId; + + /** + * 网格Id + */ + private String gridId; + + /** + * 月维度Id:yyyyMM + */ + private String monthId; + + /** + * 季度Id:yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4 + */ + private String quarterId; + + /** + * 年Id:yyyy + */ + private String yearId; + + /** + * 网格总议题数 + */ + private Integer issueTotal; + + /** + * 网格人均议题数目 + */ + private Integer avgIssueCount; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; + + /** + * 网格总项目数 + */ + private Integer projectTotal; + + /** + * 网格自治项目数 统计期网格自身内办结的项目数目 + */ + private Integer selfSolveProjectCount; + + /** + * 网格办结项目数 统计期内办结的项目数目 + */ + private Integer resolveProjectCount; + + /** + * 网格吹哨部门准确率 + */ + private BigDecimal transferRightRatio; + + /** + * 网格内解决的项目的满意度 + */ + private BigDecimal satisfactionRatio; + + /** + * 删除标识 0未删除;1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 更新人 + */ + private String updatedBy; + + public GovernAbilityGridMonthlyFormDTO() { + this.issueTotal = NumConstant.ZERO; + this.avgIssueCount = NumConstant.ZERO; + this.issueToProjectRatio = new BigDecimal(NumConstant.ZERO); + this.projectTotal = NumConstant.ZERO; + this.selfSolveProjectCount = NumConstant.ZERO; + this.resolveProjectCount = NumConstant.ZERO; + this.transferRightRatio = new BigDecimal(NumConstant.ZERO); + this.satisfactionRatio = new BigDecimal(NumConstant.ZERO); + this.delFlag = NumConstant.ZERO_STR; + this.revision = NumConstant.ZERO; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java new file mode 100644 index 0000000000..6237f49117 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/18 10:12 上午 + */ +@Data +public class GridIssueCountResultDTO implements Serializable { + + private static final long serialVersionUID = -1222149631076688225L; + + /** + * 网格总议题数目 + */ + private Integer issueTotal; + + /** + * 网格人均议题数目 + */ + private Integer avgIssueCount; + + /** + * 网格ID + */ + private String gridId; + + /** + * 月份ID + */ + private String monthId; + + /** + * 季度ID + */ + private String quarterId; + + /** + * 年度ID + */ + private String yearId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java new file mode 100644 index 0000000000..6d0a8cf1d7 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author zxc + * @DateTime 2020/9/18 1:22 下午 + */ +@Data +public class GridProjectCountResultDTO implements Serializable { + + private static final long serialVersionUID = -1348707512443965601L; + + /** + * 网格总项目数 + */ + private Integer projectTotal; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index 1866a593a5..f2e32ca442 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -18,7 +18,9 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginIssueMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +52,23 @@ public interface FactOriginIssueMainDailyDao extends BaseDao selectIssueTotal(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + List selectGridProjectCount(@Param("customerId") String customerId,@Param("monthId") String monthId, @Param("status") String status); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java index 5e0c308c5f..520ce244e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.indexcoll; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.PageQueryGridFormDTO; import com.epmet.dto.indexcollect.form.GridGovrnAbilityFormDTO; @@ -101,4 +102,12 @@ public interface FactIndexGovrnAblityGridMonthlyDao extends BaseDao selectAllGridInfo(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 4d05ba19d7..5e8eeda1ce 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -1,6 +1,10 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; + +import java.util.List; /** * @Author zxc @@ -23,4 +27,23 @@ public interface IssueExtractService { * @date 2020/9/16 9:41 上午 */ Boolean issueExtractLog(ExtractFormDTO extractFormDTO); + + /** + * @Description 查询网格议题总数,网格人均议题数目 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 10:20 上午 + */ + List selectIssueTotal(String customerId, String monthId); + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + List selectGridProjectCount(String customerId, String monthId,String status); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 0392931d9a..4ab4360397 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -1,10 +1,24 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.ExtractConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import com.epmet.service.evaluationindex.extract.IssueExtractService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.List; /** * @Author zxc @@ -15,6 +29,11 @@ import org.springframework.stereotype.Service; @DataSource(DataSourceConstant.EVALUATION_INDEX) public class CalGridIndexServiceImpl implements CalGridIndexService { + @Autowired + private IssueExtractService issueExtractService; + @Autowired + private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; + /** * @Description 计算网格指标党建能力 * @param customerId @@ -36,7 +55,69 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { */ @Override public Boolean calGridIndexGovernAbility(String customerId, String monthId) { - return null; + + List result = governAbilityDao.selectAllGridInfo(customerId); + if (CollectionUtils.isEmpty(result)){ + throw new RenException("客户【"+customerId+"】未查出网格信息"); + } + //网格总议题数目,网格人均议题数目 + List gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); + //网格总项目数 + List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); + //网格议题转项目率 + gridProjectTotalList.forEach(project -> { + gridIssueTotalList.forEach(issue ->{ + if (project.getGridId().equals(issue.getGridId())){ + project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal()/issue.getIssueTotal()))); + } + }); + }); + //网格自治项目数 + + //网格办结项目数 + + //网格吹哨部门准确率 + + //网格内解决的项目的满意度 + + //组织内党员的参与议事能力考评分(平均值) + + result.forEach(r -> { + // 1. 网格总议题数目,网格人均议题数目 + if (!CollectionUtils.isEmpty(gridIssueTotalList)) { + gridIssueTotalList.forEach(total -> { + if (r.getGridId().equals(total.getGridId())) { + BeanUtils.copyProperties(total, r); + } + }); + } + // 2. 网格总项目数,网格议题转项目率 + if (!CollectionUtils.isEmpty(gridIssueTotalList)){ + gridProjectTotalList.forEach(projectTotal -> { + if (r.getGridId().equals(projectTotal.getGridId())){ + r.setProjectTotal(projectTotal.getProjectTotal()); + r.setIssueToProjectRatio(projectTotal.getIssueToProjectRatio()); + } + }); + } + }); + + + + + + // + + + + + + + + + + + return true; } /** @@ -50,4 +131,14 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { public Boolean calGridIndexServiceAbility(String customerId, String monthId) { return null; } + + /** + * @Description 小数四舍五入 + * @param d + * @author zxc + * @date 2020/9/18 2:01 下午 + */ + public BigDecimal getRound(BigDecimal d){ + return d.setScale(NumConstant.SIX, BigDecimal.ROUND_HALF_UP); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index d277675b03..d5598650a0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -9,13 +9,10 @@ import com.epmet.dao.evaluationindex.extract.FactOriginIssueLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao; import com.epmet.dao.stats.DimAgencyDao; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueLogDailyFormDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; -import com.epmet.dto.extract.result.SatisfactionInfoResultDTO; -import com.epmet.dto.extract.result.AgencyInfoResultDTO; -import com.epmet.dto.extract.result.IssueInfoResultDTO; -import com.epmet.dto.extract.result.IssueProcessInfoResultDTO; -import com.epmet.dto.extract.result.TopicInfoResultDTO; +import com.epmet.dto.extract.result.*; import com.epmet.service.Issue.IssueService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.topic.TopicService; @@ -226,6 +223,31 @@ public class IssueExtractServiceImpl implements IssueExtractService { return true; } + /** + * @Description 查询网格议题总数,网格人均议题数目 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 10:20 上午 + */ + @Override + public List selectIssueTotal(String customerId, String monthId) { + return issueMainDailyDao.selectIssueTotal(customerId, monthId); + } + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + @Override + public List selectGridProjectCount(String customerId, String monthId, String status) { + return issueMainDailyDao.selectGridProjectCount(customerId, monthId, status); + } + /** * @Description 议题附表删除插入 * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 9d3ad44198..01da6c5f0b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -66,4 +66,39 @@ CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml index a84dff6a5c..5f4a53ed15 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml @@ -161,4 +161,17 @@ AND m.CUSTOMER_ID =#{customerId} AND m.MONTH_ID =#{monthId} + + +