diff --git a/epmet-cloud-generator/src/main/resources/application.yml b/epmet-cloud-generator/src/main/resources/application.yml index 973eb74fe0..86b39b69c8 100644 --- a/epmet-cloud-generator/src/main/resources/application.yml +++ b/epmet-cloud-generator/src/main/resources/application.yml @@ -9,7 +9,7 @@ spring: type: com.alibaba.druid.pool.DruidDataSource #MySQL配置 driverClassName: com.mysql.jdbc.Driver - url: jdbc:mysql://118.190.150.119:43306/epmet_user?useUnicode=true&characterEncoding=UTF-8&useSSL=false + url: jdbc:mysql://118.190.150.119:43306/epmet_gov_org?useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: root #oracle配置 diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java index 14a5a24ff8..fdd9e5d860 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java @@ -3,6 +3,7 @@ package com.epmet.commons.rocketmq.messages; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * 组织、网格、人员中间库数据上报MQ @@ -18,7 +19,11 @@ public class OrgOrStaffMQMsg implements Serializable { //数据类型【组织:agency 网格:grid 人员:staff】 private String orgType; //操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】 + //删除网格:grid_delete;删除组织:agency_delete private String type; + //工作人员Id集合 + private List staffIdList; + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 0d18e6f706..1f0d76e14f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java @@ -50,6 +50,8 @@ public interface NumConstant { BigDecimal ZERO_DECIMAL = new BigDecimal(0); int ONE_THOUSAND = 1000; int TEN_THOUSAND = 10000; + + int THREE_THOUSAND = 3000; int MAX = 99999999; int EIGHTY_EIGHT = 88; int EIGHTY = 80; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index 62d9fef763..b89a521218 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -110,4 +110,9 @@ public interface StrConstant { String YES = "是"; String NO = "否"; + + String ELLIPSIS="......"; + + String BRACKET_LEFT="("; + String BRACKET_RIGNT=")"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java new file mode 100644 index 0000000000..94b58de257 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java @@ -0,0 +1,23 @@ +package com.epmet.commons.tools.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/7/26 16:37 + */ +@Data +public class ZhzlCategorySelectDTO implements Serializable { + private String label; + private String value; + + private String queryType; + private String tableName; + private String columnName; + private String columnValue; + private Integer sort; +} + diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java new file mode 100644 index 0000000000..02f5504d6a --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java @@ -0,0 +1,55 @@ +package com.epmet.commons.tools.enums; + +/** + * 图层枚举 + */ +public enum CoverageEnums { + + ZHZL("zhzl", "综合治理图层", 1), + YJCL("yjcl", "应急处置资源", 1), + AQSC("aqsc", "安全生产资源", 1), + CSGL("csgl", "城市管理资源", 1), + GGFW("ggfw", "公共服务资源", 1), + + DATA_TYPE_GOVERNED_TARGET("governedTarget", "被管理对象", 2), + DATA_TYPE_RESOURCES("resources", "资源", 2); + + private String key; + private String name; + /** + * 1:图层,2:数据类型 + */ + private Integer type; + + CoverageEnums(String key, String name, Integer type) { + this.key = key; + this.name = name; + this.type = type; + } + + public static CoverageEnums getEnum(String key) { + CoverageEnums[] values = CoverageEnums.values(); + for (CoverageEnums value : values) { + if (value.getKey().equals(key)) { + return value; + } + } + return null; + } + + public String getKey() { + return key; + } + + public String getCoverageName() { + return name; + } + + public String getName() { + return name; + } + + public Integer getType() { + return type; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java index eb8d25e80f..6f71e122b0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java @@ -8,14 +8,17 @@ public enum CoveragePlaceTypeEnum { SUPERIOR_RESOURCE("superior_resource", "优势资源"), DANGEROUS_CHEMICALS("dangerous_chemicals", "重点危化企业"), ENTERPRISE_PATROL("enterprise_patrol", "企事业单位巡查"), + ENTERPRISE_PATROL_UNQUALIFIED("enterprise_patrol_unqualified", "安全生产隐患"), SPECIAL_RESI("special_resi", "特殊人群"), CITY_MANAGEMENT("city_management", "城市管理"), COMMUNITY_ORG("community_org", "社区自组织"), PUBLIC_SERVICE("public_service", "公共服务"), - RESI("resi", "居民"), + RESI("resi", "公共服务人群"), PARTY_UNIT("party_unit", "联建单位"), + VOLUNTEER("volunteer", "志愿者"), GROUP_RENT("group_rent", "群租房"), - EVENT("event", "事件(包括难点堵点)"); + EVENT("event", "城市管理事件"), + ZHZL_RQ("zhzl_rq", "综合治理人群"); private final String code; private final String name; 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 new file mode 100644 index 0000000000..6416582380 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java @@ -0,0 +1,56 @@ +package com.epmet.commons.tools.enums; + +public enum ResiCategoryEnum { + IS_PARTY("IS_PARTY", "党员"), + IS_DBH("IS_DBH", "低保人员"), + IS_ENSURE_HOUSE("IS_ENSURE_HOUSE", "保障房人员"), + IS_UNEMPLOYED("IS_UNEMPLOYED", "失业人员"), + IS_YLFN("IS_YLFN", "育龄妇女"), + IS_VETERANS("IS_VETERANS", "退役军人"), + IS_UNITED_FRONT("IS_UNITED_FRONT", "统战人员"), + IS_XFRY("IS_XFRY", "信访人员"), + IS_VOLUNTEER("IS_VOLUNTEER", "志愿者"), + IS_OLD_PEOPLE("IS_OLD_PEOPLE", "老年人"), + IS_KC("IS_KC", "空巢"), + IS_SD("IS_SD", "失独人员"), + IS_SN("IS_SN", "失能"), + IS_SZ("IS_SZ", "失智"), + IS_CJ("IS_CJ", "残疾"), + IS_DB("IS_DB", "大病"), + IS_MB("IS_MB", "慢病"), + IS_SPECIAL("IS_SPECIAL", "特殊人群"); + private String colName; + private String label; + + + ResiCategoryEnum(String colName, String label) { + this.colName = colName; + this.label = label; + } + + /** + * 取枚举对象 + * @param columnName + * @return + */ + public static ResiCategoryEnum getEnum(String columnName) { + for (ResiCategoryEnum enumObject : ResiCategoryEnum.values()) { + if (enumObject.getColName().equals(columnName)) { + return enumObject; + } + } + return null; + } + + public String getColName() { + return colName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java new file mode 100644 index 0000000000..b57baedf5e --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java @@ -0,0 +1,108 @@ +package com.epmet.commons.tools.enums; + +import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO; + +import java.util.ArrayList; +import java.util.List; + +public enum ZhzlResiCategoryEnum { + // resi_xfry 信访人员 + // anzhibangjiao 安置帮教 + // xiejiaorenyuan 邪教人员 + // buliangqingshaonian 不良青少年 + // shequjiaozheng 社区矫正 + // zhaoshizhaohuojingshenbing 肇事肇祸精神病 + // xidurenyuan 吸毒人员 + + resi_xfry("resi_xfry", "信访人员", "equal", "ic_resi_user", "IS_XFRY", "1", 1), + anzhibangjiao("anzhibangjiao", "安置帮教", "list_equal", "ic_special", "SPECIAL_RQLB", "anzhibangjiao", 2), + xiejiaorenyuan("xiejiaorenyuan", "邪教人员", "list_equal", "ic_special", "SPECIAL_RQLB", "xiejiaorenyuan", 3), + buliangqingshaonian("buliangqingshaonian", "不良青少年", "list_equal", "ic_special", "SPECIAL_RQLB", "buliangqingshaonian", 4), + shequjiaozheng("shequjiaozheng", "社区矫正", "list_equal", "ic_special", "SPECIAL_RQLB", "shequjiaozheng", 5), + zhaoshizhaohuojingshenbing("zhaoshizhaohuojingshenbing", "肇事肇祸精神病", "list_equal", "ic_special", "SPECIAL_RQLB", "zhaoshizhaohuojingshenbing", 6), + xidurenyuan("xidurenyuan", "吸毒人员", "list_equal", "ic_special", "SPECIAL_RQLB", "xidurenyuan", 7); + + private String code; + private String name; + private String queryType; + private String tableName; + private String columnName; + private String columnValue; + private Integer sort; + + + ZhzlResiCategoryEnum(String code, String name, String queryType, String tableName, String columnName, String columnValue, Integer sort) { + this.code = code; + this.name = name; + this.queryType = queryType; + this.tableName = tableName; + this.columnName = columnName; + this.columnValue = columnValue; + this.sort = sort; + } + + public static ZhzlResiCategoryEnum getEnum(String code) { + ZhzlResiCategoryEnum[] values = ZhzlResiCategoryEnum.values(); + for (ZhzlResiCategoryEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + + } + + + /** + * 转为数据 + * + * @return 枚举对象数组 + */ + public static List toSelectList() { + List list = new ArrayList<>(); + for (ZhzlResiCategoryEnum item : ZhzlResiCategoryEnum.values()) { + ZhzlCategorySelectDTO selectDTO = new ZhzlCategorySelectDTO(); + selectDTO.setLabel(item.getName()); + selectDTO.setValue(item.getCode()); + selectDTO.setQueryType(item.getQueryType()); + selectDTO.setTableName(item.getTableName()); + selectDTO.setColumnName(item.getColumnName()); + selectDTO.setColumnValue(item.getColumnValue()); + selectDTO.setSort(item.getSort()); + list.add(selectDTO); + } + return list; + } + + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + + public String getQueryType() { + return queryType; + } + + public String getTableName() { + return tableName; + } + + public String getColumnName() { + return columnName; + } + + public String getColumnValue() { + return columnValue; + } + + public Integer getSort() { + return sort; + } + + +} 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 d6e8a2c245..76585fa96f 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 @@ -766,6 +766,16 @@ public class RedisKeys { return rootPrefix.concat("gov:access:nav:"); } + /** + * Desc: 新五大图层获取菜单缓存key + * @param + * @author zxc + * @date 2022/7/27 13:42 + */ + public static String getCustomerMenuListFiveCoverage() { + return rootPrefix.concat("customer:govMenu:"); + } + /** * 如果是省列表:epmet:areacode:parentCode:0 * 山东省的下一级:epmet:areacode:parentCode:37 diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java index 2dce88e919..311830ae9f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java @@ -375,6 +375,15 @@ public class RedisUtils { return redisTemplate.opsForSet().add(key,value); } + public void listAdd(String key,Object value){ + redisTemplate.opsForList().rightPush(key,value); + } + + public Object listGetAll(String key,Integer start, Integer end){ + List result = redisTemplate.opsForList().range(key, start, end); + return result; + } + /** * @Description 获取 zset 中带score的集合 * @param key diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java new file mode 100644 index 0000000000..8a6b63230c --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java @@ -0,0 +1,37 @@ +package com.epmet.commons.tools.utils; + +import org.apache.commons.lang3.StringUtils; + +/** + * desc:utf8mb4转为utf8 + * + * @author: LiuJanJun + * @date: 2022/7/22 9:45 下午 + * @version: 1.0 + */ +public class StrUtil { + + private static final int LAST_BMP = 0xFFFF; + + public static String filterEmoji(String source) { + if (StringUtils.isBlank(source)) { + return source; + } + StringBuilder sb = new StringBuilder(source.length()); + for (int i = 0; i < source.length(); i++) { + int codePoint = source.codePointAt(i); + if (codePoint < LAST_BMP) { + sb.appendCodePoint(codePoint); + } else { + i++; + } + } + return sb.toString(); + } + + + public static void main(String[] args) { + String x = StrUtil.filterEmoji("😀😁😆😅🥹🥹😇😗😀😂666"); + System.out.println(x); + } +} diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index dc505b1985..301fb79a81 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -278,6 +278,7 @@ lb://epmet-message-server + lb://epmet-activiti-server @@ -317,6 +318,7 @@ lb://gov-access-server + @@ -356,7 +358,7 @@ lb://epmet-heart-server - + lb://epmet-point-server diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java index f6e180eb7f..4dbc80ce5c 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java @@ -15,4 +15,11 @@ public interface OrgConstant { String GRID_ID="GRID_ID"; String GENDER="GENDER"; String HOUSE_TYPE_KEY="HOUSE_TYPE"; + + String AGENCY_ID="agencyId"; + String AGENC_PATH="agencyPath"; + + String SEARCH_TYPE_USER = "user"; + String SEARCH_TYPE_EVENT = "event"; + String SEARCH_TYPE_RESOURCE = "resource"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java new file mode 100644 index 0000000000..1e80e51d2f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java @@ -0,0 +1,22 @@ +package com.epmet.dataaggre.constant; + +/** + * + */ +public interface TableConstant { + + String IC_DANGEROUS_CHEMICALS = "ic_dangerous_chemicals"; + + String IC_SUPERIOR_RESOURCE = "ic_superior_resource"; + + String IC_ENTERPRISE = "ic_enterprise"; + + String IC_COMMUNITY_SELF_ORGANIZATION = "ic_community_self_organization"; + + String IC_CITY_MANAGEMENT = "ic_city_management"; + + String IC_PUBLIC_SERVICE = "ic_public_service"; + + String IC_EVENT = "ic_event"; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java new file mode 100644 index 0000000000..a925663491 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java @@ -0,0 +1,25 @@ +package com.epmet.dataaggre.dto.coverage; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 五大图层分析-被管理对象分类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AnalysisGovernedTargetsResult { + + private String categoryKey; + private String categoryName; + private String coverageType; + private String placeType; + private String placeTypeName; + private Integer quantity = 0; + + private List children; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java new file mode 100644 index 0000000000..4bfd7e83c1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java @@ -0,0 +1,70 @@ +package com.epmet.dataaggre.dto.coverage; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 五大图层-可视化-右侧分类树列表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AnalysisResourceCategoriesResult { + + /** + * 图层类型 + */ + private String coverageType; + /** + * 图层名称 + */ + private String coverageName; + /** + * 个数 + */ + private AtomicInteger quantity = new AtomicInteger(0); + + /** + * 没有placeTypeInAnalysis,直接属于图层的 + */ + private List categories = new ArrayList<>(); + + /** + * 场所类型,有placeTypeInAnalysis,不直接属于图层的 + */ + private List placeTypesInAnalysis = new ArrayList<>(); + + /** + * 分类 + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class Category { + private String categoryKey; + private String categoryName; + private String coverageType; + private String placeType; + private Integer quantity = 0; + } + + /** + * 场所类型 + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PlaceType { + private String placeType; + private String placeTypeName; + private AtomicInteger quantity = new AtomicInteger(0); + private List categories; + } + + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java index 659805383f..a4ba26b37b 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java @@ -10,4 +10,5 @@ public class IcResiInfoResultDTO { private String id; private String name; private String buildId; + private String idNum; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java index 179dc80aba..2b3b0127df 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java @@ -9,7 +9,16 @@ import java.util.List; */ @Data public class CoverageAnalisisDataListFormDTO { + /** + * 目前都是组织id + */ + private String orgId; + /** + * agency + * grid + */ + private String orgType; /** * 图层类型列表 */ diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java new file mode 100644 index 0000000000..ca369fd4db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:09 + */ +@Data +public class CoverageAnalisisDataListLeftFormDTO { + public interface ShowGroup extends CustomerClientShowGroup { + } + /** + * 目前都是组织id + */ + @NotBlank(message = "组织不能为空", groups = ShowGroup.class) + private String orgId; + + /** + * agency + * grid + */ + @NotBlank(message = "组织类型不能为空", groups = ShowGroup.class) + private String orgType; + /** + * 图层类型列表 + */ + private List coverageTypes; + + /** + * 分类key + */ + private List categoryKeys; + + private String customerId; + private String staffId; + +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java new file mode 100644 index 0000000000..4650740bf6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:25 + * @DESC + */ +@Data +public class CoverageHomeSearchFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = 3776954636762201010L; + + private String name; + + private String customerId; + + private String userId; + + private String orgId; + + private String pids; + + private String tableName; + + /** + * 搜索类型,居民:user;事件:event;资源:resource + */ + private String searchType; + + /** + * 资源类型:社区自组织:community_org;优势资源:superior_resource;城市管理:city_management;重点危化企业:dangerous_chemicals;公共服务:public_service;企事业单位巡查:enterprise_patrol; + * searchType为resource时,此字段必填 + */ + private String resourceType; + + private String resourceId; + private String icEventId; + private String icUserId; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java new file mode 100644 index 0000000000..ca63810b71 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description + * @Author yzm + * @Date 2022/7/29 10:38 + */ +@Data +public class DataListLeftSubTotalFormDTO { + public interface AddUserInterGroup{} + @NotBlank(message = "orgId不能为空",groups = AddUserInterGroup.class) + private String orgId; + @NotBlank(message = "orgType不能为空",groups = AddUserInterGroup.class) + private String orgType; + + + private String coverageType; + + @NotBlank(message = "categoryKey不能为空",groups = AddUserInterGroup.class) + private String categoryKey; + + @NotBlank(message = "placeType不能为空",groups = AddUserInterGroup.class) + private String placeType; + + + private String customerId; + private String staffId; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java new file mode 100644 index 0000000000..61fe3607a5 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/29 08:48 + * @DESC + */ +@Data +public class SearchDetailFormDTO implements Serializable { + + private static final long serialVersionUID = 3499320376768396157L; + + public interface SearchUserDetailForm{} + public interface SearchEventDetailForm{} + public interface SearchResourceDetailForm{} + + @NotBlank(message = "icUserId不能为空",groups = SearchUserDetailForm.class) + private String icUserId; + + @NotBlank(message = "icEventId不能为空",groups = SearchEventDetailForm.class) + private String icEventId; + + @NotBlank(message = "resourceId不能为空",groups = SearchResourceDetailForm.class) + private String resourceId; + + /** + * 资源类型:社区自组织:community_org;优势资源:superior_resource;城市管理:city_management;重点危化企业:dangerous_chemicals;公共服务:public_service;企事业单位巡查:enterprise_patrol; + */ + @NotBlank(message = "resourceType不能为空",groups = SearchResourceDetailForm.class) + private String resourceType; + + private String customerId; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java index fd566cb191..1af67eb36a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.dataaggre.dto.govorg.result; +import com.epmet.commons.tools.constant.StrConstant; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; @Data @NoArgsConstructor @@ -40,4 +42,21 @@ public class CoverageAnalisisDataListResultDTO { */ private String longitude; + /** + * 经度,纬度:120.38862649282282,36.07138835989835 + */ + private String longLat; + + public CoverageAnalisisDataListResultDTO(String id, String categoryKey, String categoryName, String placeType, String content, String latitude, String longitude) { + this.id=id; + this.categoryKey=categoryKey; + this.categoryName=categoryName; + this.placeType=placeType; + this.content=content; + this.latitude=latitude; + this.longitude=longitude; + if(StringUtils.isNotBlank(latitude)&&StringUtils.isNotBlank(longitude)){ + this.longLat=longitude.concat(StrConstant.COMMA).concat(latitude); + } + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java new file mode 100644 index 0000000000..dcc46ae471 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:13 + */ +@Data +public class CoverageAnalisisDataListResultDTOV2 { + /** + * 维度 + */ + private String latitude; + + /** + * 经度 + */ + private String longitude; + + private List dataList; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java new file mode 100644 index 0000000000..508c63b69c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:25 + * @DESC + */ +@Data +public class CoverageHomeSearchResultDTO implements Serializable { + + private static final long serialVersionUID = 8922820109004386708L; + + /** + * 居民信息 + */ + private List userInfos; + private Long userInfosTotal; + + /** + * 事件信息 + */ + private List eventInfos; + private Long eventInfoTotal; + + /** + * 资源信息 + */ + private List resourceInfos; + private Long resourceInfoTotal; + + public CoverageHomeSearchResultDTO() { + this.userInfos = new ArrayList<>(); + this.userInfosTotal = NumConstant.ZERO_L; + this.eventInfos = new ArrayList<>(); + this.eventInfoTotal = NumConstant.ZERO_L; + this.resourceInfos = new ArrayList<>(); + this.resourceInfoTotal = NumConstant.ZERO_L; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java new file mode 100644 index 0000000000..5478368735 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/7/29 10:45 + */ +@Data +public class DataListLeftSubTotalResDTO { + private String orgId; + private String orgType; + private String orgName; + private String longitude; + private String latitude; + private Integer total=0; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java new file mode 100644 index 0000000000..60866d7c3f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC 事件本组织及下级难点堵点: 社区治理-事件管理中标记的痛点堵点 + */ +@Data +public class EventInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + /** + * 事件ID + */ + private String eventId; + + /** + * 所属网格 + */ + private String gridName; + + @JsonIgnore + private String gridId; + + /** + * 发生时间 yyyy-dd-mm hh:ii:ss + */ + private String happenTime; + + /** + * 事件内容 + */ + private String eventContent; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + public EventInfoResultDTO() { + this.eventId = ""; + this.gridName = ""; + this.happenTime = ""; + this.eventContent = ""; + this.longitude = ""; + this.latitude = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java index a4e155231f..f819fe0bcf 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java @@ -38,5 +38,13 @@ public class GridInfoResultDTO implements Serializable { private String gridId = ""; private String gridName = ""; private String pids = ""; + /** + * 中心位置经度 + */ + private String longitude; + /** + * 中心位置纬度 + */ + private String latitude; } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java new file mode 100644 index 0000000000..c82110c7e9 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java @@ -0,0 +1,76 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC + */ +@Data +public class ResourceInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + private String resourceId; + private String resourceType; + + private String name; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 分类名称 + */ + private String categoryName; + private String category; + + /** + * 占地面积 + */ + private String areaCovered; + + /** + * 容纳人数 + */ + private String capacity; + + /** + * 地址 + */ + private String address; + + /** + * 联系电话 + */ + private String mobile; + + /** + * 联系人 + */ + private String principal; + + public ResourceInfoResultDTO() { + this.resourceId = ""; + this.resourceType = ""; + this.name = ""; + this.longitude = ""; + this.latitude = ""; + this.categoryName = ""; + this.areaCovered = ""; + this.capacity = ""; + this.address = ""; + this.mobile = ""; + this.principal = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java new file mode 100644 index 0000000000..efc74c0517 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java @@ -0,0 +1,92 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC + */ +@Data +public class UserInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + private String icUserId; + + /** + * 名字 + */ + private String name; + + /** + * 所属网格 + */ + private String gridName; + + @JsonIgnore + private String gridId; + + /** + * 所属房屋 + */ + private String houseName; + + @JsonIgnore + private String homeId; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证 + */ + private String idCard; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 人户情况 + */ + private String rhqk; + + /** + * 人员分类 + */ + private List type; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + public UserInfoResultDTO() { + this.icUserId = ""; + this.name = ""; + this.gridName = ""; + this.houseName = ""; + this.homeId = ""; + this.mobile = ""; + this.idCard = ""; + this.gzdw = ""; + this.rhqk = ""; + this.type = new ArrayList<>(); + this.longitude = ""; + this.latitude = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java index 79b6460be4..070a873f43 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java @@ -17,4 +17,13 @@ public class OrgInfoCommonDTO implements Serializable { private String orgId; private String orgName; private String orgType; + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java new file mode 100644 index 0000000000..c777cd1281 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java @@ -0,0 +1,75 @@ +package com.epmet.dataaggre.enums; + +import org.apache.commons.lang3.StringUtils; + +public enum MenusEnums { + + IC_DANGEROUS_CHEMICALS("shequzhili/tuceng/anquan/weihua/index","ic_dangerous_chemicals","重点危化品企业","govorg"), + IC_SUPERIOR_RESOURCE("shequzhili/tuceng/yingji/ziyuan/index","ic_superior_resource","优势资源管理","govorg"), + IC_ENTERPRISE("shequzhili/tuceng/anquan/xuncha/index","ic_enterprise","企事业单位巡查","govorg"), + IC_COMMUNITY_SELF_ORGANIZATION("communityService/sqzzz/index","ic_community_self_organization","社区自组织","heart"), + IC_CITY_MANAGEMENT("shequzhili/csgltc/csgl","ic_city_management","城市管理图层","govorg"), + IC_PUBLIC_SERVICE("shequzhili/ggfwtc/ggfw","ic_public_service","公共服务图层","govorg"), + IC_EVENT("shequzhili/event/eventList","ic_event","事件管理","govproject"); + + private String url; + private String value; + private String name; + private String db; + + MenusEnums(String url, String value, String name, String db) { + this.url = url; + this.value = value; + this.name = name; + this.db = db; + } + + public static MenusEnums get(String url) { + for (MenusEnums gm : MenusEnums.values()) { + if (gm.url.equals(url)) { + return gm; + } + } + return null; + } + + public static String getValueByUrl(String url){ + if (StringUtils.isBlank(url)){ + return ""; + } + for (MenusEnums me : MenusEnums.values()) { + if (me.url.equals(url)) { + return me.getValue(); + } + } + return ""; + } + + public static String getDbByValue(String table){ + if (StringUtils.isBlank(table)){ + return ""; + } + for (MenusEnums me : MenusEnums.values()) { + if (me.value.equals(table)) { + return me.getDb(); + } + } + return ""; + } + + public String getUrl() { + return url; + } + + public String getValue() { + return value; + } + + public String getName() { + return name; + } + + public String getDb() { + return db; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index efa4bca631..1c61ede4bc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -13,6 +13,11 @@ data-aggregator-server + + com.epmet + gov-access-client + 2.0.0 + com.epmet epmet-heart-client diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java index 27563e2134..7a451a9f94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java @@ -1,19 +1,31 @@ package com.epmet.dataaggre.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO; +import com.epmet.commons.tools.enums.ZhzlResiCategoryEnum; +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.security.dto.TokenDto; +import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.Result; -import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListFormDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; +import com.epmet.dataaggre.dto.govorg.form.*; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.service.CoverageService; -import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * 5大图层controller @@ -32,15 +44,122 @@ public class CoverageController { */ @RequestMapping("dataList") public Result> dataList(@RequestBody CoverageAnalisisDataListFormDTO input) { + // 获取跟组织的坐标 + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String staffId = EpmetRequestHolder.getLoginUserId(); List coverageTypes = input.getCoverageTypes(); List categoryKeys = input.getCategoryKeys(); if (CollectionUtils.isEmpty(coverageTypes)) { return new Result().ok(new PageData<>(new ArrayList<>(), 0)); } - PageData page = coverageService.analysisDataList(coverageTypes, categoryKeys, + PageData page = coverageService.analysisDataList(customerId,staffId,input.getOrgId(),input.getOrgType(),coverageTypes, categoryKeys, input.getSearch(), input.getPageNo(), input.getPageSize(), input.getIsPage()); return new Result>().ok(page); } + /** + * 综合治理图层页面,居民类别下拉框 + * @return + */ + @PostMapping("zhzl-category-option") + public Result> queryZhzlCategorySelectOptions() { + List list = ZhzlResiCategoryEnum.toSelectList(); + return new Result>().ok(list); + } + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2022/7/26 16:29 + */ + @PostMapping("search") + public Result coverageHomeSearch(@RequestBody CoverageHomeSearchFormDTO formDTO, @LoginUser TokenDto tokenDto){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result().ok(coverageService.coverageHomeSearch(formDTO)); + } + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + @PostMapping("analysis/resourceCategories") + public Result> listAnalysisResourceCategories(@RequestBody Map input) { + String agencyId = input.get("agencyId"); + List r = coverageService.listAnalysisResourceCategories(agencyId); + return new Result>().ok(r); + } + + /** + * 被管理对象分类列表 + * @param input:只有一个字段:agencyId + * @return + */ + @PostMapping("analysis/governedTargetCategories") + public Result> listGovernedTargetCategories(@RequestBody Map input) { + String agencyId = input.get("agencyId"); + if (StringUtils.isBlank(agencyId)) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "请输入组织ID"); + } + List r = coverageService.listGovernedTargetCategories(agencyId); + return new Result>().ok(r); + } + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @RequestMapping("dataList-left") + public Result> dataListLeft(@LoginUser TokenDto tokenDto, @RequestBody CoverageAnalisisDataListLeftFormDTO formDTO) { + List coverageTypes = formDTO.getCoverageTypes(); + List categoryKeys = formDTO.getCategoryKeys(); + if (CollectionUtils.isEmpty(coverageTypes)||CollectionUtils.isEmpty(categoryKeys)) { + return new Result().ok(new PageData<>(new ArrayList<>(), 0)); + } + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + PageData page = coverageService.dataListLeft(formDTO); + return new Result>().ok(page); + } + + @PostMapping("search-user-detail") + public Result searchUserDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchUserDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchUserDetail(formDTO)); + } + + @PostMapping("search-event-detail") + public Result searchEventDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchEventDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchEventDetail(formDTO)); + } + + @PostMapping("search-resource-detail") + public Result searchResourceDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchResourceDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchResourceDetail(formDTO)); + } + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("dataList-left-subtotal") + public Result> dataListLeftSubTotal(@LoginUser TokenDto tokenDto, @RequestBody DataListLeftSubTotalFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, DataListLeftSubTotalFormDTO.AddUserInterGroup.class); + List resultList = coverageService.dataListLeftSubTotal(formDTO); + return new Result>().ok(resultList); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java index 8705014852..3b3a66dd50 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -21,6 +21,8 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dto.IcResiUserDTO; @@ -28,7 +30,6 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Set; /** * 用户基础信息 @@ -61,7 +62,8 @@ public interface IcResiUserDao extends BaseDao { @Param("agencyId") String agencyId, @Param("queryPids") String queryPids, @Param("categoryKey") String categoryKey, - @Param("search") String search); + @Param("search") String search, + @Param("gridId")String gridId); /** * 政策查找居民 @@ -98,4 +100,42 @@ public interface IcResiUserDao extends BaseDao { @Param("name") String name, @Param("resiRules") List resiRule, @Param("houseIds") List houseIds); + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + List getAllIcUser(CoverageHomeSearchFormDTO formDTO); + + Integer countVolunteersByCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search, + @Param("resiCategory")String resiCategory); + + Integer countVolunteersWithoutVolCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search); + + List listVolunteersByCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search, + @Param("resiCategory")String resiCategory); + + /** + * 列出没有志愿者类别的志愿者 + * @param customerId + * @param agencyId + * @param staffOrgIds + * @param search + * @return + */ + List listVolunteersWithoutVolCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java index 46e2005b33..04746db059 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java @@ -1,9 +1,13 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.govorg.IcCityManagementEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 城市管理图层 * @@ -13,5 +17,49 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface IcCityManagementDao extends BaseDao { + /** + * Desc: 【资源】获取城市管理信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getCityManageInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取公共服务信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取重点危化品企业信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO); + Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取优势资源信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取企事业单位巡查信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO); + Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO 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/IcCoverageCategoryDictDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java index e81167fc39..8c438b9119 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java @@ -3,6 +3,9 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.entity.govorg.IcCoverageCategoryDictEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 五大图层类别字典表 @@ -12,5 +15,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcCoverageCategoryDictDao extends BaseDao { - + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + List getAllTypeCoverageByCustomerAndType(@Param("customerId") String customerId, @Param("dataType") String dataType); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java index d6f5c83879..5c109fe0a6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java @@ -26,7 +26,8 @@ public interface IcEnterprisePatrolRecordDao extends BaseDao listEnterprisePatrol(@Param("customerId") String customerId, @Param("agencyId") String agencyId, @Param("staffOrgIds") String staffOrgIds, @Param("search") String search, - @Param("categoryKey") String categoryKey); + @Param("categoryKey") String categoryKey, @Param("latestResult") String latestResult); } \ 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 c2305c3afc..7cbb6dd87f 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,9 +1,13 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.entity.govproject.IcEventEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 事件管理表 * @@ -12,4 +16,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcEventDao extends BaseDao { + + /** + * Desc: 【资源】获取事件信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:48 + */ + List getEventInfos(CoverageHomeSearchFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java index 2499308cf6..b0adcb3773 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java @@ -18,9 +18,13 @@ package com.epmet.dataaggre.dao.heart; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 社区自组织表 * @@ -29,4 +33,8 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcCommunitySelfOrganizationDao extends BaseDao { + + List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java new file mode 100644 index 0000000000..d826ee778c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.dao.opercustomize; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IcResiCategoryWarnConfigDao extends BaseDao { +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java index a1baff300a..fff25b16f4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java @@ -73,4 +73,14 @@ public class IcCityManagementEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java index cdaca78b91..bc0ae5c9e2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java @@ -43,11 +43,23 @@ public class IcCoverageCategoryDictEntity extends BaseEpmetEntity { */ private String placeType; + /** + * 在可视化系统中所属的plact_type,跟COVERAGE_TYPE可能不同,COVERAGE_TYPE是给管理平台用的 + */ + private String placeTypeInAnalysis; + + /** + * 要跟菜单绑定(客户配置了这个菜单,这里才显示) + */ + private String menuUrl; + /** * 所属五大图层:zhzl:综合治理图层;yjcl:应急处置图层;aqsc:安全生产图层;csgl:城市管理图层;ggfw:公共服务图层 */ private String coverageType; + private String dataType; + /** * 排序 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java index 6a454c446b..1422ac76ad 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java @@ -73,4 +73,14 @@ public class IcPublicServiceEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java new file mode 100644 index 0000000000..0738f7e37a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java @@ -0,0 +1,86 @@ +/** + * 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.entity.opercustomize; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 居民类别预警配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-04 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_category_warn_config") +public class IcResiCategoryWarnConfigEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 项标签 + */ + private String label; + + /** + * 表名 + */ + private String tableName; + + /** + * 列名 + */ + private String columnName; + /** + * 是否预警 1 是 0 否 + */ + private String warn; + + /** + * 排序 + */ + private Integer sort; + + /** + * 等级1阈值 + */ + @TableField(value = "LEVEL_1") + private Integer level1; + + /** + * 等级2阈值 + */ + @TableField(value = "LEVEL_2") + private Integer level2; + + /** + * 等级3阈值 + */ + @TableField(value = "LEVEL_3") + private Integer level3; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java new file mode 100644 index 0000000000..5038e14a7c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java @@ -0,0 +1,109 @@ +package com.epmet.dataaggre.redis; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; +import com.epmet.feign.GovAccessFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 客户菜单配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-03-16 + */ +@Slf4j +@Component +public class GovCustomerMenuRedis { + @Autowired + private RedisUtils redisUtils; + + @Autowired + private GovAccessFeignClient govAccessFeignClient; + + /** + * Desc: 保存客户菜单缓存 + * @param customerId + * @param type + * @param govMenuDTOS + * @author zxc + * @date 2022/7/27 13:45 + */ + public void setCustomerMenuList(String customerId, Integer type, List govMenuDTOS) { + if (checkParam(customerId, type) && !CollectionUtils.isEmpty(govMenuDTOS) && StringUtils.isNotBlank(govMenuDTOS.get(NumConstant.ZERO).getName())) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + govMenuDTOS.forEach(g -> { + Map map = BeanUtil.beanToMap(g, false, true); + redisUtils.listAdd(key,map); + }); + } + } + + /** + * Desc: 获取客户菜单缓存 + * @param customerId + * @param type + * @param tableName + * @author zxc + * @date 2022/7/27 13:45 + */ + public List getCustomerMenuList(String customerId, Integer type, String tableName) { + if (checkParam(customerId, type)) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + List result = new ArrayList<>(); + List> maps = (List>) redisUtils.listGetAll(key, NumConstant.ZERO, NumConstant.ONE_NEG); + for (Map map : maps) { + result.add(ConvertUtils.mapToEntity(map,GovMenuDTO.class)); + } +// result = (List) redisUtils.listGetAll(key, NumConstant.ZERO,NumConstant.ONE_NEG); + if (CollectionUtils.isEmpty(result)){ + GetCustomerMenuListFormDTO formDTO = new GetCustomerMenuListFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setType(type); + formDTO.setTableName(tableName); + Result> customerMenuList = govAccessFeignClient.getCustomerMenuList(formDTO); + if (!customerMenuList.success()){ + throw new EpmetException("查询客户菜单失败"+ JSON.toJSONString(formDTO)); + } + result = customerMenuList.getData(); + setCustomerMenuList(customerId,type,customerMenuList.getData()); + } + return result; + } + return new ArrayList<>(); + } + + /** + * Desc: 删除客户菜单缓存 + * @param + * @author zxc + * @date 2022/7/27 13:47 + */ + public void delAllCustomerMenu(String customerId) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + redisUtils.deleteByPattern(key); + } + + private boolean checkParam(String customerId, Integer type) { + if (StringUtils.isBlank(customerId) || type == null){ + log.warn("checkParam fail, param is null"); + return false; + } + return true; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java index 8734dcabd2..b45d4b909a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java @@ -1,7 +1,13 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.form.DataListLeftSubTotalFormDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import java.util.List; @@ -18,6 +24,43 @@ public interface CoverageService { * @param pageSize 页面大小 * @return */ - PageData analysisDataList(List coverageTypes, List categoryKeys, + PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage); + + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @author zxc + * @date 2022/7/26 16:29 + */ + CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO); + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + List listAnalysisResourceCategories(String agencyId); + + List listGovernedTargetCategories(String agencyId); + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * @param formDTO + * @return + */ + PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO); + + UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO); + + EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO); + + ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO); + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * @param formDTO + * @return + */ + List dataListLeftSubTotal(DataListLeftSubTotalFormDTO formDTO); } \ No newline at end of file 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 894e1fea1c..6f9ce93725 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 @@ -7,11 +7,13 @@ import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; +import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; +import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; @@ -230,4 +232,8 @@ public interface EpmetUserService { * @Date 2022/7/27 17:32 */ PageData getMemberList(OrgStatisticsFormDTO formDTO); + + Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); + + List listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java index 1900b75e89..cf9f5f563d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java @@ -1,6 +1,8 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import java.util.List; @@ -22,7 +24,7 @@ public interface IcResiService { List listResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search, Integer pageNo, Integer pageSize, Boolean isPage); - Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search); + Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search,String gridId); /** * 使用特殊人群类别查询居民列表 @@ -38,5 +40,13 @@ public interface IcResiService { List listSpecialResisBySpecialType(String customerId, String agencyId, String queryPids, String categoryKey, String search, Integer pageNo, Integer pageSize, Boolean isPage); - Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search); + Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search,String gridId); + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + List getAllIcUser(CoverageHomeSearchFormDTO 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 025f550198..14d9bd5dc5 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 @@ -30,10 +30,7 @@ import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; -import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; -import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; -import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; -import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; +import com.epmet.dataaggre.entity.epmetuser.*; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; @@ -895,4 +892,24 @@ public class EpmetUserServiceImpl implements EpmetUserService { PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); } + + @Override + public Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory) { + if ("others".equals(resiCategory)) { + //others需要特殊处理,它是指那些勾选了是志愿者,但是没有选择具体志愿者类型的居民,实际上志愿者类型里面没有others这个类别的 + return icResiUserDao.countVolunteersWithoutVolCategory(customerId, agencyId, staffOrgIds, search); + } else { + return icResiUserDao.countVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); + } + } + + @Override + public List listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory) { + if ("others".equals(resiCategory)) { + //others需要特殊处理,它是指那些勾选了是志愿者,但是没有选择具体志愿者类型的居民,实际上志愿者类型里面没有others这个类别的 + return icResiUserDao.listVolunteersWithoutVolCategory(customerId, agencyId, staffOrgIds, search); + } else { + return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); + } + } } 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 74ba309792..10293c2a8f 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 @@ -2,9 +2,12 @@ package com.epmet.dataaggre.service.epmetuser.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.enums.ResiCategoryEnum; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.IcResiUserDao; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dataaggre.service.epmetuser.IcResiService; import com.github.pagehelper.PageHelper; @@ -37,7 +40,7 @@ public class IcResiServiceImpl implements IcResiService { PageHelper.startPage(pageNo, pageSize); } - LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search); + LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search, null); query.orderByAsc(IcResiUserEntity::getCreatedTime); return resiUserDao.selectList(query); } @@ -52,8 +55,8 @@ public class IcResiServiceImpl implements IcResiService { * @return */ @Override - public Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search) { - LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search); + public Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search, String gridId) { + LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search,gridId); return resiUserDao.selectCount(query); } @@ -66,11 +69,12 @@ public class IcResiServiceImpl implements IcResiService { * @param search * @return */ - LambdaQueryWrapper constructQueryWrapper4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search) { + LambdaQueryWrapper constructQueryWrapper4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search,String gridId) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(IcResiUserEntity::getCustomerId, customerId); query.eq(IcResiUserEntity::getStatus, "0"); // 只查询0 正常的居民。 query.and(q -> q.eq(IcResiUserEntity::getAgencyId, agencyId).or().likeRight(IcResiUserEntity::getPids, queryPids)); + query.eq(StringUtils.isNotBlank(gridId), IcResiUserEntity::getGridId, gridId); if ("resi_xfry".equals(categoryKey)) { // 信访人员 query.eq(IcResiUserEntity::getIsXfry, true); @@ -78,6 +82,42 @@ public class IcResiServiceImpl implements IcResiService { query.eq(IcResiUserEntity::getIsSn, true); } else if ("resi_szry".equals(categoryKey)) { query.eq(IcResiUserEntity::getIsSz, true); + } else if (ResiCategoryEnum.IS_PARTY.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsParty, true); + } else if (ResiCategoryEnum.IS_DBH.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsDbh, true); + } else if (ResiCategoryEnum.IS_ENSURE_HOUSE.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsEnsureHouse, true); + } else if (ResiCategoryEnum.IS_UNEMPLOYED.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsUnemployed, true); + } else if (ResiCategoryEnum.IS_YLFN.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsYlfn, true); + } else if (ResiCategoryEnum.IS_VETERANS.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsVeterans, true); + } else if (ResiCategoryEnum.IS_UNITED_FRONT.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsUnitedFront, true); + } else if (ResiCategoryEnum.IS_XFRY.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsXfry, true); + } else if (ResiCategoryEnum.IS_VOLUNTEER.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsVolunteer, true); + } else if (ResiCategoryEnum.IS_OLD_PEOPLE.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsOldPeople, true); + } else if (ResiCategoryEnum.IS_KC.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsKc, true); + } else if (ResiCategoryEnum.IS_SD.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSd, true); + } else if (ResiCategoryEnum.IS_SN.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSn, true); + } else if (ResiCategoryEnum.IS_SZ.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSz, true); + } else if (ResiCategoryEnum.IS_CJ.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsCj, true); + } else if (ResiCategoryEnum.IS_DB.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsDb, true); + } else if (ResiCategoryEnum.IS_MB.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsMb, true); + } else if (ResiCategoryEnum.IS_SPECIAL.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSpecial, true); } if (StringUtils.isNotBlank(search)) { @@ -97,7 +137,18 @@ public class IcResiServiceImpl implements IcResiService { } @Override - public Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search) { - return resiUserDao.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search); + public Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search, String gridId) { + return resiUserDao.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search,gridId); + } + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + @Override + public List getAllIcUser(CoverageHomeSearchFormDTO formDTO) { + return resiUserDao.getAllIcUser(formDTO); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java index 424cba462d..442166f157 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java @@ -1,16 +1,13 @@ package com.epmet.dataaggre.service.govorg; -import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; import com.epmet.dataaggre.entity.govorg.*; -import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; -import java.util.Set; /** * org库的图层service @@ -115,11 +112,11 @@ public interface GovOrgCoverageService { Integer countSuporiorResourceEntities(String customerId, String staffOrgIds, String search, String categoryKey); - Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey); + Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult,String gridId); List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, Integer pageNo, - Integer pageSize); + Integer pageSize, String latestResult); /** * 通过居民数量等条件查询房屋数量 @@ -137,4 +134,16 @@ public interface GovOrgCoverageService { * @return */ IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey); + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + List getAllTypeCoverageByCustomerAndType(String customerId,String dataType); + List listResourceCategoryEntities(String coverageType); + + List listGovernedTargetCategoryEntities(); } 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 aee2f7dbd7..ae942731a0 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 @@ -243,4 +243,50 @@ public interface GovOrgService { * @Date 2022/7/27 9:44 */ PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO); + + /** + * Desc: 【资源】获取城市管理信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getCityManageInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取公共服务信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取重点危化品企业信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO); + Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取优势资源信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取企事业单位巡查信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO); + Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java index 85b7d2569c..e5688434bc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java @@ -1,8 +1,8 @@ package com.epmet.dataaggre.service.govorg.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.enums.CoverageEnums; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.*; @@ -14,7 +14,10 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * org 图层service @@ -290,18 +293,20 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { } @Override - public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey) { - return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult,String gridId) { + // ic_enterprise.AGENCY_PIDS:agency_id的所有上级 + // 网格不为空时按网格查询, 网格为空时,根据agency_id或者AGENCY_PIDS查看 + return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,latestResult,gridId); } @Override public List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, - Integer pageNo, Integer pageSize) { + Integer pageNo, Integer pageSize, String latestResult) { if (isPage) { PageHelper.startPage(pageNo, pageSize); } - return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey, latestResult); } @Override @@ -324,4 +329,35 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { query.ge(IcHouseEntity::getResiNumber, resiNumberBiggerThan); return query; } + + @Override + public List listResourceCategoryEntities(String coverageType) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcCoverageCategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + query.eq(IcCoverageCategoryDictEntity::getCoverageType, coverageType); + query.orderByAsc(IcCoverageCategoryDictEntity::getSort); + query.eq(IcCoverageCategoryDictEntity::getDataType, CoverageEnums.DATA_TYPE_RESOURCES.getKey()); + return coverageCategoryDictDao.selectList(query); + } + + @Override + public List listGovernedTargetCategoryEntities() { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcCoverageCategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + query.orderByAsc(IcCoverageCategoryDictEntity::getSort); + query.eq(IcCoverageCategoryDictEntity::getDataType, CoverageEnums.DATA_TYPE_GOVERNED_TARGET.getKey()); + return coverageCategoryDictDao.selectList(query); + } + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + @Override + public List getAllTypeCoverageByCustomerAndType(String customerId, String dataType) { + return coverageCategoryDictDao.getAllTypeCoverageByCustomerAndType(customerId, dataType); + } } 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 f9772a9f47..697456d206 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 @@ -127,6 +127,8 @@ public class GovOrgServiceImpl implements GovOrgService { private IcNeighborhoodDao neighborhoodDao; @Resource private GovProjectService govProjectService; + @Autowired + private IcCityManagementDao cityManagementDao; /** * @param staffId @@ -257,6 +259,8 @@ public class GovOrgServiceImpl implements GovOrgService { agecnyInfo.setOrgId(agencyEntity.getId()); agecnyInfo.setOrgName(agencyEntity.getOrganizationName()); agecnyInfo.setOrgType("agency"); + agecnyInfo.setLatitude(agencyEntity.getLatitude()); + agecnyInfo.setLongitude(agencyEntity.getLongitude()); result.add(agecnyInfo); }); return result; @@ -268,6 +272,8 @@ public class GovOrgServiceImpl implements GovOrgService { gridInfo.setOrgId(grid.getGridId()); gridInfo.setOrgName(grid.getGridName()); gridInfo.setOrgType("grid"); + gridInfo.setLongitude(grid.getLongitude()); + gridInfo.setLatitude(grid.getLatitude()); result.add(gridInfo); }); } @@ -1418,4 +1424,54 @@ public class GovOrgServiceImpl implements GovOrgService { return resultData; } + + @Override + public List getCityManageInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getCityManageInfos(formDTO); + } + + @Override + public Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getCityManageInfosCount(formDTO); + } + + @Override + public List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getPublicServiceInfos(formDTO); + } + + @Override + public Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getPublicServiceInfosCount(formDTO); + } + + @Override + public List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getDangerousChemicalsInfos(formDTO); + } + + @Override + public Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getDangerousChemicalsInfosCount(formDTO); + } + + @Override + public List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getSuperiorResourceInfos(formDTO); + } + + @Override + public Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getSuperiorResourceInfosCount(formDTO); + } + + @Override + public List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getEnterpriseInfos(formDTO); + } + + @Override + public Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getEnterpriseInfosCount(formDTO); + } } 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 27e554145d..12f901ed66 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 @@ -3,6 +3,8 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.IcEventEntity; @@ -110,7 +112,7 @@ public interface GovProjectService { * @param isDifficultPoint 是否是难点堵点 * @return */ - Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint); + Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint,String gridId); /** * 搜索事件 @@ -169,4 +171,13 @@ public interface GovProjectService { * @Date 2022/7/28 9:29 */ Map getAgencyClosedProjectMap(OrgStatisticsFormDTO formDTO); + + /** + * Desc: 【资源】获取事件信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:48 + */ + List getEventInfos(CoverageHomeSearchFormDTO 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 ffe5d2d7a3..82b58c2500 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 @@ -26,7 +26,9 @@ import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; @@ -652,15 +654,15 @@ public class GovProjectServiceImpl implements GovProjectService { } @Override - public Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint) { - LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint); + public Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, String gridId) { + LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint,gridId); return icEventDao.selectCount(query); } @Override public List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize) { - LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint); + LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint,null); if (isPage) { PageHelper.startPage(pageNo, pageSize); } @@ -758,6 +760,12 @@ public class GovProjectServiceImpl implements GovProjectService { } /** + @Override + public List getEventInfos(CoverageHomeSearchFormDTO formDTO) { + return icEventDao.getEventInfos(formDTO); + } + + /** * 构造事件查询 * @param customerId * @param staffOrgIds @@ -766,9 +774,13 @@ public class GovProjectServiceImpl implements GovProjectService { * @return */ private LambdaQueryWrapper constructIcEventQueryWrapper(String customerId, String staffOrgIds, - String search, Boolean difficultPoint) { + String search, Boolean difficultPoint, String gridId) { + //ic_event.grid_pids是网格所有的上级,不包括网格自己 + //ic_event.agency_id网格的所属组织 + //所以这staffOrgIds是组织的全路径 LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(IcEventEntity::getCustomerId, customerId); + query.eq(IcEventEntity::getCustomerId, customerId) + .eq(StringUtils.isNotBlank(gridId), IcEventEntity::getGridId, gridId); query.likeRight(IcEventEntity::getGridPids, staffOrgIds); if (StringUtils.isNotBlank(search)) { query.like(IcEventEntity::getName, search); @@ -779,4 +791,10 @@ public class GovProjectServiceImpl implements GovProjectService { return query; } + + @Override + public List getEventInfos(CoverageHomeSearchFormDTO formDTO) { + return icEventDao.getEventInfos(formDTO); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java index e1b4e3692b..03d6de4431 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java @@ -1,5 +1,7 @@ package com.epmet.dataaggre.service.heart; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; @@ -40,4 +42,7 @@ public interface HeartService { Integer countPartyUnitEntities(String customerId, String agencyId, String staffOrgIds, String partyUnitType, String search); Integer countCommunityOrgEntities(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey); + + List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java index c29f54c5ff..7af8676a08 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java @@ -5,10 +5,11 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.heart.IcCommunitySelfOrganizationDao; import com.epmet.dataaggre.dao.heart.IcPartyUnitDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; import com.epmet.dataaggre.service.heart.HeartService; -import com.epmet.dto.result.PartyMemberUserIdsResultDTO; import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +58,16 @@ public class HeartServiceImpl implements HeartService { return communitySelfOrganizationDao.selectCount(query); } + @Override + public List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO) { + return communitySelfOrganizationDao.getCommunitySelOrgInfos(formDTO); + } + + @Override + public Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO) { + return communitySelfOrganizationDao.getCommunitySelOrgInfosCount(formDTO); + } + private LambdaQueryWrapper constructCommunityOrgQueryWrapper( String customerId, String agencyId, String staffOrgIds, String search, String categoryKey) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index b5f8a0ec3a..7639f6c561 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -1,35 +1,66 @@ package com.epmet.dataaggre.service.impl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.CoverageEnums; +import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; +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; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.dataaggre.constant.OrgConstant; +import com.epmet.dataaggre.constant.TableConstant; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.form.DataListLeftSubTotalFormDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; +import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dataaggre.entity.govorg.*; import com.epmet.dataaggre.entity.govproject.IcEventEntity; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import com.epmet.dataaggre.enums.MenusEnums; +import com.epmet.dataaggre.redis.GovCustomerMenuRedis; import com.epmet.dataaggre.service.CoverageService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.IcResiService; import com.epmet.dataaggre.service.govorg.GovOrgCoverageService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.heart.HeartService; +import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; +import com.epmet.dto.GovMenuDTO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @Slf4j @@ -51,20 +82,20 @@ public class CoverageServiceImpl implements CoverageService { @Autowired private GovProjectService govProjectService; - /** - * 场所类型常量 - */ - public static final String PLACE_TYPE_RESI = "resi"; - public static final String PLACE_TYPE_SPECIAL_RESI = "special_resi"; - public static final String PLACE_TYPE_EVENT= "event"; - public static final String PLACE_TYPE_CITY_MANAGEMENT= "city_management"; - public static final String PLACE_TYPE_COMUNITY_ORG= "community_org"; - public static final String PLACE_TYPE_DANGEROUS_CHEMICALS= "dangerous_chemicals"; - public static final String PLACE_TYPE_ENTERPRISE_PARTROL= "enterprise_patrol"; - public static final String PLACE_TYPE_GROUP_RENT= "group_rent"; - public static final String PLACE_TYPE_PUBLIC_SERVICE= "public_service"; - public static final String PLACE_TYPE_SUPERIOR_RESOURCE= "superior_resource"; - public static final String PLACE_TYPE_PARTY_UNIT= "party_unit"; + @Autowired + private GovOrgCoverageService govOrgCoverageService; + + @Autowired + private GovCustomerMenuRedis govCustomerMenuRedis; + + @Autowired + private IcResiCategoryWarnService icResiCategoryWarnService; + + @Autowired + private ExecutorService executorService; + + @Autowired + private EpmetUserService epmetUserService; // 1:出租 0:自住 2:闲置 3:未售出 public static final Integer HOUSE_RENT_FLAG_RENT = 1; @@ -79,12 +110,11 @@ public class CoverageServiceImpl implements CoverageService { * @return */ @Override - public PageData analysisDataList(List coverageTypes, List categoryKeys, + public PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage) { // 获取跟组织的坐标 - String customerId = EpmetRequestHolder.getLoginUserCustomerId(); - String staffId = EpmetRequestHolder.getLoginUserId(); CustomerAgencyEntity rootAgency = govOrgService.getRootAgencyByCustomerId(customerId); // 1.根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map @@ -104,15 +134,9 @@ public class CoverageServiceImpl implements CoverageService { } // 2.循环coverageTypes,使用key到map中查询(为了顺序),得到categoryKeys列表之后,根据实际情况做相应的查询 - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); - - if (staffInfo == null) { - String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); - throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); - } - - String staffPids = getStaffPidsFromStaffInfo(staffInfo); - String agencyId = staffInfo.getAgencyId(); + Map agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,orgId,orgType); + String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH); + String agencyId = agencyMap.get(OrgConstant.AGENCY_ID); // 分页不太好分,先查出所有的数据,然后partation()吧 int start = (pageNo - 1) * pageSize; @@ -140,8 +164,8 @@ public class CoverageServiceImpl implements CoverageService { } for (GovOrgCoverageService.CategoryCoverageMapping e : ccm) { - Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), - e.getCategoryKey(), search); + Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), + e.getCategoryKey(), search,null); lastTotalCount = totalCount; totalCount += tempCount; @@ -149,7 +173,7 @@ public class CoverageServiceImpl implements CoverageService { // 不分页,查询所有 // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, null, null, isPage, rootAgency); rls.addAll(dataSegment); continue; @@ -171,7 +195,7 @@ public class CoverageServiceImpl implements CoverageService { // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, 1, end, isPage, rootAgency); if (firstTimeDataAppear) { @@ -195,6 +219,304 @@ public class CoverageServiceImpl implements CoverageService { } } + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @author zxc + * @date 2022/7/26 16:29 + */ + @Override + public CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO) { + String customerId = formDTO.getCustomerId(); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, formDTO.getUserId()); + if (null == staffInfo){ + throw new EpmetException("查询工作人员失败:"+formDTO.getUserId()); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + CoverageHomeSearchResultDTO result = new CoverageHomeSearchResultDTO(); + // 缓存的客户菜单 + List customerMenuList = govCustomerMenuRedis.getCustomerMenuList(customerId, 0, "gov_menu"); + // org库配置的 + List resources = govOrgCoverageService.getAllTypeCoverageByCustomerAndType(customerId, "resources"); + if (CollectionUtils.isEmpty(resources)){ + return result; + } + if (CollectionUtils.isEmpty(customerMenuList)){ + return result; + } + List tables = new ArrayList<>(); + customerMenuList.forEach(cm -> { + resources.forEach(r -> { + if (cm.getUrl().equals(r)){ + String tableName = MenusEnums.getValueByUrl(r); + if (StringUtils.isNotBlank(tableName)){ + tables.add(tableName); + } + } + }); + }); + if (CollectionUtils.isEmpty(tables)){ + return result; + } + // 更多,查询出直接返回 + if (StringUtils.isNotBlank(formDTO.getSearchType())){ + if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_USER)){ + PageInfo allIcUserPageInfo = getIcUserPageInfo(formDTO); + result.setUserInfos(allIcUserPageInfo.getList()); + result.setUserInfosTotal(allIcUserPageInfo.getTotal()); + return result; + }else if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_RESOURCE)){ + List reInfos = new ArrayList<>(); + List>> futures = new ArrayList<>(); + for (String resource : resources) { + if (MenusEnums.IC_SUPERIOR_RESOURCE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getSuperiorResourceInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_CITY_MANAGEMENT.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getCityManageInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_COMMUNITY_SELF_ORGANIZATION.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> heartService.getCommunitySelOrgInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_DANGEROUS_CHEMICALS.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getDangerousChemicalsInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_ENTERPRISE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getEnterpriseInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_PUBLIC_SERVICE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getPublicServiceInfos(formDTO),executorService); + futures.add(c); + } + } + for (CompletableFuture> future : futures) { + try { + if (CollectionUtils.isNotEmpty(future.get())){ + reInfos.addAll(future.get()); + } + } catch (InterruptedException e) { + log.error("【五大图层首页】异步获取资源列表被中断:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层首页】异步获取异步获取资源列表失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + result.setResourceInfos(reInfos); + return result; + } + }else { + // 查询居民 + PageInfo allIcUserPageInfo = getIcUserPageInfo(formDTO); + result.setUserInfos(allIcUserPageInfo.getList()); + result.setUserInfosTotal(allIcUserPageInfo.getTotal()); + List reInfos = new ArrayList<>(); + for (String table : tables) { + if (formDTO.getIsPage() && reInfos.size() == formDTO.getPageSize()){ + break; + } + Integer flag = formDTO.getPageSize() - reInfos.size(); + switch (table){ + case TableConstant.IC_SUPERIOR_RESOURCE: + List superiorResourceInfos = govOrgService.getSuperiorResourceInfos(formDTO); + if (formDTO.getIsPage() && superiorResourceInfos.size() > flag){ + reInfos.addAll(superiorResourceInfos.subList(NumConstant.ZERO, flag)); + }else { + reInfos.addAll(superiorResourceInfos); + } + break; + case TableConstant.IC_CITY_MANAGEMENT: + List cityManageInfos = govOrgService.getCityManageInfos(formDTO); + if (formDTO.getIsPage() && cityManageInfos.size() > flag){ + reInfos.addAll(cityManageInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(cityManageInfos); + } + break; + case TableConstant.IC_COMMUNITY_SELF_ORGANIZATION: + List communitySelOrgInfos = heartService.getCommunitySelOrgInfos(formDTO); + if (formDTO.getIsPage() && communitySelOrgInfos.size() > flag){ + reInfos.addAll(communitySelOrgInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(communitySelOrgInfos); + } + break; + case TableConstant.IC_DANGEROUS_CHEMICALS: + List dangerousChemicalsInfos = govOrgService.getDangerousChemicalsInfos(formDTO); + if (formDTO.getIsPage() && dangerousChemicalsInfos.size() > flag){ + reInfos.addAll(dangerousChemicalsInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(dangerousChemicalsInfos); + } + break; + case TableConstant.IC_ENTERPRISE: + List enterpriseInfos = govOrgService.getEnterpriseInfos(formDTO); + if (formDTO.getIsPage() && enterpriseInfos.size() > flag){ + reInfos.addAll(enterpriseInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(enterpriseInfos); + } + break; + case TableConstant.IC_PUBLIC_SERVICE: + List publicServiceInfos = govOrgService.getPublicServiceInfos(formDTO); + if (formDTO.getIsPage() && publicServiceInfos.size() > flag){ + reInfos.addAll(publicServiceInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(publicServiceInfos); + } + break; + default: + break; + } + } + result.setResourceInfos(reInfos); + result.setResourceInfoTotal(Long.valueOf(String.valueOf(reInfos.size()))); + } + for (String resource : resources) { + if (MenusEnums.IC_EVENT.getUrl().equals(resource)){ + PageInfo eventPageInfo = getEventInfo(formDTO); + result.setEventInfos(eventPageInfo.getList()); + result.setEventInfoTotal(eventPageInfo.getTotal()); + break; + } + } + return result; + } + + /** + * Desc: 【资源】优势资源查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getSuperiorResourcePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getSuperiorResourceInfos(formDTO)); + }else { + List superiorResourceInfos = govOrgService.getSuperiorResourceInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(superiorResourceInfos.size()))); + result.setList(superiorResourceInfos); + } + return result; + } + + /** + * Desc: 【资源】城市管理查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getCityManagePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getCityManageInfos(formDTO)); + }else { + List cityManageInfos = govOrgService.getCityManageInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(cityManageInfos.size()))); + result.setList(cityManageInfos); + } + return result; + } + + /** + * Desc: 【资源】公共服务查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getPublicServicePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getPublicServiceInfos(formDTO)); + }else { + List publicServiceInfos = govOrgService.getPublicServiceInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(publicServiceInfos.size()))); + result.setList(publicServiceInfos); + } + return result; + } + + /** + * Desc: 【资源】重点危化品企业查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getDangerousChemicalsPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getDangerousChemicalsInfos(formDTO)); + }else { + List dangerousChemicalsInfos = govOrgService.getDangerousChemicalsInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(dangerousChemicalsInfos.size()))); + result.setList(dangerousChemicalsInfos); + } + return result; + } + + /** + * Desc: 【资源】企事业单位查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getEnterpriseInfosPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getEnterpriseInfos(formDTO)); + }else { + List enterpriseInfos = govOrgService.getEnterpriseInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(enterpriseInfos.size()))); + result.setList(enterpriseInfos); + } + return result; + } + + /** + * Desc: 居民信息查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:34 + */ + public PageInfo getIcUserPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> icResiService.getAllIcUser(formDTO)); + }else { + List allIcUser = icResiService.getAllIcUser(formDTO); + result.setTotal(Long.valueOf(String.valueOf(allIcUser.size()))); + result.setList(allIcUser); + } + if (CollectionUtils.isNotEmpty(result.getList())){ + result.getList().forEach(r -> { + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), r.getHomeId()); + if (null == houseInfo){ + throw new EpmetException("获取房屋信息失败:"+r.getHomeId()); + } + r.setLongitude(houseInfo.getBuildingLongitude()); + r.setLatitude(houseInfo.getBuildingLatitude()); + }); + } + return result; + } + + /** + * Desc: 事件查询 + * @param formDTO + * @author zxc + * @date 2022/7/28 16:03 + */ + public PageInfo getEventInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govProjectService.getEventInfos(formDTO)); + }else { + List eventInfos = govProjectService.getEventInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(eventInfos.size()))); + result.setList(eventInfos); + } + return result; + } + /** * 从staff信息中获取工作人员的PIDS * @param staffInfo @@ -210,6 +532,41 @@ public class CoverageServiceImpl implements CoverageService { } } + private Map getStaffPidsFromStaffInfo(String customerId, String staffId, String orgId, String orgType) { + Map map = new HashMap<>(); + String agencyPath = StrConstant.EPMETY_STR; + String agencyId = StrConstant.EPMETY_STR; + if (StringUtils.isBlank(orgId)) { + // 默认查询的是当前登录用户所属组织及下级 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); + if (staffInfo == null) { + String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + // staffPids + agencyPath = getStaffPidsFromStaffInfo(staffInfo); + agencyId = staffInfo.getAgencyId(); + } else { + // 根据传入的组织id来 + if (OrgConstant.AGENCY.equals(orgType)) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(orgId); + if (agencyInfoCache == null) { + String msg = "查询组织缓存信息异常。orgId:" + orgId; + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + agencyId = orgId; + if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) { + agencyPath = agencyInfoCache.getPids().concat(":").concat(agencyId); + } else { + agencyPath = orgId; + } + } + } + map.put(OrgConstant.AGENCY_ID, agencyId); + map.put(OrgConstant.AGENC_PATH, agencyPath); + return map; + } + /** * 计算数据条数 * @param customerId @@ -221,45 +578,55 @@ public class CoverageServiceImpl implements CoverageService { * @return */ public Integer doDataListCount(String customerId, String agencyId, String staffOrgIds, String placeType, - String categoryKey, String search) { + String categoryKey, String search,String gridId) { - if (PLACE_TYPE_RESI.equals(placeType)) { + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeType)) { // 使用分类查询居民信息 return icResiService.countResisByCategories4Coverage(customerId, agencyId, - staffOrgIds, categoryKey, search); - } else if (PLACE_TYPE_SPECIAL_RESI.equals(placeType)) { + staffOrgIds, categoryKey, search,gridId); + } else if (CoveragePlaceTypeEnum.SPECIAL_RESI.getCode().equals(placeType)) { // 特殊人群 - return icResiService.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search); - } else if (PLACE_TYPE_EVENT.equals(placeType)) { + return icResiService.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search,gridId); + } else if (CoveragePlaceTypeEnum.EVENT.getCode().equals(placeType)) { // 难点痛点 - return govProjectService.countIcEventEntities(customerId, staffOrgIds, search, true); - } else if (PLACE_TYPE_CITY_MANAGEMENT.equals(placeType)) { + return govProjectService.countIcEventEntities(customerId, staffOrgIds, search, true,gridId); + } else if (CoveragePlaceTypeEnum.CITY_MANAGEMENT.getCode().equals(placeType)) { // 城市资源管理 return orgCoverageService.countCityResourceEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_COMUNITY_ORG.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.COMMUNITY_ORG.getCode().equals(placeType)) { // 社区自组织 return heartService.countCommunityOrgEntities(customerId, agencyId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_PARTY_UNIT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PARTY_UNIT.getCode().equals(placeType)) { // 机关直属部门(联建单位) 楼宇党建 0;两新组织 1;区域单位党建 2;机关直属部门 3;社会团体 4;民办非企业单位 5;基金会 6;其他 7 - if (categoryKey.equals("pu_jgzsbm")) { - String partyUnitType = "3"; - return heartService.countPartyUnitEntities(customerId, agencyId, staffOrgIds, partyUnitType, search); - } - } else if (PLACE_TYPE_DANGEROUS_CHEMICALS.equals(placeType)) { +// if (categoryKey.equals("pu_jgzsbm")) { +// String partyUnitType = "3"; +// } + String[] parts = categoryKey.split("_"); + return heartService.countPartyUnitEntities(customerId, agencyId, staffOrgIds, parts[1], search); + } else if (CoveragePlaceTypeEnum.DANGEROUS_CHEMICALS.getCode().equals(placeType)) { // 危化企业 return orgCoverageService.countDangerousChemicalEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_ENTERPRISE_PARTROL.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 - return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,null,null); + } else if (CoveragePlaceTypeEnum.GROUP_RENT.getCode().equals(placeType)) { // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 return orgCoverageService.countByResiNumber(customerId, staffOrgIds, search, 5, HOUSE_RENT_FLAG_RENT); - } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PUBLIC_SERVICE.getCode().equals(placeType)) { // 公共服务 return orgCoverageService.countPublicServiceEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_SUPERIOR_RESOURCE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SUPERIOR_RESOURCE.getCode().equals(placeType)) { // 优势资源 return orgCoverageService.countSuporiorResourceEntities(customerId, staffOrgIds, search, categoryKey); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + // 企事业单位巡查 + // 最新巡查结果【0:合格 1:不合格】 + // 左侧用,可以到网格, + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,NumConstant.ONE_STR,gridId); + } else if (CoveragePlaceTypeEnum.VOLUNTEER.getCode().equals(placeType)) { + // 志愿者 + String[] parts = categoryKey.split("_"); + return epmetUserService.countVolunteers(customerId, agencyId, staffOrgIds, search, parts[1]); } return 0; @@ -283,7 +650,7 @@ public class CoverageServiceImpl implements CoverageService { // 根据categoryKey查询类别名称 IcCoverageCategoryDictEntity categoryDict = orgCoverageService.selectByCategoryKey(categoryKey); - if (PLACE_TYPE_RESI.equals(placeType)) { + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeType)) { // 使用分类查询居民信息 List resiEntities = icResiService.listResisByCategories4Coverage( customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); @@ -293,11 +660,12 @@ public class CoverageServiceImpl implements CoverageService { String[] coordinates = getUserCoordinates(re.getId(), re.getBuildId(), rootAgency); return new CoverageAnalisisDataListResultDTO( - re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? re.getName() : null, + re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdCard()).concat(StrConstant.BRACKET_RIGNT), coordinates[1], coordinates[0]); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_SPECIAL_RESI.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SPECIAL_RESI.getCode().equals(placeType)) { // 特殊人群 List resiInfos = icResiService.listSpecialResisBySpecialType( customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); @@ -307,21 +675,23 @@ public class CoverageServiceImpl implements CoverageService { return new CoverageAnalisisDataListResultDTO( re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, - isPage ? re.getName() : null, coordinates[1], coordinates[0]); + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdNum()).concat(StrConstant.BRACKET_RIGNT), + coordinates[1], coordinates[0]); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_EVENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.EVENT.getCode().equals(placeType)) { // 难点痛点 List icEventEntities = govProjectService.searchIcEventEntities( customerId, staffOrgIds, search, true, isPage, pageNo, pageSize); return icEventEntities.stream() .map(e -> new CoverageAnalisisDataListResultDTO( - e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? e.getName() : null, + e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + e.getEventContent().length() < 21 ? e.getEventContent() : e.getEventContent().substring(NumConstant.ZERO, 20).concat(StrConstant.ELLIPSIS), e.getLatitude(), e.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_CITY_MANAGEMENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.CITY_MANAGEMENT.getCode().equals(placeType)) { // 城市资源管理 List cityResources = orgCoverageService.searchCityResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -331,7 +701,7 @@ public class CoverageServiceImpl implements CoverageService { isPage ? resource.getName() : null, resource.getLatitude(), resource.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_COMUNITY_ORG.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.COMMUNITY_ORG.getCode().equals(placeType)) { // 社区自组织 List l = heartService.searchCommunityOrgEntities( customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -342,20 +712,19 @@ public class CoverageServiceImpl implements CoverageService { isPage ? org.getOrganizationName() : null, org.getLatitude(), org.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_PARTY_UNIT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PARTY_UNIT.getCode().equals(placeType)) { // 机关直属部门(联建单位) 楼宇党建 0;两新组织 1;区域单位党建 2;机关直属部门 3;社会团体 4;民办非企业单位 5;基金会 6;其他 7 - if (categoryKey.equals("pu_jgzsbm")) { - String partyUnitType = "3"; - List l = heartService.searchPartyUnitEntities( - customerId, agencyId, staffOrgIds, partyUnitType, search, isPage, pageNo, pageSize); - - return l.stream() - .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, - isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getUnitName() : null, dc.getLatitude(), dc.getLongitude())) - .collect(Collectors.toList()); - } - return new ArrayList<>(); - } else if (PLACE_TYPE_DANGEROUS_CHEMICALS.equals(placeType)) { +// if (categoryKey.equals("pu_jgzsbm")) { +// String partyUnitType = "3"; +// } + String[] parts = categoryKey.split("_"); + List l = heartService.searchPartyUnitEntities( + customerId, agencyId, staffOrgIds, parts[1], search, isPage, pageNo, pageSize); + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, + isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getUnitName() : null, dc.getLatitude(), dc.getLongitude())) + .collect(Collectors.toList()); + } else if (CoveragePlaceTypeEnum.DANGEROUS_CHEMICALS.getCode().equals(placeType)) { // 危化企业 List l = orgCoverageService.searchDangerousChemicalEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -365,17 +734,17 @@ public class CoverageServiceImpl implements CoverageService { isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_ENTERPRISE_PARTROL.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 List list = orgCoverageService.listEnterprisePatrol( - customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,null); return list.stream() .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getPlaceOrgName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.GROUP_RENT.getCode().equals(placeType)) { // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 List houses = orgCoverageService.searchByResiNumber( customerId, staffOrgIds, search, 5, HOUSE_RENT_FLAG_RENT, isPage, pageNo, pageSize); @@ -393,7 +762,7 @@ public class CoverageServiceImpl implements CoverageService { isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? houseName : null, latitude, longitude); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PUBLIC_SERVICE.getCode().equals(placeType)) { // 公共服务 List l = orgCoverageService.searchPublicServiceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -401,7 +770,7 @@ public class CoverageServiceImpl implements CoverageService { .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_SUPERIOR_RESOURCE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SUPERIOR_RESOURCE.getCode().equals(placeType)) { // 优势资源 List l = orgCoverageService.searchSuporiorResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -409,6 +778,32 @@ public class CoverageServiceImpl implements CoverageService { .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + //最新巡查结果【0:合格 1:不合格】 + List list = orgCoverageService.listEnterprisePatrol( + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,NumConstant.ONE_STR); + + return list.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, + isPage ? categoryDict.getCategoryName() : null, placeType, dc.getPlaceOrgName() , + StringUtils.isNotBlank(dc.getLatitude()) ? dc.getLatitude() : rootAgency.getLatitude(), + StringUtils.isNotBlank(dc.getLongitude()) ? dc.getLongitude() : rootAgency.getLongitude())) + .collect(Collectors.toList()); + } else if (CoveragePlaceTypeEnum.VOLUNTEER.getCode().equals(placeType)) { + // 志愿者 + String[] parts = categoryKey.split("_"); + List resiEntities = epmetUserService.listVolunteers(customerId, agencyId, staffOrgIds, search, parts[1]); + + return resiEntities.parallelStream().map(re -> { + // 使用楼栋的坐标补充居民的坐标信息 + String[] coordinates = getUserCoordinates(re.getId(), re.getBuildId(), rootAgency); + + return new CoverageAnalisisDataListResultDTO( + re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdCard()).concat(StrConstant.BRACKET_RIGNT), + coordinates[1], coordinates[0]); + + }).collect(Collectors.toList()); } return new ArrayList<>(); } @@ -439,4 +834,423 @@ public class CoverageServiceImpl implements CoverageService { } return new String[]{longitude, latitude}; } + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + @Override + public List listAnalysisResourceCategories(String agencyId) { + + // 获取所有菜单的url + List menuUrls = new ArrayList<>(128); + + List menus = govCustomerMenuRedis.getCustomerMenuList(EpmetRequestHolder.getLoginUserCustomerId(), 0, "gov_menu"); + if (CollectionUtils.isNotEmpty(menus)) { + menus.stream().forEach(m -> menuUrls.add(m.getUrl())); + } + + //结果集 + ArrayList results = new ArrayList<>(); + + // 1.查询categoryDict表得到基础数据,每个图层循环一次 + for (CoverageEnums coverage : CoverageEnums.values()) { + + if (!coverage.getType().equals(1)) { + continue; + } + + AnalysisResourceCategoriesResult coverageResult = new AnalysisResourceCategoriesResult(); + HashMap placeTypeMap = new HashMap<>(); + + List categoryDictEntities = govOrgCoverageService.listResourceCategoryEntities(coverage.getKey()); + + if (CollectionUtils.isEmpty(categoryDictEntities)) { + continue; + } + + // 3.对上一步得到的数据进行分组,使用PLACE_TYPE_IN_ANALYSIS分组,然后放入placeType,这一列为空的说明不分组,直接属于coverage + categoryDictEntities.forEach(category -> { + if (StringUtils.isBlank(category.getPlaceTypeInAnalysis())) { + // 没有placetype的 + if ("all".equals(category.getMenuUrl()) || menuUrls.contains(category.getMenuUrl())) { + coverageResult.getCategories() + .add(new AnalysisResourceCategoriesResult.Category(category.getCategoryKey(), category.getCategoryName(), + category.getCoverageType(), category.getPlaceType(), 0)); + } + } else { + // 有placetype的 + AnalysisResourceCategoriesResult.PlaceType placeType = placeTypeMap.get(category.getPlaceTypeInAnalysis()); + if ("all".equals(category.getMenuUrl()) || menuUrls.contains(category.getMenuUrl())) { + + if (placeType == null) { + placeType = new AnalysisResourceCategoriesResult.PlaceType( + category.getPlaceTypeInAnalysis(), CoveragePlaceTypeEnum.getEnum(category.getPlaceTypeInAnalysis()).getName(), new AtomicInteger(0), new ArrayList<>()); + placeTypeMap.put(category.getPlaceTypeInAnalysis(), placeType); + } + + placeType.getCategories().add(new AnalysisResourceCategoriesResult.Category(category.getCategoryKey(), + category.getCategoryName(), category.getCoverageType(), category.getPlaceType(), 0)); + } + + } + }); + + placeTypeMap.forEach((placeTypeKey, placeType) -> { + coverageResult.getPlaceTypesInAnalysis().add(placeType); + }); + + coverageResult.setCoverageType(coverage.getKey()); + coverageResult.setCoverageName(CoverageEnums.getEnum(coverage.getKey()).getCoverageName()); + results.add(coverageResult); + } + + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String userId = EpmetRequestHolder.getLoginUserId(); + + Map stafInfoMap=getStaffPidsFromStaffInfo(customerId, userId, agencyId,OrgConstant.AGENCY); + String staffOrgPath = stafInfoMap.get(OrgConstant.AGENC_PATH); + + // 填充数量quantity字段 + fillQuantities4ResourcesCoverages(results, customerId, agencyId, staffOrgPath); + + return results; + } + + private void fillQuantities4ResourcesCoverages(ArrayList coverages, String customerId, String agencyId, String staffOrgIds) { + + ArrayList> futures = new ArrayList<>(); + + coverages.forEach(coverage -> { + List categoriesInCoverage = coverage.getCategories(); + List placeTypesInCoverage = coverage.getPlaceTypesInAnalysis(); + + if (CollectionUtils.isNotEmpty(categoriesInCoverage)) { + // 直属于图层的category。异步提交计算任务 + CompletableFuture future = CompletableFuture.runAsync(() -> fillQuantities4ResourcesCategories(coverage, null, categoriesInCoverage, customerId, agencyId, staffOrgIds)); + futures.add(future); + } + if (CollectionUtils.isNotEmpty(placeTypesInCoverage)) { + // placeType,需要拆开来算, 异步提交计算任务 + placeTypesInCoverage.forEach(placeType -> { + List categoriesInPlaceType = placeType.getCategories(); + CompletableFuture future = CompletableFuture.runAsync(() -> fillQuantities4ResourcesCategories(coverage, placeType, categoriesInPlaceType, customerId, agencyId, staffOrgIds)); + futures.add(future); + }); + } + }); + + // 等待异步任务计算完成 + futures.forEach(f -> { + try { + f.get(); + } catch (InterruptedException e) { + log.error("【五大图层】可视化-右侧资源列表异步计算数量quantity失败,计算被中止,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层】可视化-右侧资源列表异步计算数量quantity失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } + }); + } + + private void fillQuantities4ResourcesCategories(AnalysisResourceCategoriesResult coverage, + AnalysisResourceCategoriesResult.PlaceType placeType, + List categories, + String customerId, String agencyId, String staffOrgIds) { + + AtomicInteger total = new AtomicInteger(); + + categories.forEach(cat -> { + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, cat.getPlaceType(), cat.getCategoryKey(), null, null); + cat.setQuantity(quantity); + total.getAndAdd(quantity); + }); + + // 分别给所属的coverage和placeType的quantity增加quantity + coverage.getQuantity().getAndAdd(total.get()); + + if (placeType != null) { + placeType.getQuantity().getAndAdd(total.get()); + } + } + + @Override + public List listGovernedTargetCategories(String agencyId) { + + // 获取所有菜单的url + List menuUrls = new ArrayList<>(128); + + List menus = govCustomerMenuRedis.getCustomerMenuList(EpmetRequestHolder.getLoginUserCustomerId(), 0, "gov_menu"); + if (CollectionUtils.isNotEmpty(menus)) { + menus.stream().forEach(m -> menuUrls.add(m.getUrl())); + } + + // 1.从表中取数据出来 + List targetCategories = govOrgCoverageService.listGovernedTargetCategoryEntities(); + + if (CollectionUtils.isEmpty(targetCategories)) { + return new ArrayList<>(); + } + + //2.从oper_customize.ic_resi_category_warn_config表中取18大类居民中需要预警的类出来 + List categoriesNeed2Warn = icResiCategoryWarnService.listResiCategoriesNeed2Warn(EpmetRequestHolder.getLoginUserCustomerId()); + List resiCategories2Show = categoriesNeed2Warn.stream().map(wc -> wc.getColumnName()).collect(Collectors.toList()); + + List results = new ArrayList<>(); + HashMap> placeTypeTargetMap = new HashMap<>(); + + targetCategories.forEach(rc -> { + String placeTypeInAnalysis = rc.getPlaceTypeInAnalysis(); + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeTypeInAnalysis) && !resiCategories2Show.contains(rc.getCategoryKey())) { + // 因为公共服务-人群,是需要跟oper_customize.ic_resi_category_warn_config表对应,只显示warn=1的, + // 所以如果是被管理对象中的公共服务人群,如果不开启预警,就跳过;其他情况都放进去 + return; + } + + if (StringUtils.isEmpty(placeTypeInAnalysis)) { + // 只有一层,没有子级 + if (menuUrls.contains(rc.getMenuUrl()) || "all".equals(rc.getMenuUrl())) { + results.add(new AnalysisGovernedTargetsResult(rc.getCategoryKey(), rc.getCategoryName(), rc.getCoverageType(), + rc.getPlaceType(), CoveragePlaceTypeEnum.getEnum(rc.getPlaceType()).getName(), 0, new ArrayList<>())); + } + } else { + // 有子级,需要使用placeTypeInAnalysis分组 + if (menuUrls.contains(rc.getMenuUrl()) || "all".equals(rc.getMenuUrl())) { + List targets = placeTypeTargetMap.get(placeTypeInAnalysis); + if (CollectionUtils.isEmpty(targets)) { + targets = new ArrayList<>(); + placeTypeTargetMap.put(placeTypeInAnalysis, targets); + } + targets.add(new AnalysisGovernedTargetsResult(rc.getCategoryKey(), rc.getCategoryName(), rc.getCoverageType(), + rc.getPlaceType(), CoveragePlaceTypeEnum.getEnum(rc.getPlaceType()).getName(), 0, new ArrayList<>())); + } + } + }); + + // 最后,把需要分组的"公共服务人群","综合治理人群"放到最后的结果列表中 + if (placeTypeTargetMap.size() > 0) { + placeTypeTargetMap.forEach((placeTypeInAnalysis, targetObjects) -> { + AnalysisGovernedTargetsResult tr = new AnalysisGovernedTargetsResult(); + tr.setPlaceType(placeTypeInAnalysis); + tr.setPlaceTypeName(CoveragePlaceTypeEnum.getEnum(placeTypeInAnalysis).getName()); + tr.setChildren(targetObjects); + results.add(tr); + }); + } + + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String staffId = EpmetRequestHolder.getLoginUserId(); + + Map agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,agencyId,OrgConstant.AGENCY); + String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH); + + // 再最后,多线程setQuantity + fillQuantities4GovernedTarges(results, customerId, agencyId, agencyPath); + + return results; + } + + /** + * 填充数量,接收参数为多个placeType(对应左侧菜单的所有一级) + * @param results + */ + private void fillQuantities4GovernedTarges(List results, String customerId, String agencyId, String staffOrgIds) { + + ArrayList> futures = new ArrayList<>(); + + results.stream().forEach(targetsOfOnePlaceType -> { + CompletableFuture future = CompletableFuture.runAsync(() -> { + fillQuantities4GovernedTarges(targetsOfOnePlaceType, customerId, agencyId, staffOrgIds); + }, executorService); + + futures.add(future); + }); + + // 此处是为了等待计算完成 + futures.forEach(future -> { + try { + future.get(); + } catch (InterruptedException e) { + log.error("【五大图层】可视化-左侧异步计算数量quantity失败,计算被中止,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层】可视化-左侧异步计算数量quantity失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } + }); + } + + /** + * 填充数量,接收参数为左侧单个placeType + * @param targetsOfOnePlaceType + * @param customerId + * @param agencyId + * @param staffOrgIds + */ + private void fillQuantities4GovernedTarges(AnalysisGovernedTargetsResult targetsOfOnePlaceType, String customerId, String agencyId, String staffOrgIds) { + List children = targetsOfOnePlaceType.getChildren(); + if (CollectionUtils.isEmpty(children)) { + // 城市管理时间 || 安全生产隐患等只有一层的 + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, targetsOfOnePlaceType.getPlaceType(), + targetsOfOnePlaceType.getCategoryKey(), null, null); + targetsOfOnePlaceType.setQuantity(quantity); + } else { + // 综合治理人群 || 公共服务人群等有子级的 + + AtomicInteger totalOfPlaceType = new AtomicInteger(); + children.forEach(governedTarget -> { + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, governedTarget.getPlaceType(), + governedTarget.getCategoryKey(), null, null); + governedTarget.setQuantity(quantity); + totalOfPlaceType.addAndGet(quantity); + }); + + // 设置这一组的总数 + targetsOfOnePlaceType.setQuantity(totalOfPlaceType.get()); + } + } + + + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @Override + public PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO) { + PageData page = analysisDataList(formDTO.getCustomerId(), formDTO.getStaffId(), formDTO.getOrgId(), formDTO.getOrgType(), + formDTO.getCoverageTypes(), formDTO.getCategoryKeys(), + StrConstant.EPMETY_STR,// 搜索关键词 默认空字符串 + NumConstant.ONE, + NumConstant.TWENTY, + false // 不分页 + ); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(page.getList())) { + Map> group = page.getList().stream().collect(Collectors.groupingBy(x->Optional.ofNullable(x.getLongLat()).orElse("O"))); + + if (MapUtils.isNotEmpty(group)) { + for (Map.Entry> entry : group.entrySet()) { + if (CollectionUtils.isEmpty(entry.getValue())) { + continue; + } + CoverageAnalisisDataListResultDTOV2 res = new CoverageAnalisisDataListResultDTOV2(); + res.setLatitude(entry.getValue().get(NumConstant.ZERO).getLatitude()); + res.setLongitude(entry.getValue().get(NumConstant.ZERO).getLongitude()); + res.setDataList(entry.getValue()); + list.add(res); + } + } + } + // int totalCount = CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO;//这个是实际返回的几个坐标点 + // page.getTotal()是多少条业务数据 + return new PageData<>(list, page.getTotal()); + } + + @Override + public UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + UserInfoResultDTO result = new UserInfoResultDTO(); + List allIcUser = icResiService.getAllIcUser(dto); + if (CollectionUtils.isNotEmpty(allIcUser)){ + result = allIcUser.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), result.getHomeId()); + if (null == houseInfo){ + throw new EpmetException("获取房屋信息失败:"+result.getHomeId()); + } + result.setHouseName(houseInfo.getAllName()); + result.setLongitude(houseInfo.getBuildingLongitude()); + result.setLatitude(houseInfo.getBuildingLatitude()); + } + return result; + } + + @Override + public EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + EventInfoResultDTO result = new EventInfoResultDTO(); + List eventInfos = govProjectService.getEventInfos(dto); + if (CollectionUtils.isNotEmpty(eventInfos)){ + result = eventInfos.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + } + return result; + } + + @Override + public ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + ResourceInfoResultDTO result = new ResourceInfoResultDTO(); + List infos = new ArrayList<>(); + switch (formDTO.getResourceType()){ + case "community_org": + infos = heartService.getCommunitySelOrgInfos(dto); + break; + case "superior_resource": + infos = govOrgService.getSuperiorResourceInfos(dto); + break; + case "city_management": + infos = govOrgService.getCityManageInfos(dto); + break; + case "dangerous_chemicals": + infos = govOrgService.getDangerousChemicalsInfos(dto); + break; + case "public_service": + infos = govOrgService.getPublicServiceInfos(dto); + break; + case "enterprise_patrol": + infos = govOrgService.getEnterpriseInfos(dto); + break; + default: + break; + } + if (CollectionUtils.isNotEmpty(infos)){ + result = infos.get(NumConstant.ZERO); + } + return result; + } + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * + * @param formDTO + * @return + */ + @Override + public List dataListLeftSubTotal(DataListLeftSubTotalFormDTO formDTO) { + List resultList=new ArrayList<>(); + List list = SpringContextUtils.getBean(GovOrgService.class).queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId()); + if(CollectionUtils.isNotEmpty(list)){ + resultList=ConvertUtils.sourceToTarget(list,DataListLeftSubTotalResDTO.class); + for(DataListLeftSubTotalResDTO orgRes:resultList){ + String gridId=StrConstant.EPMETY_STR; + String agencyId=StrConstant.EPMETY_STR; + String orgIdPath=StrConstant.EPMETY_STR; + if(OrgConstant.AGENCY.equals(orgRes.getOrgType())){ + agencyId=orgRes.getOrgId(); + AgencyInfoCache agencyInfoCache=CustomerOrgRedis.getAgencyInfo(orgRes.getOrgId()); + if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) { + orgIdPath = agencyInfoCache.getPids().concat(":").concat(agencyId); + } else { + orgIdPath = agencyId; + } + }else{ + gridId=orgRes.getOrgId(); + GridInfoCache gridInfoCache=CustomerOrgRedis.getGridInfo(orgRes.getOrgId()); + orgIdPath=gridInfoCache.getPids(); + } + int count = doDataListCount(formDTO.getCustomerId(), agencyId, orgIdPath, formDTO.getPlaceType(), formDTO.getCategoryKey(), null, gridId); + orgRes.setTotal(count); + } + } + return resultList; + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java index 8ea7d871d5..59810ea97b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -149,10 +149,17 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { // 使用年龄计算出生日期 if (resiRule != null) { resiRule.stream().forEach((r) -> { + // 对生日列计算 if ("BIRTHDAY".equals(r.getColKey())) { - LocalDate birthday = LocalDate.now().minus(Long.valueOf(r.getColVal()), ChronoUnit.YEARS); - r.setQueryType(revertQueryType(r.getQueryType())); - r.setColVal(birthday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + if ("is_null".equals(r.getQueryType()) || "is_not_null".equals(r.getQueryType())) { + // 如果是is_null、is_not_null,那么直接用这个条件 + return; + } else { + //如果不是is_null、is_not_null,那么需要转换为出生日期 + LocalDate birthday = LocalDate.now().minus(Long.valueOf(r.getColVal()), ChronoUnit.YEARS); + r.setQueryType(revertQueryType(r.getQueryType())); + r.setColVal(birthday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } } }); } @@ -209,7 +216,16 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { resultResis.stream().forEach((r) -> { // 小区名称 - r.setNeighborHoodName(gridIdAndName.get(r.getGridId()).concat("-").concat(neighborhoodIdAndName.get(r.getNeighborhoodId()))); + String gridName = gridIdAndName.get(r.getGridId()); + String neighborhoodName = neighborhoodIdAndName.get(r.getNeighborhoodId()); + + if (StringUtils.isNoneBlank(gridName, neighborhoodName)) { + // 网格或者小区都能找到,给填充数据 + r.setNeighborHoodName(gridIdAndName.get(r.getGridId()).concat("-").concat(neighborhoodIdAndName.get(r.getNeighborhoodId()))); + } else { + // 网格或者小区中任何一个找不到,给个空 + r.setNeighborHoodName(""); + } // 出生日期 & 年龄 if (r.getBirthday() != null) { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java new file mode 100644 index 0000000000..5910c9d9f1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.service.opercustomize; + +/** + * @Author zxc + * @DateTime 2022/7/27 17:20 + * @DESC + */ +public interface IcResiCategoryStatsConfigService { +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java new file mode 100644 index 0000000000..85b43f948a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.service.opercustomize; + +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; + +import java.util.List; + +public interface IcResiCategoryWarnService { + List listResiCategoriesNeed2Warn(String loginUserCustomerId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java new file mode 100644 index 0000000000..c3e52bacec --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java @@ -0,0 +1,28 @@ +package com.epmet.dataaggre.service.opercustomize.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.opercustomize.IcResiCategoryWarnConfigDao; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@DataSource(DataSourceConstant.OPERCUSTOMIZE) +public class IcResiCategoryWarnServiceImpl implements IcResiCategoryWarnService { + + @Autowired + private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; + + @Override + public List listResiCategoriesNeed2Warn(String customerId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcResiCategoryWarnConfigEntity::getCustomerId, customerId); + query.eq(IcResiCategoryWarnConfigEntity::getWarn, "1"); + return icResiCategoryWarnConfigDao.selectList(query); + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml index adcb55f269..d89996a58a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -38,7 +38,7 @@ + + + + + + + + + + + + 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 c094cc33b8..7f68c5d787 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 @@ -47,7 +47,9 @@ + SELECT + ID AS resourceId, + 'city_management' AS resourceType, + IFNULL(`NAME`,'') AS name, + IFNULL(LONGITUDE,'') AS LONGITUDE, + IFNULL(LATITUDE,'') AS LATITUDE, + IFNULL(CATEGORY,'') AS CATEGORY, + IFNULL(AREA_COVERED,'') AS areaCovered, + IFNULL(CAPACITY,0) AS CAPACITY, + IFNULL(ADDRESS,'') AS ADDRESS, + IFNULL(PRINCIPAL,'') AS PRINCIPAL, + IFNULL(MOBILE,'') AS MOBILE + FROM ic_city_management + WHERE DEL_FLAG = 0 + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + + AND `NAME` LIKE CONCAT('%',#{name},'%') + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml index beb08a1262..22a95a5720 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml @@ -3,6 +3,23 @@ + + @@ -10,6 +27,10 @@ + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml index 6aa433eb09..1c7d0dd16e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml @@ -8,10 +8,22 @@ select count(1) from ic_enterprise e where e.CUSTOMER_ID = #{customerId} - and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') - and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') + + + and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) + + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + + + and e.GRID_ID = #{gridId} + @@ -32,7 +44,12 @@ where e.CUSTOMER_ID = #{customerId} and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + \ No newline at end of file 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 ad5afc48d2..c037d97239 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 @@ -1,6 +1,30 @@ - + + \ 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 5771dfad79..1b159cb69d 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 @@ -429,10 +429,10 @@ DEL_FLAG = '0' AND AGENCY_ID = #{agencyId} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY GRID_ID @@ -450,10 +450,10 @@ AND GRID_ID IS NOT NULL AND GRID_ID != '' - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY GRID_ID @@ -471,10 +471,10 @@ AND GRID_ID = #{orgId} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY CREATED_BY @@ -493,10 +493,10 @@ AND GRID_ID = #{orgId} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY STAFF_ID @@ -511,10 +511,10 @@ DEL_FLAG = '0' AND (AGENCY_ID = #{agencyId} OR ORG_ID_PATH LIKE CONCAT('%', #{agencyId}, '%')) - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY AGENCY_ID @@ -530,10 +530,10 @@ AND (AGENCY_ID = #{agencyId} OR ORG_ID_PATH LIKE CONCAT('%', #{agencyId}, '%')) AND OPERATION = 'close' - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") = ]]> #{startDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} - AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") #{endDate} + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") #{endDate} GROUP BY AGENCY_ID diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml index c785e28c0d..57b7dc3449 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml @@ -2,4 +2,35 @@ + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml new file mode 100644 index 0000000000..0da1fddf73 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java index 8e6c99d562..c54642b6f1 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java @@ -20,4 +20,11 @@ public class EventInfoFormDTO extends PageFormDTO implements Serializable { * 操作类型【新增:add 修改删除:edit】 */ private String type; + /** + * 是否初始化, 通常用于初期初始化数据,由自己控制 + * 0不初始化,有则更新,没有则新增 + * 1完全初始化,删除全部数据 + * 2在完全初始化之后,由于eventreport_pingyin表没有客户ID,初始化其他客户的数据时候可以设2,直接新增 + */ + private String initFlag = "0"; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java index 9d39ef6b81..768fad2827 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java @@ -28,7 +28,7 @@ public class GridBaseInfoFormDTO implements Serializable { * 操作类型【新增:add 修改删除:edit 初始化所有数据:all】 */ private String type; - + private String delFlag; public interface Grid extends CustomerClientShowGroup {} } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java index 658a3e9c2d..e281c7400e 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java @@ -147,4 +147,14 @@ public class CustomerAgencyDTO implements Serializable { * 社区 */ private String community; + + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java index a5458793dd..7328788cb6 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java @@ -134,4 +134,9 @@ public class CustomerStaffDTO implements Serializable { */ private String roleName; + /** + * 身份证号 + */ + private String idCard; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java index c70b0332e4..ce1a1c71ee 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java @@ -20,6 +20,7 @@ package com.epmet.dto.user.result; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** @@ -78,6 +79,25 @@ public class GridUserInfoDTO implements Serializable { */ private String sex; + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date leaveDate; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 67f56957dc..ffd9da0f11 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -36,7 +36,7 @@ import java.util.List; * @author: jianjun liu */ //url="http://localhost:8108" -//@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = DataStatisticalOpenFeignClientFallBack.class, url = "http://localhost:6666") +// @FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallbackFactory = DataStatisticalOpenFeignClientFallBackFactory.class, url = "http://localhost:8108") @FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallbackFactory = DataStatisticalOpenFeignClientFallBackFactory.class) public interface DataStatisticalOpenFeignClient { @@ -341,7 +341,8 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping("/data/stats/datareporting/eventinfo") Result> getEventInfo(@RequestBody EventInfoFormDTO formDTO); - + @PostMapping("/data/stats/datareporting/eventinfoV2") + Result> getEventInfoV2(@RequestBody EventInfoFormDTO formDTO); /** * wangxianzhang * diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index b5bb0013c4..a46ceb0635 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -333,6 +333,11 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfo", formDTO); } + @Override + public Result> getEventInfoV2(EventInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfoV2", formDTO); + } + @Override public Result statsVolunteerDemandServicesDaily(String customerId) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "statsVolunteerDemandServicesDaily", customerId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java index 85706430c4..a61a208f34 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java @@ -102,5 +102,8 @@ public class DataReportingController { public Result> getEventInfo(@RequestBody(required = false) EventInfoFormDTO formDTO) { return new Result>().ok(dataReportingService.getEventInfo(formDTO)); } - + @PostMapping("eventinfoV2") + public Result> getEventInfoV2(@RequestBody(required = false) EventInfoFormDTO formDTO) { + return new Result>().ok(dataReportingService.getEventInfoV2(formDTO)); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java index db2b42ba5b..1809319a3c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -72,6 +72,7 @@ public interface ScreenProjectDataDao extends BaseDao { int updateProjectSatisfactionScore(@Param("projectId")String projectId, @Param("score")BigDecimal score); List selectProjectList(@Param("customerId") String customerId, @Param("projectIds") List projectIds); + List selectProjectListV2(@Param("customerId") String customerId, @Param("projectIds") List projectIds); /** * @Description 查询网格下的项目分类 @@ -132,4 +133,6 @@ public interface ScreenProjectDataDao extends BaseDao { * @Date 2022/3/16 9:48 */ void updateHistoryData(CustomerStaffGridDTO dto); + + int getProjectCount(@Param("customerId") String customerId,@Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java index 921a2b3dde..db3012c803 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java @@ -69,4 +69,13 @@ public interface DataReportingService { */ List getEventInfo(EventInfoFormDTO formDTO); + /** + * 事件上报 + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + List getEventInfoV2(EventInfoFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java index c0d124698f..e0b4386790 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java @@ -139,7 +139,7 @@ public interface ScreenProjectDataService extends BaseService getProjectList(String customerId, List projectId, Integer pageNo, Integer pageSize); - + List getProjectListV2(String customerId, List projectId, Integer pageNo, Integer pageSize); /** * 项目变更MQ * @Param msg diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java index db975af203..004085496a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java @@ -260,10 +260,12 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl NumConstant.ZERO) { - affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); - } + List projectIds = meta.stream().map(ScreenProjectDataDTO::getProjectId).collect(Collectors.toList()); + List> projectPartition = ListUtils.partition(projectIds, NumConstant.FIFTY); + projectPartition.forEach(part -> { + baseDao.deleteByProjectIds(customerId, part); + }); + List> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED); partition.forEach(part -> { List list = ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class); @@ -309,6 +311,11 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl getProjectListV2(String customerId, List projectId, Integer pageNo, Integer pageSize) { + PageHelper.startPage(pageNo, pageSize, false); + return baseDao.selectProjectListV2(customerId, projectId); + } /** * @Description 项目变更MQ 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 8b33031420..6d76dfd175 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 @@ -100,6 +100,9 @@ public class DataReportingServiceImpl implements DataReportingService { public List getStaffBaseInfo(StaffBaseInfoFormDTO formDTO) { //1.查询工作人员所属网格信息 List resultList = customerGridService.getStaffGrid(formDTO); + if (CollectionUtils.isEmpty(resultList)) { + return new ArrayList<>(); + } //2.查询工作人员基础信息 List staffDTOList = userService.getStaffBaseInfo(formDTO); @@ -118,6 +121,13 @@ public class DataReportingServiceImpl implements DataReportingService { st.setUserType(dto.getWorkType().equals("fulltime") ? "01" : "02"); st.setPhonenumber(dto.getMobile()); st.setSex(0 == dto.getGender() ? "9" : dto.getGender().toString()); + st.setUpdateTime(dto.getUpdatedTime()); + st.setIdCard(dto.getIdCard()); + st.setStaffId(dto.getUserId()); + st.setIsLeave("enable".equals(dto.getEnableFlag()) ? "N" : "Y"); + if ("Y".equals(st.getIsLeave())) { + st.setLeaveDate(DateUtils.integrate(dto.getUpdatedTime(), DateUtils.DATE_PATTERN)); + } } }); @@ -201,12 +211,72 @@ public class DataReportingServiceImpl implements DataReportingService { return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); } + /** + * 事件上报 + * + * @param formDTO + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + @Override + public List getEventInfoV2(EventInfoFormDTO formDTO) { + List list; + //根据入参,获取项目 + long start = System.currentTimeMillis(); + List projectList = screenProjectDataService.getProjectListV2(formDTO.getCustomerId(), formDTO.getProjectId(), formDTO.getPageNo(), formDTO.getPageSize()); + log.info("事件上报-查询项目列表耗时:{}ms",System.currentTimeMillis()-start); + //项目列表为空,返回空数组 + if(CollectionUtils.isEmpty(projectList)) { + return Collections.emptyList(); + } + start = System.currentTimeMillis(); + Map epmetCodeMap = new HashMap<>(); + Result parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); + if (StringUtils.isNotBlank(parentCustomer.getData())) { + epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); + } + Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId()); + //项目ID不为空时,因为只有一条,可以直接处理 + Map finalEpmetCodeMap = epmetCodeMap; + if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { + list = projectList.stream().map(project -> { + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); + ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); + dto.setOrgId(project.getOrgId()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } else { + //项目ID不为空时,提前取出客户下的组织和网格 + Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); + Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); + list = projectList.stream().map(project -> { + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); + ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); + dto.setOrgId(project.getOrgId()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } + log.info("事件上报-组装数据耗时:{}ms",System.currentTimeMillis()-start); + return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); + } + private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map epmetCodeMap, Map codeMap) { EventInfoResultDTO dto = new EventInfoResultDTO(); dto.setId(project.getProjectId()); dto.setCustomerId(project.getCustomerId()); dto.setEventName(project.getProjectTitle()); dto.setReporterId(project.getProjectCreator()); + //获取工作人员姓名和身份证 String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; String parentCode = null == codeMap.get(categoryCode)?null:codeMap.get(categoryCode).getParentCategoryCode(); //如果是孔村、榆山、锦水的项目需要关联分类字典表 @@ -290,6 +360,7 @@ public class DataReportingServiceImpl implements DataReportingService { dto.setCompleteTime(project.getCloseCaseTime()); dto.setLat(project.getLatitude()); dto.setLng(project.getLongitude()); + dto.setWaysOfResolving(ProjectConstant.PROJECT_SELF_CLOSED); return dto; } @@ -333,4 +404,7 @@ public class DataReportingServiceImpl implements DataReportingService { return userService.getPatrolDetailList(formDTO); } + + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml index 6cf57e3109..64b783c786 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml @@ -269,6 +269,80 @@ ORDER BY a.CREATED_TIME ASC + + select count(ID) + from screen_project_data + where customer_id = #{customerId} + and DATA_END_TIME = #{dateId} + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml index 7ab6ca322c..061b1e43bf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml @@ -158,8 +158,13 @@ * FROM customer_grid - WHERE del_flag = '0' - AND customer_id = #{customerId} + WHERE customer_id = #{customerId} + + AND del_flag = #{delFlag} + + and CODE is not null + and CODE !='' + and grid_name not like '%专属网格' #{gridId} @@ -176,7 +181,7 @@ cg.`code` code FROM customer_staff_grid csg - INNER JOIN customer_grid cg ON csg.grid_id = cg.id + INNER JOIN customer_grid cg ON csg.grid_id = cg.id AND cg.`CODE` != '' AND cg.`CODE` is not null WHERE csg.del_flag = '0' AND csg.customer_id = #{customerId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml index fa5da30046..fec3627bc0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml @@ -214,8 +214,12 @@ * FROM customer_agency - WHERE del_flag = '0' - AND customer_id = #{customerId} + WHERE customer_id = #{customerId} + and CODE is not null + and CODE !='' + + AND del_flag = #{delFlag} + #{agencyId} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java index 6364dc08e2..a8cad6d0f6 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java @@ -104,6 +104,21 @@ public class IcCommunitySelfOrganizationDTO implements Serializable { */ private String latitude; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java index 2258b94762..5935d564de 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java @@ -134,6 +134,21 @@ public class IcPartyUnitDTO implements Serializable { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * 删除标识 0未删除、1已删除 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java index d9f15f9637..910a5b2e38 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java @@ -64,7 +64,7 @@ public class IcPolicyRuleDetailDTO { /** * 参数值 */ - @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) + // @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) private String colVal; /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java index 39552f7654..790c8c2a44 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java @@ -100,6 +100,22 @@ public class CommunitySelfOrganizationListDTO implements Serializable { * 积分 */ private Integer score; + + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * 社区自组织人员 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 9939b88455..e3b04df7bb 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -16,6 +16,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; @@ -166,4 +167,8 @@ public interface EpmetHeartOpenFeignClient { */ @PostMapping("/heart/policy/rules4ResiListAndExport/{ruleId}") Result listPolicyRules4QueryAndExport(@PathVariable("ruleId") String ruleId); + + @PostMapping("/heart/icpartyunit/editpartyorcommunity") + Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO); + } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index 815bfab92c..558cd43f2b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -18,6 +18,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; @@ -166,4 +167,9 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result listPolicyRules4QueryAndExport(String ruleId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "listPolicyRules4QueryAndExport", ruleId); } + + @Override + public Result editPartyOrCommunity(CheckStaffInfoResultDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "editPartyOrCommunity", formDTO); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 236e0d3b99..95093177cb 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -22,11 +22,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.ImportTaskCommonResultDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -312,4 +308,14 @@ public class IcPartyUnitController { return new Result>().ok(icPartyUnitService.getAssistanceUnitList(tokenDto)); } + /** + * Desc: 联建单位、社会自组织同步/取消同步到通讯录部门后相应的修改业务数据 + * @author sun + */ + @PostMapping("editpartyorcommunity") + public Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO){ + icPartyUnitService.editPartyOrCommunity(formDTO); + return new Result(); + } + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java index 7098ce83e9..3f35e32184 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java @@ -117,4 +117,19 @@ public class IcCommunitySelfOrganizationEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java index 65c11a447f..47210a837a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java @@ -105,4 +105,19 @@ public class IcPartyUnitEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java new file mode 100644 index 0000000000..39bdd462f5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java @@ -0,0 +1,15 @@ +package com.epmet.entity; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/7/27 16:23 + */ +@Data +public class ServerInfoDTO { + private String serviceName; + private String mobile; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 53ddf81e19..8cc2d342a7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -12,10 +12,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.PartyUnitListbriefFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -182,4 +179,6 @@ public interface IcPartyUnitService extends BaseService { * @param form */ List getTypepercent(PartyTypepercentFormDTO form); + + void editPartyOrCommunity(CheckStaffInfoResultDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index 1824e1feb3..68a295422a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -25,6 +25,7 @@ import com.epmet.dto.form.demand.*; import com.epmet.dto.result.PointRecordResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; +import com.epmet.entity.ServerInfoDTO; import java.util.List; import java.util.Map; @@ -262,4 +263,6 @@ public interface IcUserDemandRecService extends BaseService page(Map params) { @@ -374,8 +379,29 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - baseDao.deleteById(formDTO.getOrgId()); - personnelService.deleteByOrgId(formDTO.getOrgId()); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【社会自组织被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcCommunitySelfOrganizationEntity entity = baseDao.selectById(formDTO.getOrgId()); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(formDTO.getOrgId()); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("community_org"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "社会自组织删除,取消同步到通讯录数据失败", "社会自组织删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + bl = result.getData().getType(); + } + if (bl) { + baseDao.deleteById(formDTO.getOrgId()); + personnelService.deleteByOrgId(formDTO.getOrgId()); + } + } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 91dc0baa57..304705ac2d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -55,13 +55,12 @@ import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceStatDTO; +import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.IcPartyUnitImportExcel; import com.epmet.excel.IcPartyUnitImportFailedExcel; -import com.epmet.feign.EpmetAdminOpenFeignClient; -import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.EpmetHeartOpenFeignClient; -import com.epmet.feign.OssFeignClient; +import com.epmet.feign.*; +import com.epmet.service.IcCommunitySelfOrganizationService; import com.epmet.service.IcPartyUnitService; import com.epmet.service.IcServiceItemDictService; import com.epmet.service.IcUserDemandRecService; @@ -78,6 +77,7 @@ import org.apache.http.entity.ContentType; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; @@ -111,6 +111,10 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl search(PartyUnitFormDTO formDTO) { @@ -122,7 +126,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); PageInfo pageInfo = new PageInfo<>(list); List dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitDTO.class); @@ -257,8 +261,28 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - // 逻辑删除(@TableLogic 注解) - baseDao.deleteById(id); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【联建单位被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcPartyUnitEntity entity = baseDao.selectById(id); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(id); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("party_unit"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "联建单位删除,取消同步到通讯录数据失败", "联建单位删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + } + if (bl) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteById(id); + } + } /** @@ -711,4 +735,30 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl page(Map params) { @@ -156,7 +153,37 @@ public class IcServiceRecordV2ServiceImpl extends BaseServiceImpl smsList = new ArrayList<>(); + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(customerId); + sms.setMobile(serverInfoDTO.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.IC_SERVICE_TEM); + Map paramMap = new HashMap<>(); + //${nane}发起一个${serviceName}服务,请服务完成后尽快反馈,谢谢合作。 + paramMap.put("nane",staffInfoCacheResult.getAgencyName()); + paramMap.put("serviceName",serviceName); + sms.setParamMap(paramMap); + smsList.add(sms); + messageOpenFeignClient.sendMsg(smsList); } @Override diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index c1acbcd859..951b7b2e79 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -43,6 +43,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ReadFlagConstant; +import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.UserDemandConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.IcUserDemandOperateLogDao; @@ -414,11 +415,11 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl smsList=new ArrayList<>(); + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(customerId); + sms.setMobile(mobile); + sms.setAliyunTemplateCode(SmsTemplateConstant.DEMAND_SERVICE_TEM); + Map paramMap = new HashMap<>(); + paramMap.put("name",staffInfoCacheResult.getAgencyName()); + sms.setParamMap(paramMap); + smsList.add(sms); + Result res=messageOpenFeignClient.sendMsg(smsList); } /** @@ -438,21 +467,25 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java index c5647e5edf..3f1ec288ac 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java @@ -37,4 +37,24 @@ public interface SmsTemplateConstant { * 项目滞留提醒 */ String PROJECT_OVERDUE = "SMS_206885207"; + + /** + * 模板名称 + * 数字社区-服务方接收消息模板 + * 模板CODE + * SMS_247205033 + * 模板内容 + * ${nane}发起一个${serviceName}服务,请服务完成后尽快反馈,谢谢合作。 + */ + String IC_SERVICE_TEM="SMS_247205033"; + + /** + * 模板名称 + * 数字社区-需求服务方接收消息模板 + * 模板CODE + * SMS_247645013 + * 模板内容 + * ${name}给您指派了一个新的需求,请服务完成后尽快反馈,谢谢合作。 + */ + String DEMAND_SERVICE_TEM="SMS_247645013"; } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java new file mode 100644 index 0000000000..a24d9dcba8 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Map; + +/** + * @Description + * @Author yzm + * @Date 2022/7/27 17:23 + */ +@Data +public class SendSmsFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class}) + private String mobile; + + /** + * 场景: + */ + @NotBlank(message = "短信模板编码不能为空", groups = {AddUserInternalGroup.class}) + private String aliyunTemplateCode; + + /** + * 如果短信模板内有参数,按序传入 + */ + // private List paramsContent; + private Map paramMap; + private String customerId; +} + diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java index 920d508b89..8b9f06198f 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java @@ -21,7 +21,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:47 */ -//@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085") +// @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085") @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class) public interface EpmetMessageOpenFeignClient { /** @@ -123,4 +123,8 @@ public interface EpmetMessageOpenFeignClient { */ @PostMapping("/message/system/pendding-mq-msg-scan") Result penddingMqMsgScan(); + + + @PostMapping(value = "message/sms/send-msg", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result sendMsg(@RequestBody List formDTO); } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java index eba096ff0f..2d5c0d9073 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java @@ -73,4 +73,9 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig public Result penddingMqMsgScan() { return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "penddingMqMsgScan"); } + + @Override + public Result sendMsg(List formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendMsg",formDTO); + } } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java index c41ad3195d..47684b67c7 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java @@ -16,6 +16,7 @@ import com.epmet.commons.tools.validator.group.AliyunGroup; import com.epmet.commons.tools.validator.group.QcloudGroup; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.enums.PlatformEnum; @@ -128,4 +129,17 @@ public class SmsController { return new Result(); } + /** + * 通用发短信方法,传入短信模板,内容 + * + * @param formDTOList + * @return + */ + @PostMapping("send-msg") + public Result sendMsg(@RequestBody List formDTOList) { + ValidatorUtils.validateEntity(formDTOList, SendSmsFormDTO.AddUserShowGroup.class, SendSmsFormDTO.AddUserInternalGroup.class); + sysSmsService.sendMsg(formDTOList); + return new Result(); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java index 1327aff692..0025768d94 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.entity.SysSmsEntity; @@ -77,5 +78,6 @@ public interface SysSmsService extends BaseService { **/ void projectSendMsg(List formDTOList); + void sendMsg(List formDTOList); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java index 1fc41bc718..b001fd7978 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.dao.SysSmsDao; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.CrmParameterResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; @@ -323,7 +324,32 @@ public class SysSmsServiceImpl extends BaseServiceImpl service.sendSmsMsg(sysSmsDTO); } } catch (Exception e) { - logger.warn(String.format("项目提醒发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage())); + logger.warn(String.format("发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage())); + } + } + + @Override + public void sendMsg(List formDTOList) { + try { + for(SendSmsFormDTO formDTO:formDTOList){ + if (StringUtils.isBlank(formDTO.getAliyunTemplateCode())) { + continue; + } + SysSmsDTO sysSmsDTO = new SysSmsDTO(); + sysSmsDTO.setMobile(formDTO.getMobile()); + sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode()); + sysSmsDTO.setCustomerId(formDTO.getCustomerId()); + try{ + String paramJson = new ObjectMapper().writeValueAsString(formDTO.getParamMap()); + sysSmsDTO.setParams(paramJson); + } catch (JsonProcessingException e) { + log.warn("sendMsg JsonProcessingException", e); + } + //推送短信 + this.sendMsg(sysSmsDTO); + } + } catch (Exception e) { + logger.error("sendMsg exception", e); } } diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java index f4b7ce74e9..0915ba9348 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java @@ -60,6 +60,11 @@ public class GovRoleDTO implements Serializable { */ private Long deptId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + /** * 删除标识:0.未删除 1.已删除 */ diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java new file mode 100644 index 0000000000..a79722fcd4 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/27 10:13 + * @DESC + */ +@Data +public class GetCustomerMenuListFormDTO implements Serializable { + + private static final long serialVersionUID = 8143715578744359728L; + + private String customerId; + + /** + * 0:菜单;1:按钮 + */ + private Integer type; + + private String language; + + private String tableName; +} diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java new file mode 100644 index 0000000000..7ff4de4670 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java @@ -0,0 +1,49 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 角色管理 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-18 + */ +@Data +public class GovRoleListDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 角色名称 + */ + private String name; + + +} \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java index 36ccf542bb..074b6f0504 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java @@ -2,13 +2,14 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.GetStaffExistRoleFormDTO; -import com.epmet.dto.form.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; -import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.fallback.GovAccessFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -52,4 +53,19 @@ public interface GovAccessFeignClient { @PostMapping("/gov/access/govroleuser/getStaffExistRole") Result> getStaffExistRole(@RequestBody GetStaffExistRoleFormDTO formDTO); + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + @PostMapping("/gov/access/menu/getCustomerMenuList") + Result> getCustomerMenuList(@RequestBody GetCustomerMenuListFormDTO formDTO); + + @PostMapping("/gov/access/govrole/getgovrole") + Result getGovRole(@RequestBody GovRoleListDTO formDTO); + + @PostMapping("/gov/access/govrole/initgovrole/{customerId}") + Result initGovRole(@PathVariable(value = "customerId") String customerId); + } diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java index bfb9acbc3b..74ea29dbfe 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java @@ -3,10 +3,10 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.GetStaffExistRoleFormDTO; -import com.epmet.dto.form.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; -import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.GovAccessFeignClient; @@ -40,4 +40,19 @@ public class GovAccessFeignClientFallBack implements GovAccessFeignClient { public Result> getStaffExistRole(GetStaffExistRoleFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getStaffExistRole", formDTO); } + + @Override + public Result> getCustomerMenuList(GetCustomerMenuListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getCustomerMenuList", formDTO); + } + + @Override + public Result getGovRole(GovRoleListDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getGovRole", formDTO); + } + + @Override + public Result initGovRole(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "initGovRole", customerId); + } } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java index ce89f2c7d8..cc94cd91f0 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java @@ -11,6 +11,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; import com.epmet.service.GovMenuService; import com.epmet.service.GovResourceService; import org.springframework.beans.factory.annotation.Autowired; @@ -155,4 +156,15 @@ public class GovMenuController { govMenuService.clearOperUserAccess(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId()); return new Result(); } + + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + @PostMapping("getCustomerMenuList") + public Result> getCustomerMenuList(@RequestBody GetCustomerMenuListFormDTO formDTO){ + return new Result>().ok(govMenuService.getCustomerMenuList(formDTO)); + } } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java index c11faba160..d56c78229c 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.service.GovRoleMenuService; import com.epmet.service.GovRoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -102,4 +103,19 @@ public class GovRoleController { return new Result>().ok(data); } + @PostMapping("getgovrole") + public Result getGovRole(@RequestBody GovRoleListDTO fromDTO){ + return new Result().ok(govRoleService.getGovRole(fromDTO)); + } + + /** + * 数字平台客户初始化化设置默认角色数据 + * @Author sun + */ + @PostMapping("initgovrole/{customerId}") + public Result initGovRole(@PathVariable(value = "customerId") String customerId){ + govRoleService.initGovRole(customerId); + return new Result(); + } + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java index 526dbf9b37..a70c839a63 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java @@ -9,6 +9,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.GovRoleDTO; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.GovRoleEntity; import org.apache.ibatis.annotations.Mapper; @@ -33,4 +34,5 @@ public interface GovRoleDao extends BaseDao { */ List getCustomerRoles(@Param("customerId")String customerId); + GovRoleDTO selectGovRole(@Param("customerId") String customerId, @Param("name") String name); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java index 654bee9ce6..7db443d5db 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java @@ -46,4 +46,9 @@ public class GovRoleEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java index 64dcb0fb1c..3dc0ecd6aa 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java @@ -78,6 +78,11 @@ public class GovCustomerMenuRedis { redisUtils.deleteByPattern(key); } + public void delAllCustomerMenuFiveCoverage(){ + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat("*"); + redisUtils.deleteByPattern(key); + } + private boolean checkParam(String customerId, Integer type) { if (StringUtils.isBlank(customerId) || type == null){ log.warn("checkParam fail, param is null"); diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java index fd09359551..127f271940 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; import com.epmet.entity.GovMenuEntity; import java.util.List; @@ -145,4 +146,12 @@ public interface GovMenuService extends BaseService { List getListPid(String pid); void clearOperUserAccess(String app, String client, String userId); + + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + List getCustomerMenuList(GetCustomerMenuListFormDTO formDTO); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java index 4fbf7e0f58..60b22b27b1 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.entity.GovRoleEntity; import java.util.List; @@ -92,4 +93,8 @@ public interface GovRoleService extends BaseService { * @date 2020-03-18 */ void delete(String[] ids); + + GovRoleDTO getGovRole(GovRoleListDTO fromDTO); + + void initGovRole(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java index a5933f8e58..592713fdf5 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java @@ -118,6 +118,7 @@ public class GovCustomerMenuServiceImpl extends BaseServiceImpl getCustomerMenuList(GetCustomerMenuListFormDTO formDTO) { + List customerMenuList = baseDao.getCustomerMenuList(formDTO.getCustomerId(), formDTO.getType(), HttpContextUtils.getLanguage(), formDTO.getTableName()); + if (CollectionUtils.isEmpty(customerMenuList)){ + return new ArrayList<>(); + } + return ConvertUtils.sourceToTarget(customerMenuList,GovMenuDTO.class); + + } + private void saveLanguage(String tableName, String tableId, String fieldName, String fieldValue){ govLanguageService.saveOrUpdate(tableName, tableId, fieldName, fieldValue, HttpContextUtils.getLanguage()); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java index 72a542c9e7..3f7bae6b47 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java @@ -21,13 +21,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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.exception.RenException; +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.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.GovRoleDao; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.entity.GovRoleEntity; import com.epmet.redis.GovRoleRedis; import com.epmet.service.GovRoleMenuService; @@ -38,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -115,6 +117,11 @@ public class GovRoleServiceImpl extends BaseServiceImpl list = new ArrayList<>(); + GovRoleEntity entity = new GovRoleEntity(); + entity.setCustomerId(customerId); + entity.setName("联建单位负责人"); + entity.setRemark("默认角色"); + entity.setDefaultRole("1"); + list.add(entity); + GovRoleEntity entity1 = ConvertUtils.sourceToTarget(entity,GovRoleEntity.class); + entity1.setId(null); + entity1.setName("社区自组织负责人"); + list.add(entity1); + insertBatch(list); + } + } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql new file mode 100644 index 0000000000..3372836974 --- /dev/null +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql @@ -0,0 +1,4 @@ + + +ALTER TABLE `gov_role` +ADD COLUMN `default_role` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否默认角色【0:否 1:是】' AFTER `remark`; diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml index 3078bf4cdf..dafd0c54ce 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml @@ -12,4 +12,16 @@ WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} + + + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerDepartmentDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerDepartmentDTO.java index 9381a609d0..707ca8166f 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerDepartmentDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerDepartmentDTO.java @@ -109,4 +109,11 @@ public class CustomerDepartmentDTO implements Serializable { */ private String mobile; + /** + * 职能部门: duty + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerIdDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerIdDTO.java index d18a182d1e..7c2175b9fa 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerIdDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerIdDTO.java @@ -24,4 +24,11 @@ public class CustomerIdDTO implements Serializable { */ private String customerId; + /** + * 职能部门: duty + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcCityManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcCityManagementDTO.java index 7e36b065b9..a10cbd4ad8 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcCityManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcCityManagementDTO.java @@ -1,8 +1,9 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -76,6 +77,16 @@ public class IcCityManagementDTO implements Serializable { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + /** * 删除标识 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPublicServiceDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPublicServiceDTO.java index 64045ddd17..d516ccf863 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPublicServiceDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPublicServiceDTO.java @@ -76,6 +76,16 @@ public class IcPublicServiceDTO implements Serializable { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + /** * 删除标识 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddDepartmentFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddDepartmentFormDTO.java index 911efdcb12..786980aa47 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddDepartmentFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddDepartmentFormDTO.java @@ -67,5 +67,15 @@ public class AddDepartmentFormDTO implements Serializable { */ private String mobile; + /** + * 总人数 + */ + private Integer totalUser; + /** + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java new file mode 100644 index 0000000000..b3fc9b036c --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java @@ -0,0 +1,75 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class CheckStaffInfoFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + public interface CheckAdd extends CustomerClientShowGroup {} + public interface CheckEdit extends CustomerClientShowGroup {} + + /** + * 联建单位、社会自组织Id + */ + @NotBlank(message = "id不能为空", groups = {CheckAdd.class, CheckEdit.class}) + private String id; + /** + * 部门名称 + */ + @NotBlank(message = "部门名称不能为空", groups = CheckAdd.class) + private String deptName; + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空", groups = CheckAdd.class) + private String mobile; + /** + * 人名姓名 + */ + @NotBlank(message = "姓名不能为空", groups = CheckAdd.class) + private String personName; + /** + * 联建单位: party_unit + * 社会自组织: community_org + */ + @NotBlank(message = "部门类型不能为空", groups = {CheckAdd.class, CheckEdit.class}) + private String deptType; + /** + * 部门Id [取消同步时必填] + */ + @NotBlank(message = "部门类型不能为空", groups = CheckEdit.class) + private String deptId; + /** + * 部门下工作人员Id + */ + @NotBlank(message = "工作人员Id不能为空", groups = CheckEdit.class) + private String deptStaffId; + + //token中信息 + private String customerId; + private String userId; + +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridStaffListFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridStaffListFormDTO.java new file mode 100644 index 0000000000..49b8dbc6c6 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridStaffListFormDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class CustomerGridStaffListFormDTO implements Serializable { + + /** + * 客户Id + */ + private String customerId; + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcCityManagementAddEditFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcCityManagementAddEditFormDTO.java index ab73efa810..ff0aac0dc2 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcCityManagementAddEditFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcCityManagementAddEditFormDTO.java @@ -62,6 +62,16 @@ public class IcCityManagementAddEditFormDTO implements Serializable { @Length(max = 50, message = "地址不能超过50位", groups = AddGroup.class) private String address; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + private String customerId; private String userId; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPublicServiceAddEditFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPublicServiceAddEditFormDTO.java index fb9cbf6b26..226bb921f1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPublicServiceAddEditFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPublicServiceAddEditFormDTO.java @@ -62,6 +62,16 @@ public class IcPublicServiceAddEditFormDTO implements Serializable { @Length(max = 50, message = "地址不能超过50位", groups = AddGroup.class) private String address; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + private String customerId; private String userId; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java index 0f9f35a2f6..f39bde7aab 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java @@ -68,4 +68,10 @@ public class StaffSubmitFromDTO implements Serializable { private String client; private List newRoles; + /** + * 部门类型 + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java new file mode 100644 index 0000000000..01619b955a --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java @@ -0,0 +1,83 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import com.epmet.dto.form.CheckStaffInfoFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class CheckStaffInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 状态,false为有问题 + */ + private Boolean type = false; + + /** + * 提示文案内容 + */ + private String msg = ""; + + /** + * 数据库中工作人员姓名【返参姓名有值的则需要更新工作人员信息】 + */ + private String personName; + /** + * 联建单位、社会自组织Id + */ + private String id; + /** + * 部门Id + */ + private String deptId; + /** + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** + * 已同步:sync 未同步:not_sync + */ + private String syncType; + + + //token中信息 + private String customerId; + private String userId; + + /** + * 后端使用 + */ + //工作人员添加入口Id(agencyId;deptId;gridId) + private String orgId = ""; + //工作人员添加入口类型(组织:agency;部门:dept;网格:gridId) + private String orgType = ""; + //工作人员Id,后端使用 + private String staffId = ""; + +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CustomerGridStaffListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CustomerGridStaffListResultDTO.java new file mode 100644 index 0000000000..9d138437e9 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CustomerGridStaffListResultDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author sun + * @DESC + */ +@Data +public class CustomerGridStaffListResultDTO implements Serializable { + + /** + * 网格Id + */ + private String gridId; + + /** + * 网格编码 + */ + private String gridCode; + + /** + * 网格名 + */ + private String gridName; + + /** + * 区县系统中的网格员唯一编码 + */ + private String gridUserId; + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentDetailResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentDetailResultDTO.java index 2cec409cf9..c04e965569 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentDetailResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentDetailResultDTO.java @@ -73,4 +73,11 @@ public class DepartmentDetailResultDTO implements Serializable { */ private String mobile = ""; + /** + * 职能部门: duty + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType = ""; + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentListResultDTO.java index 9b2cf82cc3..cb9b1a0b3e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DepartmentListResultDTO.java @@ -59,4 +59,12 @@ public class DepartmentListResultDTO implements Serializable { */ private String mobile = ""; private String areaCode; + + /** + * 职能部门: duty + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcCityManagementListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcCityManagementListResultDTO.java index 6c40cb030c..ee36eb853d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcCityManagementListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcCityManagementListResultDTO.java @@ -65,4 +65,14 @@ public class IcCityManagementListResultDTO implements Serializable { */ private String address; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcPublicServiceListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcPublicServiceListResultDTO.java index 859b36faca..3fcae16a22 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcPublicServiceListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcPublicServiceListResultDTO.java @@ -65,4 +65,14 @@ public class IcPublicServiceListResultDTO implements Serializable { */ private String address; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 7e2bcae37e..7aa747a910 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -21,7 +21,7 @@ import java.util.Set; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -// @FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092") + //@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092") @FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class) public interface GovOrgOpenFeignClient { @@ -696,6 +696,10 @@ public interface GovOrgOpenFeignClient { @PostMapping("/gov/org/coverage/dictinit/{customerId}") Result dictInit(@PathVariable(value = "customerId") String customerId); + @PostMapping("/gov/org/customerstaffgrid/gridstafflist") + Result> gridStaff(CustomerGridStaffListFormDTO dto); + + /** * 获取房主名下的房屋 * @Param formDTO @@ -705,4 +709,7 @@ public interface GovOrgOpenFeignClient { */ @PostMapping("/gov/org/ichouse/getOwnerHouseList") Result> getOwnerHouseList(@RequestBody IcHouseDTO formDTO); + + @PostMapping("/gov/org/department/notsyncdept") + Result notSyncDept(@RequestBody CheckStaffInfoFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index f9046d5979..82af2caade 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -459,4 +459,14 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getOwnerHouseList", formDTO); } + @Override + public Result notSyncDept(CheckStaffInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "notSyncDept", formDTO); + } + + @Override + public Result> gridStaff(CustomerGridStaffListFormDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridStaffList", dto); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index ae07816fa2..893bc95cda 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -201,7 +201,16 @@ public class AgencyController { public Result removeAgency(@LoginUser TokenDto tokenDTO, @RequestBody RemoveAgencyFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); formDTO.setCustomerId(tokenDTO.getCustomerId()); - return agencyService.removeAgency(formDTO); + Result result= agencyService.removeAgency(formDTO); + //2021-11-30 推送mq,数据同步到中介库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(tokenDTO.getCustomerId()); + mq.setOrgId(formDTO.getAgencyId()); + mq.setOrgType("agency"); + mq.setType("agency_delete"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-11-30 end + return result; } /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerStaffGridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerStaffGridController.java index 8858cac625..1d7206e877 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerStaffGridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerStaffGridController.java @@ -29,10 +29,10 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.CustomerStaffGridDTO; import com.epmet.dto.form.CommonGridIdFormDTO; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; +import com.epmet.dto.form.GridStaffUploadtFormDTO; import com.epmet.dto.form.LatestGridFormDTO; -import com.epmet.dto.result.CustomerGridByUserIdResultDTO; -import com.epmet.dto.result.EventTitleOrgResultDTO; -import com.epmet.dto.result.GridStaffResultDTO; +import com.epmet.dto.result.*; import com.epmet.excel.CustomerStaffGridExcel; import com.epmet.service.CustomerStaffGridService; import org.springframework.beans.factory.annotation.Autowired; @@ -156,4 +156,13 @@ public class CustomerStaffGridController { public Result> getAllStaffByGridId(@RequestParam("gridId")String gridId){ return new Result>().ok(customerStaffGridService.getAllStaffByGridId(gridId)); } + + /** + * @Author sun + * @Description 网格下工作人员列表 + **/ + @PostMapping("gridstafflist") + public Result> gridStaffList(@RequestBody CustomerGridStaffListFormDTO formDTO) { + return new Result>().ok(customerStaffGridService.gridStaffList(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java index 79b1975b9a..da70a814b7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java @@ -161,4 +161,43 @@ public class DepartmentController { List deptList = departmentService.listDepartmentListByStaffId(staffId); return new Result>().ok(deptList); } + + /** + * @Author sun + * @Description 根据手机号姓名查询人员信息,联建单位、社会自组织新增使用 + */ + @PostMapping("checkstaffinfo") + public Result checkStaffInfo(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckAdd.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.checkStaffInfo(formDTO)); + } + + /** + * @Author sun + * @Description 联建单位、社会自组织同步到通讯录操作 + */ + @PostMapping("syncdept") + public Result syncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckAdd.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.syncDept(formDTO)); + } + + /** + * @Author sun + * @Description 联建单位、社会自组织取消同步 + */ + @PostMapping("notsyncdept") + public Result notSyncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckEdit.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.notSyncDept(formDTO)); + } + + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index abcf908367..c7d3f5ecb6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -99,7 +99,18 @@ public class GridController { @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE) public Result deleteGrid(@LoginUser TokenDto tokenDto, @RequestBody DeleteGridFormDTO deleteGridFormDTO){ deleteGridFormDTO.setCustomerId(tokenDto.getCustomerId()); - return customerGridService.deleteGrid(tokenDto,deleteGridFormDTO); + Result result =customerGridService.deleteGrid(tokenDto,deleteGridFormDTO); + //2021-10-18 推送mq,数据同步到中介库 start + if (result.success()) { + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(tokenDto.getCustomerId()); + mq.setOrgId(deleteGridFormDTO.getGridId()); + mq.setOrgType("grid"); + mq.setType("grid_delete"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + } + //2021-10-18 end + return result; } /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java index ed00369f86..fa95c587e4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java @@ -22,6 +22,7 @@ import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.CustomerStaffGridDTO; import com.epmet.dto.StaffOrgRelationDTO; import com.epmet.dto.form.LatestGridFormDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; import com.epmet.dto.result.EventTitleOrgResultDTO; import com.epmet.dto.result.GridStaffResultDTO; import com.epmet.entity.CustomerStaffGridEntity; @@ -130,4 +131,5 @@ public interface CustomerStaffGridDao extends BaseDao { */ List getAllStaffByGridId(String gridId); + List getGridStaffByCustomerId(@Param("customerId") String customerId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java index bfce4de96f..e6a3dbf55f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java @@ -79,4 +79,12 @@ public class CustomerDepartmentEntity extends BaseEpmetEntity { * 联系电话 */ private String mobile; + + /** + * 职能部门: duty + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCityManagementEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCityManagementEntity.java index 8a90c40380..170449ea1a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCityManagementEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCityManagementEntity.java @@ -1,13 +1,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 城市管理图层 * @@ -76,4 +73,14 @@ public class IcCityManagementEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCoverageCategoryDictEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCoverageCategoryDictEntity.java index c690e4a48a..7fd612e013 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCoverageCategoryDictEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcCoverageCategoryDictEntity.java @@ -37,20 +37,31 @@ public class IcCoverageCategoryDictEntity extends BaseEpmetEntity { private String categoryName; /** - * 所属场所类型; -社区自组织:community_org; -优势资源:superior_resource; -城市管理:city_management; -重点危化企业:dangerous_chemicals; + * 所属场所类型; +社区自组织:community_org; +优势资源:superior_resource; +城市管理:city_management; +重点危化企业:dangerous_chemicals; 公共服务:public_service */ private String placeType; + /** + * 在可视化系统中所属的plact_type,跟COVERAGE_TYPE可能不同,COVERAGE_TYPE是给管理平台用的 + */ + private String placeTypeInAnalysis; + + /** + * 要跟菜单绑定(客户配置了这个菜单,这里才显示) + */ + private String menuUrl; + /** * 所属五大图层:zhzl:综合治理图层;yjcl:应急处置图层;aqsc:安全生产图层;csgl:城市管理图层;ggfw:公共服务图层 */ private String coverageType; + private String dataType; /** * 排序 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPublicServiceEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPublicServiceEntity.java index 5c0e35ec89..30b8513f4b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPublicServiceEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPublicServiceEntity.java @@ -1,13 +1,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 公共服务图层 * @@ -76,4 +73,14 @@ public class IcPublicServiceEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java index ffda552a3f..bdd6f5b587 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java @@ -38,6 +38,14 @@ public class IcCityManagementExcel { @NotBlank(message = "地址为必填项") private String address; + @ExcelProperty(value = "联系人") + @ColumnWidth(20) + private String principal; + + @ExcelProperty(value = "联系电话") + @ColumnWidth(20) + private String mobile; + @Data public static class RowRemarkMessage { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java index 3b9762b677..872b2fd61b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java @@ -38,6 +38,14 @@ public class IcPublicServiceExcel { @NotBlank(message = "地址为必填项") private String address; + @ExcelProperty(value = "联系人") + @ColumnWidth(20) + private String principal; + + @ExcelProperty(value = "联系电话") + @ColumnWidth(20) + private String mobile; + @Data public static class RowRemarkMessage { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java index 5d08ce792c..df763d3c79 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java @@ -95,6 +95,8 @@ public class IcCityManagementExcelImportListener implements ReadListener getAllStaffByGridId(String gridId); + List gridStaffList(CustomerGridStaffListFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java index c97f61e6a1..adcf468e9d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java @@ -20,10 +20,7 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; -import com.epmet.dto.result.AddDepartmentResultDTO; -import com.epmet.dto.result.DepartmentDetailResultDTO; -import com.epmet.dto.result.DepartmentInAgencyResultDTO; -import com.epmet.dto.result.DepartmentListResultDTO; +import com.epmet.dto.result.*; import java.util.List; @@ -104,4 +101,10 @@ public interface DepartmentService { * @return */ List listDepartmentListByStaffId(String staffId); + + CheckStaffInfoResultDTO checkStaffInfo(CheckStaffInfoFormDTO formDTO); + + CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO); + + CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 5d992fe92e..162aed146b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; @@ -55,6 +56,7 @@ import com.epmet.entity.CustomerStaffGridEntity; import com.epmet.entity.StaffOrgRelationEntity; import com.epmet.feign.*; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; import com.epmet.util.ModuleConstant; @@ -112,6 +114,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl { CustomerStaffRedis.delStaffInfoFormCache(staffListFormDTO.getCustomerId(), staffId); }); + //22.7.25 网格添加工作人员推送mq 同步工作人员信息到中间库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(staffListFormDTO.getCustomerId()); + mq.setStaffIdList(staffListFormDTO.getSelectedList()); + mq.setOrgType("staff"); + mq.setType("staff_create"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //22.7.25 网格添加工作人员推送mq 同步工作人员信息到中间库 end return new Result(); } } + return new Result().error(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerStaffGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerStaffGridServiceImpl.java index 4cc572edc8..28896d3a8a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerStaffGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerStaffGridServiceImpl.java @@ -29,8 +29,10 @@ import com.epmet.dao.CustomerStaffGridDao; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.CustomerStaffGridDTO; import com.epmet.dto.form.CommonGridIdFormDTO; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; import com.epmet.dto.form.LatestGridFormDTO; import com.epmet.dto.result.CustomerGridByUserIdResultDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; import com.epmet.dto.result.EventTitleOrgResultDTO; import com.epmet.dto.result.GridStaffResultDTO; import com.epmet.entity.CustomerStaffGridEntity; @@ -202,4 +204,11 @@ public class CustomerStaffGridServiceImpl extends BaseServiceImpl getAllStaffByGridId(String gridId) { return baseDao.getAllStaffByGridId(gridId); } + + @Override + public List gridStaffList(CustomerGridStaffListFormDTO formDTO) { + //查询客户下未被禁用的工作人员基本信息 + return baseDao.getGridStaffByCustomerId(formDTO.getCustomerId()); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java index 0c109e270a..e5cd12fdf8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java @@ -17,9 +17,12 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; 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.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; @@ -30,18 +33,16 @@ import com.epmet.constant.CustomerDepartmentConstant; import com.epmet.dao.CustomerAgencyDao; import com.epmet.dao.CustomerDepartmentDao; import com.epmet.dao.CustomerStaffDepartmentDao; -import com.epmet.dto.CustomerDepartmentDTO; -import com.epmet.dto.CustomerIdDTO; -import com.epmet.dto.CustomerStaffDepartmentDTO; +import com.epmet.dao.StaffOrgRelationDao; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.CustomerAgencyEntity; -import com.epmet.entity.CustomerDepartmentEntity; -import com.epmet.entity.CustomerStaffDepartmentEntity; +import com.epmet.entity.*; +import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; -import com.epmet.service.CustomerDepartmentService; -import com.epmet.service.CustomerStaffDepartmentService; -import com.epmet.service.DepartmentService; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovProjectOpenFeignClient; +import com.epmet.service.*; import com.epmet.util.ModuleConstant; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -49,8 +50,11 @@ import org.slf4j.LoggerFactory; 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.ArrayList; +import java.util.Date; import java.util.List; /** @@ -76,6 +80,21 @@ public class DepartmentServiceImpl implements DepartmentService { private EpmetUserFeignClient epmetUserFeignClient; @Autowired private LoginUserUtil loginUserUtil; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private StaffOrgRelationDao staffOrgRelationDao; + @Autowired + private CustomerStaffAgencyService customerStaffAgencyService; + @Autowired + private CustomerAgencyService customerAgencyService; + @Autowired + private StaffOrgRelationService staffOrgRelationService; + @Autowired + private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + /** * @param formDTO * @return @@ -88,6 +107,9 @@ public class DepartmentServiceImpl implements DepartmentService { Result result = new Result(); AddDepartmentResultDTO addDepartmentResultDTO = new AddDepartmentResultDTO(); CustomerDepartmentEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerDepartmentEntity.class); + if (formDTO.getTotalUser() > NumConstant.ZERO) { + entity.setTotalUser(formDTO.getTotalUser()); + } entity.setTotalUser(NumConstant.ZERO); //1:查询当前组织机构信息,获取客户Id CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); @@ -135,6 +157,10 @@ public class DepartmentServiceImpl implements DepartmentService { Result result = new Result(); //1:判断当前部门下是否存在工作人员,不存在的可以删除 CustomerDepartmentEntity entity = customerDepartmentDao.selectById(formDTO.getDepartmentId()); + if (null != entity && ("party_unit".equals(entity.getDeptType()) || "community_org".equals(entity.getDeptType()))) { + String msg = String.format("当前部门为%s同步数据,不允许删除", ("party_unit".equals(entity.getDeptType()) ? "联建单位" : "社会自组织")); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } if (null != entity && entity.getTotalUser() > NumConstant.ZERO) { result.setCode(EpmetErrorCode.NOT_DEL_DEPARTMENT.getCode()); result.setMsg(EpmetErrorCode.NOT_DEL_DEPARTMENT.getMsg()); @@ -226,6 +252,10 @@ public class DepartmentServiceImpl implements DepartmentService { public Result addDepartmentStaff(TokenDto tokenDto,AddDepartmentStaffFormDTO addDepartmentStaffFormDTO) { CustomerIdDTO customerIdDTO = customerDepartmentDao.selectCustomerIdByDepartmentId(addDepartmentStaffFormDTO.getDepartmentId()); + if (null != customerIdDTO && ("party_unit".equals(customerIdDTO.getDeptType()) || "community_org".equals(customerIdDTO.getDeptType()))) { + String msg = String.format("当前部门为%s同步数据,不允许添加工作人员", ("party_unit".equals(customerIdDTO.getDeptType()) ? "联建单位" : "社会自组织")); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } for (String userId : addDepartmentStaffFormDTO.getSelectedList()) { CustomerStaffDepartmentEntity customerStaffDepartmentEntity = new CustomerStaffDepartmentEntity(); customerStaffDepartmentEntity.setDepartmentId(addDepartmentStaffFormDTO.getDepartmentId()); @@ -280,4 +310,246 @@ public class DepartmentServiceImpl implements DepartmentService { public List listDepartmentListByStaffId(String staffId) { return customerDepartmentDao.listDepartmentListByStaffId(staffId); } + + @Override + public CheckStaffInfoResultDTO checkStaffInfo(CheckStaffInfoFormDTO formDTO) { + CheckStaffInfoResultDTO resultDTO = new CheckStaffInfoResultDTO(); + resultDTO.setCustomerId(formDTO.getCustomerId()); + resultDTO.setUserId(formDTO.getUserId()); + //座机号的直接返回 + if(formDTO.getMobile().startsWith("0")){ + resultDTO.setMsg("座机账号无法创建账号,建议使用填写手机号,否则将无法获取通知信息"); + return resultDTO; + } + //1.根据手机号查询客户下工作人员信息 + CustomerStaffFormDTO user = new CustomerStaffFormDTO(); + user.setCustomerId(formDTO.getCustomerId()); + user.setMobile(formDTO.getMobile()); + Result userResult = epmetUserOpenFeignClient.staffDetailInfo(user); + if (!userResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取工作人员信息失败", "获取工作人员信息失败"); + } + //查不到工作人员就直接返回 + if (null == userResult.getData()) { + resultDTO.setType(true); + return resultDTO; + } + + //2.查询工作人员注册组织关系数据 + List staffIdList = new ArrayList<>(); + staffIdList.add(userResult.getData().getUserId()); + List list = staffOrgRelationDao.selelctStaffOrg(staffIdList); + if (CollectionUtils.isEmpty(list)) { + return resultDTO; + } + resultDTO.setOrgId(list.get(0).getOrgId()); + resultDTO.setOrgType(list.get(0).getOrgType()); + resultDTO.setStaffId(list.get(0).getStaffId()); + + //3.校验工作人员的注册关系【从哪里新增进来的工作人员】 + //获取当前操作人员缓存信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } + //所属组织信息不同的给提示【所属组织不同时则不新增部门、不新增工作人员】 + if (!list.get(0).getAgencyId().equals(staffInfo.getAgencyId())) { + resultDTO.setMsg("联系电话已存在其他组织工作账号中,请使用其他手机号,否则将无法获取通知信息"); + return resultDTO; + } + //从网格下添加的人给提示【网格下加的人时则不新增部门、不新增工作人员】 + if (!"agency".equals(list.get(0).getOrgType())) { + resultDTO.setMsg("联系电话已存在其他部门工作账号中,请先将该工作人员调动至本组织下,再次添加"); + return resultDTO; + } + //账号被禁用的给提示【人员被禁用的则不新增部门、不新增工作人员】 + if ("disabled".equals(userResult.getData().getEnableFlag())) { + resultDTO.setMsg("该工作人员账号已被禁用,请使用其他联系电话,否则将无法获取通知信息"); + return resultDTO; + } + //姓名不一样的给反馈 + if (!formDTO.getPersonName().equals(userResult.getData().getRealName())) { + resultDTO.setPersonName(userResult.getData().getRealName()); + resultDTO.setMsg("联系电话已存在工作账号,姓名已更新"); + } + + resultDTO.setType(true); + return resultDTO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } + //1.校验当前数据是否允许操作 + CheckStaffInfoResultDTO resultDTO = checkStaffInfo(formDTO); + if(!resultDTO.getType()){ + return resultDTO; + } + //2.根据校验结果操作数据 + //2-1.没查到人的直接新增部门、人员 + if(StringUtils.isBlank(resultDTO.getOrgType())){ + //一、新增工作人员 + StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(formDTO, StaffSubmitFromDTO.class); + submitDTO.setName(formDTO.getPersonName()); + submitDTO.setAgencyId(staffInfo.getAgencyId()); + submitDTO.setGender(1); + submitDTO.setWorkType("fulltime"); + Result staffResult = epmetUserOpenFeignClient.deptToAddStaff(submitDTO); + if (!staffResult.success()) { + throw new RenException("人员添加失败" + staffResult.getMsg()); + } + //二、新增部门 + AddDepartmentFormDTO deptDTO = new AddDepartmentFormDTO(); + deptDTO.setAgencyId(staffInfo.getAgencyId()); + deptDTO.setDepartmentDuty(""); + deptDTO.setDepartmentName(formDTO.getDeptName()); + deptDTO.setDeptType(formDTO.getDeptType()); + deptDTO.setTotalUser(1); + deptDTO.setContacts(formDTO.getPersonName()); + deptDTO.setMobile(formDTO.getMobile()); + Result deptResult = addDepartment(deptDTO); + //三、新增组织人员关系数据 + //人员机关关系表 + CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); + customerStaffAgencyEntity.setCustomerId(formDTO.getCustomerId()); + customerStaffAgencyEntity.setUserId(staffResult.getData().getUserId()); + customerStaffAgencyEntity.setAgencyId(staffInfo.getAgencyId()); + customerStaffAgencyService.insert(customerStaffAgencyEntity); + //机关总人数加一 + OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(staffInfo.getAgencyId(), "agency"); + CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); + agencyEntity.setId(staffInfo.getAgencyId()); + agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); + customerAgencyService.updateById(agencyEntity); + //工作人员注册组织关系表新增数据 + StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); + staffOrgRelationEntity.setCustomerId(formDTO.getCustomerId()); + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); + staffOrgRelationEntity.setStaffId(staffResult.getData().getUserId()); + staffOrgRelationEntity.setOrgId(staffInfo.getAgencyId()); + staffOrgRelationEntity.setOrgType("agency"); + staffOrgRelationService.insert(staffOrgRelationEntity); + + //四、部门下新增人员关系数据 + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(formDTO.getCustomerId()); + dept.setUserId(staffResult.getData().getUserId()); + dept.setDepartmentId(deptResult.getData().getDepartmentId()); + customerStaffDepartmentService.insert(dept); + //修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(deptResult.getData().getDepartmentId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(staffResult.getData().getUserId()); + resultDTO.setSyncType("sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + + } + //2-2.查到是组织下的人,新增部门,绑定部门人员关系 + if(("agency".equals(resultDTO.getOrgType()))){ + //一、更新人员基础数据[姓名 手机号信息] + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); + staffDTO.setUserId(resultDTO.getStaffId()); + staffDTO.setRealName(formDTO.getPersonName()); + staffDTO.setMobile(formDTO.getMobile()); + staffDTO.setUpdatedTime(new Date()); + staffDTO.setUpdatedBy(resultDTO.getUserId()); + Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); + if (!result.success()) { + throw new RenException("更新工作人员基础信息失败" + result.getMsg()); + } + //二、新增部门数据 + AddDepartmentFormDTO deptDTO = new AddDepartmentFormDTO(); + deptDTO.setAgencyId(staffInfo.getAgencyId()); + deptDTO.setDepartmentDuty(""); + deptDTO.setDepartmentName(formDTO.getDeptName()); + deptDTO.setDeptType(formDTO.getDeptType()); + deptDTO.setTotalUser(1); + deptDTO.setContacts(formDTO.getPersonName()); + deptDTO.setMobile(formDTO.getMobile()); + Result deptResult = addDepartment(deptDTO); + //三、部门下新增人员关系数据 + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(formDTO.getCustomerId()); + dept.setUserId(resultDTO.getStaffId()); + dept.setDepartmentId(deptResult.getData().getDepartmentId()); + customerStaffDepartmentService.insert(dept); + //修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(deptResult.getData().getDepartmentId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(resultDTO.getStaffId()); + resultDTO.setSyncType("sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + } + + return resultDTO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO) { + CheckStaffInfoResultDTO resultDTO = new CheckStaffInfoResultDTO(); + //1.校验当前部门下工作人员是否有代办项目 + ProjectListFromDTO project = new ProjectListFromDTO(); + project.setUserId(formDTO.getDeptStaffId()); + Result> projectResult = govProjectOpenFeignClient.staffPendingProject(project); + if (!projectResult.success()) { + throw new RenException("获取工作人员代办项目数据失败" + projectResult.getMsg()); + } + if (projectResult.getData().size() > NumConstant.ZERO) { + String msg = String.format("当前%s下负责人存在未办结的项目,请先将待处理项目办结后再操作", ("party_unit".equals(formDTO.getDeptType()) ? "联建单位" : "社会自组织")); + resultDTO.setMsg(msg); + return resultDTO; + } + //2.无代办项目的则删除部门、工作人员信息、修改联建单位/社会自组织业务数据 + //2-1.删除部门 + customerDepartmentDao.deleteById(formDTO.getDeptId()); + //2-2.删除部门人员关系数据 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(CustomerStaffDepartmentEntity::getDepartmentId, formDTO.getDeptId()); + query.eq(CustomerStaffDepartmentEntity::getUserId, formDTO.getDeptStaffId()); + customerStaffDepartmentDao.delete(query); + //2-3.删除人员注册关系数据 + LambdaQueryWrapper StaffOrgRelation = new LambdaQueryWrapper<>(); + StaffOrgRelation.eq(StaffOrgRelationEntity::getStaffId, formDTO.getDeptStaffId()); + staffOrgRelationDao.delete(StaffOrgRelation); + //2-4.删除工作人员数据 + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); + staffDTO.setUserId(formDTO.getDeptStaffId()); + staffDTO.setDelFlag(1); + staffDTO.setUpdatedTime(new Date()); + staffDTO.setUpdatedBy(formDTO.getUserId()); + Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); + if (!result.success()) { + throw new RenException("更新工作人员基础信息失败" + result.getMsg()); + } + //2-5.修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(formDTO.getDeptId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(formDTO.getDeptStaffId()); + resultDTO.setSyncType("not_sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + + resultDTO.setType(true); + return resultDTO; + } + + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.37__add_city_public.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.37__add_city_public.sql new file mode 100644 index 0000000000..8c622ec0f8 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.37__add_city_public.sql @@ -0,0 +1,4 @@ +alter table ic_city_management add COLUMN PRINCIPAL VARCHAR(32) comment '联系人' AFTER ADDRESS; +alter table ic_city_management add COLUMN MOBILE VARCHAR(32) comment '联系方式' AFTER PRINCIPAL; +alter table ic_public_service add COLUMN PRINCIPAL VARCHAR(32) comment '联系人' AFTER ADDRESS; +alter table ic_public_service add COLUMN MOBILE VARCHAR(32) comment '联系方式' AFTER PRINCIPAL; \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.38__coverage_update.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.38__coverage_update.sql new file mode 100644 index 0000000000..4dffe25831 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.38__coverage_update.sql @@ -0,0 +1,6 @@ +alter table ic_coverage_category_dict + add column PLACE_TYPE_IN_ANALYSIS varchar(32) comment '在可视化系统中所属的plact_type,跟COVERAGE_TYPE可能不同,COVERAGE_TYPE是给管理平台用的' after PLACE_TYPE; +alter table ic_coverage_category_dict + add column MENU_URL varchar(200) comment '要跟菜单绑定(客户配置了这个菜单,这里才显示)' after PLACE_TYPE_IN_ANALYSIS; +alter table ic_coverage_category_dict + add column DATA_TYPE varchar(32) comment '数据类别(governedTarget:被管理对象;resources:资源列表)' after MENU_URL; \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.39__alter_dept.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.39__alter_dept.sql new file mode 100644 index 0000000000..9dc87f0bd2 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.39__alter_dept.sql @@ -0,0 +1,5 @@ + +ALTER TABLE `customer_department` +ADD COLUMN `DEPT_TYPE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'duty' COMMENT '部门类型【职能部门: duty \r\n联建单位: party_unit \r\n社会自组织: community_org】' AFTER `MOBILE`; + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/city_management_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/city_management_template.xlsx index 5d98937f40..392a1dbbe0 100644 Binary files a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/city_management_template.xlsx and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/city_management_template.xlsx differ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx index cf3191669e..893bdc99ce 100644 Binary files a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx differ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml index 3e1e4f50c2..ba49028cf1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml @@ -27,7 +27,8 @@ IFNULL(code,'')AS 'code', IFNULL(contacts,'')AS 'contacts', IFNULL(mobile,'')AS 'mobile', - IFNULL(AREA_CODE,'')AS areaCode + IFNULL(AREA_CODE,'')AS areaCode, + IFNULL(DEPT_TYPE,'')AS deptType FROM customer_department WHERE del_flag = '0' AND agency_id = #{agencyId} @@ -46,7 +47,8 @@ + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml index 2ed22909f9..73a921331c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml @@ -17,6 +17,8 @@ address, longitude, latitude, + principal, + mobile, del_flag, revision, created_by, @@ -39,6 +41,8 @@ #{i.address}, #{i.longitude}, #{i.latitude}, + #{i.principal}, + #{i.mobile}, 0, 0, #{i.createdBy}, @@ -57,6 +61,8 @@ address = values(address), longitude = null, latitude = null, + principal = values(principal), + mobile = values(mobile), updated_by = values(updated_by), updated_time = NOW() @@ -74,7 +80,9 @@ CONCAT(capacity,'人') capacityName, address address, longitude longitude, - latitude latitude + latitude latitude, + PRINCIPAL AS principal, + MOBILE AS mobile FROM ic_city_management WHERE diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml index 295ee69e36..ef81d4c77a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml @@ -17,6 +17,8 @@ address, longitude, latitude, + principal, + mobile, del_flag, revision, created_by, @@ -39,6 +41,8 @@ #{i.address}, #{i.longitude}, #{i.latitude}, + #{i.principal}, + #{i.mobile}, 0, 0, #{i.createdBy}, @@ -57,6 +61,8 @@ address = values(address), longitude = null, latitude = null, + principal = values(principal), + mobile = values(mobile), updated_by = values(updated_by), updated_time = NOW() @@ -74,7 +80,9 @@ CONCAT(capacity,'人') capacityName, address address, longitude longitude, - latitude latitude + latitude latitude, + PRINCIPAL AS principal, + MOBILE AS mobile FROM ic_public_service WHERE diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 1242d3064b..7907ac7ec5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -175,5 +175,7 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/icEvent/closeprojectordemand") Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO); + @PostMapping("gov/project/project/staffpendingproject") + Result> staffPendingProject(@RequestBody ProjectListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 49a969f91e..51f7922ba5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -169,4 +169,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "closeProjectOrDemand",formDTO); } + + @Override + public Result> staffPendingProject(ProjectListFromDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "staffPendingProject",formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 03bb218bd1..fb8bcad8fd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -379,4 +379,12 @@ public class ProjectController { ValidatorUtils.validateEntity(formDTO, SatisfactionEvaluationListFormDTO.SatisfactionEvaluationListForm.class); return new Result().ok(projectService.satisfactionEvaluationList(formDTO)); } + + /** + * Desc: 查询客户下工作人员是否有代办项目 + */ + @PostMapping("staffpendingproject") + public Result> staffPendingProject(@RequestBody ProjectListFromDTO fromDTO){ + return new Result>().ok(projectService.staffPendingProject(fromDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 82a88d3a5b..2e5fd4fd76 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -395,4 +395,5 @@ public interface ProjectService extends BaseService { */ void projectListExport(HttpServletResponse response,ProjectManageListFormDTO formDTO) throws IOException; + List staffPendingProject(ProjectListFromDTO fromDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index a9f4ca0093..7d26d3f9a0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -3445,4 +3445,13 @@ public class ProjectServiceImpl extends BaseServiceImpl staffPendingProject(ProjectListFromDTO fromDTO) { + fromDTO.setPageNo(0); + fromDTO.setPageSize(1); + List projectList = baseDao.selectPendList(fromDTO); + return projectList; + } + } diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java new file mode 100644 index 0000000000..df1781038f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java @@ -0,0 +1,8 @@ +package com.epmet.opendata.dto.constant; + +public interface DataWorkerConstant { + String ALL = "all"; + String CREATE = "create"; + String CHANGE = "change"; + String DELETE = "delete"; +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java new file mode 100644 index 0000000000..970f98e1ab --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java @@ -0,0 +1,40 @@ +package com.epmet.opendata.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/22 14:02 + */ +@Data +public class ExractGridInfoPingYinFormDTO implements Serializable { + + public interface GridInfo extends CustomerClientShowGroup { + } + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空", groups = {GridInfo.class}) + private String customerId = ""; + + /** + * 网格Id或者组织id + */ + private List orgIdList; + + /** + * 废弃:这个不对。操作类型【新增:add 修改删除:edit 初始化所有数据:all】 + * 操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】 + * 删除网格grid_delete,删除组织agency_delete + */ + @NotBlank(message = "操作类型【新增:add 修改删除:edit 初始化所有数据:all】不能为空", groups = {GridInfo.class}) + private String type; +} + diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java new file mode 100644 index 0000000000..399e11a7ee --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java @@ -0,0 +1,17 @@ +package com.epmet.opendata.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class GridStaffInfoFormDTO implements Serializable { + + private static final long serialVersionUID = -5277855973512833181L; + + /** + * 客户Id + */ + private String customerId; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java new file mode 100644 index 0000000000..18b6bd212f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.opendata.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/22 13:23 + * @DESC + */ +@Data +public class HistoryDataSyncFormDTO implements Serializable { + + private static final long serialVersionUID = -58891187838165930L; + + private String customerId; +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java index 3e1b0b4dd1..2566ed3af0 100644 --- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java @@ -22,8 +22,9 @@ public class UpsertPatrolRecordForm extends PageFormDTO { /** * 记录id + * 2022-07-22 注释校验的原因是兼容初始化,当不传id时,查询全部 */ - @NotEmpty(message = "id不能为空",groups = AddGroup.class) +// @NotEmpty(message = "id不能为空",groups = AddGroup.class) private String id; /** diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java index 1efda7b0b3..7bb809d167 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; import com.epmet.opendata.service.BaseGridDailyworkService; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -42,6 +43,8 @@ public class BaseGridDailyworkController { @Autowired private BaseGridDailyworkService baseGridDailyworkService; + @Autowired + private GridstaffWorkInfoPingyinService gridstaffWorkInfoPingyinService; /** * @Author sun @@ -54,5 +57,18 @@ public class BaseGridDailyworkController { return new Result(); } + /** + * Desc: 2022-07-22 新表 例行工作同步 + * @param formDTO + * @author zxc + * @date 2022/7/22 11:16 + */ + @PostMapping("syncV2") + public Result getStaffBaseInfoV2(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + gridstaffWorkInfoPingyinService.insertBaseGridWorkRecordV2(formDTO); + return new Result(); + } + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java new file mode 100755 index 0000000000..cc44f4c5b8 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java @@ -0,0 +1,39 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.opendata.service.EventreportPingyinService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("eventreportPingyin") +public class EventreportPingyinController { + @Resource + private EventreportPingyinService eventreportPingyinService; + + /** + * 获取上报事件 + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + @PostMapping("eventinfo") + public Result getEventinfo(@RequestBody(required = false) EventInfoFormDTO formDTO) { + eventreportPingyinService.getEventInfo(formDTO); + return new Result(); + } + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java new file mode 100755 index 0000000000..2a1ac80444 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java @@ -0,0 +1,48 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.service.GridInfoPingyinService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridInfoPingyin") +public class GridInfoPingyinController { + + @Autowired + private GridInfoPingyinService gridInfoPingyinService; + + /** + * @Author yzm + * @Description 组织基础信息中间库同步 + **/ + @PostMapping("extract-agency") + public Result getAgencyBaseInfo(@RequestBody ExractGridInfoPingYinFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ExractGridInfoPingYinFormDTO.GridInfo.class); + gridInfoPingyinService.exractAgency(formDTO); + return new Result(); + } + + /** + * @Author yzm + * @Description 网格基础信息中间库同步 + **/ + @PostMapping("extract-grid") + public Result getGridBaseInfo(@RequestBody ExractGridInfoPingYinFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ExractGridInfoPingYinFormDTO.GridInfo.class); + gridInfoPingyinService.exractGrid(formDTO); + return new Result(); + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java new file mode 100755 index 0000000000..fa6bf83195 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java @@ -0,0 +1,47 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.service.GridstaffInfoPingyinService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridstaffInfoPingyin") +public class GridstaffInfoPingyinController { + + @Autowired + private GridstaffInfoPingyinService gridstaffInfoPingyinService; + + + /** + * @Author sun + * @Description 网格员基本信息同步 + **/ + @PostMapping(value = "gridstaffinfo") + public Result gridStaffInfo(@RequestBody GridStaffInfoFormDTO formDTO) { + gridstaffInfoPingyinService.gridStaffInfo(formDTO); + return new Result(); + } + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java new file mode 100755 index 0000000000..3dd7d54d03 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java @@ -0,0 +1,32 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridstaffWorkInfoPingyin") +public class GridstaffWorkInfoPingyinController { + + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java index f20f9612e7..936617ff7a 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java @@ -21,6 +21,9 @@ package com.epmet.opendata.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.opendata.entity.BaseGridDailyworkEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 巡查例行工作 @@ -31,4 +34,12 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BaseGridDailyworkDao extends BaseDao { + /** + * Desc: 每次查询1000 + * @param customerId + * @author zxc + * @date 2022/7/22 13:26 + */ + List getBaseGridDailyWork(@Param("customerId")String customerId,@Param("size")Integer size); + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java new file mode 100755 index 0000000000..b06a4939fd --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java @@ -0,0 +1,16 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface EventreportPingyinDao extends BaseDao { + void deleteAllData(); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java new file mode 100755 index 0000000000..0aae21b99f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java @@ -0,0 +1,33 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridInfoPingyinDao extends BaseDao { + + int deleteAllAgencyData(); + + int deleteAllGridData(); + + List selectByGridCode(String gridCode); + + int updateSomeCol(@Param("gridCode") String gridCode, + @Param("gridName")String gridName, + @Param("gridLevel")String gridLevel, + @Param("lng")BigDecimal lng, + @Param("lat")BigDecimal lat); + + int deleteByCode(String gridCode); +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java new file mode 100755 index 0000000000..0df03ede97 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java @@ -0,0 +1,22 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridstaffInfoPingyinDao extends BaseDao { + + void del(); + + void edit(GridstaffInfoPingyinEntity entity); + + GridstaffInfoPingyinEntity selectByCodeAndStaffId(@Param("code") String code, @Param("staffId") String staffId); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java new file mode 100755 index 0000000000..997cbf7c8e --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java @@ -0,0 +1,18 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridstaffWorkInfoPingyinDao extends BaseDao { + + Integer delAllGridStaffWorkInfoPY(); + +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java index 5be0280fc9..76150c399d 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java @@ -17,6 +17,7 @@ package com.epmet.opendata.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -152,4 +153,22 @@ public class BaseGridDailyworkEntity implements Serializable { */ private Date updateTime; + @TableField(exist = false) + private String qxBm; + + /** + * 上报区县名称 + */ + @TableField(exist = false) + private String qxMc; + + @TableField(exist = false) + private String workType; + + @TableField(exist = false) + private String happenTimeString; + + @TableField(exist = false) + private Date recoredInsertTime; + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java new file mode 100755 index 0000000000..1298790b7c --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java @@ -0,0 +1,178 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("eventreport_pingyin") +public class EventreportPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码,参照《山东省社会治理网格化智能工作平台数据标准》 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 事件编号,可以使用区县系统中的事件唯一识别码 + */ + private String eventCode; + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类别,参照《山东省社会治理网格化智能工作平台数据标准》10.19 + */ + private String eventCategory; + + /** + * 上报网格员姓名 + */ + private String gridUserName; + + /** + * 上报网格员的身份证号码 + */ + private String gridUserCardid; + + /** + * 事件上报时间 + */ + private Date reportTime; + + /** + * 事件发生时间 + */ + private Date happenTime; + + /** + * 事件发生地点描述 + */ + private String happenPlace; + + /** + * 事件简述,详细一些,文字数量不少于10字 + */ + private String eventDescription; + + /** + * 事件办结方式,符合《标准》10.20 + */ + private String waysOfResolving; + + /** + * 是否办结,填写Y、N(Y 是 N 否) + */ + private String successfulOrNo; + + /** + * 办结层级,符合《标准》10.21 + */ + private String completeLevel; + + /** + * 办结时间,办结后填写 + */ + private Date completeTime; + + /** + * 事件发生位置经度,wgs84坐标系,请勿用火星坐标系,不得跑出辖区 + */ + private BigDecimal lng; + + /** + * 事件发生位置纬度,wgs84坐标系,请勿用火星坐标系,不得跑出辖区 + */ + private BigDecimal lat; + + /** + * 事件主要当事人姓名 + */ + private String name; + + /** + * 事件涉及人数 + */ + private Integer numberInvolved; + + /** + * 事件涉及单位名称 + */ + private String relatedUnites; + + /** + * 重点场所类别,符合《标准》10.25 + */ + private String keyAreaType; + + /** + * 宗教活动规模,符合《标准》10.26 + */ + private String religionScale; + + /** + * 宗教类别,符合《标准》10.27 + */ + private String religionType; + + /** + * 重点场所是否变动,填写Y、N(Y 是 N 否) + */ + private String isKeyareaState; + + /** + * 重点人员是否在当地,填写Y、N(Y 是 N 否) + */ + private String isKeypeopleLocate; + + /** + * 重点人员现状描述 + */ + private String keypeopleStatus; + + /** + * 例行工作编辑插入、更新时间,县市区填写 + */ + private Date updateTime; + + /** + * 事件是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java new file mode 100755 index 0000000000..d469072534 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java @@ -0,0 +1,98 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("grid_info_pingyin") +public class GridInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码,参照《标准》 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 网格层级,应符合10.1组织层级,所有层级上报 + */ + private String gridLevel; + + /** + * 专属网格类型,应符合10.28专属网格类型 + */ + private String gridType; + + /** + * 网格内人口规模,如果为农村和城市网格,字段必填,应符合10.29.网格内人口规模 + */ + private String populationSize; + + /** + * 是否成立网格党支部或网格党小组,Y:是、N:否 + */ + private String isPartyBranch; + + /** + * 网格党组织类型,是否成立党支部或党小组为是,此项必填。应符合10.37网格党组织类型。 + */ + private String partyBranchType; + + /** + * 网格中心点的经度 + */ + private BigDecimal lng; + + /** + * 网格中心点纬度 + */ + private BigDecimal lat; + + /** + * 网格颜色,如 #000000 + */ + private String gridColor; + + /** + * 网格信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 此网格是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java new file mode 100755 index 0000000000..ef5fc9d982 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java @@ -0,0 +1,152 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("gridstaff_info_pingyin") +public class GridstaffInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 区县系统中的网格员唯一编码 + */ + private String gridUserId; + + /** + * 网格编码 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 网格员姓名 + */ + private String nickName; + + /** + * 网格员身份证号码 + */ + private String cardNum; + + /** + * 网格员类型,符合《标准》10.3 + */ + private String userType; + + /** + * 网格员手机号 + */ + private String phonenumber; + + /** + * 网格员性别,应符合10.31中性别,不要有 其他 + */ + private String sex; + + /** + * 网格员民族,应符合10.32中民族 + */ + private String nation; + + /** + * 网格员政治面貌,符合GB/T 4762 + */ + private String paerty; + + /** + * 网格员出生日期 + */ + private Date birthday; + + /** + * 网格员学历,符合GB/T4658,博士、研究生会进行预警 + */ + private String education; + + /** + * 入职时间,格式为“YYYY-MM-DD” + */ + private Date entryDate; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date leaveDate; + + /** + * 网格员年收入,含福利、补贴和保险等,应符合10.30中的网格员年收入,专职低于1w5、兼职大于3w会预警 + */ + private String income; + + /** + * 是否社区(村)两委委员,Y:是、N:否 + */ + private String isCommittee; + + /** + * 是否社区工作者,Y:是、N:否 + */ + private String isCommunityWorkers; + + /** + * 是否社会工作者,Y:是、N:否 + */ + private String isSocialWorker; + + /** + * 是否村(居)民小组长,Y:是、N:否 + */ + private String isVillageLeader; + + /** + * 是否警务助理,Y:是、N:否 + */ + private String isPoliceAssistant; + + /** + * 是否人民调解员,Y:是、N:否 + */ + private String isMediator; + + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java new file mode 100755 index 0000000000..acc8721b10 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java @@ -0,0 +1,94 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("gridstaff_work_info_pingyin") +public class GridstaffWorkInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + @TableField(exist = false) + private String gridId; + + /** + * 例行工作类型,应符合10.27中的例行工作类型 + */ + private String workType; + + /** + * 发生日期,格式为“YYYY-MM-DD” + */ + private Date happenTime; + + /** + * 基础信息主键,出租房巡查、重点场所巡查、刑满释放人员、社区矫正、吸毒人员、信访人员重点青少年和精神障碍者必填 + */ + private Integer baseInfoId; + + /** + * 有无变动(异常),Y:是、N:否 + */ + private String workResult; + + /** + * 说明 + */ + private String workContent; + + /** + * 例行工作编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 例行工作是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + + @TableField(exist = false) + private String happenTimeString; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java index 928489f8b0..deb7384c61 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java @@ -10,8 +10,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; -import com.epmet.opendata.dto.form.ExDeptFormDTO; -import com.epmet.opendata.service.ExDeptService; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.service.GridInfoPingyinService; import org.apache.commons.lang.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -78,17 +78,33 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent lock = distributedLock.getLock(String.format("lock:open_data_org:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); - ExDeptFormDTO dto = new ExDeptFormDTO(); - dto.setCustomerId(obj.getCustomerId()); - dto.setType(obj.getType()); + // ExDeptFormDTO dto = new ExDeptFormDTO(); + // dto.setCustomerId(obj.getCustomerId()); + // dto.setType(obj.getType()); + // List orgIdList = new ArrayList<>(); + // orgIdList.add(obj.getOrgId()); + // dto.setOrgIdList(orgIdList); + // if ("agency".equals(obj.getOrgType())) { + // SpringContextUtils.getBean(ExDeptService.class).getAgencyBaseInfo(dto); + // } else { + // SpringContextUtils.getBean(ExDeptService.class).getGridBaseInfo(dto); + // } + + // 抽取到grid_info_pingyin + ExractGridInfoPingYinFormDTO extractFormDto = new ExractGridInfoPingYinFormDTO(); + extractFormDto.setCustomerId(obj.getCustomerId()); + extractFormDto.setType(obj.getType()); List orgIdList = new ArrayList<>(); - orgIdList.add(obj.getOrgId()); - dto.setOrgIdList(orgIdList); + if(StringUtils.isNotBlank(obj.getOrgId())){ + orgIdList.add(obj.getOrgId()); + } + extractFormDto.setOrgIdList(orgIdList); if ("agency".equals(obj.getOrgType())) { - SpringContextUtils.getBean(ExDeptService.class).getAgencyBaseInfo(dto); + SpringContextUtils.getBean(GridInfoPingyinService.class).exractAgency(extractFormDto); } else { - SpringContextUtils.getBean(ExDeptService.class).getGridBaseInfo(dto); + SpringContextUtils.getBean(GridInfoPingyinService.class).exractGrid(extractFormDto); } + } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-组织信息变更-同步信息到中间库失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java index d168875abb..5c3bbb4404 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java @@ -15,7 +15,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.constant.SystemMessageType; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; -import com.epmet.opendata.service.BaseGridDailyworkService; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; @@ -98,7 +98,8 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr aBoolean = true; break; case SystemMessageType.PATROL_ROUTINE_WORK_ADD: - aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecord(patrolRecordForm); +// aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecord(patrolRecordForm); + aBoolean = SpringContextUtils.getBean(GridstaffWorkInfoPingyinService.class).insertBaseGridWorkRecordV2(patrolRecordForm); break; default: log.error("错误的消息类型:{}", tags); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java index 097235e7e6..1912fc95a3 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java @@ -11,7 +11,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.dto.basereport.form.EventInfoFormDTO; -import com.epmet.opendata.service.BaseDisputeProcessService; +import com.epmet.opendata.service.EventreportPingyinService; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -75,7 +75,8 @@ public class OpenDataProjectChangeEventListener implements MessageListenerConcur try { lock = distributedLock.getLock(String.format("lock:open_data_project:%s", obj.getProjectId()), 30L, 30L, TimeUnit.SECONDS); - SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(formDTO); + //SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(formDTO); + SpringContextUtils.getBean(EventreportPingyinService.class).getEventInfo(formDTO); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-项目信息变更-上报项目信息失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java index ad7bd79b62..b2d9bd4976 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; import com.epmet.opendata.service.ExUserService; +import com.epmet.opendata.service.GridstaffInfoPingyinService; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -83,10 +84,12 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre StaffBaseInfoFormDTO dto = new StaffBaseInfoFormDTO(); dto.setCustomerId(obj.getCustomerId()); dto.setType(obj.getType()); - List staffIdList = new ArrayList<>(); + /*List staffIdList = new ArrayList<>(); staffIdList.add(obj.getOrgId()); dto.setStaffIdList(staffIdList); - SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto); + SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto);*/ + dto.setStaffIdList(obj.getStaffIdList()); + SpringContextUtils.getBean(GridstaffInfoPingyinService.class).getStaffBaseInfo(dto); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-工作人员信息变更-初始化客户组织失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java new file mode 100755 index 0000000000..d2fe6c88f2 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java @@ -0,0 +1,23 @@ +package com.epmet.opendata.service; + + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface EventreportPingyinService extends BaseService { + /** + * 获取上报事件 + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + void getEventInfo(EventInfoFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java new file mode 100755 index 0000000000..3feaabc3eb --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java @@ -0,0 +1,27 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.GridInfoPingyinEntity; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridInfoPingyinService extends BaseService { + /** + * 抽取customer_agency到grid_info_pingyin表 + * + * @param formDTO + */ + void exractAgency(ExractGridInfoPingYinFormDTO formDTO); + + /** + * 抽取customer_grid到grid_info_pingyin表 + * + * @param formDTO + */ + void exractGrid(ExractGridInfoPingYinFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java new file mode 100755 index 0000000000..9164dad0ac --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java @@ -0,0 +1,25 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; + +import java.util.Map; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridstaffInfoPingyinService extends BaseService { + + void gridStaffInfo(GridStaffInfoFormDTO formDTO); + + /** + * @Author sun + * @Description 网格员信息中间库同步 + **/ + void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java new file mode 100755 index 0000000000..5961e3355e --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java @@ -0,0 +1,22 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridstaffWorkInfoPingyinService extends BaseService { + /** + * Desc: 2022-07-22 新表 例行工作同步 + * @param formDTO + * @author zxc + * @date 2022/7/22 11:16 + */ + Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm formDTO); + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java new file mode 100755 index 0000000000..380df961e4 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java @@ -0,0 +1,178 @@ +package com.epmet.opendata.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.StrUtil; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.dto.basereport.result.EventInfoResultDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.service.EventreportPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Slf4j +@Service +public class EventreportPingyinServiceImpl extends BaseServiceImpl implements EventreportPingyinService { + @Resource + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + @Resource + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + + /** + * 获取上报事件 + * + * @param formDTO + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void getEventInfo(EventInfoFormDTO formDTO) { + formDTO.setPageSize(1000); + long start = System.currentTimeMillis(); + if (NumConstant.ONE_STR.equals(formDTO.getInitFlag())) { + //清空表里数据 + baseDao.deleteAllData(); + } + Result> result = dataStatisticalOpenFeignClient.getEventInfoV2(formDTO); + if (!result.success()) { + log.error("getEventinfo cost:{}ms",System.currentTimeMillis()-start); + throw new RenException(result.getInternalMsg()); + } + List list = result.getData(); + saveEvent(list, formDTO.getInitFlag()); + //分批次循环 + while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()) { + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + result = dataStatisticalOpenFeignClient.getEventInfo(formDTO); + list = result.getData(); + saveEvent(list, formDTO.getInitFlag()); + } + } + + private void saveEvent(List list, String initFlag) { + if (CollectionUtils.isEmpty(list)) { + log.warn("no event data to save table base_conflicts_resolve"); + return; + } + List entityList = list.stream().map(item -> { + EventreportPingyinEntity entity = new EventreportPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(item.getOrgCode()); + entity.setGridName(item.getOrgName()); + entity.setEventCode(("py_").concat(item.getId())); + + String eventName = StrUtil.filterEmoji(item.getEventName()); + entity.setEventName(eventName); + entity.setEventCategory(item.getEventCategory()); + entity.setGridUserCardid(""); + entity.setGridUserName(""); + LambdaQueryWrapper staffWrapper = new LambdaQueryWrapper<>(); + staffWrapper.eq(GridstaffInfoPingyinEntity::getGridUserId, item.getReporterId()); + List staffList = gridstaffInfoPingyinDao.selectList(staffWrapper); + if (CollectionUtils.isNotEmpty(staffList)) { + entity.setGridUserCardid(staffList.get(NumConstant.ZERO).getCardNum()); + entity.setGridUserName(staffList.get(NumConstant.ZERO).getNickName()); + } else { + staffWrapper = new LambdaQueryWrapper<>(); + staffWrapper.eq(GridstaffInfoPingyinEntity::getGridCode, item.getOrgCode()); + staffList = gridstaffInfoPingyinDao.selectList(staffWrapper); + if (CollectionUtils.isNotEmpty(staffList)) { + for (GridstaffInfoPingyinEntity staff : staffList) { + entity.setGridUserCardid(staff.getCardNum()); + entity.setGridUserName(staff.getNickName()); + if (StringUtils.isNotBlank(staff.getCardNum())) { + break; + } + } + } + } + entity.setReportTime(item.getReportTime()); + entity.setHappenTime(item.getHappenDate()); + entity.setHappenPlace(item.getHappenPlace()); + String eventDescription = item.getEventDescription(); + //如果不为空 长度控制3000以内 + if (StringUtils.isNotBlank(eventDescription) && eventDescription.length() > NumConstant.THREE_THOUSAND) { + eventDescription = eventDescription.substring(NumConstant.ZERO, NumConstant.THREE_THOUSAND); + } + eventDescription = StrUtil.filterEmoji(eventDescription); + entity.setEventDescription(eventDescription); + entity.setWaysOfResolving(item.getWaysOfResolving()); + //业务不确定 + if (("03").equals(item.getStatus())) { + entity.setSuccessfulOrNo("Y"); + } else { + entity.setSuccessfulOrNo("N"); + } + entity.setCompleteLevel(item.getCompleteLevel()); + entity.setCompleteTime(item.getCompleteTime()); + entity.setLng(item.getLng()); + entity.setLat(item.getLat()); + entity.setIsDel("N"); + entity.setUpdateTime(new Date()); + + //业务不包含 一级分类里 如果是03 矛盾纠纷 则涉及人数写2(目前业务不支持 所以应产品需求 填2) + if ("03".equals(item.getParentEventCategory())) { + entity.setNumberInvolved(NumConstant.TWO); + } + return entity; + }).collect(Collectors.toList()); + log.info("数据拼装结果" + entityList); + //过滤掉必填字段为空的数据 + entityList = entityList.stream().filter(item -> + StringUtils.isNotBlank(item.getGridCode()) && StringUtils.isNotBlank(item.getGridName()) && + StringUtils.isNotBlank(item.getEventCategory()) && StringUtils.isNotBlank(item.getGridUserName()) && + StringUtils.isNotBlank(item.getGridUserCardid()) && null != item.getReportTime() && + null != item.getHappenTime() && StringUtils.isNotBlank(item.getHappenPlace()) && + StringUtils.isNotBlank(item.getGridUserCardid()) && StringUtils.isNotBlank(item.getEventDescription()) && + StringUtils.isNotBlank(item.getWaysOfResolving()) && null != item.getLng() && null != item.getLat() + ).collect(Collectors.toList()); + log.info("数据过滤结果" + entityList.size()); + if (NumConstant.ZERO_STR.equals(initFlag)) { + entityList.forEach(entity -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EventreportPingyinEntity::getEventCode, entity.getEventCode()); + EventreportPingyinEntity event = baseDao.selectOne(wrapper); + if (null == event) { + baseDao.insert(entity); + } else { + baseDao.update(entity, wrapper); + } + }); + } else { + for (EventreportPingyinEntity entity : entityList) { + try { + baseDao.insert(entity); + } catch (Exception e) { + log.error(e.toString()); + } + } + } + + + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..c2d915155f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java @@ -0,0 +1,228 @@ +package com.epmet.opendata.service.impl; + +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.Constant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.IndexCalConstant; +import com.epmet.dto.org.result.CustomerAgencyDTO; +import com.epmet.dto.org.result.CustomerGridDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.GridInfoPingyinDao; +import com.epmet.opendata.dto.constant.DataWorkerConstant; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.GridInfoPingyinEntity; +import com.epmet.opendata.service.GridInfoPingyinService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Service +public class GridInfoPingyinServiceImpl extends BaseServiceImpl implements GridInfoPingyinService { + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + + /** + * 抽取customer_agency到grid_info_pingyin表 + * + * @param formDTO + */ + @Override + public void exractAgency(ExractGridInfoPingYinFormDTO formDTO) { + // 1.查询组织基础信息,customer_agency.code为空的不抽取 + com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class); + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + formDTO1.setDelFlag("0"); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) { + formDTO1.setDelFlag(NumConstant.ONE_STR); + } + Result> result = dataStatisticalOpenFeignClient.getAgencyBaseInfo(formDTO1); + if (!result.success()) { + throw new RenException(result.getInternalMsg()); + } + if (null == result.getData() || result.getData().size() < NumConstant.ONE) { + return; + } + // 2.封装数据 + List gridInfoList = new ArrayList<>(); + result.getData().forEach(ag -> { + GridInfoPingyinEntity entity = new GridInfoPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(ag.getCode()); + entity.setGridName(ag.getOrganizationName()); + entity.setIsDel("N"); + if (Constant.DISTRICT.equals(ag.getLevel())) { + entity.setGridLevel("03"); + } else if (Constant.STREET.equals(ag.getLevel())) { + entity.setGridLevel("04"); + } else if (Constant.COMMUNITY.equals(ag.getLevel())) { + entity.setGridLevel("06"); + } + entity.setLat(new BigDecimal(ag.getLatitude())); + entity.setLng(new BigDecimal(ag.getLongitude())); + gridInfoList.add(entity); + }); + // 3、初始化传all;新增或者编辑 + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + // 全删,全增 + baseDao.deleteAllAgencyData(); + // 一次100 + List> partition = ListUtils.partition(gridInfoList, IndexCalConstant.INSERT_SIZE); + partition.forEach(list -> { + this.insertBatch(list); + }); + + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + // 单独新增组织 + this.insertBatch(gridInfoList); + + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + // 修改组织时,先根据code查询,如果有数据,更新 + for (GridInfoPingyinEntity entity : gridInfoList) { + + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + + if (CollectionUtils.isNotEmpty(orginList)) { + + // 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度 + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat()); + } + + } else { + // 插入 + baseDao.insert(entity); + } + } + }else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){ + // 要删除的组织id + for (GridInfoPingyinEntity entity : gridInfoList) { + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + if (CollectionUtils.isNotEmpty(orginList)) { + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.deleteByCode(oigin.getGridCode()); + } + } + } + } + + } + + /** + * 抽取customer_grid到grid_info_pingyin表 + * + * @param formDTO + */ + @Override + public void exractGrid(ExractGridInfoPingYinFormDTO formDTO) { + // 1.查询网格基础信息 + com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class); + if (StringUtils.isBlank(formDTO.getType())||DataWorkerConstant.ALL.equals(formDTO.getType())) { + formDTO1.setDelFlag("0"); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) { + formDTO1.setDelFlag(NumConstant.ONE_STR); + } + Result> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1); + if (!result.success()) { + throw new RenException(result.getInternalMsg()); + } + if (null == result.getData() || result.getData().size() < NumConstant.ONE) { + return; + } + + // 2.封装数据 + List gridInfoList = new ArrayList<>(); + result.getData().forEach(ag -> { + GridInfoPingyinEntity entity = new GridInfoPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(ag.getCode()); + entity.setGridName(ag.getGridName()); + entity.setGridLevel("07"); + entity.setIsDel("N"); + entity.setUpdateTime(new Date()); + if (ag.getLatitude().length() > 10) { + entity.setLat(new BigDecimal(ag.getLatitude().substring(0, 10))); + } else { + entity.setLat(new BigDecimal(ag.getLatitude())); + } + if (ag.getLongitude().length() > 10) { + entity.setLng(new BigDecimal(ag.getLongitude().substring(0, 10))); + } else { + entity.setLng(new BigDecimal(ag.getLongitude())); + } + gridInfoList.add(entity); + }); + // 3、初始化传all;新增或者编辑 + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + // 全删,全增 + baseDao.deleteAllGridData(); + // 一次100 + List> partition = ListUtils.partition(gridInfoList, IndexCalConstant.INSERT_SIZE); + partition.forEach(list -> { + this.insertBatch(list); + }); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + // 单独新增组织 + this.insertBatch(gridInfoList); + + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + // 修改组织时,先根据code查询,如果有数据,更新 + for (GridInfoPingyinEntity entity : gridInfoList) { + + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + + if (CollectionUtils.isNotEmpty(orginList)) { + + // 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度 + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat()); + } + + } else { + // 插入 + baseDao.insert(entity); + } + } + }else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){ + // 要删除的网格id + for (GridInfoPingyinEntity entity : gridInfoList) { + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + if (CollectionUtils.isNotEmpty(orginList)) { + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.deleteByCode(oigin.getGridCode()); + } + } + } + } + + } + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..3f7fffb0ec --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java @@ -0,0 +1,147 @@ +package com.epmet.opendata.service.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; +import com.epmet.dto.form.GridStaffUploadtFormDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; +import com.epmet.dto.result.GridStaffUploadResultDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.service.GridstaffInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Service +@Slf4j +public class GridstaffInfoPingyinServiceImpl extends BaseServiceImpl implements GridstaffInfoPingyinService { + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + + @Override + @Transactional(rollbackFor = Exception.class) + public void gridStaffInfo(GridStaffInfoFormDTO formDTO) { + //1.查询客户网格下工作人员【存在网格code的网格下的工作人员】 + CustomerGridStaffListFormDTO org = new CustomerGridStaffListFormDTO(); + org.setCustomerId(formDTO.getCustomerId()); + Result> orgList = govOrgOpenFeignClient.gridStaff(org); + if (!orgList.success()) { + throw new RenException("查询客户网格下工作人员列表信息失败:".concat(orgList.toString())); + } + log.info(String.format("网格员数据同步,查询到网格下工作人员记录共%s条", orgList.getData().size())); + + //2.查询客户工作人员基础信息【客户下未被禁用的有效工作人员信息】 + GridStaffUploadtFormDTO user = new GridStaffUploadtFormDTO(); + user.setCustomerId(formDTO.getCustomerId()); + Result> userList = epmetUserOpenFeignClient.customerStaff(user); + if (!userList.success()) { + throw new RenException("查询客户下工作人员基础信息失败:".concat(userList.toString())); + } + log.info(String.format("网格员数据同步,查询到客户下工作人员基础信息记录共%s条", userList.getData().size())); + Map map = userList.getData().stream().collect(Collectors.toMap(GridStaffUploadResultDTO::getGridUserId, m -> m, (k1, k2) -> k1)); + + //3.拼装数据 + List entityList = new ArrayList(); + if (!CollectionUtils.isEmpty(orgList.getData()) && !CollectionUtils.isEmpty(userList.getData())) { + for (CustomerGridStaffListResultDTO gs : orgList.getData()) { + if (map.containsKey(gs.getGridUserId())) { + GridStaffUploadResultDTO us = map.get(gs.getGridUserId()); + GridstaffInfoPingyinEntity entity = ConvertUtils.sourceToTarget(us, GridstaffInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(gs.getGridCode()); + entity.setGridName(gs.getGridName()); + entity.setSex("0".equals(us.getSex()) ? "9" : us.getSex()); + if ("Y".equals(entity.getIsLeave())) { + entity.setLeaveDate(us.getDate()); + } + entityList.add(entity); + } + } + } + + //4.删除表中历史数据 + baseDao.del(); + + //5.批量新增数据 + log.info(String.format("网格员数据同步,本次共同步%s条记录", entityList.size())); + insertBatch(entityList); + + } + + + /** + * @Author sun + * @Description 网格员信息中间库同步 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO) { + log.info("网格工作人员信息同步,入参对象值: " + JSON.toJSONString(formDTO, true)); + //1.查询工作人员网格信息和基础信息 + com.epmet.dto.user.form.StaffBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.user.form.StaffBaseInfoFormDTO.class); + Result> result = dataStatisticalOpenFeignClient.getStaffBaseInfo(formDTO1); + if (!result.success()) { + throw new RenException(result.getInternalMsg()); + } + if (CollectionUtils.isEmpty(result.getData())) { + return; + } + + //2.中间库新增/修改数据【基本一个人一条数据,程序按批量处理】 + result.getData().forEach(r -> { + GridstaffInfoPingyinEntity entity = ConvertUtils.sourceToTarget(r, GridstaffInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(r.getCode()); + entity.setGridName(r.getGridName()); + entity.setIsLeave(r.getIsLeave()); + entity.setLeaveDate(r.getLeaveDate()); + entity.setGridUserId(r.getStaffId()); + entity.setCardNum(r.getIdCard()); + //按网格查询人员是否存在,存在更新否则新增 + GridstaffInfoPingyinEntity gs = baseDao.selectByCodeAndStaffId(r.getCode(), r.getStaffId()); + log.info(String.format("网格工作人员信息同步,当前操作人员信息,姓名:%s staffId:%s", entity.getNickName(), entity.getGridUserId())); + if (null != gs) { + entity.setUpdateTime(new Date()); + baseDao.edit(entity); + } else { + insert(entity); + } + }); + + } + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..a4e98d714f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java @@ -0,0 +1,150 @@ +package com.epmet.opendata.service.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +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.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.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.StrUtil; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.dto.form.patrol.PatrolQueryFormDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; +import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Slf4j +@Service +public class GridstaffWorkInfoPingyinServiceImpl extends BaseServiceImpl implements GridstaffWorkInfoPingyinService { + + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + @Override + public Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm patrolRecordForm) { + log.info("insertBaseGridWorkRecordV2 param:{}", JSON.toJSONString(patrolRecordForm)); + ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class); + // 构建传参 + PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm); + if (StringUtils.isBlank(patrolRecordForm.getId())) { + Integer row; + do { + row = baseDao.delAllGridStaffWorkInfoPY(); + } while (row == NumConstant.ONE_THOUSAND); + } + List data; + do { + Result> record = epmetUserOpenFeignClient.getPatrolRoutineWorkListV2(midPatrolFormDTO); + if (record == null || !record.success()) { + log.error("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode()); + } + data = record.getData(); + if (CollectionUtils.isEmpty(data)) { + //数据已被删除了 + //暂时设置error 用于排错 + log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO)); + int effectRow = baseDao.deleteById(patrolRecordForm.getId()); + log.warn("del effectRow:{}", effectRow); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode()); + } + data.forEach(d -> { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(d.getGridId()); + if (null == gridInfo) { + log.warn("未查询到网格信息:" + d.getGridId()); + return; + } + String s = StrUtil.filterEmoji(d.getWorkContent()); + d.setWorkContent(s); + d.setGridCode(gridInfo.getCode()); + d.setGridName(gridInfo.getGridName()); + }); + insertNewRecordBatch(data); + midPatrolFormDTO.setPageNo(midPatrolFormDTO.getPageNo() + 1); + } while (data.size() == NumConstant.ONE_THOUSAND); + return true; + } + + /** + * Desc: 数据存入 + * + * @param newEntities + * @author zxc + * @date 2022/7/22 14:17 + */ + @Transactional(rollbackFor = Exception.class) + public void insertGridStaffWorkInfoPY(List newEntities) { + if (!CollectionUtils.isEmpty(newEntities)) { + List> partition = ListUtils.partition(newEntities, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + this.insertBatch(p); + }); + } + } + + private Boolean insertNewRecordBatch(List list) { + List insertList = new ArrayList<>(); + list.forEach(o -> { + if (StringUtils.isBlank(o.getGridCode())) { + return; + } + insertList.add(buildNewEntity(o)); + }); + //insert + if (CollectionUtils.isEmpty(insertList)) { + log.error("新构建要插入的数据为空,param:{}", JSON.toJSONString(list)); + return false; + } + insertGridStaffWorkInfoPY(insertList); + return true; + } + + private GridstaffWorkInfoPingyinEntity buildNewEntity(PatrolRoutineWorkResult record) { + GridstaffWorkInfoPingyinEntity entity = ConvertUtils.sourceToTarget(record, GridstaffWorkInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setHappenTime(DateUtils.parseDate(record.getHappenTime().concat(" 00:00:00"), DateUtils.DATE_PATTERN)); + entity.setWorkResult(NumConstant.ONE == record.getIsNormal() ? "Y" : "N"); + entity.setWorkType(record.getWorkTypeSecondCode()); + entity.setRecoredInsertTime(record.getCreatedTime()); + entity.setUpdateTime(record.getUpdatedTime()); + entity.setId(null); + entity.setIsDel("N"); + return entity; + } + + @NotNull + private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) { + PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO(); + midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId()); + midPatrolFormDTO.setId(StringUtils.isBlank(patrolRecordForm.getId()) ? "" : patrolRecordForm.getId()); + midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo()); + midPatrolFormDTO.setPageSize(NumConstant.ONE_THOUSAND); + return midPatrolFormDTO; + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml index 3047bc30c9..da5b05eec7 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml @@ -3,33 +3,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml new file mode 100755 index 0000000000..6688632c7b --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM eventreport_pingyin + + + + \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml new file mode 100755 index 0000000000..c2eeb0baa9 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml @@ -0,0 +1,34 @@ + + + + + + + delete from grid_info_pingyin where grid_level !='07' + + + + + delete from grid_info_pingyin where grid_level ='07' + + + + + + update grid_info_pingyin + set grid_name = #{gridName}, + grid_level = #{gridLevel}, + lng = #{lng}, + lat = #{lat}, + update_time = now() + where grid_code = #{gridCode} and is_del = 'N' + + + + update grid_info_pingyin set is_del = 'Y',update_time = now() + where grid_code = #{gridCode} + + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml new file mode 100755 index 0000000000..81143e89e0 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml @@ -0,0 +1,38 @@ + + + + + + + UPDATE gridstaff_info_pingyin + SET grid_name = #{gridName}, + nick_name = #{nickName}, + card_num = #{cardNum}, + phonenumber = #{phonenumber}, + sex = #{sex} + WHERE + grid_user_id = #{gridUserId} + AND grid_code = #{gridCode} + + + + delete from gridstaff_info_pingyin + + + + + \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml new file mode 100755 index 0000000000..ea3bc11030 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + delete from gridstaff_work_info_pingyin LIMIT 1000 + + + + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java index 1978e3660d..5f3d79cd47 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java @@ -30,5 +30,11 @@ public class CustomerFormQueryDTO implements Serializable { * 是否动态 */ private Boolean dynamic; + + /** + * 居民信息列表:resi + * 综合治理图层:zhzl + */ + private String listType; } diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index 55fd617ca9..b6694d1abb 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -95,6 +95,12 @@ 2.0.0 compile + + com.epmet + gov-access-client + 2.0.0 + compile + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index ef443587d2..dcb08f35e7 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -140,7 +140,7 @@ public class IcFormController { @PostMapping(value = "queryConditions") Result> queryConditions(@RequestBody CustomerFormQueryDTO formQueryDTO) { ValidatorUtils.validateEntity(formQueryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class); - return new Result>().ok(icFormItemService.queryConditions(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode())); + return new Result>().ok(icFormItemService.queryConditions(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode(),formQueryDTO.getListType())); } /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java index 9737ddb90f..df9da799b0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java @@ -59,7 +59,7 @@ public interface IcFormItemDao extends BaseDao { * @author yinzuomei * @date 2021/11/1 12:58 下午 */ - List queryConditions(@Param("customerId") String customerId, @Param("formCode") String formCode); + List queryConditions(@Param("customerId") String customerId, @Param("formCode") String formCode,@Param("listType") String listType); /** * 构造出所有子表关联语句 diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java index 435e703e33..92058db5c3 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java @@ -47,7 +47,7 @@ public interface IcFormItemService extends BaseService { List queryTableHeaderList(CustomerFormQueryDTO formDto); - List queryConditions(String customerId,String formCode); + List queryConditions(String customerId,String formCode,String listType); List querySubTables(String customerId, String formCode); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index c3b2e35991..74cb44a6b4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -137,8 +137,8 @@ public class IcFormItemServiceImpl extends BaseServiceImpl queryConditions(String customerId,String formCode) { - return baseDao.queryConditions(customerId,formCode); + public List queryConditions(String customerId,String formCode,String listType) { + return baseDao.queryConditions(customerId,formCode,listType); } @Override diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 0583188d71..bb75b51fc4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -37,6 +37,7 @@ import com.epmet.dto.result.FormGroupDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.entity.*; import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.feign.GovAccessFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; @@ -83,6 +84,8 @@ public class IcFormServiceImpl extends BaseServiceImpl private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; @Resource private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Resource + private GovAccessFeignClient govAccessFeignClient; /** * 获取居民信息表单 @@ -329,6 +332,12 @@ public class IcFormServiceImpl extends BaseServiceImpl throw new EpmetException(dictResult.getCode(), dictResult.getMsg()); } + //7-29 初始化为客户设置(联建单位负责人、社区自组织负责人)两个默认角色数据 + Result accessResult = govAccessFeignClient.initGovRole(customerId); + if (!accessResult.success()) { + throw new EpmetException(accessResult.getCode(), accessResult.getMsg()); + } + return "初始化成功!客户ID:" + customerId + " formCode:" + formCode; } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql new file mode 100644 index 0000000000..9784ebe953 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql @@ -0,0 +1,8 @@ +ALTER TABLE ic_form_item ADD COLUMN ZHZL_LIST_DISPLAY TINYINT ( 1 ) DEFAULT '0' COMMENT '综合治理图层列表显示:1展示,0不展示' AFTER LIST_DISPLAY; + + +update ic_form_item i set i.ZHZL_LIST_DISPLAY='1' +where i.DEL_FLAG='0' + and i.COLUMN_NAME in( + 'GRID_ID','HOME_ID','NAME','MOBILE','ID_CARD','GENDER','BIRTHDAY','REMARKS','IS_XFRY','IS_SPECIAL','SPECIAL_RQLB' + ); \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index b0906de8d1..e2689c4c62 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml @@ -147,7 +147,15 @@ m.DEL_FLAG = '0' AND m.CUSTOMER_ID = #{customerId} and m.FORM_CODE=#{formCode} - AND m.LIST_DISPLAY = '1' + + AND m.LIST_DISPLAY = '1' + + + AND m.LIST_DISPLAY = '1' + + + AND m.ZHZL_LIST_DISPLAY = '1' + )temp diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java index 71efe0c029..5f6e2685a3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java @@ -138,4 +138,10 @@ public class CustomerStaffDTO implements Serializable { * 登录密码 */ private String password; + + /** + * 身份证号 + */ + private String idCard; + } \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java new file mode 100644 index 0000000000..78cd488d87 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + * @author: sun + */ +@NoArgsConstructor +@Data +public class GridStaffUploadtFormDTO { + + /** + * 客户Id + */ + private String customerId; + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java index 66ece366cc..7acb58f01b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java @@ -35,6 +35,10 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable { * 关键词 */ private String keyword; - + /** + * 居民信息列表:resi + * 综合治理图层:zhzl + */ + private String listType; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java new file mode 100644 index 0000000000..35e485df82 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java @@ -0,0 +1,58 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.util.Date; + +/** + * @description: 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + * @author: sun + */ +@Data +public class GridStaffUploadResultDTO { + /** + * 区县系统中的网格员唯一编码 + */ + private String gridUserId; + + /** + * 网格员姓名 + */ + private String nickName; + + /** + * 网格员身份证号码 + */ + private String cardNum; + + /** + * 网格员手机号 + */ + private String phonenumber; + + /** + * 网格员性别,应符合10.31中性别,不要有 其他 + */ + private String sex; + + /** + * 网格员类型,符合《标准》10.3 + */ + private String userType; + + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date date; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java index c9a0160aed..87393c2a17 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java @@ -71,6 +71,11 @@ public class IcResiUserBriefDTO extends HouseUserDTO implements Serializable { */ private Map volunteerCategories = new HashMap<>(); + /** + * 居民类别 + */ + private String resiCategoryNames; + /** * 同屋的其他人 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java index d0040279cb..ce558ef5c5 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java @@ -22,6 +22,8 @@ public class PatrolRoutineWorkResult implements Serializable { private String customerId; private String gridId; + private String gridCode; + private String gridName; private String title; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 2dffd84aee..e37454ed35 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -689,6 +689,9 @@ public interface EpmetUserOpenFeignClient { @PostMapping(value = "/epmetuser/patrolroutinework/selectList") Result> getPatrolRoutineWorkList(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO); + @PostMapping(value = "/epmetuser/patrolroutinework/selectListV2") + Result> getPatrolRoutineWorkListV2(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO); + /** * 获取ic_resi_user * @param icResiUserId @@ -855,4 +858,17 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/staffrole/getIsRootManager") Result getIsRootManager(@RequestParam("userId") String userId); + + @PostMapping("/epmetuser/customerstaff/staffdetailinfo") + Result staffDetailInfo(@RequestBody CustomerStaffFormDTO formDTO); + + @PostMapping("/epmetuser/customerstaff/depttoaddstaff") + Result deptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO); + + @PostMapping("/epmetuser/customerstaff/edittostaff") + Result editToStaff(@RequestBody CustomerStaffDTO formDTO); + + + @PostMapping("/epmetuser/customerstaff/customerstaff") + Result> customerStaff(@RequestBody GridStaffUploadtFormDTO formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index bee7102a73..71711e66a8 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -510,6 +510,11 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkList", patrolQueryFormDTO); } + @Override + public Result> getPatrolRoutineWorkListV2(PatrolQueryFormDTO patrolQueryFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkListV2", patrolQueryFormDTO); + } + @Override public Result getIcResiUserDTO(String icResiUserId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIcResiUserDTO", icResiUserId); @@ -646,4 +651,24 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIsRootManager", userId); } + @Override + public Result staffDetailInfo(CustomerStaffFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "staffDetailInfo", formDTO); + } + + @Override + public Result deptToAddStaff(StaffSubmitFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deptToAddStaff", fromDTO); + } + + @Override + public Result editToStaff(CustomerStaffDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editToStaff", formDTO); + } + + @Override + public Result> customerStaff(GridStaffUploadtFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "customerStaff", formDTO); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java index 274cb8ed87..215af4eab1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java @@ -43,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -221,7 +222,9 @@ public class CustomerStaffController { if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); - mq.setOrgId(result.getData().getUserId()); + List st = new ArrayList<>(); + st.add(result.getData().getUserId()); + mq.setStaffIdList(st); mq.setOrgType("staff"); mq.setType("staff_create"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); @@ -245,7 +248,9 @@ public class CustomerStaffController { if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); - mq.setOrgId(fromDTO.getStaffId()); + List st = new ArrayList<>(); + st.add(fromDTO.getStaffId()); + mq.setStaffIdList(st); mq.setOrgType("staff"); mq.setType("staff_change"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); @@ -493,5 +498,31 @@ public class CustomerStaffController { return new Result>().ok(customerStaffService.gridMobileList(formDTO.getGridId(), tokenDto.getUserId())); } + @PostMapping(value = "staffdetailinfo") + public Result staffDetailInfo(@RequestBody CustomerStaffFormDTO formDTO) { + return new Result().ok(customerStaffService.staffDetailInfo(formDTO)); + } + + @PostMapping("depttoaddstaff") + public Result dedittostaffeptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO){ + Result result = customerStaffService.deptToAddStaff(fromDTO); + return result; + } + + @PostMapping(value = "edittostaff") + public Result editToStaff(@RequestBody CustomerStaffDTO formDTO) { + customerStaffService.editToStaff(formDTO); + return new Result(); + } + + /** + * @Author sun + * @Description 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + **/ + @PostMapping(value = "customerstaff") + public Result> customerStaff(@RequestBody GridStaffUploadtFormDTO formDTO) { + return new Result>().ok(customerStaffService.customerStaff(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 8ed931e7ed..834ac2326c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -374,6 +374,7 @@ public class IcResiUserController implements ResultDataResolver { //pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); pageFormDTO.setCustomerId(tokenDto.getCustomerId()); pageFormDTO.setStaffId(tokenDto.getUserId()); + pageFormDTO.setListType("resi"); ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class); if (null == pageFormDTO.getConditions()) { pageFormDTO.setConditions(new ArrayList<>()); @@ -1271,4 +1272,26 @@ public class IcResiUserController implements ResultDataResolver { public Result> getIcUserCount(@RequestBody IcUserCountFormDTO formDTO) { return new Result>().ok(icResiUserService.getIcUserCount(formDTO)); } + + /** + * 综合治理图层:查询居民信息 + * @param tokenDto + * @param pageFormDTO + * @return + */ + @PostMapping("listresi-zhzl") + @MaskResponse(fieldNames = {"MOBILE", "ID_CARD"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) + public Result>> listResiZhzl(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) { + pageFormDTO.setCustomerId(tokenDto.getCustomerId()); + pageFormDTO.setStaffId(tokenDto.getUserId()); + pageFormDTO.setListType("zhzl"); + pageFormDTO.setIsPage(true); + ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class); + if (null == pageFormDTO.getConditions()) { + pageFormDTO.setConditions(new ArrayList<>()); + } + return new Result>>().ok(icResiUserService.listResiZhzl(pageFormDTO)); + } + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java index f018a32789..d004630d41 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java @@ -47,6 +47,13 @@ public class PatrolRoutineWorkController { Page data = gridUserWorkService.listPage(formDTO); return new Result().ok(data.getResult()); } + + @NoRepeatSubmit + @PostMapping("selectListV2") + public Result> gridUserWorkV2(@RequestBody PatrolQueryFormDTO formDTO){ + Page data = gridUserWorkService.listPage(formDTO); + return new Result().ok(data.getResult()); + } /** * @Description 添加例行工作 * @param formDTO diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java index 725a456b46..b34065223f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java @@ -229,4 +229,8 @@ public interface CustomerStaffDao extends BaseDao { * @Description 工作人员基本信息 **/ List gridStaffMobileList(List staffIdList); + + List getStaffByCustomerId(@Param("customerId") String customerId); + + void edit(CustomerStaffDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java index 86bedb482c..690bf326c2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java @@ -101,4 +101,9 @@ public class CustomerStaffEntity extends BaseEpmetEntity { * 登录密码 */ private String password; + + /** + * 身份证号 + */ + private String idCard; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java index e986aa8f07..f6ca859101 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java @@ -347,4 +347,12 @@ public interface CustomerStaffService extends BaseService { * @Description 【事件】网格员服务电话 **/ List gridMobileList(String gridId, String userId); + + CustomerStaffDTO staffDetailInfo(CustomerStaffFormDTO formDTO); + + Result deptToAddStaff(StaffSubmitFromDTO fromDTO); + + void editToStaff(CustomerStaffDTO formDTO); + + List customerStaff(GridStaffUploadtFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 97cb5345a5..f68830d81c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -490,4 +490,10 @@ public interface IcResiUserService extends BaseService { */ Map getIcUserCount(IcUserCountFormDTO formDTO); + /** + * 综合治理图层-查询各类别(信访人员、安置帮教、吸毒人员、社区矫正、不良青少年、肇事肇祸精神病、邪教人员)居民信息 + * @param pageFormDTO + * @return + */ + PageData> listResiZhzl(IcResiUserPageFormDTO pageFormDTO); } 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 ef8f079c56..0acbb46a51 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 @@ -25,6 +25,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +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; @@ -49,6 +50,7 @@ import com.epmet.entity.GovStaffRoleEntity; import com.epmet.entity.StaffRoleEntity; import com.epmet.entity.UserEntity; import com.epmet.feign.AuthFeignClient; +import com.epmet.feign.GovAccessFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.service.CustomerStaffService; @@ -58,12 +60,14 @@ 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.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.stream.Collectors; @@ -94,6 +98,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -283,7 +289,16 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl> staffExistRole = govAccessFeignClient.getStaffExistRole(getStaffExistRoleFormDTO); + if (!staffExistRole.success()){ + throw new EpmetException("getStaffExistRole method is failure"); + } + if (!CollectionUtils.isEmpty(staffExistRole.getData())){ + List staffRoleResultDTOS = ConvertUtils.sourceToTarget(staffExistRole.getData(), StaffRoleResultDTO.class); + resultDTO.setNewRoleList(staffRoleResultDTOS); + } return new Result().ok(resultDTO); } @@ -502,7 +517,7 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl staffIdList) { //1:批量查询人员基本信息 - List staffList = baseDao.selectStaffByIds(staffIdList, null); + List staffList = baseDao.selectStaffByIds(staffIdList, Constant.ENABLE); //2:批量查询人员拥有的所有角色信息 List roleList = staffRoleDao.selectStaffRoleList(staffIdList); CustomerStaffListResultDTO list = new CustomerStaffListResultDTO(); @@ -858,4 +873,52 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl deptToAddStaff(StaffSubmitFromDTO fromDTO) { + //1.查询客户小程序端'工作人员'角色 + GovStaffRoleDTO govRole = govStaffRoleDao.getRoleByCustomerIdAndRoleKey(fromDTO.getCustomerId(), "staff"); + List roles = new ArrayList<>(); + roles.add(govRole.getId()); + fromDTO.setRoles(roles); + + //2.查询客户管理平台对应角色【联建单位负责人、社区自组织负责人】 + GovRoleListDTO roleDTO = new GovRoleListDTO(); + roleDTO.setCustomerId(fromDTO.getCustomerId()); + roleDTO.setName("party_unit".equals(fromDTO.getDeptType()) ? "联建单位负责人" : "社区自组织负责人"); + Result resultRole = govAccessFeignClient.getGovRole(roleDTO); + if (!resultRole.success() || null == resultRole.getData()) { + throw new RenException("人员添加失败" + resultRole.getMsg()); + } + List newRoles = new ArrayList<>(); + newRoles.add(resultRole.getData().getId()); + fromDTO.setNewRoles(newRoles); + + //3.新增工作人员 + Result result = addStaff(fromDTO); + + //4.新增数字平台角色信息 + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), result.getData().getUserId(), fromDTO.getCustomerId())); + if (!roleUserAccess.success()) { + throw new RenException("工作人员新增数字平台角色信息失败" + resultRole.getMsg()); + } + + return result; + } + + @Override + public void editToStaff(CustomerStaffDTO formDTO) { + baseDao.edit(formDTO); + } + + @Override + public List customerStaff(GridStaffUploadtFormDTO formDTO) { + //1.查询客户下有效工作人员信息 + return baseDao.getStaffByCustomerId(formDTO.getCustomerId()); + } + } 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 57fd9c7d34..b329bee2b8 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 @@ -787,9 +787,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> pageResiMap(IcResiUserPageFormDTO formDTO) { // 查询列表展示项,如果没有,直接返回 - CustomerFormQueryDTO queryDTO1 = new CustomerFormQueryDTO(); - queryDTO1.setCustomerId(formDTO.getCustomerId()); - queryDTO1.setFormCode(formDTO.getFormCode()); + CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO,CustomerFormQueryDTO.class); Result> resultColumnRes = operCustomizeOpenFeignClient.queryConditions(queryDTO1); if (!resultColumnRes.success() || CollectionUtils.isEmpty(resultColumnRes.getData())) { log.warn("没有配置列表展示列"); @@ -1468,6 +1466,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiCategoryColumns = Arrays.stream(ResiCategoryEnum.values()).map(c -> c.getColName()).collect(Collectors.toList()); + + ArrayList resiCategoryNames = new ArrayList<>(); + + Map categories = icResiUserDao.getCategoryListMap(resiCategoryColumns, resiUserId); + categories.forEach((k, v) -> { + if (NumConstant.ONE_STR.equals(v)) { + ResiCategoryEnum enumObject = ResiCategoryEnum.getEnum(k); + resiCategoryNames.add(enumObject.getLabel()); + } + }); + + r.setResiCategoryNames(String.join("、", resiCategoryNames)); + return r; } @@ -3045,4 +3063,185 @@ public class IcResiUserServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(userList,SendPointNoticeFormDTO.UserListBean.class); return list; } + + /** + * 综合治理图层-查询各类别(信访人员、安置帮教、吸毒人员、社区矫正、不良青少年、肇事肇祸精神病、邪教人员)居民信息 + * + * @param formDTO + * @return + */ + @Override + public PageData> listResiZhzl(IcResiUserPageFormDTO formDTO) { + // 查询列表展示项,如果没有,直接返回 + CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO,CustomerFormQueryDTO.class); + Result> resultColumnRes = operCustomizeOpenFeignClient.queryConditions(queryDTO1); + if (!resultColumnRes.success() || CollectionUtils.isEmpty(resultColumnRes.getData())) { + log.warn("没有配置列表展示列"); + return new PageData(new ArrayList(), NumConstant.ZERO); + } + List resultColumns = resultColumnRes.getData(); + // 查询结果列对应的表: + Set resultColumnTables = resultColumns.stream().map(IcFormResColumnDTO::getTableName).collect(Collectors.toSet()); + List queryAgencyIdList = formDTO.getConditions().stream() + .filter(o -> IcResiUserConstant.IC_RESI_USER.equals(o.getTableName()) && "AGENCY_ID".equals(o.getColumnName()) + && CollectionUtils.isNotEmpty(o.getColumnValue()) && StringUtils.isNotBlank(o.getColumnValue().get(NumConstant.ZERO))) + .flatMap(o -> o.getColumnValue().stream()).collect(Collectors.toList()); + + //添加数据权限 + String staffOrgPath; + String agencyId; + //如果查询条件中 有居民表的agencyId 则匹配查询该组织下的 数据 + if (queryAgencyIdList.isEmpty()){ + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + agencyId = staffInfoCacheResult.getAgencyId(); + if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { + staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); + } else { + staffOrgPath = staffInfoCacheResult.getAgencyId(); + } + } else { + formDTO.getConditions().removeIf(o->IcResiUserConstant.IC_RESI_USER.equals(o.getTableName()) && "AGENCY_ID".equals(o.getColumnName())); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(queryAgencyIdList.get(NumConstant.ZERO)); + if (agencyInfo == null){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取组织信息失败"); + } + agencyId = agencyInfo.getId(); + staffOrgPath = agencyInfo.getPids(); + if (StringUtils.isBlank(staffOrgPath)){ + staffOrgPath = agencyId; + }else{ + staffOrgPath = staffOrgPath+StrConstant.COLON+agencyInfo.getId(); + } + } + // 查询列表展示项需要用到哪些子表 + Result> subTablesRes = operCustomizeOpenFeignClient.querySubTables(queryDTO1); + List subTables = subTablesRes.getData(); + log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true)); + + //关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重 + Set whereConditionTables = formDTO.getConditions().stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); + Set tables = new HashSet<>(); + tables.addAll(whereConditionTables); + tables.addAll(resultColumnTables); + log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true)); + //最终关联的子表对应的sql: + List finalSubTables = new ArrayList<>(); + //groupBy用到的表 + Set groupByTables = new HashSet<>(); + subTables.forEach(subTable -> { + if (tables.contains(subTable.getTableName())) { + finalSubTables.add(subTable.getJoinTableSql()); + if (subTable.getSupportAdd()) { + groupByTables.add(subTable.getTableName()); + } + } + }); + + PageInfo> pageInfo = new PageInfo<>(); + if (null == formDTO.getIsPage() || formDTO.getIsPage()) { + //分页 + String finalStaffOrgPath = staffOrgPath; + pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectListResiMap(formDTO.getCustomerId(), + formDTO.getFormCode(), + formDTO.getConditions(), + resultColumns, + finalSubTables, + agencyId, finalStaffOrgPath,null, formDTO.getKeyword(), + groupByTables)); + } else { + List> list = baseDao.selectListResiMap(formDTO.getCustomerId(), + formDTO.getFormCode(), + formDTO.getConditions(), + resultColumns, + finalSubTables, + agencyId, + staffOrgPath,null, + formDTO.getKeyword(), + groupByTables); + pageInfo.setTotal(CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size()); + pageInfo.setList(list); + } + + List> list = pageInfo.getList(); + //查询网格名称 + List gridIds = new ArrayList<>(); + Set houseIds = new HashSet<>(); + for (Map map : list) { + if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) { + gridIds.add(map.get(UserConstant.GRID_ID).toString()); + } + if (map.containsKey(UserConstant.HOME_ID) && null != map.get(UserConstant.HOME_ID) && StringUtils.isNotBlank(map.get(UserConstant.HOME_ID).toString())) { + houseIds.add(map.get(UserConstant.HOME_ID).toString()); + } + } + Result> gridInfoRes = govOrgOpenFeignClient.getGridListByGridIds(gridIds); + List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + + //查询房子名称 + Result> houseInfoRes = govOrgOpenFeignClient.queryListHouseInfo(houseIds, formDTO.getCustomerId()); + List houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>(); + Map houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity())); + + + for (Map resultMap : list) { + String gridIdValue = null != resultMap.get(UserConstant.GRID_ID) ? resultMap.get(UserConstant.GRID_ID).toString() : StrConstant.EPMETY_STR; + resultMap.put("GRID_ID_VALUE", gridIdValue); + if (gridInfoMap.containsKey(gridIdValue) && null != gridInfoMap.get(gridIdValue)) { + //GRID_NAME + resultMap.put(UserConstant.GRID_ID, gridInfoMap.get(gridIdValue).getGridName()); + } + + String homeId = null != resultMap.get(UserConstant.HOME_ID) ? resultMap.get(UserConstant.HOME_ID).toString() : StrConstant.EPMETY_STR; + resultMap.put("HOME_ID_VALUE", homeId); + if (houseInfoMap.containsKey(homeId) && null != houseInfoMap.get(homeId)) { + HouseInfoDTO houseInfoDTO = houseInfoMap.get(homeId); + String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR; + resultMap.put("BUILD_NAME", buildName); + + String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR; + resultMap.put("VILLAGE_NAME", neighBorName); + + String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR; + resultMap.put("UNIT_NAME", unitName); + + String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR; + resultMap.put("DOOR_NAME", doorName); + + String houseType = StringUtils.isNotBlank(houseInfoDTO.getHouseType()) ? houseInfoDTO.getHouseType() : StrConstant.EPMETY_STR; + resultMap.put(UserConstant.HOME_ID, neighBorName.concat(buildName).concat(unitName).concat(doorName)); + + } + + if (resultMap.containsKey(UserConstant.GENDER)) { + String genderValue = null != resultMap.get(UserConstant.GENDER) ? resultMap.get(UserConstant.GENDER).toString() : StrConstant.EPMETY_STR; + if (GenderEnum.MAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.MAN.getName()); + } else if (GenderEnum.WOMAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.WOMAN.getName()); + } else if (GenderEnum.UN_KNOWN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.UN_KNOWN.getName()); + } + } + List zhzlCategoryName=new ArrayList<>(); + // 如果是信访人员 + String isXfry = StringUtils.isNotBlank((String)resultMap.get("IS_XFRY")) ? resultMap.get("IS_XFRY").toString() : StrConstant.EPMETY_STR; + if(NumConstant.ONE_STR.equals(isXfry)){ + zhzlCategoryName.add("信访人员"); + } + // 如果是特殊人群,且有特殊人群类别 + String isSpecial = StringUtils.isNotBlank((String)resultMap.get("IS_SPECIAL")) ? resultMap.get("IS_SPECIAL").toString() : StrConstant.EPMETY_STR; + String specialRqlb = StringUtils.isNotBlank((String)resultMap.get("SPECIAL_RQLB")) ? resultMap.get("SPECIAL_RQLB").toString() : StrConstant.EPMETY_STR; + if(NumConstant.ONE_STR.equals(isSpecial)&&StringUtils.isNotBlank(specialRqlb)){ + String[] att=specialRqlb.split(StrConstant.COMMA); + for(String categoryCode:att){ + zhzlCategoryName.add(ZhzlResiCategoryEnum.getEnum(categoryCode).getName()); + } + } + resultMap.put("zhzlCategoryName",zhzlCategoryName.stream().collect(Collectors.joining(StrConstant.COMMA))); + } + pageInfo.setList(list); + return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml index 10965b93ce..c8eba6538b 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml @@ -456,4 +456,38 @@ + + UPDATE customer_staff + + real_name = #{realName}, + mobile = #{mobile}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime}, + del_flag = #{delFlag} + + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND user_id = #{userId} + + + +