diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/OrgLevelEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/OrgLevelEnum.java new file mode 100644 index 0000000000..3462ad772b --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/OrgLevelEnum.java @@ -0,0 +1,51 @@ +package com.epmet.commons.tools.enums; + +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; + +/** + * 组织级别枚举类 + * dev|test|prod + * + * @author jianjun liu + * @date 2020-07-03 11:14 + **/ +public enum OrgLevelEnum { + /** + * 组织等级枚举 + */ + GRID("grid"), + COMMUNITY("community"), + STREET("street"), + DISTRICT("district"), + CITY("city"), + PROVINCE("province"), + ; + + private String code; + + + + + OrgLevelEnum(String code) { + this.code = code; + + } + + public static OrgLevelEnum getEnum(String code) { + OrgLevelEnum[] values = OrgLevelEnum.values(); + for (OrgLevelEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode()); + } + + + + + public String getCode() { + return code; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/AgencyGovrnFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/AgencyGovrnFormDTO.java new file mode 100644 index 0000000000..1ad7a8149e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/AgencyGovrnFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dataaggre.dto.datastats.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 治理实况-当前组织治理指数-接口入参 + * @Auth sun + */ +@Data +public class AgencyGovrnFormDTO implements Serializable { + + private static final long serialVersionUID = -3381286960911634231L; + /** + * 组织Id + */ + @NotBlank(message = "组织ID不能为空",groups = AgencyGovrnFormDTO.Agency.class) + private String agencyId; + /** + * 日维度Id + */ + private String dateId; + public interface Agency extends CustomerClientShowGroup {} + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GridGovrnFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GridGovrnFormDTO.java new file mode 100644 index 0000000000..1c8fe4b861 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GridGovrnFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dataaggre.dto.datastats.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 治理实况-当前网格治理指数-接口入参 + * @Auth sun + */ +@Data +public class GridGovrnFormDTO implements Serializable { + + private static final long serialVersionUID = -3381286960911634231L; + /** + * 网格Id + */ + @NotBlank(message = "网格Id不能为空",groups = GridGovrnFormDTO.Grid.class) + private String gridId; + /** + * 日维度Id + */ + private String dateId; + public interface Grid extends CustomerClientShowGroup {} + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/AgencyGovrnResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/AgencyGovrnResultDTO.java new file mode 100644 index 0000000000..72f331a500 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/AgencyGovrnResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 治理实况-当前组织治理指数-接口返参 + * @Auth sun + */ +@Data +public class AgencyGovrnResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + @JsonIgnore + BigDecimal bi = new BigDecimal(0); + //组织Id + private String agencyId; + //组织名称 + private String agencyName; + //机关级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province) + private String level; + //问题解决总数 + private Integer a = 0; + //党群自治占比 + private BigDecimal b = bi; + //网格自治占比 + private BigDecimal c = bi; + //社区解决占比 + private BigDecimal d = bi; + //区直部门解决占比 + private BigDecimal e = bi; + //街道解决占比 + private BigDecimal f = bi; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridGovrnResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridGovrnResultDTO.java new file mode 100644 index 0000000000..0aa7f5852e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridGovrnResultDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 治理实况-当前网格治理指数-接口返参 + * @Auth sun + */ +@Data +public class GridGovrnResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + @JsonIgnore + BigDecimal bi = new BigDecimal(0); + //网格Id + private String gridId; + //网格名称 + private String gridName; + //问题解决总数 + private Integer a = 0; + //党群自治占比 + private BigDecimal b = bi; + //网格自治占比 + private BigDecimal c = bi; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index 162b7e5671..0546d0c846 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -2,10 +2,7 @@ package com.epmet.dataaggre.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; +import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.service.datastats.DataStatsService; import org.springframework.beans.factory.annotation.Autowired; @@ -159,4 +156,48 @@ public class DataStatsController { return new Result>().ok(dataStatsService.subGridProject(formDTO)); } + /** + * @Param formDTO + * @Description 治理实况-当前组织治理指数 + * @author sun + */ + @PostMapping("agencygovrn") + public Result agencyGovrn(@RequestBody AgencyGovrnFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AgencyGovrnFormDTO.Agency.class); + return new Result().ok(dataStatsService.agencyGovrn(formDTO)); + } + + /** + * @Param formDTO + * @Description 治理实况-组织直属下级治理指数列表 + * @author sun + */ + @PostMapping("subagencygovrnlist") + public Result> subAgencyGovrnList(@RequestBody AgencyGovrnFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AgencyGovrnFormDTO.Agency.class); + return new Result>().ok(dataStatsService.subAgencyGovrnList(formDTO)); + } + + /** + * @Param formDTO + * @Description 治理实况-当前网格治理指数 + * @author sun + */ + @PostMapping("gridgovrn") + public Result gridGovrn(@RequestBody GridGovrnFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GridGovrnFormDTO.Grid.class); + return new Result().ok(dataStatsService.gridGovrn(formDTO)); + } + + /** + * @Param formDTO + * @Description 治理实况-组织直属网格治理指数列表 + * @author sun + */ + @PostMapping("subgridgovrnlist") + public Result> subGridGovrnList(@RequestBody GridGovrnFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GridGovrnFormDTO.Grid.class); + return new Result>().ok(dataStatsService.subGridGovrnList(formDTO)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 1e99251989..472bc277b4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -1,11 +1,7 @@ package com.epmet.dataaggre.service.datastats; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; -import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.PartyMemberVanguardFormDTO; -import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; +import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -128,4 +124,32 @@ public interface DataStatsService { List querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode); List selectGroupActRankDetail(String customerId, String dateId, String orgId, List actCategoryDictDTOList); + + /** + * @Param formDTO + * @Description 治理实况-当前组织治理指数 + * @author sun + */ + AgencyGovrnResultDTO agencyGovrn(AgencyGovrnFormDTO formDTO); + + /** + * @Param formDTO + * @Description 治理实况-组织直属下级治理指数列表 + * @author sun + */ + List subAgencyGovrnList(AgencyGovrnFormDTO formDTO); + + /** + * @Param formDTO + * @Description 治理实况-当前网格治理指数 + * @author sun + */ + GridGovrnResultDTO gridGovrn(GridGovrnFormDTO formDTO); + + /** + * @Param formDTO + * @Description 治理实况-组织直属网格治理指数列表 + * @author sun + */ + List subGridGovrnList(GridGovrnFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 9daf0c36ab..51bf154a84 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -7,11 +7,7 @@ import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.datastats.DataStatsDao; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; -import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.PartyMemberVanguardFormDTO; -import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; -import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; +import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -1014,4 +1010,44 @@ public class DataStatsServiceImpl implements DataStatsService { return new ArrayList<>(); } + /** + * @Param formDTO + * @Description 治理实况-当前组织治理指数 + * @author sun + */ + @Override + public AgencyGovrnResultDTO agencyGovrn(AgencyGovrnFormDTO formDTO) { + return null; + } + + /** + * @Param formDTO + * @Description 治理实况-组织直属下级治理指数列表 + * @author sun + */ + @Override + public List subAgencyGovrnList(AgencyGovrnFormDTO formDTO) { + return null; + } + + /** + * @Param formDTO + * @Description 治理实况-当前网格治理指数 + * @author sun + */ + @Override + public GridGovrnResultDTO gridGovrn(GridGovrnFormDTO formDTO) { + return null; + } + + /** + * @Param formDTO + * @Description 治理实况-组织直属网格治理指数列表 + * @author sun + */ + @Override + public List subGridGovrnList(GridGovrnFormDTO formDTO) { + return null; + } + } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java index 0ee464a9b5..f2f7f98a01 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java @@ -36,5 +36,8 @@ public class IndexScoreFormDTO implements Serializable { * 所有有权重的指标code拼接的字符串 冒号隔开 */ private String allParentIndexCode; - + /** + * pid + */ + private String pid; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexDictResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexDictResultDTO.java index 196837f220..bf3670b11f 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexDictResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexDictResultDTO.java @@ -3,7 +3,6 @@ package com.epmet.evaluationindex.screen.dto.result; import lombok.Data; import java.io.Serializable; -import java.util.List; /** * 评价指标字典表数据--接口返参 @@ -18,6 +17,10 @@ public class IndexDictResultDTO implements Serializable { * 指标名 */ private String indexName; + /** + * 指标名 + */ + private String indexDesc; /** * 指标code */ diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java index 7bae5401c4..af1ae3588d 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java @@ -31,6 +31,8 @@ public class IndexConstant { public static final String TABLE_DESC = "详见下表:"; public static final String INDEX_SCORE_TITLE = "当月指数"; public static final String INDEX_SCORE_DESC = "含义:自然月周期内,当月指数得分=党建指数得分*相关权重+治理指数得分*相关权重+服务指数得分*相关权重"; + public static final String INDEX_DISTRINCT_TABLE1_INDEX_CODE = "suoyoujiedaozlnlpjz"; + public static final String ZHI_LI_NENG_LI = "zhilinengli"; /** diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexDeptSubScoreDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexDeptSubScoreDao.java new file mode 100644 index 0000000000..7d84dd87e7 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexDeptSubScoreDao.java @@ -0,0 +1,36 @@ +/** + * 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.datareport.dao.fact; + +import com.epmet.evaluationindex.index.form.IndexScoreFormDTO; +import com.epmet.evaluationindex.index.result.IndexScoreResult; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 部门相关分数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-02 + */ +@Mapper +public interface FactIndexDeptSubScoreDao { + + List selecDeptAvgScore(IndexScoreFormDTO ablityListFormDTO); +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java index 3e035f30ae..a08c32bc6e 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java @@ -19,6 +19,7 @@ package com.epmet.datareport.service.evaluationindex.index.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.enums.OrgLevelEnum; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.datareport.constant.IndexConstant; @@ -70,6 +71,8 @@ public class IndexExplainServiceImpl implements IndexExplainService { private FactIndexCommunitySubScoreDao communitySubScoreDao; @Autowired private FactIndexAgencySubScoreDao agencySubScoreDao; + @Autowired + private FactIndexDeptSubScoreDao deptSubScoreDao; @Override @@ -125,46 +128,63 @@ public class IndexExplainServiceImpl implements IndexExplainService { IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); ablityListFormDTO.setOrgId(formDTO.getOrgId()); + ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); ablityListFormDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId()); - switch (orgLevel) { - case "grid": - + OrgLevelEnum anEnum = OrgLevelEnum.getEnum(orgLevel); + switch (anEnum) { + case GRID: if (IndexConstant.ZI_SHEN.equals(type)) { - setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); //不下钻 - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); realScoreList = gridSubScoreDao.selectSubScore(ablityListFormDTO); } else if (IndexConstant.XIA_JI.equals(type)) { - setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); //下钻到党员 - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); realScoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); } - break; - case "community": - setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + case COMMUNITY: + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); //不下钻 - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); realScoreList = communitySubScoreDao.selectSubScore(ablityListFormDTO); break; - case "street": - setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + case STREET: + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); //不下钻 - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO); break; - case "district": - setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); - //不下钻 - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); - realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO); + case DISTRICT: + if (allIndexCodePath.contains(IndexConstant.ZHI_LI_NENG_LI)) { + List detailResults = detailEntityMap.get(allIndexCodePath); + + List indexGroupDetailEntities = new ArrayList<>(); + for (IndexGroupDetailResult index : detailResults) { + + if (IndexConstant.INDEX_DISTRINCT_TABLE1_INDEX_CODE.equals(index.getIndexCode())) { + indexGroupDetailEntities.add(index); + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, indexGroupDetailEntities); + //不下钻 + realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO); + break; + } else { + //下钻到区直部门 + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); + ablityListFormDTO.setPid(formDTO.getOrgId()); + realScoreList = deptSubScoreDao.selecDeptAvgScore(ablityListFormDTO); + } + } + } else { + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null); + //不下钻 + realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO); + } + break; default: - + log.error("暂不支持更高级别的查询,level:{}",orgLevel); } setRealValue(result.getTableDataList(), realScoreList); @@ -191,16 +211,22 @@ public class IndexExplainServiceImpl implements IndexExplainService { } tb.setOriginValue(score.getOriginValue()); tb.setScore(String.valueOf(score.getScore())); - tb.setQuantity(score.getQuantity()); + if (StringUtils.isNotBlank(score.getQuantity())) { + tb.setQuantity(score.getQuantity()); + } tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); } } } - private List setDefaultTableData(String orgLevel, String type, Map> detailEntityMap, IndexExplainResult result, String allIndexCodePath) { - List indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); - if (CollectionUtils.isEmpty(indexGroupDetailEntities)){ - log.warn("setDefaultTableData allINdexCodePath:{} is config error",allIndexCodePath); + private List setDefaultTableData(String orgLevel, String type, Map> detailEntityMap, + IndexExplainResult result, String allIndexCodePath, List indexGroupDetailEntities) { + + if (indexGroupDetailEntities == null) { + indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); + } + if (CollectionUtils.isEmpty(indexGroupDetailEntities)) { + log.warn("setDefaultTableData allINdexCodePath:{} is config error", allIndexCodePath); return null; } List tableList = new ArrayList<>(); @@ -210,7 +236,7 @@ public class IndexExplainServiceImpl implements IndexExplainService { if ("grid".equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) { return; } - if (!"grid".equals(orgLevel) && !index.getAllIndexCodePath().contains(type)){ + if ((!"grid".equals(orgLevel) && !"district".equals(orgLevel)) && !index.getAllIndexCodePath().contains(type)) { return; } table.setIndexCode(index.getIndexCode()); @@ -218,6 +244,7 @@ public class IndexExplainServiceImpl implements IndexExplainService { table.setOriginValue(NumConstant.ZERO_STR); table.setScore(NumConstant.ZERO_STR); table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); + table.setQuantity(NumConstant.ZERO_STR); tableList.add(table); if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) { threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue()))); @@ -257,7 +284,7 @@ public class IndexExplainServiceImpl implements IndexExplainService { headers = IndexConstant.getStandardSelfHeaders(allIndexCode); } else if ("xiaji".equals(type)) { - headers = IndexConstant.getStandardSubHeaders(allIndexCode); + headers = new ArrayList<>(IndexConstant.QuantityLastHeader); if (allIndexCode.contains("canyuyishi")) { headers.add(0, "组织内党员的参与议事指数考评分(平均值)"); } else if (allIndexCode.contains("lianxiqunzhong")) { @@ -265,6 +292,19 @@ public class IndexExplainServiceImpl implements IndexExplainService { } break; } + case "district": + if ("zishen".equals(type)) { + headers = IndexConstant.getStandardSelfHeaders(allIndexCode); + + } else if ("xiaji".equals(type)) { + headers = new ArrayList<>(IndexConstant.QuantityLastHeader); + if (allIndexCode.contains("quzhibumen")) { + headers.add(0, "区直部门各项治理指数指标"); + } else { + headers.add(0, "所有街道治理指数指标"); + } + } + break; default: if ("zishen".equals(type)) { headers = IndexConstant.getStandardSelfHeaders(allIndexCode); diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml new file mode 100644 index 0000000000..af7d01495b --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml @@ -0,0 +1,24 @@ + + + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__groupact_analysis.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__groupact_analysis.sql new file mode 100644 index 0000000000..ee35df8d10 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__groupact_analysis.sql @@ -0,0 +1,49 @@ +-- epmet_data_statistical 库执行以下脚本 +-- CREATE TABLE `fact_group_act_daily` ( +-- `ID` varchar(64) NOT NULL COMMENT '主键', +-- `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', +-- `DATE_ID` varchar(8) NOT NULL COMMENT '数据更新至日期Id:yyyyMMdd', +-- `ORG_ID` varchar(64) NOT NULL COMMENT '网格id', +-- `ORG_TYPE` varchar(10) NOT NULL COMMENT '网格:grid;组织:agency', +-- `PID` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pid=网格所属组织id;\r\n2)orgType=agency: pid=当前组织的上级组织', +-- `PIDS` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pids=网格所有上级组织,包括pid;\r\n2)orgType=agency: pids=当前组织的所有上级组织,包括pid.', +-- `CATEGORY_CODE` varchar(255) NOT NULL COMMENT '活动分类编码', +-- `PARENT_CODE` varchar(255) NOT NULL COMMENT '上级分类编码', +-- `LEVEL` int(11) NOT NULL COMMENT '分类等级', +-- `ORGANIZE_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 组织次数;包含dateId这一天的数据', +-- `PARTICIPATE_USER_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 参加人数;包含dateId这一天的数据', +-- `AVG_PARTICIPATE_USER_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 平均参加人数;包含dateId这一天的数据', +-- `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除', +-- `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', +-- `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', +-- `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', +-- `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', +-- `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', +-- PRIMARY KEY (`ID`) USING BTREE +-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='组织活动(参加人数、组织次数、平均参加人数)按天累计值分析'; + + + + +-- CREATE TABLE `fact_group_act_monthly` ( +-- `ID` varchar(64) NOT NULL COMMENT '主键', +-- `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', +-- `MONTH_ID` varchar(8) NOT NULL COMMENT '数据维度:yyyyMM', +-- `ORG_ID` varchar(64) NOT NULL COMMENT '网格id', +-- `ORG_TYPE` varchar(10) NOT NULL COMMENT '网格:grid;组织:agency', +-- `PID` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pid=网格所属组织id;\r\n2)orgType=agency: pid=当前组织的上级组织', +-- `PIDS` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pids=网格所有上级组织,包括pid;\r\n2)orgType=agency: pids=当前组织的所有上级组织,包括pid.', +-- `CATEGORY_CODE` varchar(255) NOT NULL COMMENT '活动分类编码', +-- `PARENT_CODE` varchar(255) NOT NULL COMMENT '上级分类编码', +-- `LEVEL` int(11) NOT NULL COMMENT '分类等级', +-- `ORGANIZE_INCR` int(11) NOT NULL COMMENT '本月内:活动组织次数', +-- `PARTICIPATE_USER__INCR` int(11) NOT NULL COMMENT '本月内:活动签到人数参加人数', +-- `AVG_PARTICIPATE_USER_INCR` int(11) NOT NULL COMMENT '本月内:平均参加人数', +-- `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除', +-- `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', +-- `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', +-- `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', +-- `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', +-- `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', +-- PRIMARY KEY (`ID`) USING BTREE +-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='专项组活动(参加人数、组织次数、平均参加人数)按月增量分析'; \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index 46bed8859f..6e61017ed1 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java @@ -509,6 +509,9 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl