diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java index e900f79875..07d47ba7b0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java @@ -28,6 +28,7 @@ public enum DictTypeEnum { IC_SERVICE_TYPE("ic_service_type","服务类别",20), IC_DANGER_TYPE("ic_danger_type","危化品种类",24), POLICY_LEVEL("policy_level","政策级别",25), + LOG_TYPE("log_type", "日志类型", 33), ; private final String code; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java index 6416582380..f4343639e0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java @@ -18,7 +18,8 @@ public enum ResiCategoryEnum { IS_CJ("IS_CJ", "残疾"), IS_DB("IS_DB", "大病"), IS_MB("IS_MB", "慢病"), - IS_SPECIAL("IS_SPECIAL", "特殊人群"); + IS_SPECIAL("IS_SPECIAL", "特殊人群"), + IS_XJC("IS_XJC", "新阶层人士"); private String colName; private String label; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 76585fa96f..b39bb7fa47 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -849,4 +849,11 @@ public class RedisKeys { public static String getServiceOrgNameKey(String customerId,String serviceOrgType,String serviceOrgId){ return rootPrefix.concat("serviceOrgName:").concat(serviceOrgType).concat(":").concat(customerId).concat(":").concat(serviceOrgId); } + + public static String getUserBaseInfoKey(String userId) { + if (StringUtils.isBlank(userId)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("staffbaseinfo:")+userId; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java index f02e5faa46..ae05f1af6e 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java @@ -38,4 +38,5 @@ public interface DataSourceConstant { String EPMET_T_DUCK = "epmettduck"; String EPMETTDUCK="epmettduck"; String EPMET_HEART="heart"; + String RESI_PARTYMEMBER="partymember"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java new file mode 100644 index 0000000000..06f1b6eab7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dataaggre.dto.datastats.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 数据统计页面查询-接口入参 + */ +@Data +public class NowStatsDataFormDTO implements Serializable { + + private static final long serialVersionUID = 6462094914874831738L; + + public interface CustomerDataManageForm{} + + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空",groups = CustomerDataManageForm.class) + private String customerId; + + /** + * 组织ID + */ + @NotBlank(message = "组织ID不能为空",groups = CustomerDataManageForm.class) + private String agencyId; + + /** + * 区间:Interval 截止:end + */ + @NotBlank(message = "type不能为空",groups = CustomerDataManageForm.class) + private String type; + + /** + * 开始时间 精确到秒【yyyy-MM-dd HH:mm:ss】 + */ + private String startTime; + + /** + * 结束时间 精确到秒【yyyy-MM-dd HH:mm:ss】 + */ + @NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class) + private String endTime; + + + //组织或网格Id集合 + private List idList; + //数据类型【组织agency 网格grid】 + private String dataType; + + /** + * desc:是否是导出 + */ + private boolean export = false; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java new file mode 100644 index 0000000000..537179b3e1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 数据统计页面查询-接口返参 + */ +@Data +public class NowStatsDataResultDTO { + + //组织、网格Id + private String orgId; + //组织、网格名称 + private String orgName; + //注册居民数 + private Integer resiUserCount = 0; + //注册党员数 + private Integer partyMemberCount = 0; + //事件总数 + private Integer icEventCount = 0; + //居民上报事件数【小程序端随手拍随时讲】 + private Integer resiEventCount = 0; + //平台录入事件数【数字平台录入的事件数】 + private Integer pcEventCount = 0; + //项目总数 + private Integer projectCount = 0; + //议题转项目数 + private Integer issueProjectCount = 0; + //事件立项数 + private Integer icEventProjectCount = 0; + //直接立项项目数 + private Integer agencyProjectCount = 0; + + + //组织的pids + private String pids; + //事件来源,0代表居民点 其他代表数字平台 + private String sourceType; + //项目来源 issue议题 agency立项 ic_event事件 + private String origin; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java index 2759e4f745..a3e354859a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java @@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index 1c61ede4bc..27873367ec 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -259,6 +259,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -390,6 +397,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -522,6 +536,13 @@ epmet elink@833066 + + + + + epmet + elink@833066 + 0 192.168.10.150 @@ -654,6 +675,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com 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 a4d88b3a91..4ebceec4a4 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 @@ -1,11 +1,25 @@ package com.epmet.dataaggre.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.excel.NowStatsDataExcel; import com.epmet.dataaggre.service.datastats.DataStatsService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -13,13 +27,17 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; import java.text.ParseException; +import java.util.Date; import java.util.List; /** * @Author sun * @Description 数据统计服务 */ +@Slf4j @RestController @RequestMapping("datastats") public class DataStatsController { @@ -243,4 +261,48 @@ public class DataStatsController { return new Result().ok(dataStatsService.operateExport(formDTO)); } + /** + * @Description 数据统计页面查询【用户、项目、事件一些数据的实时统计查询】 + * 需求:数据统计页面查询:注册居民数、注册党员数、事件总数、居民上报事件数、平台录入事件数、项目总数、议题转项目数、事件立项数、立项数; + * 可根据组织(只选组织,查询直属下级数据)、选择统计类型(截止累计值/区间新增值,截止累计选择一天,区间选择时间段,精确到时分秒)筛选; + * 可点击查看总计,可导出,打开页面默认选中当前工作人员所在组织(页面参考灵山卫-人房信息统计页面) + * @author sun + */ + @PostMapping("nowstatsdata") + public Result> nowStatsData(@RequestBody NowStatsDataFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, NowStatsDataFormDTO.CustomerDataManageForm.class); + formDTO.setExport(false); + return new Result>().ok(dataStatsService.nowStatsData(formDTO)); + } + + @PostMapping("nowstatsdataexport") + public void nowStatsDataExport(@RequestBody NowStatsDataFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setExport(true); + ExcelWriter excelWriter = null; + try { + String fileName = "数据统计" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), NowStatsDataExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List data = null; + List list = null; + data = dataStatsService.nowStatsData(formDTO); + list = ConvertUtils.sourceToTarget(data, NowStatsDataExcel.class); + excelWriter.write(list, writeSheet); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java index ced9de54cd..bb2f1d225b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java @@ -18,9 +18,13 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 注册关系表 用于统计客户网格的注册居民数 * @@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface RegisterRelationDao extends BaseDao { - + + List selectNowResiUser(NowStatsDataFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index ba9043c0f4..7c3bbfd838 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; import org.apache.ibatis.annotations.Mapper; @@ -108,4 +109,5 @@ public interface CustomerAgencyDao extends BaseDao { List getSubAgencyList(@Param("agencyId") String agencyId); + List getSubAgencyListByAgency(@Param("customerId") String customerId, @Param("agencyId") String agencyId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java index 2d2c95b424..10721a9f7a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; @@ -84,4 +85,5 @@ public interface CustomerGridDao extends BaseDao { */ CustomerGridDTO getGridInfo(@Param("gridId") String gridId); + List getSubGridList(@Param("customerId") String customerId, @Param("agencyId") String agencyId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java index 7cbb6dd87f..c8e69a05a9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java @@ -1,6 +1,8 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.entity.govproject.IcEventEntity; @@ -25,4 +27,5 @@ public interface IcEventDao extends BaseDao { */ List getEventInfos(CoverageHomeSearchFormDTO formDTO); + List getIcEvent(NowStatsDataFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 956e8b95ed..2c7792f6ee 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -18,6 +18,8 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; @@ -132,4 +134,6 @@ public interface ProjectDao extends BaseDao { List getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); List getAgencyProjectCount(OrgStatisticsFormDTO formDTO); List getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO); + + List getNowProject(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java new file mode 100644 index 0000000000..06429e42db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java @@ -0,0 +1,31 @@ +/** + * 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.dataaggre.dao.resipartymember; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ResiPartymemberDao { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java index 657b37bb14..517b65938a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -215,6 +215,21 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java index 4c21db9b8d..60ee1dc873 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java @@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java new file mode 100644 index 0000000000..0df02e5ab5 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java @@ -0,0 +1,68 @@ +/** + * 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.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +@Data +public class NowStatsDataExcel { + + //组织、网格名称 + @ExcelProperty(value = "组织名称") + @ColumnWidth(25) + private String orgName; + //注册居民数 + @ExcelProperty(value = "注册居民数") + @ColumnWidth(20) + private Integer resiUserCount; + //注册党员数 + @ExcelProperty(value = "注册党员数") + @ColumnWidth(20) + private Integer partyMemberCount; + //事件总数 + @ExcelProperty(value = "事件总数") + @ColumnWidth(20) + private Integer icEventCount; + //居民上报事件数【小程序端随手拍随时讲】 + @ExcelProperty(value = "居民上报事件数") + @ColumnWidth(20) + private Integer resiEventCount; + //平台录入事件数【数字平台录入的事件数】 + @ExcelProperty(value = "平台录入事件数") + @ColumnWidth(20) + private Integer pcEventCount; + //项目总数 + @ExcelProperty(value = "项目总数") + @ColumnWidth(20) + private Integer projectCount; + //议题转项目数 + @ExcelProperty(value = "议题转项目数") + @ColumnWidth(20) + private Integer issueProjectCount; + //事件立项数 + @ExcelProperty(value = "事件立项数") + @ColumnWidth(20) + private Integer icEventProjectCount; + //直接立项项目数 + @ExcelProperty(value = "立项数") + @ColumnWidth(20) + private Integer agencyProjectCount; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java new file mode 100644 index 0000000000..c610a16a1c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java @@ -0,0 +1,12 @@ +package com.epmet.dataaggre.service; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; + +import java.util.List; + +public interface PartymemberService { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} \ No newline at end of file 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 7ce06a88e5..650f40b83f 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 @@ -306,4 +306,6 @@ public interface DataStatsService { Map getMemberMap(String agencyId); PageData getMemberList(OrgStatisticsFormDTO formDTO); + + List nowStatsData(NowStatsDataFormDTO 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 bf56d8cdb8..fd2a4e5f85 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 @@ -40,10 +40,13 @@ import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.service.PartymemberService; import com.epmet.dataaggre.service.datastats.DataStatsService; + import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govorg.GovOrgService; + import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -86,6 +89,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; @Autowired private GovOrgService govOrgService; + @Autowired + private EpmetUserService epmetUserService; + @Autowired + private GovProjectService govProjectService; + @Autowired + private PartymemberService partymemberService; /** * @Param formDTO @@ -2310,4 +2319,112 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); } + + @Override + public List nowStatsData(NowStatsDataFormDTO formDTO) { + //1.必要参数校验及处理 + String startTimeForm = formDTO.getStartTime(); + if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(startTimeForm)) { + throw new RenException("请选择开始时间或查询累计值"); + } + + //2.查询组织信息,判断要查询下级是组织还是网格数据 + ScreenAgencyOrGridListDTO agencyGrid = govOrgService.getSubAgencyOrGridList(formDTO.getCustomerId(), formDTO.getAgencyId()); + if (null == agencyGrid) { + return new ArrayList<>(); + } + //组织或网格Id集合 + List idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList()); + formDTO.setDataType(!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) ? OrgTypeEnum.AGENCY.getCode() : OrgTypeEnum.GRID.getCode()); + formDTO.setIdList(idList); + + //3.按条件分别查询统计各业务实时数据 + //3-1.注册居民、注册党员数 + List user = epmetUserService.getNowResiUser(formDTO); + List party = partymemberService.getNowPart(formDTO); + //3-2.事件总数、居民上报事件数、平台录入事件数 + List event = govProjectService.getNowIcEvent(formDTO); + //3-3.项目总数、议题转项目数、事件立项数、组织立项数 + List project = govProjectService.getNowProject(formDTO); + Map userMap = new HashMap<>(); + Map partyMap = new HashMap<>(); + Map eventMap = new HashMap<>(); + Map projectMap = new HashMap<>(); + if ("grid".equals(formDTO.getDataType())) { + userMap = CollectionUtils.isEmpty(user) ? new HashMap<>() : user.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + partyMap = CollectionUtils.isEmpty(party) ? new HashMap<>() : party.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + eventMap = CollectionUtils.isEmpty(event) ? new HashMap<>() : event.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + projectMap = CollectionUtils.isEmpty(project) ? new HashMap<>() : project.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + } + + //4.封装数据 + List resultDTOList = new ArrayList<>(); + NowStatsDataResultDTO export = new NowStatsDataResultDTO(); + export.setOrgName("合计"); + for (ScreenAgencyOrGridListDTO.AgencyGrid org : agencyGrid.getAgencyGridList()) { + NowStatsDataResultDTO dto = new NowStatsDataResultDTO(); + dto.setOrgId(org.getOrgId()); + dto.setOrgName(org.getOrgName()); + //网格数据sql已统计好 + if ("grid".equals(formDTO.getDataType())) { + if (userMap.containsKey(org.getOrgId())) { + dto.setResiUserCount(userMap.get(org.getOrgId()).getResiUserCount()); + } + if (partyMap.containsKey(org.getOrgId())) { + dto.setPartyMemberCount(partyMap.get(org.getOrgId()).getPartyMemberCount()); + } + if (eventMap.containsKey(org.getOrgId())) { + dto.setIcEventCount(eventMap.get(org.getOrgId()).getIcEventCount()); + dto.setResiEventCount(eventMap.get(org.getOrgId()).getResiEventCount()); + dto.setPcEventCount(eventMap.get(org.getOrgId()).getPcEventCount()); + } + if (projectMap.containsKey(org.getOrgId())) { + dto.setProjectCount(projectMap.get(org.getOrgId()).getProjectCount()); + dto.setIssueProjectCount(projectMap.get(org.getOrgId()).getIssueProjectCount()); + dto.setIcEventProjectCount(projectMap.get(org.getOrgId()).getIcEventProjectCount()); + dto.setAgencyProjectCount(projectMap.get(org.getOrgId()).getAgencyProjectCount()); + } + } else { + //组织数据 需要java计算结果 + int resiUserCount = (int) user.stream().filter(u -> u.getPids().contains(org.getOrgId())).count(); + dto.setResiUserCount(resiUserCount); + + int partyMemberCount = (int) party.stream().filter(p -> p.getPids().contains(org.getOrgId())).count(); + dto.setPartyMemberCount(partyMemberCount); + + int resiEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && "0".equals(e.getSourceType())).count(); + int pcEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && !"0".equals(e.getSourceType())).count(); + int icEventCount = resiEventCount + pcEventCount; + dto.setIcEventCount(icEventCount); + dto.setResiEventCount(resiEventCount); + dto.setPcEventCount(pcEventCount); + + int issueProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "issue".equals(p.getOrigin())).count(); + int icEventProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "ic_event".equals(p.getOrigin())).count(); + int agencyProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "agency".equals(p.getOrigin())).count(); + int projectCount = issueProjectCount + icEventProjectCount + agencyProjectCount; + dto.setProjectCount(projectCount); + dto.setIssueProjectCount(issueProjectCount); + dto.setIcEventProjectCount(icEventProjectCount); + dto.setAgencyProjectCount(agencyProjectCount); + } + resultDTOList.add(dto); + if (formDTO.isExport()) { + export.setResiUserCount(export.getResiUserCount() + dto.getResiUserCount()); + export.setPartyMemberCount(export.getPartyMemberCount() + dto.getPartyMemberCount()); + export.setIcEventCount(export.getIcEventCount() + dto.getIcEventCount()); + export.setResiEventCount(export.getResiEventCount() + dto.getResiEventCount()); + export.setPcEventCount(export.getPcEventCount() + dto.getPcEventCount()); + export.setProjectCount(export.getProjectCount() + dto.getProjectCount()); + export.setIssueProjectCount(export.getIssueProjectCount() + dto.getIssueProjectCount()); + export.setIcEventProjectCount(export.getIcEventProjectCount() + dto.getIcEventProjectCount()); + export.setAgencyProjectCount(export.getAgencyProjectCount() + dto.getAgencyProjectCount()); + } + } + if (formDTO.isExport()) { + resultDTOList.add(export); + } + return resultDTOList; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 6f9ce93725..068b1176cd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -1,6 +1,8 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.commons.tools.page.PageData; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; @@ -236,4 +238,6 @@ public interface EpmetUserService { Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); List listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); + + List getNowResiUser(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 14d9bd5dc5..26c5ef1b3a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -15,6 +15,8 @@ import com.epmet.constant.BadgeConstant; import com.epmet.constant.OrgInfoConstant; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.*; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; @@ -90,6 +92,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private IcResiUserDao icResiUserDao; @Resource private CustomerFootBarService customerFootBarService; + @Resource + private RegisterRelationDao registerRelationDao; /** * @Description 根据UserIds查询 @@ -912,4 +916,11 @@ public class EpmetUserServiceImpl implements EpmetUserService { return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); } } + + @Override + public List getNowResiUser(NowStatsDataFormDTO formDTO) { + //实时统计组织/网格下小程序端注册居民数 + List list = registerRelationDao.selectNowResiUser(formDTO); + return list; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java index 10293c2a8f..2fceaabfd6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java @@ -118,6 +118,8 @@ public class IcResiServiceImpl implements IcResiService { query.eq(IcResiUserEntity::getIsMb, true); } else if (ResiCategoryEnum.IS_SPECIAL.getColName().equals(categoryKey)) { query.eq(IcResiUserEntity::getIsSpecial, true); + } else if(ResiCategoryEnum.IS_XJC.getColName().equals(categoryKey)){ + query.eq(IcResiUserEntity::getIsXjc, true); } if (StringUtils.isNotBlank(search)) { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index ae942731a0..6a55f59e53 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; @@ -289,4 +290,6 @@ public interface GovOrgService { List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO); Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO); + ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index b84b11d14f..96099374f8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -14,6 +14,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.OrgLevelEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -39,6 +40,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.govorg.*; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; @@ -1467,4 +1471,43 @@ public class GovOrgServiceImpl implements GovOrgService { public Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO) { return cityManagementDao.getEnterpriseInfosCount(formDTO); } + + @Override + public ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId) { + ScreenAgencyOrGridListDTO resultDTO = new ScreenAgencyOrGridListDTO(); + List agencyGridList = new ArrayList<>(); + //1.查询组织信息 + CustomerAgencyEntity dto = customerAgencyDao.selectById(agencyId); + if (dto == null) { + log.error(String.format("组织信息不存在,组织Id->%s", agencyId)); + return new ScreenAgencyOrGridListDTO(); + } + //2.根据组织级别判断查询直属组织或网格列表 + List agencyList = new ArrayList<>(); + List gridList = new ArrayList<>(); + if (!"community".equals(dto.getLevel())) { + //2-1.直属下级组织列表 + agencyList = customerAgencyDao.getSubAgencyListByAgency(customerId, agencyId); + agencyList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getAgencyId()); + org.setOrgName(gr.getAgencyName()); + agencyGridList.add(org); + }); + } else { + //2-2.直属下级网格列表 + gridList = customerGridDao.getSubGridList(customerId, agencyId); + gridList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getGridId()); + org.setOrgName(gr.getGridName()); + agencyGridList.add(org); + }); + } + + resultDTO.setLevel(dto.getLevel()); + resultDTO.setAgencyGridList(agencyGridList); + return resultDTO; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index 12f901ed66..6b36beac2b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -1,6 +1,8 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; @@ -180,4 +182,7 @@ public interface GovProjectService { */ List getEventInfos(CoverageHomeSearchFormDTO formDTO); + List getNowIcEvent(NowStatsDataFormDTO formDTO); + + List getNowProject(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index caa0bf8e87..4eefc02d34 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -21,8 +21,10 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govproject.IcEventDao; import com.epmet.dataaggre.dao.govproject.ProjectDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; @@ -797,4 +799,14 @@ public class GovProjectServiceImpl implements GovProjectService { return icEventDao.getEventInfos(formDTO); } + @Override + public List getNowIcEvent(NowStatsDataFormDTO formDTO) { + return icEventDao.getIcEvent(formDTO); + } + + @Override + public List getNowProject(NowStatsDataFormDTO formDTO) { + return projectDao.getNowProject(formDTO); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java new file mode 100644 index 0000000000..cdfab84c0f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java @@ -0,0 +1,24 @@ +package com.epmet.dataaggre.service.impl; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import com.epmet.dataaggre.service.PartymemberService; +import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +public class PartymemberServiceImpl implements PartymemberService { + + @Autowired + private ResiPartymemberService resiPartymemberService; + + @Override + public List getNowPart(NowStatsDataFormDTO formDTO) { + return resiPartymemberService.getNowPart(formDTO); + } +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java new file mode 100644 index 0000000000..1d5bb43a23 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java @@ -0,0 +1,12 @@ +package com.epmet.dataaggre.service.resipartymember; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; + +import java.util.List; + +public interface ResiPartymemberService { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java new file mode 100644 index 0000000000..cb45cb5f17 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java @@ -0,0 +1,29 @@ +package com.epmet.dataaggre.service.resipartymember.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.resipartymember.ResiPartymemberDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +@DataSource(DataSourceConstant.RESI_PARTYMEMBER) +public class ResiPartymemberServiceImpl implements ResiPartymemberService { + + @Autowired + private ResiPartymemberDao resiPartymemberDao; + + + @Override + public List getNowPart(NowStatsDataFormDTO formDTO) { + return resiPartymemberDao.getNowPart(formDTO); + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml index aa857a1eaf..0237f7f5d7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml @@ -161,6 +161,11 @@ dynamic: url: @datasource.druid.heart.url@ username: @datasource.druid.heart.username@ password: @datasource.druid.heart.password@ + partymember: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.partymember.url@ + username: @datasource.druid.partymember.username@ + password: @datasource.druid.partymember.password@ feign: hystrix: enabled: true diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml index 21a959c15e..2ecbd63552 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml @@ -3,4 +3,44 @@ + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index a77f1f22e0..9af0849b72 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -309,4 +309,21 @@ OR PIDS LIKE CONCAT('%', #{agencyId}, '%')) + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index 7f68c5d787..2457f87733 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -181,4 +181,19 @@ AND cg.DEL_FLAG = '0' + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml index c037d97239..fdba65d9cd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml @@ -27,4 +27,48 @@ AND EVENT_CONTENT LIKE CONCAT('%',#{name},'%') + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index 1b159cb69d..29e53ff04b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -470,6 +470,9 @@ AND GRID_ID = #{orgId} + + AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%') + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} @@ -492,6 +495,9 @@ AND GRID_ID = #{orgId} + + AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%') + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} @@ -539,4 +545,47 @@ AGENCY_ID + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml new file mode 100644 index 0000000000..058581128d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java index 4a2260b045..7436847fd2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java @@ -225,6 +225,11 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 6d76dfd175..c2a93796bd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -386,7 +386,6 @@ public class DataReportingServiceImpl implements DataReportingService { case ProjectConstant.PENDING: return "01"; case ProjectConstant.CLOSED: - return "02"; case ProjectConstant.CLOSED_CASE: return "03"; default: diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index c1d52f8ea5..5105dd1279 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -61,15 +61,19 @@ + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml new file mode 100644 index 0000000000..117786e879 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml new file mode 100644 index 0000000000..7461622a6e --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + DELETE + FROM + ic_work_log_file + WHERE + LOG_ID = #{logId} + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java index 22343e9007..c5330c05d8 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java @@ -84,5 +84,10 @@ public class IcEventListFormDTO implements Serializable { * 操作类型 0:取消标记 1:标记 */ private String type; + /** + * 事件分类 一类、二类Id集合 + */ + private List firstIdList; + private List secondIdList; } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java index c2607974ee..5123bb789a 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java @@ -3,7 +3,6 @@ package com.epmet.dto.form; import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; -import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -46,6 +45,10 @@ public class OrgProjectListFormDTO extends PageFormDTO implements Serializable { * 事件状态 处理中 pending,已结案 closed */ private String status; + /** + * 解决状态 已解决 resolved,无需解决 unresolved + */ + private String closedStatus; /** * 起始上报时间 精确到秒 */ diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java index 068d449a4a..05402a071d 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.List; @@ -29,6 +30,7 @@ public class ProjectResponseFormDTO implements Serializable { /** * 公开答复内容 */ + @NotBlank(message = "公开答复不能为空") @Length(max = 1000, message = "公开答复不能超过1000个字符") private String publicReply; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java index 9953e31be7..7d34814d54 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.List; @@ -30,6 +31,7 @@ public class ReturnFromDTO implements Serializable { /** * 公开答复内容 */ + @NotBlank(message = "公开答复不能为空") @Length(max = 1000, message = "公开答复不能超过1000个字符") private String publicReply; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java index f6033bdd6a..5eb7013261 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java @@ -22,6 +22,7 @@ public class TransferFormDTO implements Serializable { @NotBlank(message = "项目人员关联Id不能为空") private String projectStaffId; + // @NotBlank(message = "公开答复不能为空") @Length(max=1000,message = "公开答复内容不能超过1000位") private String publicReply; diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java index f734a13de8..37a4f57ff7 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java @@ -98,6 +98,8 @@ public class OrgProjectListResultDTO implements Serializable { */ private String status; private String statusValue; + private String closedStatus; + private String closedStatusValue; /** * 是否需要自己处理 true:需要 false:不需要 */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java index 5bfc88d274..45c4bdad8d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java @@ -20,6 +20,10 @@ public class IcEventExcel { @ColumnWidth(20) private String gridName; + @ExcelProperty(value = "事件分类") + @ColumnWidth(25) + private String categoryName; + @ExcelProperty(value = "事件内容") @ColumnWidth(25) private String eventContent; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java index 0af3ccc4c9..50d9020259 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java @@ -1,12 +1,9 @@ package com.epmet.excel; -import cn.afterturn.easypoi.excel.annotation.ExcelCollection; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; -import java.util.List; - /** * 事件管理表 * @@ -122,5 +119,9 @@ public class OrgProjectListExcel { @ColumnWidth(20) private String status; + @ExcelProperty(value = "解决状态") + @ColumnWidth(20) + private String closedStatus; + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java index 6deb8203fa..f11fd1044d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java @@ -125,6 +125,15 @@ public class IcEventServiceImpl extends BaseServiceImpl> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.IC_EVENT_SOURCE_TYPE.getCode()); Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //查询分类信息 + IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(formDTO.getCustomerId()); + Result> categoryRes = govIssueOpenFeignClient.getCategoryList(dictFormDto); + if (!categoryRes.success() || org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + Map categoryMap = categoryRes.getData().stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getId, o -> o, (o1, o2) -> o1)); + //封装数据 for (IcEventListResultDTO dto : list) { if (gridInfoMap.containsKey(dto.getGridId())) { @@ -133,6 +142,14 @@ public class IcEventServiceImpl extends BaseServiceImpl imageList = new ArrayList<>(); diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml index af09210b52..ec9ff0745f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml @@ -218,6 +218,24 @@ AND ie.`status` = #{status} + + + #{firstId} + + + + + #{secondId} + + + + + #{firstId} + + + #{secondId} + + order by ie.created_time desc, ie.latest_operated_time desc diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 527e4bd62a..73c2f11384 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -655,6 +655,8 @@ p.back_ground, ( CASE WHEN p.`STATUS` = 'pending' THEN '处理中' WHEN p.`STATUS` = 'closed' THEN '已结案' ELSE '' END ) AS status, p.`status` AS statusValue, + ( CASE WHEN p.CLOSED_STATUS = 'resolved' THEN '已解决' WHEN p.CLOSED_STATUS = 'unresolved' THEN '无需解决' ELSE '' END ) AS closedStatus, + p.CLOSED_STATUS AS closedStatusValue, pc.category_pids, pc.category_id, pp.public_reply, @@ -671,16 +673,24 @@ group by project_id ORDER BY created_time desc )pc ON p.id = pc.project_id - + #{firstId} - + #{secondId} + + + #{firstId} + + + #{secondId} + + LEFT JOIN project_process pp ON p.id = pp.project_id AND pp.operation = 'close' INNER JOIN project_process ppc ON p.id = ppc.project_id AND ppc.operation = 'created' @@ -722,6 +732,9 @@ AND p.created_time #{endTime} + + AND p.CLOSED_STATUS = #{closedStatus} + + diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java index 35ebdcbb38..c2716ea00b 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java @@ -44,6 +44,16 @@ public class PartymemberRegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java index 07aa0380ff..360131ca94 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java @@ -40,6 +40,16 @@ public class PartymemberRegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index ae67b95ebf..74b9ba9844 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -5,7 +5,10 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.*; @@ -601,6 +604,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService PartymemberRegisterRelationEntity registerRelationEntity = new PartymemberRegisterRelationEntity(); registerRelationEntity.setCustomerId(partyMemberInfoDTO.getCustomerId()); registerRelationEntity.setGridId(partyMemberInfoDTO.getGridId()); + //表中新增字段 为其赋值 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(partyMemberInfoDTO.getGridId()); + if (null == gridInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败"); + } + registerRelationEntity.setAgencyId(gridInfo.getPid()); + registerRelationEntity.setAgencyIdPath(gridInfo.getPids()); registerRelationEntity.setUserId(partyMemberInfoDTO.getUserId()); registerRelationEntity.setFirstRegister(1); registerRelationEntity.setRegister(1); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java index 2cd1167802..d4d3cbe812 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java @@ -219,6 +219,21 @@ public class IcResiUserDTO implements Serializable { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否是流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java index 0cc3ea4019..165651b81b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java @@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 用户Id (user.id) */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java index 5b70e7a653..f787399b23 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java @@ -225,6 +225,10 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java index ba4ff82087..2548d9b2ac 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java @@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 用户Id (user.id) */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java index 7ae5d5d706..c921136c00 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java @@ -35,7 +35,8 @@ public enum IcResiUserTableEnum { IC_DB("virtual_db","大病人员信息录入表", null, 2, "IS_DB", false), IC_MB("virtual_mb","慢病人员信息录入表", null, 2, "IS_MB", false), IC_TENANT("virtual_tenant","租户信息录入表", null, 2, "IS_TENANT", false), - IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false); + IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false), + IC_XJC("virtual_xjc","新阶层人士信息录入表", null, 2, "IS_XJC", false); private String tableName; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 0acbb46a51..1889fc659e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -29,6 +29,8 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; @@ -60,16 +62,16 @@ import com.epmet.service.UserService; import com.epmet.util.ModuleConstant; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.RequestBody; import java.util.*; +import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; /** @@ -100,6 +102,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -739,7 +745,28 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl selectStaffBasicInfo(String userId, String customerId) { - StaffBasicInfoResultDTO resultDTO = baseDao.selectStaffBasicInfo(userId); + StaffBasicInfoResultDTO resultDTO = null; + String userBaseInfoKey = RedisKeys.getUserBaseInfoKey(userId); + resultDTO = (StaffBasicInfoResultDTO)redisUtils.get(userBaseInfoKey); + if(resultDTO == null){ + resultDTO = getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } + //启用线程去查询 并替换redis + executorService.submit(() -> { + try { + getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } catch (Exception e) { + log.error("selectStaffBasicInfo exception", e); + } + }); + + return new Result().ok(resultDTO); + } + + @Nullable + private StaffBasicInfoResultDTO getStaffBasicInfoResultDTO(String userId, String customerId, String userBaseInfoKey) { + StaffBasicInfoResultDTO resultDTO; + resultDTO = baseDao.selectStaffBasicInfo(userId); if (null != resultDTO) { resultDTO.setRoleList(baseDao.selectStaffRoles(userId, resultDTO.getCustomerId())); CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); @@ -767,7 +794,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl().ok(resultDTO); + redisUtils.set(userBaseInfoKey,resultDTO); + return resultDTO; } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index f0fcfceefc..4d992085e5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -536,6 +536,15 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : formMap.get("ic_party_member")) { + if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) { + String errorMsg = "党员信息所属支部不能为空"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + } + } } if ((map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY"))) || (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty()))) { diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java index d63921e97a..bf7f42d6f9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java @@ -23,7 +23,11 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; @@ -344,6 +348,13 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl