diff --git a/epmet-admin/epmet-admin-server/deploy/docker-compose-dev.yml b/epmet-admin/epmet-admin-server/deploy/docker-compose-dev.yml index ee8461e06f..fbb645ddbc 100644 --- a/epmet-admin/epmet-admin-server/deploy/docker-compose-dev.yml +++ b/epmet-admin/epmet-admin-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-admin.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-admin/epmet-admin-server/deploy/docker-compose-prod.yml b/epmet-admin/epmet-admin-server/deploy/docker-compose-prod.yml index 62a9e89b35..ba0dd38f67 100644 --- a/epmet-admin/epmet-admin-server/deploy/docker-compose-prod.yml +++ b/epmet-admin/epmet-admin-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-admin.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-admin/epmet-admin-server/deploy/docker-compose-test.yml b/epmet-admin/epmet-admin-server/deploy/docker-compose-test.yml index 29673cca9c..7e83d1cd35 100644 --- a/epmet-admin/epmet-admin-server/deploy/docker-compose-test.yml +++ b/epmet-admin/epmet-admin-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-admin.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java index 4678542a56..67c7a22169 100644 --- a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java +++ b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java @@ -27,6 +27,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; public class AdminApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(AdminApplication.class, args); } diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.21__policy_dict.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.21__policy_dict.sql new file mode 100644 index 0000000000..22a626d92a --- /dev/null +++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.21__policy_dict.sql @@ -0,0 +1,34 @@ +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) +VALUES ('1549241609500921857', 'house_purpose', '房屋用途', '', 31, 0, 0, '1', '2022-07-19 11:55:58', '1', '2022-07-19 11:55:58'); + +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) +VALUES ('1549241262669729794', 'house_type', '房屋类型', '楼房、平房、别墅', 30, 0, 0, '1', '2022-07-19 11:54:35', '1', '2022-07-19 11:54:35'); + +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) +VALUES ('1548958559042969601', 'policy_level', '政策级别', '政策级别;与服务项目的政策级别一致', 29, 0, 0, '1', '2022-07-18 17:11:13', '1', '2022-07-19 11:10:42'); + +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) +VALUES ('1548956290117443586', 'sql_query_type', 'sql查询条件', '目前应用于政策找人规则查询条件', 28, 0, 0, '1', '2022-07-18 17:02:12', '1', '2022-07-19 11:10:36'); + + +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956434175008770', 1548956290117443586, '等于', '=', '0', '等于', 1, 0, 0, '1', '2022-07-18 17:02:47', '1', '2022-07-18 17:02:47'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956518434381826', 1548956290117443586, '不等于', '!=', '0', '不等于', 2, 0, 0, '1', '2022-07-18 17:03:07', '1', '2022-07-18 17:03:07'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956603855577089', 1548956290117443586, '大于', '>', '0', '大于', 3, 0, 0, '1', '2022-07-18 17:03:27', '1', '2022-07-18 17:03:27'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956681525698561', 1548956290117443586, '大于等于', '>=', '0', '大于等于', 4, 0, 0, '1', '2022-07-18 17:03:46', '1', '2022-07-18 17:03:46'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956755412557826', 1548956290117443586, '小于', '<', '0', '小于', 5, 0, 0, '1', '2022-07-18 17:04:03', '1', '2022-07-18 17:04:03'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956830482210818', 1548956290117443586, '小于等于', '<=', '0', '<=', 6, 0, 0, '1', '2022-07-18 17:04:21', '1', '2022-07-18 17:04:21'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548956956554600450', 1548956290117443586, '包含', 'like', '0', '包含', 7, 0, 0, '1', '2022-07-18 17:04:51', '1', '2022-07-18 17:04:51'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548957038305779714', 1548956290117443586, '不包含', 'not like', '0', '不包含', 8, 0, 0, '1', '2022-07-18 17:05:11', '1', '2022-07-18 17:05:11'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548958784704913410', 1548958559042969601, '市级', '0', '0', '市级;政策级别ic_policy.POLICY_LEVEL', 1, 0, 0, '1', '2022-07-18 17:12:07', '1', '2022-07-18 17:12:07'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548958823573528578', 1548958559042969601, '区级', '1', '0', '区级;政策级别ic_policy.POLICY_LEVEL', 2, 0, 0, '1', '2022-07-18 17:12:16', '1', '2022-07-18 17:12:16'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1548958887222091777', 1548958559042969601, '街道级', '2', '0', '街道级;政策级别ic_policy.POLICY_LEVEL', 3, 0, 0, '1', '2022-07-18 17:12:32', '1', '2022-07-18 17:12:32'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241348443246594', 1549241262669729794, '楼房', '1', '0', '房屋类型ic_house.houseType', 1, 0, 0, '1', '2022-07-19 11:54:56', '1', '2022-07-19 11:54:56'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241378726121473', 1549241262669729794, '平房', '2', '0', '房屋类型ic_house.houseType', 2, 0, 0, '1', '2022-07-19 11:55:03', '1', '2022-07-19 11:55:03'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241467490177025', 1549241262669729794, '别墅', '3', '0', '房屋类型ic_house.houseType', 3, 0, 0, '1', '2022-07-19 11:55:24', '1', '2022-07-19 11:55:24'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241664320475137', 1549241609500921857, '住宅', '1', '0', '房屋用途ic_house.purpose', 1, 0, 0, '1', '2022-07-19 11:56:11', '1', '2022-07-19 11:56:11'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241693034680321', 1549241609500921857, '商业', '2', '0', '房屋用途ic_house.purpose', 2, 0, 0, '1', '2022-07-19 11:56:18', '1', '2022-07-19 11:56:18'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241720020832257', 1549241609500921857, '办公', '3', '0', '房屋用途ic_house.purpose', 3, 0, 0, '1', '2022-07-19 11:56:24', '1', '2022-07-19 11:56:24'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241750299512833', 1549241609500921857, '工业', '4', '0', '房屋用途ic_house.purpose', 4, 0, 0, '1', '2022-07-19 11:56:31', '1', '2022-07-19 11:56:31'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241808101216257', 1549241609500921857, '仓储', '5', '0', '房屋用途ic_house.purpose', 5, 0, 0, '1', '2022-07-19 11:56:45', '1', '2022-07-19 11:56:45'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241873729490946', 1549241609500921857, '商住混用', '6', '0', '房屋用途ic_house.purpose', 6, 0, 0, '1', '2022-07-19 11:57:01', '1', '2022-07-19 11:57:01'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1549241913411801089', 1549241609500921857, '其他', '7', '0', '房屋用途ic_house.purpose', 7, 0, 0, '1', '2022-07-19 11:57:10', '1', '2022-07-19 11:57:10'); diff --git a/epmet-auth/deploy/docker-compose-dev.yml b/epmet-auth/deploy/docker-compose-dev.yml index f721a6164f..8c250df1ac 100644 --- a/epmet-auth/deploy/docker-compose-dev.yml +++ b/epmet-auth/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-auth.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-auth/deploy/docker-compose-prod.yml b/epmet-auth/deploy/docker-compose-prod.yml index b7776bbaaf..56c4a0a17b 100644 --- a/epmet-auth/deploy/docker-compose-prod.yml +++ b/epmet-auth/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-auth.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-auth/deploy/docker-compose-test.yml b/epmet-auth/deploy/docker-compose-test.yml index 521eea2a30..4766c36db6 100644 --- a/epmet-auth/deploy/docker-compose-test.yml +++ b/epmet-auth/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./epmet-auth.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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..f579fbb1fc 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,16 @@ 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; + /** + * org原有的Code + */ + private String oldCode; + + //工作人员Id集合 + private List staffIdList; + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java index 77875d5415..95cc929784 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java @@ -174,4 +174,20 @@ public interface Constant { String OPITON_SOURCE_REMOTE = "remote"; String OPITON_SOURCE_LOCAL = "local"; + + /** + * 附件状态(审核中:auditing; + auto_passed: 自动通过; + review:结果不确定,需要人工审核; + block: 结果违规; + rejected:人工审核驳回; + approved:人工审核通过) + 现在图片是同步审核的,所以图片只有auto_passed一种状态 + */ + String AUDITING="auditing"; + String AUTO_PASSED="auto_passed"; + String REVIEW="review"; + String BLOCK="block"; + String REJECTED="rejected"; + String APPROVED="approved"; } 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/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java index 221d7d3f69..8b819bcfb8 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java @@ -143,4 +143,9 @@ public interface ServiceConstant { * 聚合查询服务 */ String DATA_AGGREGATOR_SERVER = "data-aggregator-server"; + + /** + * 插件pli-power服务 + */ + String PLI_POWER_SERVER = "pli-power-base-server"; } 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/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java index f552db723a..e900f79875 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java @@ -27,6 +27,7 @@ public enum DictTypeEnum { IC_EVENT_SOURCE_TYPE("ic_event_source_type","事件管理",19), IC_SERVICE_TYPE("ic_service_type","服务类别",20), IC_DANGER_TYPE("ic_danger_type","危化品种类",24), + POLICY_LEVEL("policy_level","政策级别",25), ; private final String code; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java 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/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index a13d6cf1db..163dee5e2f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -259,6 +259,7 @@ public enum EpmetErrorCode { NOT_REGEIST_RESI(8927,"未注册居民"), UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"), IC_VACCINE(8929,"已存在相同记录,请去修改原有记录"), + NOT_MATCH_IC_USER_ERROR(8930,"请联系社区工作人员"), MISMATCH(10086,"人员与房屋信息不匹配,请与工作人员联系。"), diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/page/PageData.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/page/PageData.java index 380d5ec0e5..55a331c4e2 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/page/PageData.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/page/PageData.java @@ -9,6 +9,7 @@ package com.epmet.commons.tools.page; import lombok.Data; +import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.List; @@ -20,6 +21,7 @@ import java.util.List; * @since 1.0.0 */ @Data +@NoArgsConstructor public class PageData implements Serializable { private static final long serialVersionUID = 1L; 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 b9795ef8dc..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 @@ -644,8 +644,18 @@ public class RedisKeys { * @param agencyId * @return */ - public static String getOrgTreeCacheKey(String agencyId) { - return rootPrefix.concat("org:temp:orgtree").concat(agencyId); + public static String getOrgTreeCacheKey(String agencyId,String customerId) { + return rootPrefix.concat("org:temp:orgtree:").concat(customerId).concat(StrConstant.COLON).concat(agencyId); + } + + /** + * 与getOrgTreeCacheKey一致,用于模糊删除 + * @param customerId + * @return + */ + public static String getOrgTreeCachePrexKey(String customerId) { + // return "epmet:org:temp:orgtree".concat(StrConstant.STAR); + return rootPrefix.concat("org:temp:orgtree:").concat(customerId).concat(StrConstant.STAR); } public static String getHouseInfoCacheKey(String houseId,String customerId){ @@ -756,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 @@ -778,6 +798,18 @@ public class RedisKeys { return rootPrefix.concat("lock:").concat(methodName); } + /** + * desc:获取分布式锁key + * @param customerId + * @return + */ + public static String getXiaoquEditLock(String customerId) { + if (StringUtils.isBlank(customerId)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("lock:xiaoquedit").concat(customerId); + } + /** * desc:获取更新 房屋内有居民数量的key * @param customerId @@ -791,4 +823,30 @@ public class RedisKeys { } + /** + * desc: 数据同步业务key 根据方法名区分 + * + * @param bizType [resi] + * @return java.lang.String + * @author LiuJanJun + * @date 2022/7/16 7:12 下午 + */ + public static String getDataSyncKey(String bizType) { + if (StringUtils.isBlank(bizType)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("datasync:").concat(bizType); + } + + /** + * Desc: 服务组织名称 + * @param customerId + * @param serviceOrgType + * @param serviceOrgId + * @author zxc + * @date 2022/7/19 14:08 + */ + public static String getServiceOrgNameKey(String customerId,String serviceOrgType,String serviceOrgId){ + return rootPrefix.concat("serviceOrgName:").concat(serviceOrgType).concat(":").concat(customerId).concat(":").concat(serviceOrgId); + } } 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 27636e435a..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 @@ -357,6 +357,33 @@ public class RedisUtils { return redisTemplate.opsForSet().members(key); } + /** + * @Description 获取一个(set) + * @param key + * @author zxc + */ + public Object sPop(String key){ + return redisTemplate.opsForSet().pop(key); + } + + /** + * @Description 添加一个元素(set) + * @param key + * @author zxc + */ + public Long sAdd(String key,Object value){ + 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 @@ -444,4 +471,15 @@ public class RedisUtils { public Long getTTL(String treeCacheKey) { return redisTemplate.getExpire(treeCacheKey); } + + /** + * 根据前缀模糊删除 + * @param prex + */ + public void deleteByPrex(String prex) { + Set keys = redisTemplate.keys(prex); + if (!CollectionUtils.isEmpty(keys)) { + redisTemplate.delete(keys); + } + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java index 075a954290..1fe656fef6 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java @@ -102,6 +102,7 @@ public class HouseInfoCache implements Serializable { * 房屋编码 */ private String houseCode; + private String coding; /** * 二维码地址 */ 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-commons/epmet-commons-tools/src/main/resources/logback-base.xml b/epmet-commons/epmet-commons-tools/src/main/resources/logback-base.xml index 4d40231ff9..8b34bed209 100644 --- a/epmet-commons/epmet-commons-tools/src/main/resources/logback-base.xml +++ b/epmet-commons/epmet-commons-tools/src/main/resources/logback-base.xml @@ -7,11 +7,13 @@ Base logback configuration provided for compatibility with Spring Boot 1.1 - - + + + + - + \ No newline at end of file diff --git a/epmet-gateway/deploy/docker-compose-dev.yml b/epmet-gateway/deploy/docker-compose-dev.yml index 625089b478..04b3e481b0 100644 --- a/epmet-gateway/deploy/docker-compose-dev.yml +++ b/epmet-gateway/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-gateway.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-gateway/deploy/docker-compose-prod.yml b/epmet-gateway/deploy/docker-compose-prod.yml index 49094f4521..1f12405890 100644 --- a/epmet-gateway/deploy/docker-compose-prod.yml +++ b/epmet-gateway/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-gateway.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-gateway/deploy/docker-compose-test.yml b/epmet-gateway/deploy/docker-compose-test.yml index 5a88a1e499..6570906ee1 100644 --- a/epmet-gateway/deploy/docker-compose-test.yml +++ b/epmet-gateway/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-gateway.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index a1d2a74c11..b0b2492d33 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -502,6 +502,7 @@ epmet: # 内部认证url白名单(在白名单中的,就不会再校验登录了) internalAuthUrlsWhiteList: - /epmetuser/customerstaff/customerlist + - /epmetuser/icresiuser/icUserMatchGrid - /auth/wechat/** - /**/druid/** - /gov/project/project/platformcallback 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 5119475926..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 @@ -10,8 +10,16 @@ public interface OrgConstant { String PROVINCE = "province"; String CITY = "city"; String DISTRICT = "district"; - + String STREET = "street"; + String COMMUNITY = "community"; 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/form/ResisByPolicyRulesFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ResisByPolicyRulesFormDTO.java new file mode 100644 index 0000000000..974172a7e4 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ResisByPolicyRulesFormDTO.java @@ -0,0 +1,77 @@ +package com.epmet.dataaggre.dto.epmetuser.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ResisByPolicyRulesFormDTO { + private String ruleId; + private String orgId; + private String orgType; + private String neighborHoodId; + private String buildingId; + private String unitId; + private String houseId; + private String name; + private String mobile; + private String idCard; + private RuleList ruleList = new RuleList(); + private Integer pageNo = 1; + private Integer pageSize = 20; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class RuleList { + private String ruleName; + private List resiRuleList; + private List houseRuleList; + private List statRuleList; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResiRule { + private String ruleDesc; + private String nextLogicalRel; + private String itemGroupId; + private String itemId; + private String queryType; + private String colTable; + private String colKey; + private String colVal; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HouseRule { + private String colTable; + private String colKey; + private String colVal; + private String ruleDesc; + private String nextLogicalRel; + private String queryType; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class StatRule { + private String colKey; + private String colVal; + private String nextLogicalRel; + private String ruleDesc; + private String queryType; + private String colTable; + } +} 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/epmetuser/result/ResiByPolicyInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java new file mode 100644 index 0000000000..822b444390 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ResiByPolicyInfoResultDTO { + + @ExcelIgnore + private String icResiUserId; + + @ExcelProperty(value = "姓名") + @ColumnWidth(10) + private String name; + + @ExcelProperty("手机号") + @ColumnWidth(20) + private String mobile; + + @ExcelProperty("身份证号") + @ColumnWidth(30) + private String idCard; + /** + * 小区全名,包含小区前面的属性,比如网格等 + */ + @ExcelIgnore + private String gridId; + @ExcelIgnore + private String neighborhoodId; + @ExcelProperty("小区名称") + @ColumnWidth(30) + private String neighborHoodName; + @ExcelProperty("年龄") + @ColumnWidth(10) + private Integer age; + @ExcelIgnore + private String birthday; +} 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/OrgStatisticsFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java new file mode 100644 index 0000000000..559a08d9f9 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:27 + */ +@Data +public class OrgStatisticsFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -1043502365053945317L; + private String customerId; + private String agencyId; + private String orgId; + private String orgType; + private String type; + private String startDate; + private String endDate; + private List agencyList; +} 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/MemberProjectInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java new file mode 100644 index 0000000000..e0c941e8e3 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:33 + */ +@NoArgsConstructor +@Data +public class MemberProjectInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -4880909768378661921L; + private String staffId; + private String staffName; + private String orgId; + private String orgName; + private Integer projectCount = 0; + private Integer closedCount = 0; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java new file mode 100644 index 0000000000..1163413ab7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 14:56 + */ +@Data +public class OrgCountDTO implements Serializable { + private static final long serialVersionUID = -1875812403619088015L; + private String orgId; + private Integer count; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java new file mode 100644 index 0000000000..8f8c980c61 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:32 + */ +@NoArgsConstructor +@Data +public class OrgProjectDetailResultDTO implements Serializable { + private static final long serialVersionUID = 6333117500929136144L; + private String orgId; + private String orgType; + private String orgName; + private Integer memberCount = 0; + private Integer projectCount = 0; + private Integer closedCount = 0; + private Integer projectAve = 0; + private Integer closedAve = 0; +} 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-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java index a164b0c020..f979ead709 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java @@ -2,13 +2,18 @@ package com.epmet.dataaggre.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.feign.impl.DataAggregatorOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = DataAggregatorOpenFeignClientFallbackFactory.class) // @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory= DataAggregatorOpenFeignClientFallbackFactory.class,url = "localhost:8114") public interface DataAggregatorOpenFeignClient { @@ -21,4 +26,11 @@ public interface DataAggregatorOpenFeignClient { @PostMapping(value = "data/aggregator/org/export-send-msg") Result exportGridLiveRes(@RequestBody GridLivelyFormDTO form); + /** + * 政策人员预览 + * @param input + * @return + */ + @PostMapping("data/aggregator/icuser/listByPolicyRules") + Result> listByPolicyRules(@RequestBody ResisByPolicyRulesFormDTO input); } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java index ea2bfebddf..2cec07e6b3 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java @@ -1,8 +1,11 @@ package com.epmet.dataaggre.feign.impl; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient; @@ -16,4 +19,9 @@ public class DataAggregatorOpenFeignClientFallback implements DataAggregatorOpen public Result exportGridLiveRes(GridLivelyFormDTO form) { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "pcworkRecordListExportSendMsg",form); } + + @Override + public Result> listByPolicyRules(ResisByPolicyRulesFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "listByPolicyRules", input); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml index 0973856c00..7df772d03e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-aggregator.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml index 3576fadb73..8f887c8b2e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx760m -jar ./data-aggregator.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml index e066047e36..cba29365f5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-aggregator.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index 4cc34ba06f..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,16 @@ data-aggregator-server + + com.epmet + gov-access-client + 2.0.0 + + + com.epmet + epmet-heart-client + 2.0.0 + com.epmet epmet-commons-tools 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/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 134278d433..bbf8011130 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -3,6 +3,7 @@ package com.epmet.dataaggre.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.aop.NoRepeatSubmit; @@ -18,7 +19,9 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.beans.GridMemberDataAnalysisExcelExportBean; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; @@ -27,6 +30,8 @@ import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; +import com.epmet.dataaggre.excel.MemberProjectInfoExcel; +import com.epmet.dataaggre.excel.OrgProjectDetailExcel; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.govorg.GovOrgService; import lombok.extern.slf4j.Slf4j; @@ -39,11 +44,13 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.io.PrintWriter; import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /** @@ -439,4 +446,125 @@ public class GovOrgController { } return new Result().ok(govOrgService.queryBuildingInfo(buildingId)); } + + /** + * 组织项目统计 + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< PageData< OrgProjectDetailResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/7/28 10:34 + */ + @PostMapping("orgProjectDetailList") + public Result> orgProjectDetailList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { + return new Result>().ok(govOrgService.orgProjectDetailList(tokenDto, formDTO)); + } + + /** + * 网格员项目统计 + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< PageData< MemberProjectInfoResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/7/28 10:34 + */ + @PostMapping("memberProjectInfoList") + public Result> memberProjectInfoList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { + return new Result>().ok(govOrgService.memberProjectInfoList(tokenDto, formDTO)); + } + + @NoRepeatSubmit + @PostMapping("orgProjectDetailList/export") + public void orgProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "组织事件统计.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), OrgProjectDetailExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + OrgProjectDetailExcel sum = new OrgProjectDetailExcel(); + do { + page = govOrgService.orgProjectDetailList(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), OrgProjectDetailExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + + sum.setMemberCount(sum.getMemberCount() + list.stream().mapToInt(OrgProjectDetailExcel::getMemberCount).sum()); + sum.setProjectCount(sum.getProjectCount() + list.stream().mapToInt(OrgProjectDetailExcel::getProjectCount).sum()); + sum.setClosedCount(sum.getClosedCount() + list.stream().mapToInt(OrgProjectDetailExcel::getClosedCount).sum()); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); + sum.setIndex(i.getAndIncrement()); + sum.setOrgName("合计"); + if (NumConstant.ZERO != sum.getMemberCount()) { + sum.setProjectAve(sum.getProjectCount()/sum.getMemberCount()); + sum.setClosedAve(sum.getClosedCount()/sum.getMemberCount()); + } + List list = new ArrayList<>(); + list.add(sum); + excelWriter.write(list, writeSheet); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + @NoRepeatSubmit + @PostMapping("memberProjectInfoList/export") + public void memberProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "网格员事件统计.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), MemberProjectInfoExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = govOrgService.memberProjectInfoList(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), MemberProjectInfoExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java index 15c0473ba0..98432996ce 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java @@ -2,27 +2,50 @@ package com.epmet.dataaggre.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.epmetuser.form.IcUserCategoryFormDTO; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; +import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; +import com.epmet.dataaggre.service.ResiService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; +import com.epmet.dataaggre.service.impl.ResiServiceImpl; +import com.epmet.feign.EpmetHeartOpenFeignClient; +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 javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Set; @RestController @RequestMapping("icuser") -public class IcUserController { +public class IcUserController implements ResultDataResolver { @Autowired private EpmetUserService epmetUserService; + @Autowired + private ResiServiceImpl icResiService; + + @Autowired + private EpmetHeartOpenFeignClient heartOpenFeignClient; /** * 【人员类别分析】-各类别人数 @@ -38,5 +61,73 @@ public class IcUserController { return new Result>().ok(epmetUserService.queryIcUserCategoryData(formDTO)); } + /** + * 政策人员预览 + * @param input + * @return + */ + @PostMapping("listByPolicyRules") + public Result> listByPolicyRules(@RequestBody ResisByPolicyRulesFormDTO input) { + + List resiRule = input.getRuleList().getResiRuleList(); + List houseRule = input.getRuleList().getHouseRuleList(); + List statRule = input.getRuleList().getStatRuleList(); + + Integer pageNo = input.getPageNo(); + Integer pageSize = input.getPageSize(); + + String orgId = input.getOrgId(); + String orgType = input.getOrgType(); + String neighborHoodId = input.getNeighborHoodId(); + String buildingId = input.getBuildingId(); + String unitId = input.getUnitId(); + String houseId = input.getHouseId(); + String idCard = input.getIdCard(); + String name = input.getName(); + String ruleId = input.getRuleId(); + + if (StringUtils.isNotBlank(ruleId)) { + // 从heart取,覆盖形参 + com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO.RuleList ruleList = getResultDataOrThrowsException( + heartOpenFeignClient.listPolicyRules4QueryAndExport(ruleId), + ServiceConstant.EPMET_HEART_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), + null, null); + + resiRule = ConvertUtils.sourceToTarget(ruleList.getResiRuleList(), ResisByPolicyRulesFormDTO.ResiRule.class); + houseRule = ConvertUtils.sourceToTarget(ruleList.getHouseRuleList(), ResisByPolicyRulesFormDTO.HouseRule.class); + statRule = ConvertUtils.sourceToTarget(ruleList.getStatRuleList(), ResisByPolicyRulesFormDTO.StatRule.class); + } + + // 全都为空,则返回空ç + if (CollectionUtils.isEmpty(resiRule) + && CollectionUtils.isEmpty(houseRule) + && CollectionUtils.isEmpty(statRule)) { + return new Result().ok(new PageData<>(new ArrayList<>(), 0)); + } + + // 对特殊规则进行转换。 + icResiService.specificRuleConvert(resiRule); + + PageData page = icResiService.listByPolicyRules(orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, pageNo, pageSize, resiRule, houseRule, statRule); + return new Result>().ok(page); + } + + /** + * 导出政策查找到的居民 + * @param input + */ + @PostMapping("exportByPolicyRules") + public void exportResisByPolicy(@RequestBody ResisByPolicyRulesFormDTO input, HttpServletResponse response) { + try { + icResiService.exportResisByPolicy( + input.getOrgId(), input.getOrgType(), input.getNeighborHoodId(), input.getBuildingId(), input.getUnitId(), + input.getHouseId(), input.getIdCard(), input.getName(), input.getRuleId(), input.getRuleList().getResiRuleList(), + input.getRuleList().getHouseRuleList(), input.getRuleList().getStatRuleList(), response); + } catch (IOException e) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "导出Excel文件失败", "导出Excel文件失败"); + } + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index af97c5e52c..d32ddf47ed 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -26,7 +26,10 @@ import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -373,4 +376,10 @@ public interface DataStatsDao { */ List getGridProejctToProjectMain(GridLivelyFormDTO formDTO); + List getAgencyProjectTotal(OrgStatisticsFormDTO formDTO); + + List getMemberCount(@Param("agencyId")String agencyId, @Param("dateId") String dateId); + + List getMemberList(@Param("gridId") String gridId, @Param("dateId") String dateId); + } 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 78e7b7d4b7..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 @@ -18,7 +18,11 @@ package com.epmet.dataaggre.dao.epmetuser; 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; @@ -58,5 +62,80 @@ 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); + + /** + * 政策查找居民 + * @param houseIds + * @return + */ + List listByPolicyRules(@Param("customerId") String customerId, + @Param("orgIdPath") String orgIdPath, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("neighborHoodId") String neighborHoodId, + @Param("buildingId") String buildingId, + @Param("unitId") String unitId, + @Param("houseId") String houseId, + @Param("idCard") String idCard, + @Param("name") String name, + @Param("resiRules") List resiRule, + @Param("houseIds") List houseIds); + + /** + * 政策查找居民 + * @param houseIds + * @return + */ + Integer getTotalByPolicyRules(@Param("customerId") String customerId, + @Param("orgIdPath") String orgIdPath, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("neighborHoodId") String neighborHoodId, + @Param("buildingId") String buildingId, + @Param("unitId") String unitId, + @Param("houseId") String houseId, + @Param("idCard") String idCard, + @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/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java index e508cb2666..6f49f5a6d0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java @@ -21,6 +21,8 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.RoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -74,4 +76,6 @@ public interface StaffRoleDao extends BaseDao { */ List selectStaffByRole(@Param("customerId") String customerId, @Param("roleId") String roleId, @Param("userId") String userId); + List getMemberCount(@Param("customerId") String customerId); + List getMemberList(@Param("customerId") String customerId, @Param("orgIds") List orgIds); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index 076b7af7bd..ba9043c0f4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -106,4 +106,6 @@ public interface CustomerAgencyDao extends BaseDao { */ LinkedList subAgencyListAndGridSumNum(@Param("agencyId") String agencyId); + List getSubAgencyList(@Param("agencyId") String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java index 043d5c245d..96e44d2c3a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java @@ -22,6 +22,7 @@ import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; import com.epmet.dataaggre.dto.govorg.OrgDTO; +import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerStaffAgencyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -71,4 +72,6 @@ public interface CustomerStaffAgencyDao extends BaseDao selectSubAgency(@Param("agencyId") String agencyId, @Param("userId") String userId); + List getStaffList(@Param("orgId") String orgId, @Param("orgType") String orgType); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java index 2fcba2cdc4..b481617cb2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java @@ -56,4 +56,6 @@ public interface CustomerStaffGridDao extends BaseDao { * @Date 2021/8/20 14:37 */ List selectGridList(@Param("agencyId") String agencyId, @Param("userId") String userId); + + List getGridStaffByAgency(@Param("agencyId") String agencyId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/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/govorg/IcHouseDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcHouseDao.java index 5df9a571dc..568e74e5cb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcHouseDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcHouseDao.java @@ -1,8 +1,12 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.entity.govorg.IcHouseEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 房屋信息 @@ -12,4 +16,24 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcHouseDao extends BaseDao { + /** + * 为政策-预览居民,提供房屋id列表查询 + * @param orgIdPath + * @param customerId + * @param neighborHoodId + * @param buildingId + * @param unitId + * @param houseId + * @param houseRule + * @param statRule + * @return + */ + List listHouseIds4PolicyResis(@Param("orgIdPath") String orgIdPath, + @Param("customerId") String customerId, + @Param("neighborHoodId") String neighborHoodId, + @Param("buildingId") String buildingId, + @Param("unitId") String unitId, + @Param("houseId") String houseId, + @Param("houseRule") List houseRule, + @Param("statRule") List statRule); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcNeighborhoodDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcNeighborhoodDao.java new file mode 100644 index 0000000000..51a309e135 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcNeighborhoodDao.java @@ -0,0 +1,13 @@ +package com.epmet.dataaggre.dao.govorg; + +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.dto.IcNeighborHoodDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface IcNeighborhoodDao { + List neighborhoodsByIds(@Param("neighborhoodIds") List neighborhoodIds); +} 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/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 35dd1601b5..956e8b95ed 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -19,6 +19,8 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; @@ -123,4 +125,11 @@ public interface ProjectDao extends BaseDao { */ List getEventOrgList(@Param("eventIds") List eventIds); List getCategoryCount(ProjectCategoryTotalFormDTO formDTO); + + List getGridProjectCount(OrgStatisticsFormDTO formDTO); + List getGridClosedProjectCount(OrgStatisticsFormDTO formDTO); + List getMemberProjectCount(OrgStatisticsFormDTO formDTO); + List getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); + List getAgencyProjectCount(OrgStatisticsFormDTO formDTO); + List getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO); } 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/excel/MemberProjectInfoExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java new file mode 100644 index 0000000000..a742bd1546 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java @@ -0,0 +1,40 @@ +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class MemberProjectInfoExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(30) + @ExcelProperty(value = "网格员",order = 2) + private String staffName; + + @ColumnWidth(40) + @ExcelProperty(value = "所属组织",order = 3) + private String orgName; + + @ColumnWidth(20) + @ExcelProperty(value = "上报数量",order = 4) + private Integer projectCount = 0; + + @ColumnWidth(20) + @ExcelProperty(value = "办结数",order = 5) + private Integer closedCount = 0; + + +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java new file mode 100644 index 0000000000..49aeaf9317 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java @@ -0,0 +1,47 @@ +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class OrgProjectDetailExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(40) + @ExcelProperty(value = "所属组织",order = 2) + private String orgName; + + @ColumnWidth(20) + @ExcelProperty(value = "网格员数",order = 3) + private Integer memberCount = 0; + + @ColumnWidth(20) + @ExcelProperty(value = "上报数量",order = 4) + private Integer projectCount = 0; + + @ColumnWidth(20) + @ExcelProperty(value = "办结数",order = 5) + private Integer closedCount = 0; + + @ColumnWidth(20) + @ExcelProperty(value = "人均上报",order = 6) + private Integer projectAve = 0; + + @ColumnWidth(20) + @ExcelProperty(value = "人均办结",order = 7) + private Integer closedAve = 0; + +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/ResisByPolicyExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/ResisByPolicyExcel.java new file mode 100644 index 0000000000..e5cb9b5022 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/ResisByPolicyExcel.java @@ -0,0 +1,21 @@ +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class ResisByPolicyExcel { + @ExcelProperty("姓名") + private String name; + @ExcelProperty("手机号") + private String mobile; + @ExcelProperty("身份证号") + private String idCard; + /** + * 小区全名,包含小区前面的属性,比如网格等 + */ + @ExcelProperty("小区名") + private String neighborHoodName; + @ExcelProperty("年龄") + private Integer age; +} 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/ResiService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/ResiService.java new file mode 100644 index 0000000000..a77e94ceb7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/ResiService.java @@ -0,0 +1,50 @@ +package com.epmet.dataaggre.service; + +import com.epmet.commons.tools.page.PageData; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; +import com.github.pagehelper.PageInfo; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Set; + +/** + * 居民的service + */ +public interface ResiService { + + /** + * 政策人员预览 + * @param pageNo + * @param pageSize + * @param resiRule + * @param houseRule + */ + PageData listByPolicyRules( + String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, Integer pageNo, Integer pageSize, + List resiRule, + List houseRule, + List statRule); + + /** + * 政策找居民导出 + * @param orgId + * @param orgType + * @param neighborHoodId + * @param buildingId + * @param unitId + * @param houseId + * @param idCard + * @param name + * @param ruleId + */ + void exportResisByPolicy(String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, + String ruleId, List resiRule, + List houseRule, + List statRule, + HttpServletResponse response) throws IOException; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 754ee01d50..7ce06a88e5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.datastats; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; @@ -7,8 +8,10 @@ import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -16,6 +19,7 @@ import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.util.List; +import java.util.Map; /** * @Author sun @@ -296,4 +300,10 @@ public interface DataStatsService { * @author sun */ List getGridProejctToProjectMain(GridLivelyFormDTO formDTO); + + Map getAgencyProjectTotal(OrgStatisticsFormDTO formDTO); + + Map getMemberMap(String agencyId); + + PageData getMemberList(OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 8682ec5876..bf56d8cdb8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1,63 +1,69 @@ package com.epmet.dataaggre.service.datastats.impl; import cn.afterturn.easypoi.excel.entity.ExportParams; -import com.alibaba.fastjson.JSON; -import com.epmet.commons.dynamic.datasource.annotation.DataSource; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.enums.OrgLevelEnum; -import com.epmet.commons.tools.enums.OrgTypeEnum; -import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.feign.ResultDataResolver; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; -import com.epmet.dataaggre.constant.DataSourceConstant; -import com.epmet.dataaggre.constant.OrgConstant; -import com.epmet.dataaggre.dao.datastats.DataStatsDao; -import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; -import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; -import com.epmet.dataaggre.dto.datastats.form.*; -import com.epmet.dataaggre.dto.datastats.result.*; -import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; -import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; -import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; -import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; -import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; -import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; -import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; -import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; -import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; -import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; -import com.epmet.dataaggre.excel.CustomerDataManageExcel; -import com.epmet.dataaggre.service.datastats.DataStatsService; -import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; -import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; -import com.epmet.dataaggre.service.govorg.GovOrgService; -import com.epmet.dataaggre.service.opercrm.CustomerRelation; -import com.github.pagehelper.PageHelper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.NumberFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; + import com.alibaba.fastjson.JSON; + import com.epmet.commons.dynamic.datasource.annotation.DataSource; + import com.epmet.commons.tools.constant.NumConstant; + import com.epmet.commons.tools.enums.OrgLevelEnum; + import com.epmet.commons.tools.enums.OrgTypeEnum; + import com.epmet.commons.tools.exception.RenException; + import com.epmet.commons.tools.feign.ResultDataResolver; + import com.epmet.commons.tools.page.PageData; + import com.epmet.commons.tools.utils.ConvertUtils; + import com.epmet.commons.tools.utils.DateUtils; + import com.epmet.commons.tools.utils.ExcelUtils; + import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; + import com.epmet.dataaggre.constant.DataSourceConstant; + import com.epmet.dataaggre.constant.OrgConstant; + import com.epmet.dataaggre.dao.datastats.DataStatsDao; + import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; + import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; + import com.epmet.dataaggre.dto.datastats.form.*; + import com.epmet.dataaggre.dto.datastats.result.*; + import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; + import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; + import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; + import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; + import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; + import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; + import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; + import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; + import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; + import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; + import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; + import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; + import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; + import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; + import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; + import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; + import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.service.datastats.DataStatsService; + import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; + import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; + import com.epmet.dataaggre.service.govorg.GovOrgService; + import com.epmet.dataaggre.service.opercrm.CustomerRelation; + 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.lang3.StringUtils; + import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + + import javax.servlet.http.HttpServletResponse; + import java.math.BigDecimal; + import java.math.RoundingMode; + import java.text.NumberFormat; + import java.text.ParseException; + import java.text.SimpleDateFormat; + import java.util.*; + import java.util.concurrent.atomic.AtomicInteger; + import java.util.concurrent.atomic.AtomicReference; + import java.util.function.Function; + import java.util.stream.Collectors; /** * @Author sun @@ -2267,4 +2273,41 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve public List getGridProejctToProjectMain(GridLivelyFormDTO formDTO) { return dataStatsDao.getGridProejctToProjectMain(formDTO); } + + @Override + public Map getAgencyProjectTotal(OrgStatisticsFormDTO formDTO) { + List list = dataStatsDao.getAgencyProjectTotal(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, Function.identity())); + } + + /** + * 组织下网格的网格员数量统计 + * @Param agencyId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 16:11 + */ + @Override + public Map getMemberMap(String agencyId) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + List list = dataStatsDao.getMemberCount(agencyId, dateId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + @Override + public PageData getMemberList(OrgStatisticsFormDTO formDTO) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = dataStatsDao.getMemberList(formDTO.getOrgId(), dateId); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } } 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 dec1415a20..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 @@ -1,18 +1,24 @@ package com.epmet.dataaggre.service.epmetuser; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; 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; import java.util.List; +import java.util.Map; /** * @Author zxc @@ -199,4 +205,35 @@ public interface EpmetUserService { * @return */ List staffSelectList(List staffIds); + + List listByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, Integer pageNo, Integer pageSize, + List resiRule, List houseIds); + + Integer getTotalByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, + List resiRule, List houseIds); + /** + * 统计各组织下网格员数量 + * + * @Param customerId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 14:58 + */ + Map getMemberCount(String customerId); + + /** + * 获取组织下网格员列表 + * + * @Param agencyId + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @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 e0a3760bed..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 @@ -7,6 +7,7 @@ import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.IdAndNameDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.OrgTypeEnum; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; @@ -25,16 +26,11 @@ import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; 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.GridDateIdResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; -import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO; -import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; +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; @@ -45,6 +41,8 @@ import com.epmet.dataaggre.service.opercustomize.CustomerFootBarService; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; +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; @@ -604,6 +602,9 @@ public class EpmetUserServiceImpl implements EpmetUserService { queryWrapper.eq(CustomerStaffEntity::getUserId,staffId) .eq(CustomerStaffEntity::getDelFlag,NumConstant.ZERO_STR); CustomerStaffEntity staffEntity = customerStaffDao.selectOne(queryWrapper); + if (null == staffEntity) { + return null; + } CustomerStaffResultDTO result = ConvertUtils.sourceToTarget(staffEntity, CustomerStaffResultDTO.class); //查询工作人员所属组织信息 @@ -844,5 +845,71 @@ public class EpmetUserServiceImpl implements EpmetUserService { return customerStaffDao.staffSelectList(staffIds); } + @Override + public List listByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, Integer pageNo, Integer pageSize, + List resiRule, List houseIds) { + PageHelper.startPage(pageNo, pageSize); + return icResiUserDao.listByPolicyRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, houseId, idCard, name, resiRule, houseIds); + } + + @Override + public Integer getTotalByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, List resiRule, List houseIds) { + return icResiUserDao.getTotalByPolicyRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, houseId, idCard, name, resiRule, houseIds); + } + + /** + * 统计各组织下网格员数量 + * + * @param customerId + * @Param customerId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 14:58 + */ + @Override + public Map getMemberCount(String customerId) { + List list = staffRoleDao.getMemberCount(customerId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + /** + * 获取组织下网格员列表 + * + * @param formDTO + * @Param agencyId + * @Return {@link PageData < MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 17:32 + */ + @Override + public PageData getMemberList(OrgStatisticsFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = staffRoleDao.getMemberList(formDTO.getCustomerId(), formDTO.getAgencyList()); + 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 140b909a71..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 @@ -1,7 +1,9 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; @@ -10,6 +12,7 @@ import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dto.IcNeighborHoodDTO; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -212,4 +215,78 @@ public interface GovOrgService { * @return */ CustomerAgencyEntity getRootAgencyByCustomerId(String customerId); + + List listHouseIdsByRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, + String unitId, String houseId, List houseRule, + List statRule, Integer pageNo, Integer pageSize); + + List neighborhoodsByIds(List neighborhoodIds); + + /** + * 组织项目统计 + * + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:43 + */ + PageData orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO); + + /** + * 网格员项目相关统计 + * + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @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 0c2533a7c9..b84b11d14f 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 @@ -3,6 +3,7 @@ package com.epmet.dataaggre.service.govorg.impl; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.dingtalk.api.request.OapiRobotSendRequest; @@ -17,19 +18,24 @@ 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; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.govorg.*; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; @@ -38,6 +44,7 @@ import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dataaggre.excel.GridLivelyDetailExcel; import com.epmet.dataaggre.excel.GridLivelyExcel; import com.epmet.dataaggre.service.commonservice.AreaCodeService; @@ -45,9 +52,13 @@ import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.feign.OssFeignClient; +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.fileupload.FileItem; @@ -56,14 +67,17 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; import org.apache.poi.ss.usermodel.Workbook; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.commons.CommonsMultipartFile; +import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; +import java.text.Collator; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -107,6 +121,14 @@ public class GovOrgServiceImpl implements GovOrgService { private RedisUtils redisUtils; @Autowired private ExecutorService executorService; + @Autowired + private IcHouseDao houseDao; + @Autowired + private IcNeighborhoodDao neighborhoodDao; + @Resource + private GovProjectService govProjectService; + @Autowired + private IcCityManagementDao cityManagementDao; /** * @param staffId @@ -237,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; @@ -248,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); }); } @@ -566,7 +592,7 @@ public class GovOrgServiceImpl implements GovOrgService { String agencyId = staffInfo.getAgencyId(); String client = formDTO.getClient(); //组织缓存key - String treeCacheKey = RedisKeys.getOrgTreeCacheKey(agencyId).concat(StrConstant.COLON).concat(client); + String treeCacheKey = RedisKeys.getOrgTreeCacheKey(agencyId,tokenDto.getCustomerId()).concat(StrConstant.COLON).concat(client); Long expiryTime = redisUtils.getTTL(treeCacheKey); List orgTreeResultDTOS = (List) redisUtils.get(treeCacheKey); //如果接近过期或已经过期且缓存数据不为空 则异步查询 @@ -1079,4 +1105,366 @@ public class GovOrgServiceImpl implements GovOrgService { query.eq(CustomerAgencyEntity::getPid, "0"); // 跟组织的pid为"0" return customerAgencyDao.selectOne(query); } + + public String getOrgIdPath(String orgId, String orgType) { + if ("agency".equals(orgType)) { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); + if (agencyInfo != null) { + String pids = agencyInfo.getPids(); + String id = agencyInfo.getId(); + if (StringUtils.isBlank(pids)) { + return id; + } else { + return pids.concat(":").concat(id); + } + } + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(orgId); + return gridInfo.getPids().concat(":").concat(gridInfo.getId()); + } + return null; + } + + @Override + public List listHouseIdsByRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, + String unitId, String houseId, List houseRule, + List statRule, Integer pageNo, Integer pageSize) { + + if (CollectionUtils.isEmpty(houseRule) && CollectionUtils.isEmpty(statRule)) { + return new ArrayList<>(); + } + + if (StringUtils.isNotBlank(orgId) && StringUtils.isNotBlank(orgType)) { + orgIdPath = getOrgIdPath(orgId, orgType); + } + + PageHelper.startPage(pageNo, pageSize); + return houseDao.listHouseIds4PolicyResis(orgIdPath, customerId, neighborHoodId, buildingId, unitId, houseId, houseRule, statRule); + } + + @Override + public List neighborhoodsByIds(List neighborhoodIds) { + return neighborhoodDao.neighborhoodsByIds(neighborhoodIds); + } + + /** + * 组织项目统计 + * + * @param tokenDto + * @param formDTO + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData < MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:43 + */ + @Override + public PageData orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { + List resultList = new ArrayList<>(); + if (StringUtils.isBlank(formDTO.getAgencyId())) { + CustomerStaffInfoCacheResult staffInfo = getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); + if (null == agencyEntity) { + return new PageData<>(Collections.emptyList(), NumConstant.ZERO); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + long total = 0; + if (OrgConstant.COMMUNITY.equals(agencyEntity.getLevel()) && NumConstant.ONE_STR.equals(formDTO.getType())) { + //获取网格列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CustomerGridEntity::getCustomerId, tokenDto.getCustomerId()); + wrapper.eq(CustomerGridEntity::getPid, formDTO.getAgencyId()); + wrapper.last("ORDER BY CONVERT ( GRID_NAME USING gbk ) ASC"); + List gridList = customerGridDao.selectList(wrapper); + //拼装数据 + if (CollectionUtils.isNotEmpty(gridList)) { + //统计网格项目数 + Map projectMap = govProjectService.getGridProjectMap(formDTO); + //统计网格关闭项目数 + Map closedMap = govProjectService.getGridClosedProjectMap(formDTO); + //网格员统计 + Map memberMap = getMemberMap(tokenDto.getCustomerId(), formDTO.getAgencyId()); + resultList = gridList.stream().map(grid -> { + OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO(); + dto.setOrgId(grid.getId()); + dto.setOrgType(OrgConstant.GRID); + dto.setOrgName(grid.getGridName()); + dto.setProjectCount(projectMap.getOrDefault(grid.getId(), NumConstant.ZERO)); + dto.setClosedCount(closedMap.getOrDefault(grid.getId(), NumConstant.ZERO)); + if (memberMap.containsKey(grid.getId())) { + dto.setMemberCount(Math.toIntExact(memberMap.get(grid.getId()))); + if (NumConstant.ZERO != dto.getMemberCount()) { + dto.setProjectAve(dto.getProjectCount() / dto.getMemberCount()); + dto.setClosedAve(dto.getClosedCount() / dto.getMemberCount()); + } + } + return dto; + }).collect(Collectors.toList()); + } + //获取统计数据 + PageInfo pageInfo = new PageInfo<>(gridList); + total = pageInfo.getTotal(); + } else { + //获取组织列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CustomerAgencyEntity::getCustomerId, tokenDto.getCustomerId()); + if (NumConstant.ZERO_STR.equals(formDTO.getType())) { + wrapper.eq(CustomerAgencyEntity::getId, formDTO.getAgencyId()); + } else { + wrapper.eq(CustomerAgencyEntity::getPid, formDTO.getAgencyId()); + } + wrapper.last("ORDER BY CONVERT ( ORGANIZATION_NAME USING gbk ) ASC"); + List agencyList = customerAgencyDao.selectList(wrapper); + //拼装数据 + if (CollectionUtils.isNotEmpty(agencyList)) { + //项目相关统计 + //统计项目数 + Map projectMap = govProjectService.getAgencyProjectMap(formDTO); + //统计关闭项目数 + Map closedMap = govProjectService.getAgencyClosedProjectMap(formDTO); + //网格员统计 + Map memberMap = epmetUserService.getMemberCount(tokenDto.getCustomerId()); + + resultList = agencyList.stream().map(agency -> { + OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO(); + dto.setOrgId(agency.getId()); + dto.setOrgType(OrgConstant.AGENCY); + dto.setOrgName(agency.getOrganizationName()); + //获取当前组织的所有下级组织ID(包含本级) + List agencyIds = customerAgencyDao.getSubAgencyList(agency.getId()); + int projectCount = agencyIds.stream().filter(projectMap::containsKey).mapToInt(projectMap::get).sum(); + int closedCount = agencyIds.stream().filter(closedMap::containsKey).mapToInt(closedMap::get).sum(); + dto.setProjectCount(projectCount); + dto.setClosedCount(closedCount); + //将下级组织网格员数加起来 + int memberCount = agencyIds.stream().filter(memberMap::containsKey).mapToInt(memberMap::get).sum(); + dto.setMemberCount(memberCount); + if (memberCount != NumConstant.ZERO) { + dto.setProjectAve(dto.getProjectCount()/memberCount); + dto.setClosedAve(dto.getClosedCount()/memberCount); + } + return dto; + + }).collect(Collectors.toList()); + } + //获取统计数据 + PageInfo pageInfo = new PageInfo<>(agencyList); + total = pageInfo.getTotal(); + } + return new PageData<>(resultList, total); + } + + /** + * 网格员项目相关统计 + * + * @param tokenDto + * @param formDTO + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:44 + */ + @Override + public PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + if (StringUtils.isBlank(formDTO.getOrgId())) { + CustomerStaffInfoCacheResult staffInfo = getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(OrgConstant.AGENCY); + } + PageData result = getGridMemberList(formDTO); + //if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { + // //获取当前组织的所有下级组织ID(包含本级) + // //List agencyIds = customerAgencyDao.getSubAgencyList(formDTO.getOrgId()); + // //formDTO.setAgencyList(agencyIds); + // //获取组织下的网格员 + // result = epmetUserService.getMemberList(formDTO); + //} else { + // //获取网格下的网格员 + // result = dataStatsService.getMemberList(formDTO); + //} + if (CollectionUtils.isNotEmpty(result.getList())) { + //统计项目数 + Map projectMap = govProjectService.getMemberProjectMap(formDTO); + //统计关闭项目数 + Map closedMap = govProjectService.getMemberClosedProjectMap(formDTO); + result.getList().forEach(item -> { + item.setProjectCount(projectMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + item.setClosedCount(closedMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + + if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(item.getOrgId()); + if (null != agencyInfo) { + item.setOrgName(agencyInfo.getOrganizationName()); + } + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getOrgId()); + if (null != gridInfo) { + item.setOrgName(gridInfo.getGridName()); + } + } + }); + } + return result; + } + + private PageData getGridMemberList(OrgStatisticsFormDTO formDTO) { + List list = new ArrayList<>(); + List staffList = customerStaffAgencyDao.getStaffList(formDTO.getOrgId(), formDTO.getOrgType()); + if (OrgConstant.AGENCY.equals(formDTO.getOrgType())) { + for (StaffOrgRelationResultDTO staff : staffList) { + CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), staff.getStaffId()); + if (null != staffInfo) { + if(staffInfo.getRoleMap().containsKey("grid_member")) { + MemberProjectInfoResultDTO dto = new MemberProjectInfoResultDTO(); + dto.setStaffId(staff.getStaffId()); + dto.setStaffName(staffInfo.getRealName()); + dto.setOrgId(staff.getOrgId()); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staff.getOrgId()); + if (null != agencyInfo) { + dto.setOrgName(agencyInfo.getOrganizationName()); + } + list.add(dto); + } + } + } + } else { + for (StaffOrgRelationResultDTO staff : staffList) { + CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), staff.getStaffId()); + if (null != staffInfo) { + if(staffInfo.getRoleMap().containsKey("grid_member")) { + MemberProjectInfoResultDTO dto = new MemberProjectInfoResultDTO(); + dto.setStaffId(staff.getStaffId()); + dto.setStaffName(staffInfo.getRealName()); + dto.setOrgId(staff.getOrgId()); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(staff.getOrgId()); + if (null != gridInfo) { + dto.setOrgName(gridInfo.getGridName()); + } + list.add(dto); + } + } + } + } + int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + PageInfo pageInfo = new PageInfo<>(list); + list = list.stream().sorted((o1, o2) -> + Collator.getInstance(Locale.SIMPLIFIED_CHINESE) + .compare(o1.getStaffName(),o2.getStaffName())).collect(Collectors.toList()); + list = list.stream().skip(num).limit(formDTO.getPageSize()).collect(Collectors.toList()); + return new PageData<>(list, pageInfo.getTotal()); + + } + + private Map getMemberMap(String customerId, String agencyId) { + List list = customerStaffGridDao.getGridStaffByAgency(agencyId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + list = list.stream().filter(item -> { + CustomerStaffInfoCacheResult staffInfo = getStaffInfo(customerId, item.getStaffId()); + if (null != staffInfo) { + if (staffInfo.getRoleMap().containsKey("grid_member")) { + return true; + } + } + return false; + }).collect(Collectors.toList()); + + return list.stream().collect(Collectors.groupingBy(GridStaffResultDTO::getGridId, Collectors.counting())); + } + + + private CustomerStaffInfoCacheResult getStaffInfo(String customerId, String staffId) { + if (StringUtils.isBlank(customerId) || StringUtils.isBlank(staffId)){ + log.warn("getStaffInfo param is blank,customerId:{},staffId:{}",customerId,staffId); + return null; + } + String key = RedisKeys.getCustomerStaffInfoKey(customerId, staffId); + Map roleMap = redisUtils.hGetAll(key); + if (!org.springframework.util.CollectionUtils.isEmpty(roleMap)) { + return ConvertUtils.mapToEntity(roleMap, CustomerStaffInfoCacheResult.class); + } + + CustomerStaffInfoCache resultData = reloadStaffCache(staffId, key); + if (resultData == null) { + return null; + } + + return ConvertUtils.sourceToTarget(resultData, CustomerStaffInfoCacheResult.class); + } + + @Nullable + private CustomerStaffInfoCache reloadStaffCache(String staffId, String key) { + CustomerStaffResultDTO staffResult = epmetUserService.getStaffInfo(staffId); + if (staffResult == null) { + log.warn("getStaffInfo staff is null,staffId:{}", staffId); + return null; + } + CustomerStaffInfoCache resultData =ConvertUtils.sourceToTarget(staffResult, CustomerStaffInfoCache.class); + + Map map = BeanUtil.beanToMap(resultData, false, true); + redisUtils.hMSet(key, map); + 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 44ec60c4cd..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 @@ -2,13 +2,16 @@ 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; -import com.sun.org.apache.xpath.internal.operations.Bool; import java.util.LinkedList; import java.util.List; +import java.util.Map; /** * @Author zxc @@ -109,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); /** * 搜索事件 @@ -120,5 +123,61 @@ public interface GovProjectService { */ List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize); + /** + * 网格上报项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + Map getGridProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 网格关闭项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + Map getGridClosedProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 工作人员上报项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:28 + */ + Map getMemberProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 工作人员关闭项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 组织上报项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + Map getAgencyProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 组织关闭项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @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 de4c2c2bc5..caa0bf8e87 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,6 +26,10 @@ 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; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; @@ -650,22 +654,118 @@ 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); } return icEventDao.selectList(query); } + @Override + public Map getGridProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getGridProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + @Override + public Map getGridClosedProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getGridClosedProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + /** + * 工作人员上报项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:28 + */ + @Override + public Map getMemberProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getMemberProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + /** + * 工作人员关闭项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + @Override + public Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getMemberClosedProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + /** + * 组织上报项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + @Override + public Map getAgencyProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getAgencyProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + /** + * 组织关闭项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + @Override + public Map getAgencyClosedProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getAgencyClosedProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + /** + @Override + public List getEventInfos(CoverageHomeSearchFormDTO formDTO) { + return icEventDao.getEventInfos(formDTO); + } + + /** * 构造事件查询 * @param customerId * @param staffOrgIds @@ -674,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); @@ -687,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 new file mode 100644 index 0000000000..59810ea97b --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -0,0 +1,304 @@ +package com.epmet.dataaggre.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.support.ExcelTypeEnum; +import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.entity.govorg.IcHouseEntity; +import com.epmet.dataaggre.excel.ResisByPolicyExcel; +import com.epmet.dataaggre.service.ResiService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; +import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dto.IcNeighborHoodDTO; +import com.epmet.dto.form.LoginUserDetailsFormDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; +import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; +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.stereotype.Service; +import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalUnit; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +@Service +public class ResiServiceImpl implements ResiService, ResultDataResolver { + + @Autowired + private EpmetUserService epmetUserService; + + @Autowired + private GovOrgService govOrgService; + + @Autowired + private EpmetHeartOpenFeignClient heartOpenFeignClient; + + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + + public static final Pattern REG_DATE = Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})"); + + @Override + public PageData listByPolicyRules(String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, Integer pageNo, Integer pageSize, + List resiRule, + List houseRule, + List statRule) { + String userId = EpmetRequestHolder.getLoginUserId(); + String app = EpmetRequestHolder.getLoginUserApp(); + String client = EpmetRequestHolder.getLoginUserClient(); + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + + // 查询当前组织及下级id路径 + LoginUserDetailsResultDTO userDetail = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(new LoginUserDetailsFormDTO(app, client, userId)), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null, null); + + String orgIdPath = userDetail.getOrgIdPath(); + + // 结果集 + List resultResis = new ArrayList<>(); + + // 1.用户没配置house和stat规则,直接按照居民规则查询 + if (CollectionUtils.isEmpty(houseRule) && CollectionUtils.isEmpty(statRule)) { + List resis = epmetUserService.listByPolicyRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, pageNo, pageSize, resiRule, null); + fillResisExtraInfoForPolicy(resis); + return new PageData<>(resis, new PageInfo(resis).getTotal()); + } + + // 2.用户至少配置了house和stat规则的一个,那么就先查询房屋出来,然后根据房屋去找居民 + int housePageNo = 1; + int total = 0; + + // 只能手动分页了 + int start = (pageNo - 1) * pageSize; + int end = pageNo * pageSize; // 不包含 + + do { + // 拿到房屋id列表,去查询居民列表 + List houseIds = govOrgService.listHouseIdsByRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, houseRule, statRule, housePageNo, 50); + + if (houseIds.size() == 0) { + // 用户使用了房屋和统计相关的条件,但是没查到房屋,我看就没有走下去了的必要了吧.. + break; + } + + // 查询居民数量 + Integer count = epmetUserService.getTotalByPolicyRules( + customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, resiRule, houseIds); + + total += count; + + // 查询居民,满了20个,不再查询数据,只查询数量 + if (resultResis.size() < end) { + List resis = epmetUserService.listByPolicyRules( + customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, 1, end, resiRule, houseIds); + + resultResis.addAll(resis); + } + + housePageNo ++; + } while (true); + + // 查出来所有的数据都没够到这一页的起始条数,返回空 + if (resultResis.size() < start) { + return new PageData<>(new ArrayList<>(), total); + } + + resultResis = resultResis.subList(start, Math.min(end, resultResis.size())); + + // 补充额外信息 + fillResisExtraInfoForPolicy(resultResis); + return new PageData<>(resultResis, total); + } + + /** + * 为特定的规则进行转换 + * @param resiRule + */ + public void specificRuleConvert(List resiRule) { + // 使用年龄计算出生日期 + if (resiRule != null) { + resiRule.stream().forEach((r) -> { + // 对生日列计算 + if ("BIRTHDAY".equals(r.getColKey())) { + 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"))); + } + } + }); + } + } + + /** + * 翻转逻辑操作符 + * @param oldRel + * @return + */ + private String revertQueryType(String oldRel) { + if (">".equals(oldRel)) { + return "<"; + } + + if (">=".equals(oldRel)) { + return "<="; + } + + if ("<".equals(oldRel)) { + return ">"; + } + + if ("<=".equals(oldRel)) { + return ">="; + } + + return oldRel; + } + + /** + * 补充额外信息 + * @param resultResis + */ + private void fillResisExtraInfoForPolicy(List resultResis) { + if (CollectionUtils.isEmpty(resultResis)) { + return; + } + + List gridIds = new ArrayList<>(); + List neighborhoodIds = new ArrayList<>(); + resultResis.stream().forEach((r) -> { + gridIds.add(r.getGridId()); + neighborhoodIds.add(r.getNeighborhoodId()); + }); + + // 统一收集网格和小区信息 + Map gridIdAndName = govOrgService.gridListByIds(gridIds) + .stream() + .collect(Collectors.toMap(GridsInfoListResultDTO::getGridId, GridsInfoListResultDTO::getName)); + + Map neighborhoodIdAndName = govOrgService.neighborhoodsByIds(neighborhoodIds) + .stream().collect(Collectors.toMap(IcNeighborHoodDTO::getId, IcNeighborHoodDTO::getNeighborHoodName)); + + resultResis.stream().forEach((r) -> { + // 小区名称 + 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) { + Integer age = null; + try { + Matcher matcher = REG_DATE.matcher(r.getBirthday()); + if (matcher.matches()) { + String year = matcher.group(1); + String month = matcher.group(2); + String day = matcher.group(3); + LocalDate birthdayLocalDate = LocalDate.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day)); + age = Period.between(birthdayLocalDate, LocalDate.now()).getYears(); + r.setAge(age); + } + } catch (DateTimeException e) { + logger.error(r.getIcResiUserId() + "居民生日计算错误"); + } + } + }); + } + + @Override + public void exportResisByPolicy(String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, + String ruleId, List resiRule, + List houseRule, + List statRule, + HttpServletResponse response) throws IOException { + + if (StringUtils.isNotBlank(ruleId)) { + // 从heart取,覆盖形参 + com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO.RuleList ruleList = getResultDataOrThrowsException( + heartOpenFeignClient.listPolicyRules4QueryAndExport(ruleId), + ServiceConstant.EPMET_HEART_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), + null, null); + + resiRule = ConvertUtils.sourceToTarget(ruleList.getResiRuleList(), ResisByPolicyRulesFormDTO.ResiRule.class); + houseRule = ConvertUtils.sourceToTarget(ruleList.getHouseRuleList(), ResisByPolicyRulesFormDTO.HouseRule.class); + statRule = ConvertUtils.sourceToTarget(ruleList.getStatRuleList(), ResisByPolicyRulesFormDTO.StatRule.class); + } + + // 模板导出 + ExcelWriter writer = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("政策人员预览信息导出.xlsx", response)) + //.withTemplate(inputStream) + .build(); + + WriteSheet writeSheet = EasyExcel.writerSheet("政策人员列表") + .head(ResiByPolicyInfoResultDTO.class) + .build(); + + Integer pageSize = 500; + Integer pageNo = 1; + + // 对特殊规则进行转换。 + specificRuleConvert(resiRule); + + try { + do { + PageData resis = this.listByPolicyRules(orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, pageNo, pageSize, resiRule, houseRule, statRule); + List list = resis.getList(); + List excelDatas = ConvertUtils.sourceToTarget(list, ResisByPolicyExcel.class); + if (CollectionUtils.isEmpty(excelDatas)) { + break; + } + + writer.write(resis.getList(), writeSheet); + pageNo++; + } while (true); + } finally { + writer.finish(); + } + + } +} 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/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 330f564b25..ffee14d53f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -1206,4 +1206,55 @@ GROUP BY grid_id, date_id + + + + 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 c5f04ae7bd..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 @@ + + + ic_resi_user.status='0' + and ic_resi_user.CUSTOMER_ID=#{customerId} + and ic_resi_user.PIDS LIKE CONCAT(#{orgIdPath},'%') + and ic_resi_user.del_flag='0' + + + + + and ic_resi_user.AGENCY_ID=#{orgId} + + + and ic_resi_user.GRID_ID=#{orgId} + + + + + + and ic_resi_user.VILLAGE_ID=#{neighborHoodId} + + + and ic_resi_user.BUILD_ID=#{buildingId} + + + and ic_resi_user.UNIT_ID=#{unitId} + + + and ic_resi_user.HOME_ID=#{houseId} + + + and ic_resi_user.ID_CARD like CONCAT('%',#{idCard}, '%') + + + and ic_resi_user.NAME like CONCAT('%',#{name}, '%') + + + + and HOME_ID in + + #{houseId} + + + + + and + + + + + (${rule.colTable}.${rule.colKey} is null or ${rule.colTable}.${rule.colKey} = '') + + + (${rule.colTable}.${rule.colKey} is not null and ${rule.colTable}.${rule.colKey} != '') + + + ${rule.colTable}.${rule.colKey} ${rule.queryType} + + + CONCAT('%',#{rule.colVal} ,'%') + + + #{rule.colVal} + + + + + ${rule.nextLogicalRel} + + + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index cbe39ede21..894a034659 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -93,4 +93,46 @@ AND b.STAFF_ID != #{userId} + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index e5594fdb5e..a77f1f22e0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -298,5 +298,15 @@ AND pid = #{agencyId} ORDER BY created_time ASC + 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 @@ + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml index d7bfb5ff40..0120ff67a5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml @@ -55,4 +55,17 @@ cg.ID ORDER BY cg.CREATED_TIME ASC + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml index 8cdd63a520..c0696d0d94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml @@ -3,4 +3,214 @@ + + + + + + + + + + + + + + \ 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..362e2ca60f 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} + @@ -30,9 +42,16 @@ e.source_type 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_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/govorg/IcHouseDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcHouseDao.xml index 98bc2f33de..c679f9a5ce 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcHouseDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcHouseDao.xml @@ -3,4 +3,39 @@ + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcNeighborhoodDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcNeighborhoodDao.xml new file mode 100644 index 0000000000..93a43bbb01 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcNeighborhoodDao.xml @@ -0,0 +1,15 @@ + + + + + + + + \ 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 8bd1c33ee7..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 @@ -419,5 +419,124 @@ GROUP BY LEFT(c.CATEGORY_CODE,#{categoryOneLength}) ORDER BY total DESC + + + + + + 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-report/data-report-server/deploy/docker-compose-dev.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml index 9f0dfb863a..d5527e0e0c 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-report.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml index 42714f4238..3d4bcd6279 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx1524m -jar ./data-report.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml index 2b55a26867..f51e362211 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-report.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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/deploy/docker-compose-dev.yml b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml index 09d626e7c5..7e20e6dec6 100644 --- a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx512m -jar ./data-stats.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml index 78a46c8117..a590e95d75 100644 --- a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml +++ b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx3000m -jar ./data-stats.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml index 5beb53c90f..f9143a1f8f 100644 --- a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml +++ b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx512m -jar ./data-stats.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index 7b7e49f96e..2a1e2771f5 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -451,7 +451,7 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd - local + false 192.168.1.140:9876;192.168.1.141:9876 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java index 15bb6ee2a6..37be951be3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java @@ -16,6 +16,8 @@ import org.springframework.scheduling.annotation.EnableAsync; public class DataStatsApplication { public static void main(String[] args) { + // 让rocketmq使用slf4j管理日志 + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(DataStatsApplication.class ,args); } } 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/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java index 8fbf82b671..8268d3f71b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java @@ -74,6 +74,7 @@ public class FactAgencyUserHouseDailyServiceImpl extends BaseServiceImpl listExport(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); return baseDao.listPage(params); } @@ -118,4 +119,4 @@ public class FactAgencyUserHouseDailyServiceImpl extends BaseServiceImpl listExport(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); return baseDao.listPage(params); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java index 8772511aa0..032886bad0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java @@ -93,6 +93,7 @@ public class FactNeighborhoodUserHouseDailyServiceImpl extends BaseServiceImpl listExport(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); return baseDao.listPage(params); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java index db20e4ccc6..940359a1af 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java @@ -103,6 +103,15 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { @Override public List list(Map params) { List list = new ArrayList<>(); + if (params.containsKey("startTime") && params.containsKey("endTime")) { + if (StringUtils.isNotBlank(params.get("startTime").toString()) && StringUtils.isNotBlank(params.get("endTime").toString())) { + params.put("dateId", StringUtils.EMPTY); + } else { + params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE)); + } + } else { + params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE)); + } if (params.containsKey("level")) { if("neighborhood".equals(params.get("level").toString()) || OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())){ list = factNeighborhoodUserHouseDailyService.listExport(params); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml index 530c216a2d..ed65817966 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml @@ -226,3 +226,4 @@ shutdown: rocketmq: enable: @rocketmq.enable@ name-server: @rocketmq.nameserver@ + 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-activiti/epmet-activiti-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-dev.yml index 1cd58359a9..5daf0434be 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-activiti.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-prod.yml index 12ab635118..01ed6a408b 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-activiti.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-test.yml b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-test.yml index 74e66105f0..c5d96d9b91 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-activiti.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java index 920d48f56b..6726f0547a 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java @@ -37,7 +37,7 @@ public class AreaCodeDTO implements Serializable { /** * 主键 */ - private Integer id; + private String id; /** * 省份code diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java new file mode 100644 index 0000000000..f4ca97d775 --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java @@ -0,0 +1,13 @@ +package com.epmet.dto.form; + +import lombok.Data; + +@Data +public class AreaCodeDetailFormDTO { + + private String areaCode; + /** + * 省级:province; 市级: city; 区县级: district ;乡(镇、街道)级:street ;社区级:community + */ + private String level; +} diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java new file mode 100644 index 0000000000..80bf551608 --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java @@ -0,0 +1,76 @@ +/** + * 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 lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 客户关系表(01.14 add) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-02-03 + */ +@Data +public class CustomerTreeDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + + /** + * 当前客户级别(社区级:community, +乡(镇、街道)级:street, +区县级: district, +市级: city +省级:province) + */ + private String level; + + /** + * 当前客户的地区编码,实际就是根组织的area_code + */ + private String areaCode; + + /** + * 当前客户的地区名称 + */ + private String areaName; + + /** + * 当前客户的父节点地区名称 + */ + private String parentCode; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 下一级 + */ + private List children; +} \ No newline at end of file diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java index 4214e77cf8..43766990ba 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java @@ -98,6 +98,28 @@ public interface EpmetCommonServiceOpenFeignClient { @PostMapping("commonservice/workday/workminutes") Result> workMinutes(@RequestBody WorkMinuteFormDTO param); + /** + * 行政地区编码查询 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/6 15:07 + */ + @PostMapping("commonservice/areacode/areacodedetail") + Result areaCodeDetail(@RequestBody AreaCodeDetailFormDTO formDTO); + + /** + * 行政地区编码树查询 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/6 15:07 + */ + @PostMapping("commonservice/areacode/areacodetree") + Result> areaCodeTree(@RequestBody CustomerTreeDTO formDTO); + /** * @Description 行政地区编码查询 * @Param formDTO diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java index 21f7fe531a..05b73bba65 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java @@ -79,6 +79,16 @@ public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonSer return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "workMinutes", param); } + @Override + public Result areaCodeDetail(AreaCodeDetailFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeDetail", formDTO); + } + + @Override + public Result> areaCodeTree(CustomerTreeDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeTree", formDTO); + } + @Override public Result> areaCodeDictTree(AreaCodeDictFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeDictTree", formDTO); diff --git a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-dev.yml index 7a83d38429..b341b3cd9f 100644 --- a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./common-service.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-prod.yml index ab8df1446d..6e869da5e4 100644 --- a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./common-service.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-test.yml b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-test.yml index 058b976195..24fb821162 100644 --- a/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-common-service/common-service-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./common-service.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java index 7bf4e537f8..ca212e908f 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java @@ -25,12 +25,10 @@ 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.AreaCodeDTO; -import com.epmet.dto.form.AddAreaCodeDictFormDTO; -import com.epmet.dto.form.AddAreaCodeFormDTO; -import com.epmet.dto.form.AreaCodeDictFormDTO; -import com.epmet.dto.form.AreaCodeFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.AreaCodeDictResultDTO; import com.epmet.dto.result.AreaCodeResultDTO; +import com.epmet.dto.result.CustomerTreeDTO; import com.epmet.service.AreaCodeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -133,4 +131,26 @@ public class AreaCodeController { public Result> nextArea(@RequestBody AreaCodeFormDTO formDTO){ return new Result>().ok(areaCodeService.nextArea(formDTO)); } + + /** + * @Description 行政地区编码查询 + * @Param formDTO + * @author zxc + * @date 2021/1/7 下午1:41 + */ + @PostMapping("areacodedetail") + public Result areaCodeDetail(@RequestBody AreaCodeDetailFormDTO formDTO){ + return new Result().ok(areaCodeService.getAreaCodeDetail(formDTO)); + } + + /** + * @Description 行政地区编码查询 + * @Param formDTO + * @author zxc + * @date 2021/1/7 下午1:41 + */ + @PostMapping("areacodetree") + public Result> areaCodeTree(@RequestBody CustomerTreeDTO formDTO){ + return new Result>().ok(areaCodeService.getAreaCodeTree(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java index bfe5c8139e..ab101aba89 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java @@ -37,19 +37,25 @@ public interface AreaCodeDao extends BaseDao { List selectAllArea(); - AreaCodeDTO selectByCountyCode(String countyCode); + AreaCodeDTO selectByCountyCode(@Param("countyCode") String countyCode); - AreaCodeDTO selectByCityCode(String cityCode); + AreaCodeDTO selectByCityCode(@Param("cityCode") String cityCode); + + AreaCodeDTO selectByProvinceCode(@Param("provinceCode") String provinceCode); + + AreaCodeResultDTO selectByStreetCode(@Param("streetCode") String streetCode); + + AreaCodeResultDTO selectByCommunityCode(@Param("communityCode") String communityCode); AreaCodeDTO selectMaxCounty(String cityCode); List selectProvince(); - List selectCity(@Param("pCode")String pCode); + List selectCity(@Param("pCode") String pCode); - List selectDistrict(@Param("pCode")String pCode); + List selectDistrict(@Param("pCode") String pCode); - List selectStreet(@Param("pCode")String pCode); + List selectStreet(@Param("pCode") String pCode); - List selectCommunity(@Param("pCode")String pCode); + List selectCommunity(@Param("pCode") String pCode); } \ No newline at end of file diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java index e452332fea..6467bb82f0 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java @@ -20,12 +20,10 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.AreaCodeDTO; -import com.epmet.dto.form.AddAreaCodeDictFormDTO; -import com.epmet.dto.form.AddAreaCodeFormDTO; -import com.epmet.dto.form.AreaCodeDictFormDTO; -import com.epmet.dto.form.AreaCodeFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.AreaCodeDictResultDTO; import com.epmet.dto.result.AreaCodeResultDTO; +import com.epmet.dto.result.CustomerTreeDTO; import com.epmet.entity.AreaCodeEntity; import java.util.List; @@ -127,4 +125,8 @@ public interface AreaCodeService extends BaseService { String addAreaCode(AddAreaCodeFormDTO formDTO); List nextArea(AreaCodeFormDTO formDTO); + + AreaCodeResultDTO getAreaCodeDetail(AreaCodeDetailFormDTO formDTO); + + List getAreaCodeTree(CustomerTreeDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java index 4d873b333e..b0f519a3ac 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java @@ -36,12 +36,10 @@ import com.epmet.dao.AreaCodeChildDao; import com.epmet.dao.AreaCodeDao; import com.epmet.dto.AreaCodeChildDTO; import com.epmet.dto.AreaCodeDTO; -import com.epmet.dto.form.AddAreaCodeDictFormDTO; -import com.epmet.dto.form.AddAreaCodeFormDTO; -import com.epmet.dto.form.AreaCodeDictFormDTO; -import com.epmet.dto.form.AreaCodeFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.AreaCodeDictResultDTO; import com.epmet.dto.result.AreaCodeResultDTO; +import com.epmet.dto.result.CustomerTreeDTO; import com.epmet.entity.AreaCodeEntity; import com.epmet.redis.AreaCodeRedis; import com.epmet.service.AreaCodeChildService; @@ -72,6 +70,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -88,8 +87,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -125,7 +124,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaCodeDictTree(AreaCodeDictFormDTO formDTO) { List tree = new ArrayList<>(); String s = areaCodeRedis.get(AreaCodeConstant.SCREEN_TREE); - if (StringUtils.isNotBlank(s)){ - tree = JSON.parseArray(s,AreaCodeDictResultDTO.class); - }else { + if (StringUtils.isNotBlank(s)) { + tree = JSON.parseArray(s, AreaCodeDictResultDTO.class); + } else { List areaCodeDictResultDTOS = disposeTree(formDTO); - areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE,areaCodeDictResultDTOS); + areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE, areaCodeDictResultDTOS); tree = areaCodeDictResultDTOS; } - if (StringUtils.isBlank(formDTO.getRootAreaCode())){ + if (StringUtils.isBlank(formDTO.getRootAreaCode())) { return tree; } List treeByRootAreaCode = getTreeByRootAreaCode(tree, formDTO.getRootAreaCode()); @@ -149,12 +148,12 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeTree(AreaCodeDictFormDTO formDTO){ + public List disposeTree(AreaCodeDictFormDTO formDTO) { // 查询所有省市区 List areaCodeDTOS = baseDao.selectAllArea(); // 查询所有街道、社区 @@ -173,8 +172,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl { - if (dto.getCode().equals(pCode)){ + groupByPCode.forEach((pCode, v) -> { + if (dto.getCode().equals(pCode)) { List fiveResult = new ArrayList<>(); v.forEach(five -> { AreaCodeDictResultDTO fiveDto = new AreaCodeDictResultDTO(); @@ -189,7 +188,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl fourSort = new ArrayList<>(); - if (!CollectionUtils.isEmpty(fourResult)){ + if (!CollectionUtils.isEmpty(fourResult)) { fourSort = fourResult.stream().sorted(Comparator.comparing(AreaCodeDictResultDTO::getCode)).collect(Collectors.toList()); } @@ -209,7 +208,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl fourOnceResult = new ArrayList<>(); finalFourSort.forEach(four -> { - if (dto.getCode().equals(four.getParentCode())){ + if (dto.getCode().equals(four.getParentCode())) { fourOnceResult.add(four); } }); @@ -220,13 +219,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl { + groupByProvince.forEach((p, v) -> { AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO(); dto.setCode(p); dto.setName(v.get(NumConstant.ZERO).getProvinceName()); List cityOnceResult = new ArrayList<>(); cityResult.forEach(c -> { - if (dto.getCode().equals(c.getParentCode())){ + if (dto.getCode().equals(c.getParentCode())) { cityOnceResult.add(c); } }); @@ -239,54 +238,51 @@ public class AreaCodeServiceImpl extends BaseServiceImpl + *

* 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样 - * ==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样== - * 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样 - * - * - * + * ==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样== + * 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样 * @Param tree * @Param rootAreaCode * @author zxc * @date 2021/1/8 上午10:02 */ - public List getTreeByRootAreaCode(List tree , String rootAreaCode){ + public List getTreeByRootAreaCode(List tree, String rootAreaCode) { List result = new ArrayList<>(); - if (!CollectionUtils.isEmpty(tree)){ + if (!CollectionUtils.isEmpty(tree)) { // 省级获取 for (AreaCodeDictResultDTO dto : tree) { - if (rootAreaCode.equals(dto.getCode())){ + if (rootAreaCode.equals(dto.getCode())) { result.add(dto); return result; } // 市级获取 - if (!CollectionUtils.isEmpty(dto.getChildren())){ + if (!CollectionUtils.isEmpty(dto.getChildren())) { for (AreaCodeDictResultDTO child : dto.getChildren()) { - if (rootAreaCode.equals(child.getCode())){ + if (rootAreaCode.equals(child.getCode())) { result.add(child); return result; } // 区级获取 - if (!CollectionUtils.isEmpty(child.getChildren())){ + if (!CollectionUtils.isEmpty(child.getChildren())) { for (AreaCodeDictResultDTO threeChild : child.getChildren()) { - if (rootAreaCode.equals(threeChild.getCode())){ + if (rootAreaCode.equals(threeChild.getCode())) { result.add(threeChild); return result; } // 街道获取 - if (!CollectionUtils.isEmpty(threeChild.getChildren())){ + if (!CollectionUtils.isEmpty(threeChild.getChildren())) { for (AreaCodeDictResultDTO fourChild : threeChild.getChildren()) { - if (rootAreaCode.equals(fourChild.getCode())){ + if (rootAreaCode.equals(fourChild.getCode())) { result.add(fourChild); return result; } // 社区获取 - if (!CollectionUtils.isEmpty(fourChild.getChildren())){ + if (!CollectionUtils.isEmpty(fourChild.getChildren())) { for (AreaCodeDictResultDTO fiveChild : fourChild.getChildren()) { - if (rootAreaCode.equals(fiveChild.getCode())){ + if (rootAreaCode.equals(fiveChild.getCode())) { result.add(fiveChild); return result; } @@ -304,40 +300,40 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaCodeDictTreePlus(AreaCodeDictFormDTO formDTO){ + public List areaCodeDictTreePlus(AreaCodeDictFormDTO formDTO) { List tree = new ArrayList<>(); String s = areaCodeRedis.get(AreaCodeConstant.THREE_SCREEN_TREE); - if (StringUtils.isNotBlank(s)){ - tree = JSON.parseArray(s,AreaCodeDictResultDTO.class); - }else { + if (StringUtils.isNotBlank(s)) { + tree = JSON.parseArray(s, AreaCodeDictResultDTO.class); + } else { List threeTree = beforeThreeTree(); - areaCodeRedis.set(AreaCodeConstant.THREE_SCREEN_TREE,threeTree); + areaCodeRedis.set(AreaCodeConstant.THREE_SCREEN_TREE, threeTree); tree = threeTree; } - if (StringUtils.isBlank(formDTO.getRootAreaCode())){ + if (StringUtils.isBlank(formDTO.getRootAreaCode())) { return tree; } - if (StringUtils.isBlank(formDTO.getRootAreaLevel())){ + if (StringUtils.isBlank(formDTO.getRootAreaLevel())) { throw new RenException(AreaCodeConstant.ROOT_AGENCY_LEVEL_IS_LEVEL); } // 传参为街道-社区级 - if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.STREET) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.COMMUNITY)){ + if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.STREET) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.COMMUNITY)) { tree = disposeAfterTwoLevel(formDTO); - }else if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.CITY) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)){ - tree = disposeBeforeThreeLevelFinal(formDTO,tree); - }else { - throw new RenException(String.format(AreaCodeConstant.LEVEL_ERROR,formDTO.getRootAreaLevel())); + } else if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.CITY) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)) { + tree = disposeBeforeThreeLevelFinal(formDTO, tree); + } else { + throw new RenException(String.format(AreaCodeConstant.LEVEL_ERROR, formDTO.getRootAreaLevel())); } return tree; } /** - * @Description 省市区三级联动查询 + * @Description 省市区三级联动查询 * @Param * @author zxc * @date 2021/1/11 上午9:35 */ - public List beforeThreeTree(){ + public List beforeThreeTree() { // 查询所有省市区 List areaCodeDTOS = baseDao.selectAllArea(); Map> groupByCity = areaCodeDTOS.stream().collect(Collectors.groupingBy(AreaCodeDTO::getCityCode)); @@ -362,13 +358,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl { + groupByProvince.forEach((p, v) -> { AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO(); dto.setCode(p); dto.setName(v.get(NumConstant.ZERO).getProvinceName()); List cityOnceResult = new ArrayList<>(); cityResult.forEach(c -> { - if (dto.getCode().equals(c.getParentCode())){ + if (dto.getCode().equals(c.getParentCode())) { cityOnceResult.add(c); } }); @@ -383,12 +379,12 @@ public class AreaCodeServiceImpl extends BaseServiceImpl afterTwoTree(AreaCodeDictFormDTO form){ + public List afterTwoTree(AreaCodeDictFormDTO form) { // 查询所有街道、社区 List areaCodeChildDTOS = childDao.selectAllChild(form.getRootAreaCode()); List fourResult = new ArrayList<>(); @@ -399,7 +395,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl levelFive = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FIVE)) ? groupByLevel.get(NumConstant.FIVE) : new ArrayList<>(); Map> groupByPCode = CollectionUtils.isEmpty(levelFive) ? new HashMap<>() : levelFive.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); //街道 - List levelFour = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FOUR)) ?groupByLevel.get(NumConstant.FOUR):new ArrayList<>(); + List levelFour = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FOUR)) ? groupByLevel.get(NumConstant.FOUR) : new ArrayList<>(); // 6级 List levelSix = groupByLevel.get(NumConstant.SIX); Map> groupBySixPCode = CollectionUtils.isEmpty(levelSix) ? new HashMap<>() : levelSix.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); @@ -409,8 +405,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl { - if (dto.getCode().equals(k)){ + groupBySixPCode.forEach((k, v) -> { + if (dto.getCode().equals(k)) { List six = new ArrayList<>(); v.forEach(s -> { AreaCodeDictResultDTO sixDto = new AreaCodeDictResultDTO(); @@ -431,8 +427,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl { - if (dto.getCode().equals(pCode)){ + groupByFivePCode.forEach((pCode, v) -> { + if (dto.getCode().equals(pCode)) { dto.setChildren(v); } }); @@ -443,28 +439,28 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeAfterTwoLevel(AreaCodeDictFormDTO form){ + public List disposeAfterTwoLevel(AreaCodeDictFormDTO form) { List result = new ArrayList<>(); List areaCodeDictResultDTOS = afterTwoTree(form); - if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)){ + if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)) { return new ArrayList<>(); } - if (form.getRootAreaLevel().equals(AreaCodeConstant.STREET)){ + if (form.getRootAreaLevel().equals(AreaCodeConstant.STREET)) { for (AreaCodeDictResultDTO dto : areaCodeDictResultDTOS) { - if (dto.getCode().equals(form.getRootAreaCode())){ + if (dto.getCode().equals(form.getRootAreaCode())) { result.add(dto); } } - }else { + } else { for (AreaCodeDictResultDTO dto : areaCodeDictResultDTOS) { - if (!CollectionUtils.isEmpty(dto.getChildren())){ + if (!CollectionUtils.isEmpty(dto.getChildren())) { for (AreaCodeDictResultDTO child : dto.getChildren()) { - if (child.getCode().equals(form.getRootAreaCode())){ + if (child.getCode().equals(form.getRootAreaCode())) { result.add(child); } } @@ -475,42 +471,42 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeBeforeThreeLevel(AreaCodeDictFormDTO form,List tree){ + public List disposeBeforeThreeLevel(AreaCodeDictFormDTO form, List tree) { List result = new ArrayList<>(); - if (CollectionUtils.isEmpty(tree)){ + if (CollectionUtils.isEmpty(tree)) { return new ArrayList<>(); } - if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)){ + if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)) { for (AreaCodeDictResultDTO dto : tree) { - if (dto.getCode().equals(form.getRootAreaCode())){ + if (dto.getCode().equals(form.getRootAreaCode())) { result.add(dto); return result; } } - }else if (form.getRootAreaLevel().equals(AreaCodeConstant.CITY)){ + } else if (form.getRootAreaLevel().equals(AreaCodeConstant.CITY)) { for (AreaCodeDictResultDTO dto : tree) { - if (!CollectionUtils.isEmpty(dto.getChildren())){ + if (!CollectionUtils.isEmpty(dto.getChildren())) { for (AreaCodeDictResultDTO city : dto.getChildren()) { - if (city.getCode().equals(form.getRootAreaCode())){ + if (city.getCode().equals(form.getRootAreaCode())) { result.add(city); return result; } } } } - }else if (form.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)){ + } else if (form.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)) { for (AreaCodeDictResultDTO dto : tree) { - if (!CollectionUtils.isEmpty(dto.getChildren())){ + if (!CollectionUtils.isEmpty(dto.getChildren())) { for (AreaCodeDictResultDTO city : dto.getChildren()) { - if (!CollectionUtils.isEmpty(city.getChildren())){ + if (!CollectionUtils.isEmpty(city.getChildren())) { for (AreaCodeDictResultDTO child : city.getChildren()) { - if (child.getCode().equals(form.getRootAreaCode())){ + if (child.getCode().equals(form.getRootAreaCode())) { result.add(child); return result; } @@ -524,29 +520,29 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form,List tree){ + public List disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form, List tree) { List threeDto = disposeBeforeThreeLevel(form, tree); List twoDto = afterTwoTree(form); - if (CollectionUtils.isEmpty(threeDto)){ + if (CollectionUtils.isEmpty(threeDto)) { return new ArrayList<>(); } - if (!CollectionUtils.isEmpty(twoDto)){ - if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)){ + if (!CollectionUtils.isEmpty(twoDto)) { + if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)) { for (AreaCodeDictResultDTO dto : tree) { - if (dto.getCode().equals(form.getRootAreaCode())){ - if (!CollectionUtils.isEmpty(dto.getChildren())){ + if (dto.getCode().equals(form.getRootAreaCode())) { + if (!CollectionUtils.isEmpty(dto.getChildren())) { for (AreaCodeDictResultDTO city : dto.getChildren()) { - if (!CollectionUtils.isEmpty(city.getChildren())){ + if (!CollectionUtils.isEmpty(city.getChildren())) { for (AreaCodeDictResultDTO child : city.getChildren()) { List areaList = new ArrayList<>(); for (AreaCodeDictResultDTO area : twoDto) { - if (child.getCode().equals(area.getParentCode())){ + if (child.getCode().equals(area.getParentCode())) { areaList.add(area); } } @@ -557,13 +553,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaList = new ArrayList<>(); for (AreaCodeDictResultDTO area : twoDto) { - if (child.getCode().equals(area.getParentCode())){ + if (child.getCode().equals(area.getParentCode())) { areaList.add(area); } } @@ -571,11 +567,11 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaList = new ArrayList<>(); for (AreaCodeDictResultDTO area : twoDto) { - if (dto.getCode().equals(area.getParentCode())){ + if (dto.getCode().equals(area.getParentCode())) { areaList.add(area); } } @@ -677,35 +673,35 @@ public class AreaCodeServiceImpl extends BaseServiceImpl nextArea(AreaCodeFormDTO formDTO) { - if(StringUtils.isBlank(formDTO.getParentAreaCode())&&StringUtils.isBlank(formDTO.getParentLevel())){ - String pKey=RedisKeys.getNextAreaCodeKey(NumConstant.ZERO_STR); - List list=areaCodeRedis.getNextAreaCodeKey(pKey); - if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){ + if (StringUtils.isBlank(formDTO.getParentAreaCode()) && StringUtils.isBlank(formDTO.getParentLevel())) { + String pKey = RedisKeys.getNextAreaCodeKey(NumConstant.ZERO_STR); + List list = areaCodeRedis.getNextAreaCodeKey(pKey); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) { return list; } - List pList=baseDao.selectProvince(); - areaCodeRedis.setNextAreaCodeKey(pKey,pList); + List pList = baseDao.selectProvince(); + areaCodeRedis.setNextAreaCodeKey(pKey, pList); return pList; } - String key=RedisKeys.getNextAreaCodeKey(formDTO.getParentAreaCode()); - List list=areaCodeRedis.getNextAreaCodeKey(key); - if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){ + String key = RedisKeys.getNextAreaCodeKey(formDTO.getParentAreaCode()); + List list = areaCodeRedis.getNextAreaCodeKey(key); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) { return list; } switch (formDTO.getParentLevel()) { @@ -723,17 +719,116 @@ public class AreaCodeServiceImpl extends BaseServiceImpl getAreaCodeTree(CustomerTreeDTO formDTO) { + List tree = new ArrayList<>(); + areaCodeHandle(formDTO.getLevel(), formDTO.getAreaCode(), tree); + return ConvertUtils.sourceToTarget(tree, CustomerTreeDTO.class); + } + + private void areaCodeHandle(String level, String areaCode, List tree) { + AreaCodeResultDTO result = new AreaCodeResultDTO(); + switch (level) { + case AreaCodeConstant.PROVINCE: + AreaCodeDTO province = baseDao.selectByProvinceCode(areaCode); + if (province != null) { + result.setAreaName(province.getProvinceName()); + result.setAreaCode(province.getProvinceCode()); + result.setParentCode(NumConstant.ZERO_STR); + result.setLevel(AreaCodeConstant.PROVINCE); + tree.add(result); + } + break; + case AreaCodeConstant.CITY: + AreaCodeDTO city = baseDao.selectByCityCode(areaCode); + if (city != null) { + result.setAreaName(city.getCityName()); + result.setAreaCode(city.getCityCode()); + result.setParentCode(city.getProvinceCode()); + result.setLevel(AreaCodeConstant.CITY); + tree.add(result); + areaCodeHandle(AreaCodeConstant.PROVINCE, city.getProvinceCode(), tree); + } + break; + case AreaCodeConstant.DISTRICT: + AreaCodeDTO county = baseDao.selectByCountyCode(areaCode); + if (county != null) { + result.setAreaName(county.getCountyName()); + result.setAreaCode(county.getCountyCode()); + result.setParentCode(county.getCityCode()); + result.setLevel(AreaCodeConstant.DISTRICT); + tree.add(result); + areaCodeHandle(AreaCodeConstant.CITY, county.getCityCode(), tree); + } + break; + case AreaCodeConstant.STREET: + result = baseDao.selectByStreetCode(areaCode); + tree.add(result); + areaCodeHandle(AreaCodeConstant.DISTRICT, result.getParentCode(), tree); + break; + case AreaCodeConstant.COMMUNITY: + result = baseDao.selectByCommunityCode(areaCode); + tree.add(result); + areaCodeHandle(AreaCodeConstant.STREET, result.getParentCode(), tree); + break; + default: + log.warn("Level错误:" + level); + } + } private String addDistrictAreaCode(String cityCode, String countyName) { AreaCodeDTO city = baseDao.selectByCityCode(cityCode); diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml index 34877f6c08..052b4369f7 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml +++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml @@ -20,6 +20,16 @@ and m.`CODE`=#{code} + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-dev.yml index d9a9fdea13..54410607f7 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-ext.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-prod.yml index 9c95c05818..403ca1a43d 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-ext.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-test.yml b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-test.yml index 922073b042..6d887c033b 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-ext.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/HeartAttachmentDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/HeartAttachmentDTO.java new file mode 100644 index 0000000000..ff807d1da3 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/HeartAttachmentDTO.java @@ -0,0 +1,116 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class HeartAttachmentDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 业务id + */ + private String businessId; + + /** + * 政策:ic_policy;服务:ic_service_record_v2 + */ + private String attachTo; + + /** + * 附件名 + */ + private String name; + + /** + * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS) + */ + private String format; + + /** + * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc)) + */ + private String type; + + /** + * 附件地址 + */ + private String url; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 附件状态(审核中:auditing; +auto_passed: 自动通过; +review:结果不确定,需要人工审核; +block: 结果违规; +rejected:人工审核驳回; +approved:人工审核通过) +现在图片是同步审核的,所以图片只有auto_passed一种状态 + */ + private String status; + + /** + * 失败原因 + */ + private String reason; + + /** + * 语音或视频时长,秒 + */ + private Integer duration; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file 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/IcPolicyCategoryDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyCategoryDTO.java new file mode 100644 index 0000000000..7afb8aee58 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyCategoryDTO.java @@ -0,0 +1,74 @@ +package com.epmet.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 政策匹配资源类型 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcPolicyCategoryDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 分类全路径,包含CATEGORY_CODE,英文逗号隔开 + */ + private String codePath; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyDTO.java new file mode 100644 index 0000000000..947f2faa09 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyDTO.java @@ -0,0 +1,77 @@ +package com.epmet.dto; + +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.dto.form.policy.IcPolicyRuleFormDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +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 2022-07-18 + */ +@Data +public class IcPolicyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String policyId; + + /** + * 政策创建人,所属组织id + */ + private String orgId; + + /** + * AGENCY_ID的全路径,含agency_id + */ + private String orgIdPath; + /** + * 政策级别,0市级;1区级;2街道级 + */ + private String policyLevel; + + /** + * 政策级别,0市级;1区级;2街道级 + */ + private String policyLevelName; + + /** + * 生效起止日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startDate; + + /** + * 截止日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endDate; + + /** + * 政策标题 + */ + private String title; + + /** + * 政策内容 + */ + private String content; + + /** + * 是否过期;1:已过期;0:未过期 + */ + private String expiredFlag; + + //以下三个详情接口返回 + private List categoryList; + private List attachmentList; + private List ruleList; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDTO.java new file mode 100644 index 0000000000..112474a76f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDTO.java @@ -0,0 +1,82 @@ +package com.epmet.dto; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 政策匹配规则 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcPolicyRuleDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 规则名称 + */ + private String ruleName; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 删除标记 0:未删除,1:已删除 + */ + @JsonIgnore + private String delFlag; + + /** + * 乐观锁 + */ + @JsonIgnore + private Integer revision; + + /** + * 创建人 + */ + @JsonIgnore + private String createdBy; + + /** + * 创建时间 + */ + @JsonIgnore + private Date createdTime; + + /** + * 更新人 + */ + @JsonIgnore + private String updatedBy; + + /** + * 更新时间 + */ + @JsonIgnore + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDetailDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDetailDTO.java new file mode 100644 index 0000000000..10e875d312 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDetailDTO.java @@ -0,0 +1,119 @@ +package com.epmet.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 政策匹配规则明细 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcPolicyRuleDetailDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 规则id + */ + private String ruleId; + + /** + * 规则描述文字,例如:基础信息性别等于女 + */ + private String ruleDesc; + + /** + * resi:人员信息,house:房屋信息,stat:统计信息 + */ + private String groupType; + + /** + * 与上一条的关系;and、or + */ + private String nextLogicalRel; + + /** + * 分组id;人员信息有值; + */ + private String itemGroupId; + + /** + * 组件id;人员信息有值; + */ + private String itemId; + + /** + * 查询类型:等于、不等于....;来源于字典表sql_query_type + */ + private String queryType; + + /** + * 表名;人员信息有值; + */ + private String colTable; + + /** + * 人员信息存储组件对应的列名;房屋信息存储ic_house表的列名;统计信息应该是定义到字典表,这里存储字典key就行吧 + */ + private String colKey; + + /** + * 参数值 + */ + private String colVal; + + /** + * 排序字段;同一group_type升序 + */ + private Integer sort; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceFeedbackV2DTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceFeedbackV2DTO.java new file mode 100644 index 0000000000..b0a39730f3 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceFeedbackV2DTO.java @@ -0,0 +1,103 @@ +package com.epmet.dto; + +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 2022-07-18 + */ +@Data +public class IcServiceFeedbackV2DTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * + */ + private String customerId; + + /** + * 服务ID + */ + private String serviceRecordId; + + /** + * 服务目标 + */ + private String serviceGoal; + + /** + * 服务效果 + */ + private String serviceEffect; + + /** + * 服务人数 + */ + private Integer servicePeopleNumber; + + /** + * 满意度。满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + + /** + * 地址经度 + */ + private String longitude; + + /** + * 地址纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标识 + */ + private Integer delFlag; + + private List fileList; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceRecordV2DTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceRecordV2DTO.java new file mode 100644 index 0000000000..be41f030b1 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceRecordV2DTO.java @@ -0,0 +1,115 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcServiceRecordV2DTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * + */ + private String customerId; + + /** + * 服务组织类型 +社区自组织:community_org, +志愿者:ic_user_volunteer, +联建单位:party_unit + */ + private String serviceOrgType; + + /** + * 服务组织ID + */ + private String serviceOrgId; + + /** + * 经办人姓名 + */ + private String principalName; + + /** + * 联系方式 + */ + private String principalContact; + + /** + * 服务时间 + */ + private Date serviceTimeStart; + + /** + * 服务截止时间 + */ + private Date serviceTimeEnd; + + /** + * in_service服务中;completed:已完成;cancel:取消 + */ + private String serviceStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标识 + */ + private String delFlag; + + /** + * 服务名称 + */ + private String serviceName; + + /** + * 政策依据ID + */ + private String policyId; + + private String serviceCategoryKey; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceScopeV2DTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceScopeV2DTO.java new file mode 100644 index 0000000000..f5bc086fae --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceScopeV2DTO.java @@ -0,0 +1,84 @@ +package com.epmet.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcServiceScopeV2DTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * + */ + private String customerId; + + /** + * 服务记录的ID + */ + private String serviceRecordId; + + /** + * agency单位;grid网格;neighborhood小区 + */ + private String objectType; + + /** + * 选中的组织的ID + */ + private String objectId; + + /** + * 发布范围的组织ID PATH + */ + private String objectIdPath; + + /** + * + */ + private String objectName; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标识 + */ + private String delFlag; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceFeedbackV2AddFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceFeedbackV2AddFormDTO.java new file mode 100644 index 0000000000..5eae36c969 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceFeedbackV2AddFormDTO.java @@ -0,0 +1,96 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.UpdateGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcServiceFeedbackV2AddFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 服务ID + */ + @NotBlank(message = "服务Id不能为空", groups = {UpdateGroup.class}) + private String serviceRecordId; + /** + * 服务目标 + */ + private String serviceGoal; + /** + * 服务效果 + */ + private String serviceEffect; + /** + * 服务人数 + */ + private Integer servicePeopleNumber; + /** + * 满意度。满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + /** + * 服务状态[in_service服务中;completed:已完成;cancel:取消] + */ + private String serviceStatus; + /** + * 地址 + */ + private String address; + /** + * 地址经度 + */ + private String longitude; + /** + * 地址纬度 + */ + private String latitude; + /** + * 地址纬度 + */ + private List fileList; + + private String customerId; + private String userId; + + @Data + public static class FileDTO { + + /** + * 文件名 + */ + private String name; + /** + * url地址 + */ + private String url; + /** + * 文件类型(图片 - image、 视频 - video、 语音 - voice、 文档 - doc) + */ + private String type; + /** + * 后缀名 + */ + private String format; + /** + * 文件大小 kb + */ + private Integer size; + /** + * 语音或视频文件时长,单位秒 + */ + private Integer duration; + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceRecordV2AddEditFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceRecordV2AddEditFormDTO.java new file mode 100644 index 0000000000..0de6bc737f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceRecordV2AddEditFormDTO.java @@ -0,0 +1,95 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +public class IcServiceRecordV2AddEditFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 服务Id + */ + @NotBlank(message = "服务Id不能为空", groups = {UpdateGroup.class}) + private String serviceRecordId; + /** + * 服务名称 + */ + @NotBlank(message = "服务名称不能为空", groups = {AddGroup.class}) + private String serviceName; + /** + * 服务组织类型 社区自组织:community_org, 志愿者:ic_user_volunteer, 联建单位:party_unit + */ + @NotBlank(message = "服务名称不能为空", groups = {AddGroup.class}) + private String serviceOrgType; + + @NotBlank(message = "serviceCategoryKey不能为空", groups = {AddGroup.class}) + private String serviceCategoryKey; + /** + * 服务组织Id + */ + @NotBlank(message = "服务名称不能为空", groups = {AddGroup.class}) + private String serviceOrgId; + /** + * 服务范围集合 + */ + private List objList; + /** + * 政策依据Id + */ + private String policyId; + /** + * 经办人姓名 + */ + private String principalName; + /** + * 联系方式 + */ + private String principalContact; + /** + * 起始服务时间 + */ + @NotNull(message = "起始服务时间不能为空", groups = {AddGroup.class}) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date serviceTimeStart; + /** + * 终止服务时间 + */ + @NotNull(message = "终止服务时间不能为空", groups = {AddGroup.class}) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date serviceTimeEnd; + /** + * 备注信息 + */ + private String remark; + /** + * 反馈记录数据 + */ + private IcServiceFeedbackV2AddFormDTO feedback; + + private String customerId; + private String userId; + + @Data + public static class ObjList { + private String objectType; + private String objectId; + private String objectName; + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2DetailFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2DetailFormDTO.java new file mode 100644 index 0000000000..7b783d0628 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2DetailFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/19 16:34 + * @DESC + */ +@Data +public class ServiceRecordV2DetailFormDTO implements Serializable { + + private static final long serialVersionUID = 476430342315532314L; + + public interface ServiceRecordV2DetailForm{} + + @NotBlank(message = "serviceRecordId不能为空",groups = ServiceRecordV2DetailForm.class) + private String serviceRecordId; + + +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2ListFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2ListFormDTO.java new file mode 100644 index 0000000000..a9eea1aa2b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceRecordV2ListFormDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/19 10:10 + * @DESC + */ +@Data +public class ServiceRecordV2ListFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = 88592831607216246L; + + public interface ServiceRecordV2ListForm{} + + /** + * 服务名称 + */ + private String serviceName; + + @NotBlank(message = "serviceCategoryKey不能为空",groups = ServiceRecordV2ListForm.class) + private String serviceCategoryKey; + + /** + * 服务组织ID + */ + private String serviceOrgId; + + /** + * 起始服务时间yyyy-MM-dd + */ + private String serviceTimeStart; + + /** + * 终止服务时间yyyy-MM-dd + */ + private String serviceTimeEnd; + + /** + * in_service服务中;completed:已完成;cancel:取消 + */ + private String serviceStatus; + + /** + * 满意度 0:不满意,1:基本满意,2:非常满意 + */ + private String satisfaction; + private String customerId; + private String userId; + + /** + * 当前工作人员所属组织ID + */ + private String orgId; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java new file mode 100644 index 0000000000..2e1f6896a0 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java @@ -0,0 +1,101 @@ +package com.epmet.dto.form.policy; + +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.epmet.dto.IcPolicyCategoryDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/19 13:09 + */ + +@Data +public class IcPolicyFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + public interface UpdateUserInternalGroup { + } + @NotBlank(message = "政策id不能为空",groups = UpdateUserInternalGroup.class) + private String policyId; + /** + * 政策创建人,所属组织id + */ + @NotBlank(message = "orgId不能为空",groups = UpdateUserInternalGroup.class) + private String orgId; + + // /** + // * AGENCY_ID的全路径,含agency_id + // */ + // @NotBlank(message = "orgIdPath不能为空",groups = UpdateUserInternalGroup.class) + // private String orgIdPath; + + + /** + * 客户id + */ + @NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class) + private String customerId; + private String staffId; + + /** + * 政策级别,0市级;1区级;2街道级 + */ + @NotBlank(message = "政策级别不能为空", groups = AddUserShowGroup.class) + private String policyLevel; + + /** + * 生效起止日期 + */ + @JsonFormat(pattern="yyyy-MM-dd") + @NotNull(message = "政策开始日期不能为空", groups = AddUserShowGroup.class) + private Date startDate; + + /** + * 截止日期 + */ + @JsonFormat(pattern="yyyy-MM-dd") + @NotNull(message = "政策截止日期不能为空", groups = AddUserShowGroup.class) + private Date endDate; + + /** + * 政策标题 + */ + @NotBlank(message = "政策标题不能为空", groups = AddUserShowGroup.class) + @Length(max = 100, groups = AddUserShowGroup.class, message = "政策标题最多输入100字") + private String title; + + /** + * 政策内容 + */ + // @NotBlank(message = "政策内容不能为空", groups = AddUserShowGroup.class) + @Length(max = 2000, groups = AddUserShowGroup.class, message = "政策内容最多输入2000字") + private String content; + + private List categoryList; + + // @Valid + private List attachmentList; + + @Valid + @NotEmpty(message = "政策细则不能为空",groups =AddUserShowGroup.class ) + private List ruleList; + + private String agencyId; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyPageFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyPageFormDTO.java new file mode 100644 index 0000000000..01cf09cfbf --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyPageFormDTO.java @@ -0,0 +1,38 @@ +package com.epmet.dto.form.policy; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/7/19 15:36 + */ +@Data +public class IcPolicyPageFormDTO extends PageFormDTO implements Serializable { + /** + * 客户id + */ + private String customerId; + private String staffId; + + /** + * 政策标题 + */ + private String title; + + /** + * 政策内容 + */ + private String content; + + /** + * 是否过期;1:已过期;0:未过期 + */ + private String expiredFlag; + private String agencyId; + +} + 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 new file mode 100644 index 0000000000..910a5b2e38 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java @@ -0,0 +1,94 @@ +package com.epmet.dto.form.policy; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description + * @Author yzm + * @Date 2022/7/19 13:32 + */ +@Data +public class IcPolicyRuleDetailDTO { + public interface ResiRulerShowGroup extends CustomerClientShowGroup { + } + + public interface HouseRulerShowGroup extends CustomerClientShowGroup { + } + + public interface StatRulerShowGroup extends CustomerClientShowGroup { + } + /** + * 规则描述文字,例如:基础信息性别等于女 + */ + private String ruleDesc; + + /** + * 与下一条的关系;and、or + * 如果没有条件的话,此列为空 + */ + private String nextLogicalRel; + + /** + * 分组id;人员信息有值; + */ + @NotBlank(message = "itemGroupId不能为空", groups = ResiRulerShowGroup.class) + private String itemGroupId; + + /** + * 表名;人员信息有值;房屋信息也有值 + */ + @NotBlank(message = "itemId不能为空", groups = ResiRulerShowGroup.class) + private String itemId; + + /** + * 查询类型:等于、不等于....;来源于字典表sql_query_type + */ + @NotBlank(message = "查询类型不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) + private String queryType; + + /** + * 表名;人员信息有值; + */ + @NotBlank(message = "colTable不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class}) + private String colTable; + + /** + * 人员信息存储组件对应的列名;房屋信息存储ic_house表的列名;统计信息应该是定义到字典表,这里存储字典key就行吧 + */ + @NotBlank(message = "条件不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) + private String colKey; + + /** + * 参数值 + */ + // @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) + private String colVal; + + /** + * 用于前端展示:基础信息、教育信息、房屋类型..... + */ + private String itemGroupName; + /** + * 用于前端展示:姓名、手机号、...... + */ + private String itemLabel; + + /** + * 用于前端展示:等于、不等于、大于、小于.... + */ + private String queryTypeName; + + /** + * 用于前端展示:参数值显示值eg:男女 + */ + private String colValLabel; + + /** + * 用于前端展示:逻辑:并且、或者 + */ + private String nextLogicalRelName; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java new file mode 100644 index 0000000000..df8d8689fa --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.form.policy; + +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/19 13:31 + */ +@Data +public class IcPolicyRuleFormDTO implements Serializable { + + /** + * 细则名称 + */ + @NotBlank(message = "细则名称不能为空", groups = IcPolicyFormDTO.AddUserShowGroup.class) + private String ruleName; + /** + * 人员信息 + */ + @Valid + // @NotEmpty + private List resiRuleList; + /** + * 房屋信息 + */ + @Valid + private List houseRuleList; + /** + * 统计信息 + */ + @Valid + private List statRuleList; + + /** + * ruleId + */ + private String id; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResisByPolicyRulesFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResisByPolicyRulesFormDTO.java new file mode 100644 index 0000000000..b65e138cdc --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResisByPolicyRulesFormDTO.java @@ -0,0 +1,73 @@ +package com.epmet.dto.form.resi; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ResisByPolicyRulesFormDTO { + private String ruleId; + private String orgId; + private String orgType; + private String neighborHoodId; + private String buildingId; + private String unitId; + private String houseId; + private String name; + private String mobile; + private String idCard; + private RuleList ruleList = new RuleList(); + private Integer pageNo; + private Integer pageSize; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class RuleList { + private List resiRuleList; + private List houseRuleList; + private List statRuleList; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ResiRule { + private String ruleDesc; + private String nextLogicalRel; + private String itemGroupId; + private String itemId; + private String queryType; + private String colTable; + private String colKey; + private String colVal; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HouseRule { + private String colTable; + private String colKey; + private String colVal; + private String ruleDesc; + private String nextLogicalRel; + private String queryType; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class StatRule { + private String colKey; + private String colVal; + private String nextLogicalRel; + private String ruleDesc; + private String queryType; + private String colTable; + } +} 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/dto/result/ServiceRecordV2DetailResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java new file mode 100644 index 0000000000..f77d349ccb --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2DetailResultDTO.java @@ -0,0 +1,71 @@ +package com.epmet.dto.result; + +import com.epmet.dto.IcServiceFeedbackV2DTO; +import com.epmet.dto.IcServiceScopeV2DTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/19 16:34 + * @DESC + */ +@Data +public class ServiceRecordV2DetailResultDTO implements Serializable { + + private static final long serialVersionUID = 3385425608362604836L; + + private String serviceRecordId; + + private String serviceName; + private String policyId; + + /** + * 服务组织类型 + 社区自组织:community_org, + 志愿者:ic_user_volunteer, + 联建单位:party_unit + */ + private String serviceOrgType; + + /** + * 服务组织ID + */ + private String serviceOrgId; + + /** + * 经办人姓名 + */ + private String principalName; + + /** + * 联系方式 + */ + private String principalContact; + + /** + * 服务时间 + */ + private String serviceTimeStart; + + /** + * 服务截止时间 + */ + private String serviceTimeEnd; + + /** + * in_service服务中;completed:已完成;cancel:取消 + */ + private String serviceStatus; + + /** + * 备注 + */ + private String remark; + + private List gridIdList; + + private IcServiceFeedbackV2DTO feedback; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2ListResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2ListResultDTO.java new file mode 100644 index 0000000000..d4c591a469 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceRecordV2ListResultDTO.java @@ -0,0 +1,66 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/19 10:16 + * @DESC + */ +@Data +public class ServiceRecordV2ListResultDTO implements Serializable { + + private static final long serialVersionUID = -7486208970876756573L; + + /** + * 服务ID + */ + private String serviceRecordId; + + /** + * 政策ID + */ + private String policyId; + + /** + * 服务组织类别 + */ + private String serviceOrgType; + + /** + * 服务组织ID + */ + private String serviceOrgId; + + /** + * 服务组织名字 + */ + private String serviceOrgName; + + /** + * 服务名字 + */ + private String serviceName; + + /** + * 起始服务时间yyyy-MM-dd + */ + private String serviceTimeStart; + + /** + * 终止服务时间yyyy-MM-dd + */ + private String serviceTimeEnd; + + /** + * 服务状态 + */ + private String serviceStatus; + + /** + * 服务人数 + */ + private Integer servicePeopleNumber; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/policy/IcPolicyItemResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/policy/IcPolicyItemResultDTO.java new file mode 100644 index 0000000000..ee75325f26 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/policy/IcPolicyItemResultDTO.java @@ -0,0 +1,79 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-19 + */ +@Data +public class IcPolicyItemResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * + */ + private String customerId; + + /** + * house:房屋信息,stat:统计信息 + */ + private String groupType; + + /** + * 选项名;例如:房屋类型,房屋状态,人均收入 + */ + private String label; + + /** + * 表名 + */ + private String tableName; + + /** + * 房屋信息存储列名;统计信息定义好key放在这里 + */ + private String colKey; + + /** + * + */ + private String itemType; + + /** + * 排序 + */ + private Integer sort; + + /** + * 备注 + */ + private String remark; + + /** + * 值来源;需要接口获取:remote。 + */ + private String optionSourceType; + + /** + * 动态url; + */ + private String optionSourceUrl; + + /** + * 动态url的入参;存储json串 + */ + private String optionSourceParam; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiByPolicyInfoResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiByPolicyInfoResultDTO.java new file mode 100644 index 0000000000..2faa7c9b82 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiByPolicyInfoResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result.resi; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ResiByPolicyInfoResultDTO { + + private String icResiUserId; + private String name; + private String mobile; + private String idCard; + /** + * 小区全名,包含小区前面的属性,比如网格等 + */ + private String gridId; + private String neighborhoodId; + private String neighborHoodName; + private Integer age; + private Date birthday; + +} 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 f3c8430b3e..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 @@ -14,7 +14,9 @@ import com.epmet.dto.form.demand.DemandRecId; import com.epmet.dto.form.demand.IcEventCommentToDemandFromDTO; 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; @@ -158,4 +160,15 @@ public interface EpmetHeartOpenFeignClient { @PostMapping("/heart/resi/volunteer/addVolunteer") Result addVolunteer(@RequestBody ResiVolunteerAuthenticateFormDTO formDTO); + + /** + * 为预览和导出提供规则列表查询 + * @return + */ + @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 10670de1ab..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 @@ -16,7 +16,9 @@ import com.epmet.dto.form.demand.IcEventCommentToDemandFromDTO; import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; 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; @@ -161,4 +163,13 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "addVolunteer", formDTO); } + @Override + 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/deploy/docker-compose-dev.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml index 8602660d10..18c420a523 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-heart.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-prod.yml index 40df63bc4c..201f47dbf1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-heart.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml index 98e9560135..654721814d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-heart.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index 5d1c230a1c..f90e54c36b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -12,6 +12,11 @@ jar + + com.epmet + data-aggregator-client + 2.0.0 + com.epmet epmet-heart-client diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java index 236d81d8d9..caec050a5f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java @@ -29,6 +29,8 @@ import org.springframework.scheduling.annotation.EnableAsync; public class EpmetHeartApplication { public static void main(String[] args) { + // 让rocketmq使用slf4j管理日志 + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(EpmetHeartApplication.class, args); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/IcCommunitySelfOrganizationConstant.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/IcCommunitySelfOrganizationConstant.java index ffd87124bf..a94b3304b1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/IcCommunitySelfOrganizationConstant.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/IcCommunitySelfOrganizationConstant.java @@ -8,4 +8,8 @@ package com.epmet.constant; public interface IcCommunitySelfOrganizationConstant { String ORG_TYPE_AGENCY = "agency"; + + String SERVICE_ORG_TYPE_COMMUNITY_ORG = "community_org"; + String SERVICE_ORG_TYPE_IC_USER_VOLUNTEEr = "ic_user_volunteer"; + String SERVICE_ORG_TYPE_PARTY_UNIT = "party_unit"; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/HeartAttachmentController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/HeartAttachmentController.java new file mode 100644 index 0000000000..61a0d14a87 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/HeartAttachmentController.java @@ -0,0 +1,70 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +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.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.HeartAttachmentDTO; +import com.epmet.service.HeartAttachmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@RestController +@RequestMapping("heartAttachment") +public class HeartAttachmentController { + + @Autowired + private HeartAttachmentService heartAttachmentService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = heartAttachmentService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + HeartAttachmentDTO data = heartAttachmentService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody HeartAttachmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + heartAttachmentService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody HeartAttachmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + heartAttachmentService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + heartAttachmentService.delete(ids); + return new Result(); + } + +} 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/controller/IcPolicyController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPolicyController.java new file mode 100644 index 0000000000..53cd8815b5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPolicyController.java @@ -0,0 +1,183 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.form.PageFormDTO; +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.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.IcPolicyDTO; +import com.epmet.dto.IcPolicyItemResultDTO; +import com.epmet.dto.IcPolicyRuleDTO; +import com.epmet.dto.form.policy.IcPolicyFormDTO; +import com.epmet.dto.form.policy.IcPolicyPageFormDTO; +import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; +import com.epmet.dto.result.resi.ResiByPolicyInfoResultDTO; +import com.epmet.entity.IcPolicyRuleDetailEntity; +import com.epmet.service.IcPolicyService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +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-18 + */ +@RestController +@RequestMapping("policy") +public class IcPolicyController { + + @Autowired + private IcPolicyService icPolicyService; + + /** + * 房屋信息、统计信息查询有哪些可选项 + * @param customerId + * @param groupType + * @return + */ + @PostMapping("item-list/{groupType}") + public Result> itemList(@RequestHeader("customerId") String customerId, @PathVariable("groupType") String groupType) { + List list = icPolicyService.itemList(customerId, groupType); + return new Result>().ok(list); + } + + + /** + * 政策管理-新增/修改 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("add") + public Result add(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, IcPolicyFormDTO.AddUserShowGroup.class, IcPolicyFormDTO.AddUserInternalGroup.class); + icPolicyService.addOrUpdatePolicy(formDTO); + return new Result(); + } + + /** + * 编辑政策 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("update") + public Result update(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, IcPolicyFormDTO.AddUserShowGroup.class, IcPolicyFormDTO.AddUserInternalGroup.class,IcPolicyFormDTO.UpdateUserInternalGroup.class); + icPolicyService.addOrUpdatePolicy(formDTO); + return new Result(); + } + + /** + * 政策列表 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("list") + public Result> policyList(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyPageFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class,PageFormDTO.AddUserShowGroup.class); + PageData page = icPolicyService.policyList(formDTO); + return new Result>().ok(page); + } + + /** + * Desc: 政策列表下拉选 + * @param tokenDto + * @author zxc + * @date 2022/7/21 09:48 + */ + @PostMapping("policyListSelect") + public Result> policyListSelect(@LoginUser TokenDto tokenDto){ + return new Result>().ok(icPolicyService.policyListSelect(tokenDto.getUserId(),tokenDto.getCustomerId())); + } + + /** + * 细则列表 + * @param customerId + * @param policyId + * @return + */ + @PostMapping("rulelist/{policyId}") + public Result> ruleList(@RequestHeader("customerId") String customerId,@PathVariable("policyId") String policyId) { + return new Result>().ok(icPolicyService.ruleList(customerId,policyId)); + } + + /** + * 删除政策 + * @param policyId + * @return + */ + @PostMapping("delete/{policyId}") + public Result deletePolicy(@PathVariable("policyId") String policyId) { + icPolicyService.deleteById(policyId); + return new Result<>(); + } + + @PostMapping("detail/{policyId}") + public Result policyDetail(@LoginUser TokenDto tokenDto,@PathVariable("policyId") String policyId) { + return new Result().ok(icPolicyService.policyDetail(tokenDto.getCustomerId(),policyId)); + } + + /** + * 为预览和导出提供规则列表查询 + * @return + */ + @PostMapping("rules4ResiListAndExport/{ruleId}") + public Result listPolicyRules4QueryAndExport(@PathVariable("ruleId") String ruleId) { + Map> ruleMap = icPolicyService.listPolicyRules4QueryAndExport(EpmetRequestHolder.getLoginUserCustomerId(), ruleId); + ResisByPolicyRulesFormDTO.RuleList data = new ResisByPolicyRulesFormDTO.RuleList(); + // resi规则 + List originResiRules = ruleMap.get("resi"); + if (CollectionUtils.isNotEmpty(originResiRules)) { + List resiRules = originResiRules + .stream() + .map((r) -> new ResisByPolicyRulesFormDTO.ResiRule(r.getRuleDesc(), r.getNextLogicalRel(), r.getItemGroupId(), + r.getItemId(), r.getQueryType(), r.getColTable(), r.getColKey(), r.getColVal())) + .collect(Collectors.toList()); + + data.setResiRuleList(resiRules); + } + + // house规则 + List originHouseRules = ruleMap.get("house"); + if (CollectionUtils.isNotEmpty(originHouseRules)) { + List houseRules = originHouseRules + .stream() + .map((r) -> new ResisByPolicyRulesFormDTO.HouseRule(r.getColTable(), r.getColKey(), r.getColVal(), + r.getRuleDesc(), r.getNextLogicalRel(), r.getQueryType())) + .collect(Collectors.toList()); + data.setHouseRuleList(houseRules); + } + + // stat规则 + List originStatRules = ruleMap.get("stat"); + if (CollectionUtils.isNotEmpty(originStatRules)) { + List statRules = originStatRules + .stream() + .map((r) -> new ResisByPolicyRulesFormDTO.StatRule(r.getColKey(), r.getColVal(), r.getNextLogicalRel(), + r.getRuleDesc(), r.getQueryType(), r.getColTable())) + .collect(Collectors.toList()); + + data.setStatRuleList(statRules); + } + + return new Result().ok(data); + } +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceFeedbackV2Controller.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceFeedbackV2Controller.java new file mode 100644 index 0000000000..e647c1ae7a --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceFeedbackV2Controller.java @@ -0,0 +1,74 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +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.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IcServiceFeedbackV2DTO; +import com.epmet.dto.form.IcServiceFeedbackV2AddFormDTO; +import com.epmet.service.IcServiceFeedbackV2Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@RestController +@RequestMapping("icServiceFeedbackV2") +public class IcServiceFeedbackV2Controller { + + @Autowired + private IcServiceFeedbackV2Service icServiceFeedbackV2Service; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icServiceFeedbackV2Service.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcServiceFeedbackV2DTO data = icServiceFeedbackV2Service.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("add") + public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcServiceFeedbackV2AddFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + icServiceFeedbackV2Service.save(formDTO); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcServiceFeedbackV2DTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icServiceFeedbackV2Service.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icServiceFeedbackV2Service.delete(ids); + return new Result(); + } + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceRecordV2Controller.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceRecordV2Controller.java new file mode 100644 index 0000000000..9449689fc2 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceRecordV2Controller.java @@ -0,0 +1,112 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +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.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IcServiceRecordV2DTO; +import com.epmet.dto.form.ServiceRecordV2DetailFormDTO; +import com.epmet.dto.form.IcServiceRecordV2AddEditFormDTO; +import com.epmet.dto.form.ServiceRecordV2ListFormDTO; +import com.epmet.dto.result.ServiceRecordV2DetailResultDTO; +import com.epmet.service.IcServiceRecordV2Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@RestController +@RequestMapping("icServiceRecordV2") +public class IcServiceRecordV2Controller { + + @Autowired + private IcServiceRecordV2Service icServiceRecordV2Service; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icServiceRecordV2Service.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcServiceRecordV2DTO data = icServiceRecordV2Service.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("add") + public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcServiceRecordV2AddEditFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + icServiceRecordV2Service.save(formDTO); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("edit") + public Result update(@RequestBody IcServiceRecordV2AddEditFormDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icServiceRecordV2Service.update(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("cancel") + public Result cancel(@RequestBody IcServiceRecordV2AddEditFormDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icServiceRecordV2Service.cancel(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icServiceRecordV2Service.delete(ids); + return new Result(); + } + + /** + * Desc:【服务管理】列表 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/7/19 10:24 + */ + @PostMapping("list") + public Result serviceRecordV2List(@LoginUser TokenDto tokenDto, @RequestBody ServiceRecordV2ListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, ServiceRecordV2ListFormDTO.ServiceRecordV2ListForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result().ok(icServiceRecordV2Service.serviceRecordV2List(formDTO)); + } + + /** + * Desc: 详情 + * @param formDTO + * @author zxc + * @date 2022/7/19 16:37 + */ + @PostMapping("detail") + public Result serviceRecordV2Detail(@RequestBody ServiceRecordV2DetailFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,ServiceRecordV2DetailFormDTO.ServiceRecordV2DetailForm.class); + return new Result().ok(icServiceRecordV2Service.serviceRecordV2Detail(formDTO)); + } +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceScopeV2Controller.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceScopeV2Controller.java new file mode 100644 index 0000000000..c87bedbac7 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceScopeV2Controller.java @@ -0,0 +1,70 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +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.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IcServiceScopeV2DTO; +import com.epmet.service.IcServiceScopeV2Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@RestController +@RequestMapping("icServiceScopeV2") +public class IcServiceScopeV2Controller { + + @Autowired + private IcServiceScopeV2Service icServiceScopeV2Service; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icServiceScopeV2Service.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcServiceScopeV2DTO data = icServiceScopeV2Service.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcServiceScopeV2DTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icServiceScopeV2Service.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcServiceScopeV2DTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icServiceScopeV2Service.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icServiceScopeV2Service.delete(ids); + return new Result(); + } + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/HeartAttachmentDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/HeartAttachmentDao.java new file mode 100644 index 0000000000..6dba23af2b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/HeartAttachmentDao.java @@ -0,0 +1,17 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.HeartAttachmentEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface HeartAttachmentDao extends BaseDao { + + int deleteByBusinessId(String businessId); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java index 3ba576777b..e97091463e 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java @@ -75,4 +75,7 @@ public interface IcCommunitySelfOrganizationDao extends BaseDao queryCoordinateList(CategorySelfOrgFormDTO formDTO); List selectByIds(@Param("communityOrgIds") List communityOrgIds); + + String getCommunityOrgName(@Param("id") String id); + String getPartyUnitName(@Param("id") String id); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyCategoryDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyCategoryDao.java new file mode 100644 index 0000000000..e81d230a1b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyCategoryDao.java @@ -0,0 +1,17 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcPolicyCategoryEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 政策匹配资源类型 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcPolicyCategoryDao extends BaseDao { + + int deleteByIcPolicyId(String icPolicyId); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java new file mode 100644 index 0000000000..7738a3f38e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java @@ -0,0 +1,34 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcPolicyDTO; +import com.epmet.dto.IcPolicyItemResultDTO; +import com.epmet.entity.IcPolicyEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 政策表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcPolicyDao extends BaseDao { + + /** + * 房屋信息、统计信息查询有哪些可选项 + * @param customerId + * @param groupType + * @return + */ + List selectItemList(@Param("customerId") String customerId, @Param("groupType") String groupType); + + List policyList(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("title")String title, + @Param("content")String content, + @Param("expiredFlag")String expiredFlag); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDao.java new file mode 100644 index 0000000000..adb211432f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDao.java @@ -0,0 +1,17 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcPolicyRuleEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 政策匹配规则 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcPolicyRuleDao extends BaseDao { + + int deleteByIcPolicyId(String policyId); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDetailDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDetailDao.java new file mode 100644 index 0000000000..41147f9eae --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDetailDao.java @@ -0,0 +1,17 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcPolicyRuleDetailEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 政策匹配规则明细 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcPolicyRuleDetailDao extends BaseDao { + + int deleteByRuleId(String ruleId); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceFeedbackV2Dao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceFeedbackV2Dao.java new file mode 100644 index 0000000000..43a90f357d --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceFeedbackV2Dao.java @@ -0,0 +1,20 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcServiceFeedbackV2DTO; +import com.epmet.entity.IcServiceFeedbackV2Entity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcServiceFeedbackV2Dao extends BaseDao { + + IcServiceFeedbackV2DTO getFeedbackV2(@Param("serviceRecordId") String serviceRecordId); + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceRecordV2Dao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceRecordV2Dao.java new file mode 100644 index 0000000000..55ae94e6aa --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceRecordV2Dao.java @@ -0,0 +1,28 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.ServiceRecordV2ListFormDTO; +import com.epmet.dto.result.ServiceRecordV2ListResultDTO; +import com.epmet.entity.IcServiceRecordV2Entity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcServiceRecordV2Dao extends BaseDao { + + /** + * Desc:【服务管理】列表 + * @param formDTO + * @author zxc + * @date 2022/7/19 10:24 + */ + List serviceRecordV2List(ServiceRecordV2ListFormDTO formDTO); + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java index c2fc96cfd9..6b4123134c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcServiceScopeV2DTO; import com.epmet.dto.result.IcServiceScopeDTO; import com.epmet.entity.IcServiceScopeEntity; import org.apache.ibatis.annotations.Mapper; @@ -20,4 +21,6 @@ public interface IcServiceScopeDao extends BaseDao { int update(@Param("serviceId") String serviceId, @Param("userId") String userId); List selectList(String serviceRecordId); + + List selectListV2(@Param("serviceRecordId") String serviceRecordId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeV2Dao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeV2Dao.java new file mode 100644 index 0000000000..6c849fe429 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeV2Dao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcServiceScopeV2Entity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Mapper +public interface IcServiceScopeV2Dao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/HeartAttachmentEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/HeartAttachmentEntity.java new file mode 100644 index 0000000000..c96dc8d6cf --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/HeartAttachmentEntity.java @@ -0,0 +1,82 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("heart_attachment") +public class HeartAttachmentEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 业务id + */ + private String businessId; + + /** + * 政策:ic_policy;服务:ic_service_record_v2 + */ + private String attachTo; + + /** + * 附件名 + */ + private String name; + + /** + * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS) + */ + private String format; + + /** + * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc)) + */ + private String type; + + /** + * 附件地址 + */ + private String url; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 附件状态(审核中:auditing; +auto_passed: 自动通过; +review:结果不确定,需要人工审核; +block: 结果违规; +rejected:人工审核驳回; +approved:人工审核通过) +现在图片是同步审核的,所以图片只有auto_passed一种状态 + */ + private String status; + + /** + * 失败原因 + */ + private String reason; + + /** + * 语音或视频时长,秒 + */ + private Integer duration; + +} 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/IcPolicyCategoryEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyCategoryEntity.java new file mode 100644 index 0000000000..811dced0c8 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyCategoryEntity.java @@ -0,0 +1,44 @@ +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; + +/** + * 政策匹配资源类型 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_policy_category") +public class IcPolicyCategoryEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 分类全路径,包含CATEGORY_CODE,英文逗号隔开 + */ + private String codePath; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyEntity.java new file mode 100644 index 0000000000..c32bbdc4c9 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyEntity.java @@ -0,0 +1,64 @@ +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; + +/** + * 政策表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_policy") +public class IcPolicyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 政策创建人,所属组织id + */ + private String orgId; + + /** + * AGENCY_ID的全路径,含agency_id + */ + private String orgIdPath; + + /** + * 政策级别,0市级;1区级;2街道级 + */ + private String policyLevel; + + /** + * 生效起止日期 + */ + private Date startDate; + + /** + * 截止日期 + */ + private Date endDate; + + /** + * 政策标题 + */ + private String title; + + /** + * 政策内容 + */ + private String content; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java new file mode 100644 index 0000000000..9a29c03d1b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java @@ -0,0 +1,110 @@ +package com.epmet.entity; + +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 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_policy_rule_detail") +public class IcPolicyRuleDetailEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 规则id + */ + private String ruleId; + + /** + * 规则描述文字,例如:基础信息性别等于女 + */ + private String ruleDesc; + + /** + * resi:人员信息,house:房屋信息,stat:统计信息 + */ + private String groupType; + + /** + * 与下一条的关系;and、or + * 如果没有条件的话,此列为空 + */ + private String nextLogicalRel; + + /** + * 分组id;人员信息有值; + */ + private String itemGroupId; + + /** + * 组件id;人员信息有值; + */ + private String itemId; + + /** + * 查询类型:等于、不等于....;来源于字典表sql_query_type + */ + private String queryType; + + /** + * 表名;人员信息有值;房屋信息也有值 + */ + private String colTable; + + /** + * 人员信息存储组件对应的列名;房屋信息存储ic_house表的列名;统计信息应该是定义到字典表,这里存储字典key就行吧 + */ + private String colKey; + + /** + * 参数值 + */ + private String colVal; + + /** + * 排序字段;同一group_type升序 + */ + private Integer sort; + + /** + * 用于前端展示:基础信息、教育信息、房屋类型..... + */ + private String itemGroupName; + /** + * 用于前端展示:姓名、手机号、...... + */ + private String itemLabel; + + /** + * 用于前端展示:等于、不等于、大于、小于.... + */ + private String queryTypeName; + + /** + * 用于前端展示:参数值显示值eg:男女 + */ + private String colValLabel; + + /** + * 用于前端展示:逻辑:并且、或者 + */ + private String nextLogicalRelName; +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleEntity.java new file mode 100644 index 0000000000..e5536bbb8c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleEntity.java @@ -0,0 +1,44 @@ +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; + +/** + * 政策匹配规则 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_policy_rule") +public class IcPolicyRuleEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 政策id + */ + private String icPolicyId; + + /** + * 规则名称 + */ + private String ruleName; + + /** + * 排序字段 + */ + private Integer sort; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceFeedbackV2Entity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceFeedbackV2Entity.java new file mode 100644 index 0000000000..ea194676e9 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceFeedbackV2Entity.java @@ -0,0 +1,66 @@ +package com.epmet.entity; + +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 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_service_feedback_v2") +public class IcServiceFeedbackV2Entity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String customerId; + + /** + * 服务ID + */ + private String serviceRecordId; + + /** + * 服务目标 + */ + private String serviceGoal; + + /** + * 服务效果 + */ + private String serviceEffect; + + /** + * 服务人数 + */ + private Integer servicePeopleNumber; + + /** + * 满意度。满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + + /** + * 地址经度 + */ + private String longitude; + + /** + * 地址纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceRecordV2Entity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceRecordV2Entity.java new file mode 100644 index 0000000000..7f32333f2e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceRecordV2Entity.java @@ -0,0 +1,84 @@ +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; + +/** + * 服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_service_record_v2") +public class IcServiceRecordV2Entity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String customerId; + + /** + * 服务组织类型 +社区自组织:community_org, +志愿者:ic_user_volunteer, +联建单位:party_unit + */ + private String serviceOrgType; + + /** + * 服务组织ID + */ + private String serviceOrgId; + + /** + * 经办人姓名 + */ + private String principalName; + + /** + * 联系方式 + */ + private String principalContact; + + /** + * 服务时间 + */ + private Date serviceTimeStart; + + /** + * 服务截止时间 + */ + private Date serviceTimeEnd; + + /** + * in_service服务中;completed:已完成;cancel:取消 + */ + private String serviceStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 服务名称 + */ + private String serviceName; + + /** + * 政策依据ID + */ + private String policyId; + + private String serviceCategoryKey; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceScopeV2Entity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceScopeV2Entity.java new file mode 100644 index 0000000000..491aadda15 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceScopeV2Entity.java @@ -0,0 +1,54 @@ +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; + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_service_scope_v2") +public class IcServiceScopeV2Entity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String customerId; + + /** + * 服务记录的ID + */ + private String serviceRecordId; + + /** + * agency单位;grid网格;neighborhood小区 + */ + private String objectType; + + /** + * 选中的组织的ID + */ + private String objectId; + + /** + * 发布范围的组织ID PATH + */ + private String objectIdPath; + + /** + * + */ + private String objectName; + +} 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/redis/IcPartyUnitRedis.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/redis/IcPartyUnitRedis.java index 83113e7903..8ce4a285ce 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/redis/IcPartyUnitRedis.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/redis/IcPartyUnitRedis.java @@ -17,7 +17,14 @@ package com.epmet.redis; +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.Result; +import com.epmet.constant.IcCommunitySelfOrganizationConstant; +import com.epmet.dao.IcCommunitySelfOrganizationDao; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.feign.EpmetUserOpenFeignClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -31,6 +38,10 @@ import org.springframework.stereotype.Component; public class IcPartyUnitRedis { @Autowired private RedisUtils redisUtils; + @Autowired + private IcCommunitySelfOrganizationDao communitySelfOrganizationDao; + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; public void delete(Object[] ids) { @@ -44,4 +55,26 @@ public class IcPartyUnitRedis { return null; } + public String getServiceOrgName(String customerId,String serviceOrgType,String serviceOrgId){ + String serviceOrgNameKey = RedisKeys.getServiceOrgNameKey(customerId, serviceOrgType, serviceOrgId); + Object o = redisUtils.get(serviceOrgNameKey); + if (null != o){ + return o.toString(); + } + String name = ""; + if (serviceOrgType.equals(IcCommunitySelfOrganizationConstant.SERVICE_ORG_TYPE_COMMUNITY_ORG)){ + name = communitySelfOrganizationDao.getCommunityOrgName(serviceOrgId); + }else if (serviceOrgType.equals(IcCommunitySelfOrganizationConstant.SERVICE_ORG_TYPE_PARTY_UNIT)){ + name = communitySelfOrganizationDao.getPartyUnitName(serviceOrgId); + }else if (serviceOrgType.equals(IcCommunitySelfOrganizationConstant.SERVICE_ORG_TYPE_IC_USER_VOLUNTEEr)){ + Result icResiUserDTO = userOpenFeignClient.getIcResiUserDTO(serviceOrgId); + if (!icResiUserDTO.success()){ + throw new EpmetException("getIcResiUserDTO method is failure"); + } + name = icResiUserDTO.getData().getName(); + } + redisUtils.set(serviceOrgNameKey,name,RedisUtils.DEFAULT_EXPIRE); + return name; + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/HeartAttachmentService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/HeartAttachmentService.java new file mode 100644 index 0000000000..9049c4e730 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/HeartAttachmentService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.HeartAttachmentDTO; +import com.epmet.entity.HeartAttachmentEntity; + +import java.util.List; +import java.util.Map; + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface HeartAttachmentService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return HeartAttachmentDTO + * @author generator + * @date 2022-07-18 + */ + HeartAttachmentDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(HeartAttachmentDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(HeartAttachmentDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file 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/IcPolicyCategoryService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyCategoryService.java new file mode 100644 index 0000000000..cb61b3200c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyCategoryService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPolicyCategoryDTO; +import com.epmet.entity.IcPolicyCategoryEntity; + +import java.util.List; +import java.util.Map; + +/** + * 政策匹配资源类型 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcPolicyCategoryService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPolicyCategoryDTO + * @author generator + * @date 2022-07-18 + */ + IcPolicyCategoryDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcPolicyCategoryDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcPolicyCategoryDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleDetailService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleDetailService.java new file mode 100644 index 0000000000..6abc53986c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleDetailService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPolicyRuleDetailDTO; +import com.epmet.entity.IcPolicyRuleDetailEntity; + +import java.util.List; +import java.util.Map; + +/** + * 政策匹配规则明细 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcPolicyRuleDetailService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPolicyRuleDetailDTO + * @author generator + * @date 2022-07-18 + */ + IcPolicyRuleDetailDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcPolicyRuleDetailDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcPolicyRuleDetailDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleService.java new file mode 100644 index 0000000000..923bd7f60e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPolicyRuleDTO; +import com.epmet.entity.IcPolicyRuleEntity; + +import java.util.List; +import java.util.Map; + +/** + * 政策匹配规则 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcPolicyRuleService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcPolicyRuleDTO + * @author generator + * @date 2022-07-18 + */ + IcPolicyRuleDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcPolicyRuleDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcPolicyRuleDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java new file mode 100644 index 0000000000..e13fb4722f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java @@ -0,0 +1,67 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPolicyDTO; +import com.epmet.dto.IcPolicyItemResultDTO; +import com.epmet.dto.IcPolicyRuleDTO; +import com.epmet.dto.form.policy.IcPolicyFormDTO; +import com.epmet.dto.form.policy.IcPolicyPageFormDTO; +import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; +import com.epmet.dto.result.resi.ResiByPolicyInfoResultDTO; +import com.epmet.entity.IcPolicyEntity; +import com.epmet.entity.IcPolicyRuleDetailEntity; + +import java.util.List; +import java.util.Map; + +/** + * 政策表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcPolicyService extends BaseService { + /** + * 房屋信息、统计信息查询有哪些可选项 + * + * @param customerId + * @param groupType + * @return + */ + List itemList(String customerId, String groupType); + + /** + * 政策管理-新增/修改 + * + * @param formDTO + */ + void addOrUpdatePolicy(IcPolicyFormDTO formDTO); + + /** + * 列表查询 + * @param formDTO + * @return + */ + PageData policyList(IcPolicyPageFormDTO formDTO); + + /** + * Desc: 政策列表下拉选 + * @param formDTO + * @author zxc + * @date 2022/7/21 09:48 + */ + List policyListSelect(String userId,String customerId); + + List ruleList(String customerId,String policyId); + + IcPolicyDTO policyDetail(String customerId,String policyId); + + /** + * 政策规则查询 + * @param customerId + * @param ruleId + * @return + */ + Map> listPolicyRules4QueryAndExport(String customerId, String ruleId); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceFeedbackV2Service.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceFeedbackV2Service.java new file mode 100644 index 0000000000..d9a40725bd --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceFeedbackV2Service.java @@ -0,0 +1,79 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcServiceFeedbackV2DTO; +import com.epmet.dto.form.IcServiceFeedbackV2AddFormDTO; +import com.epmet.entity.IcServiceFeedbackV2Entity; + +import java.util.List; +import java.util.Map; + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcServiceFeedbackV2Service extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcServiceFeedbackV2DTO + * @author generator + * @date 2022-07-18 + */ + IcServiceFeedbackV2DTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcServiceFeedbackV2AddFormDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcServiceFeedbackV2DTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceRecordV2Service.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceRecordV2Service.java new file mode 100644 index 0000000000..4682517a00 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceRecordV2Service.java @@ -0,0 +1,100 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcServiceRecordV2DTO; +import com.epmet.dto.form.ServiceRecordV2DetailFormDTO; +import com.epmet.dto.form.IcServiceRecordV2AddEditFormDTO; +import com.epmet.dto.form.ServiceRecordV2ListFormDTO; +import com.epmet.dto.result.ServiceRecordV2DetailResultDTO; +import com.epmet.entity.IcServiceRecordV2Entity; + +import java.util.List; +import java.util.Map; + +/** + * 服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcServiceRecordV2Service extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcServiceRecordV2DTO + * @author generator + * @date 2022-07-18 + */ + IcServiceRecordV2DTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcServiceRecordV2AddEditFormDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcServiceRecordV2AddEditFormDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); + + /** + * Desc:【服务管理】列表 + * @param formDTO + * @author zxc + * @date 2022/7/19 10:24 + */ + PageData serviceRecordV2List(ServiceRecordV2ListFormDTO formDTO); + + /** + * Desc: 详情 + * @param formDTO + * @author zxc + * @date 2022/7/19 16:37 + */ + ServiceRecordV2DetailResultDTO serviceRecordV2Detail(ServiceRecordV2DetailFormDTO formDTO); + + void cancel(IcServiceRecordV2AddEditFormDTO dto); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceScopeV2Service.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceScopeV2Service.java new file mode 100644 index 0000000000..cee7d60ff2 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceScopeV2Service.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcServiceScopeV2DTO; +import com.epmet.entity.IcServiceScopeV2Entity; + +import java.util.List; +import java.util.Map; + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +public interface IcServiceScopeV2Service extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-07-18 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-07-18 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcServiceScopeV2DTO + * @author generator + * @date 2022-07-18 + */ + IcServiceScopeV2DTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void save(IcServiceScopeV2DTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-07-18 + */ + void update(IcServiceScopeV2DTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-07-18 + */ + void delete(String[] ids); +} \ No newline at end of file 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 implements HeartAttachmentService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, HeartAttachmentDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, HeartAttachmentDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public HeartAttachmentDTO get(String id) { + HeartAttachmentEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, HeartAttachmentDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(HeartAttachmentDTO dto) { + HeartAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, HeartAttachmentEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(HeartAttachmentDTO dto) { + HeartAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, HeartAttachmentEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java index 195343850e..bdfe777e7c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java @@ -41,10 +41,12 @@ import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcCommunitySelfOrganizationPersonnelEntity; +import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.CommunitySelfOrgImportExcel; import com.epmet.excel.ImportCommunitySelfOrganization; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OssFeignClient; import com.epmet.service.IcCommunitySelfOrganizationPersonnelService; import com.epmet.service.IcCommunitySelfOrganizationService; @@ -66,6 +68,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; @@ -97,6 +100,8 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl 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 implements IcPolicyCategoryService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPolicyCategoryDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPolicyCategoryDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPolicyCategoryDTO get(String id) { + IcPolicyCategoryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPolicyCategoryDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPolicyCategoryDTO dto) { + IcPolicyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyCategoryEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPolicyCategoryDTO dto) { + IcPolicyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyCategoryEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleDetailServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleDetailServiceImpl.java new file mode 100644 index 0000000000..f18c902037 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleDetailServiceImpl.java @@ -0,0 +1,81 @@ +package com.epmet.service.impl; + +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.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcPolicyRuleDetailDao; +import com.epmet.dto.IcPolicyRuleDetailDTO; +import com.epmet.entity.IcPolicyRuleDetailEntity; +import com.epmet.service.IcPolicyRuleDetailService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 政策匹配规则明细 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Service +public class IcPolicyRuleDetailServiceImpl extends BaseServiceImpl implements IcPolicyRuleDetailService { + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPolicyRuleDetailDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPolicyRuleDetailDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPolicyRuleDetailDTO get(String id) { + IcPolicyRuleDetailEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPolicyRuleDetailDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPolicyRuleDetailDTO dto) { + IcPolicyRuleDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleDetailEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPolicyRuleDetailDTO dto) { + IcPolicyRuleDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleDetailEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleServiceImpl.java new file mode 100644 index 0000000000..b0a18734a4 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleServiceImpl.java @@ -0,0 +1,82 @@ +package com.epmet.service.impl; + +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.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcPolicyRuleDao; +import com.epmet.dto.IcPolicyRuleDTO; +import com.epmet.entity.IcPolicyRuleEntity; +import com.epmet.service.IcPolicyRuleService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 政策匹配规则 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Service +public class IcPolicyRuleServiceImpl extends BaseServiceImpl implements IcPolicyRuleService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcPolicyRuleDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcPolicyRuleDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcPolicyRuleDTO get(String id) { + IcPolicyRuleEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcPolicyRuleDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPolicyRuleDTO dto) { + IcPolicyRuleEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcPolicyRuleDTO dto) { + IcPolicyRuleEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java new file mode 100644 index 0000000000..424af6e5ae --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java @@ -0,0 +1,343 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.Constant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.DictTypeEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dao.*; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient; +import com.epmet.dto.IcPolicyCategoryDTO; +import com.epmet.dto.IcPolicyDTO; +import com.epmet.dto.IcPolicyItemResultDTO; +import com.epmet.dto.IcPolicyRuleDTO; +import com.epmet.dto.form.policy.IcPolicyFormDTO; +import com.epmet.dto.form.policy.IcPolicyPageFormDTO; +import com.epmet.dto.form.policy.IcPolicyRuleDetailDTO; +import com.epmet.dto.form.policy.IcPolicyRuleFormDTO; +import com.epmet.entity.*; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.service.IcPolicyService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +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 org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +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-18 + */ +@Service +public class IcPolicyServiceImpl extends BaseServiceImpl implements IcPolicyService, ResultDataResolver { + + @Autowired + private IcPolicyRuleDetailDao policyRuleDetailDao; + + @Autowired + private DataAggregatorOpenFeignClient dataAggregatorOpenFeignClient; + @Autowired + private IcPolicyCategoryDao icPolicyCategoryDao; + @Autowired + private IcPolicyRuleDao icPolicyRuleDao; + @Autowired + private HeartAttachmentDao heartAttachmentDao; + @Autowired + private IcPolicyRuleDetailDao icPolicyRuleDetailDao; + @Autowired + private EpmetAdminOpenFeignClient adminOpenFeignClient; + + /** + * 房屋信息、统计信息查询有哪些可选项 + * + * @param customerId + * @param groupType + * @return + */ + @Override + public List itemList(String customerId, String groupType) { + if (StringUtils.isBlank(groupType)) { + return new ArrayList<>(); + } + List resultList = baseDao.selectItemList(customerId, groupType); + if (CollectionUtils.isEmpty(resultList)) { + return baseDao.selectItemList(Constant.DEFAULT_CUSTOMER, groupType); + } + return resultList; + } + + /** + * 政策管理-新增/修改 + * + * @param formDTO + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void addOrUpdatePolicy(IcPolicyFormDTO formDTO) { + // 设置所属组织 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + // 校验参数 + checkAddFormDTO(formDTO); + IcPolicyEntity icPolicyEntity = ConvertUtils.sourceToTarget(formDTO, IcPolicyEntity.class); + icPolicyEntity.setOrgId(staffInfo.getAgencyId()); + icPolicyEntity.setOrgIdPath(StringUtils.isNotBlank(staffInfo.getAgencyPIds()) ? staffInfo.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfo.getAgencyId()) : staffInfo.getAgencyId()); + if(StringUtils.isNotBlank(formDTO.getPolicyId())){ + icPolicyEntity.setId(formDTO.getPolicyId()); + baseDao.updateById(icPolicyEntity); + //删除规则、规则明细、分类、附件 + icPolicyRuleDao.deleteByIcPolicyId(icPolicyEntity.getId()); + icPolicyCategoryDao.deleteByIcPolicyId(icPolicyEntity.getId()); + heartAttachmentDao.deleteByBusinessId(icPolicyEntity.getId()); + }else{ + // 插入政策主表 + baseDao.insert(icPolicyEntity); + } + // 插入细则 + int ruleSort = 1; + for (IcPolicyRuleFormDTO rule : formDTO.getRuleList()) { + IcPolicyRuleEntity ruleEntity = new IcPolicyRuleEntity(); + ruleEntity.setCustomerId(formDTO.getCustomerId()); + ruleEntity.setIcPolicyId(icPolicyEntity.getId()); + ruleEntity.setRuleName(rule.getRuleName()); + ruleEntity.setSort(ruleSort); + icPolicyRuleDao.insert(ruleEntity); + //删除规则明细 + icPolicyRuleDetailDao.deleteByRuleId(ruleEntity.getId()); + + if (CollectionUtils.isNotEmpty(rule.getResiRuleList())) { + int resiRuleSort = 1; + for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getResiRuleList()) { + ValidatorUtils.validateEntity(ruleDetailDTO,IcPolicyRuleDetailDTO.ResiRulerShowGroup.class); + IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class); + icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId()); + icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId()); + icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId()); + icPolicyRuleDetailEntity.setSort(resiRuleSort); + icPolicyRuleDetailEntity.setGroupType("resi"); + icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity); + resiRuleSort++; + } + } + if (CollectionUtils.isNotEmpty(rule.getHouseRuleList())) { + int houseRuleSort = 1; + for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getHouseRuleList()) { + ValidatorUtils.validateEntity(ruleDetailDTO,IcPolicyRuleDetailDTO.HouseRulerShowGroup.class); + IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class); + icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId()); + icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId()); + icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId()); + icPolicyRuleDetailEntity.setSort(houseRuleSort); + icPolicyRuleDetailEntity.setGroupType("house"); + icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity); + houseRuleSort++; + } + } + if (CollectionUtils.isNotEmpty(rule.getStatRuleList())) { + int statRuleSort = 1; + for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getStatRuleList()) { + ValidatorUtils.validateEntity(ruleDetailDTO,IcPolicyRuleDetailDTO.StatRulerShowGroup.class); + IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class); + icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId()); + icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId()); + icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId()); + icPolicyRuleDetailEntity.setSort(statRuleSort); + icPolicyRuleDetailEntity.setGroupType("stat"); + icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity); + statRuleSort++; + } + } + } + // 插入分类 + if (CollectionUtils.isNotEmpty(formDTO.getCategoryList())) { + for (IcPolicyCategoryDTO categoryDTO : formDTO.getCategoryList()) { + IcPolicyCategoryEntity icPolicyCategoryEntity = new IcPolicyCategoryEntity(); + icPolicyCategoryEntity.setCustomerId(formDTO.getCustomerId()); + icPolicyCategoryEntity.setIcPolicyId(icPolicyEntity.getId()); + icPolicyCategoryEntity.setCategoryCode(categoryDTO.getCategoryCode()); + icPolicyCategoryEntity.setCodePath(categoryDTO.getCodePath()); + icPolicyCategoryDao.insert(icPolicyCategoryEntity); + } + } + // 插入附件 + if (CollectionUtils.isNotEmpty(formDTO.getAttachmentList())) { + int sort = 1; + for (FileCommonDTO fileCommonDTO : formDTO.getAttachmentList()) { + HeartAttachmentEntity heartAttachment = ConvertUtils.sourceToTarget(fileCommonDTO,HeartAttachmentEntity.class); + heartAttachment.setCustomerId(formDTO.getCustomerId()); + heartAttachment.setBusinessId(icPolicyEntity.getId()); + heartAttachment.setAttachTo("ic_policy"); + // heartAttachment.setName(fileCommonDTO.getName()); + // heartAttachment.setFormat(fileCommonDTO.getFormat()); + // heartAttachment.setType(fileCommonDTO.getType()); + // heartAttachment.setUrl(fileCommonDTO.getUrl()); + heartAttachment.setSort(sort); + heartAttachment.setStatus(Constant.AUTO_PASSED); + // heartAttachment.setDuration(fileCommonDTO.getDuration()); + heartAttachmentDao.insert(heartAttachment); + sort++; + } + } + } + + + private void checkAddFormDTO(IcPolicyFormDTO formDTO) { + //同组织下,政策标题唯一 + LambdaQueryWrapper policyEntityLambdaQueryWrapper=new LambdaQueryWrapper<>(); + policyEntityLambdaQueryWrapper.eq(IcPolicyEntity::getTitle,formDTO.getTitle()) + .eq(IcPolicyEntity::getOrgId,formDTO.getAgencyId()); + policyEntityLambdaQueryWrapper.ne(StringUtils.isNotBlank(formDTO.getPolicyId()),IcPolicyEntity::getId,formDTO.getPolicyId()); + int count=baseDao.selectCount(policyEntityLambdaQueryWrapper); + if(count>0){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"当前组织内已经存在相同标题的政策","当前组织内已经存在相同标题的政策"); + } + List ruleList = formDTO.getRuleList(); + for (IcPolicyRuleFormDTO rule : ruleList) { + if (CollectionUtils.isEmpty(rule.getResiRuleList()) + && CollectionUtils.isEmpty(rule.getHouseRuleList()) + && CollectionUtils.isEmpty(rule.getStatRuleList())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员信息、房屋信息、统计信息任意选择一项填写", "请填写细则明细"); + } + } + // 政策文件最多3个先不限制了吧,前端控制下 + } + + /** + * 列表查询 + * + * @param formDTO + * @return + */ + @Override + public PageData policyList(IcPolicyPageFormDTO formDTO) { + // 设置所属组织 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常"); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.policyList(formDTO.getCustomerId(),staffInfo.getAgencyId(),formDTO.getTitle(),formDTO.getContent(),formDTO.getExpiredFlag()); + if (CollectionUtils.isNotEmpty(list)) { + for (IcPolicyDTO icPolicyDTO : list) { + // 查询字典表 + Result> levelRes = adminOpenFeignClient.dictMap(DictTypeEnum.POLICY_LEVEL.getCode()); + Map levelMap = levelRes.success() && MapUtils.isNotEmpty(levelRes.getData()) ? levelRes.getData() : new HashMap<>(); + icPolicyDTO.setPolicyLevelName(MapUtils.isNotEmpty(levelMap) && levelMap.containsKey(icPolicyDTO.getPolicyLevel()) ? levelMap.get(icPolicyDTO.getPolicyLevel()) : StrConstant.EPMETY_STR); + } + } + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + @Override + public List policyListSelect(String userId,String customerId) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); + if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常"); + } + return baseDao.policyList(customerId, staffInfo.getAgencyId(), null,null,null); + } + + @Override + public List ruleList(String customerId, String policyId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPolicyRuleEntity::getCustomerId, customerId) + .eq(IcPolicyRuleEntity::getIcPolicyId, policyId) + .orderByAsc(IcPolicyRuleEntity::getSort); + List list = icPolicyRuleDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(list, IcPolicyRuleDTO.class); + } + + @Override + public IcPolicyDTO policyDetail(String customerId, String policyId) { + IcPolicyEntity policyEntity = baseDao.selectById(policyId); + IcPolicyDTO icPolicyDTO = ConvertUtils.sourceToTarget(policyEntity, IcPolicyDTO.class); + if (null != icPolicyDTO) { + icPolicyDTO.setPolicyId(policyId); + + LambdaQueryWrapper attWrapper = new LambdaQueryWrapper<>(); + attWrapper.eq(HeartAttachmentEntity::getBusinessId, policyId) + .orderByAsc(HeartAttachmentEntity::getSort); + List attList = heartAttachmentDao.selectList(attWrapper); + icPolicyDTO.setAttachmentList(CollectionUtils.isNotEmpty(attList) ? ConvertUtils.sourceToTarget(attList, FileCommonDTO.class) : new ArrayList<>()); + + LambdaQueryWrapper cateWrapper = new LambdaQueryWrapper<>(); + cateWrapper.eq(IcPolicyCategoryEntity::getIcPolicyId, policyId); + List cateList = icPolicyCategoryDao.selectList(cateWrapper); + icPolicyDTO.setCategoryList(CollectionUtils.isNotEmpty(cateList) ? ConvertUtils.sourceToTarget(cateList, IcPolicyCategoryDTO.class) : new ArrayList<>()); + + List ruleDTOList = ruleList(customerId, policyId); + List ruleList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(ruleDTOList)) { + ruleList = ConvertUtils.sourceToTarget(ruleDTOList, IcPolicyRuleFormDTO.class); + for (IcPolicyRuleFormDTO rule : ruleList) { + //人员信息 + LambdaQueryWrapper ruleDetailWrapper = new LambdaQueryWrapper<>(); + ruleDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId()) + .eq(IcPolicyRuleDetailEntity::getGroupType, "resi") + .orderByAsc(IcPolicyRuleDetailEntity::getSort); + List resiList = icPolicyRuleDetailDao.selectList(ruleDetailWrapper); + List resiRuleList = CollectionUtils.isNotEmpty(resiList) ? ConvertUtils.sourceToTarget(resiList, IcPolicyRuleDetailDTO.class) : new ArrayList<>(); + rule.setResiRuleList(resiRuleList); + + //房屋信息 + LambdaQueryWrapper houseDetailWrapper = new LambdaQueryWrapper<>(); + houseDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId()) + .eq(IcPolicyRuleDetailEntity::getGroupType, "house") + .orderByAsc(IcPolicyRuleDetailEntity::getSort); + List houseList = icPolicyRuleDetailDao.selectList(houseDetailWrapper); + List houseRuleList = CollectionUtils.isNotEmpty(houseList) ? ConvertUtils.sourceToTarget(houseList, IcPolicyRuleDetailDTO.class) : new ArrayList<>(); + rule.setHouseRuleList(houseRuleList); + + //统计信息 + LambdaQueryWrapper statDetailWrapper = new LambdaQueryWrapper<>(); + statDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId()) + .eq(IcPolicyRuleDetailEntity::getGroupType, "stat") + .orderByAsc(IcPolicyRuleDetailEntity::getSort); + List statList = icPolicyRuleDetailDao.selectList(statDetailWrapper); + List statRuleList = CollectionUtils.isNotEmpty(statList) ? ConvertUtils.sourceToTarget(statList, IcPolicyRuleDetailDTO.class) : new ArrayList<>(); + rule.setStatRuleList(statRuleList); + } + } + icPolicyDTO.setRuleList(ruleList); + } + return icPolicyDTO; + } + + public Map> listPolicyRules4QueryAndExport(String customerId, String ruleId) { + ResisByPolicyRulesFormDTO form = new ResisByPolicyRulesFormDTO(); + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(IcPolicyRuleDetailEntity::getCustomerId, customerId); + query.eq(IcPolicyRuleDetailEntity::getRuleId, ruleId); + query.orderByAsc(IcPolicyRuleDetailEntity::getSort); + List rules = policyRuleDetailDao.selectList(query); + + // 将查询出的数据转化成aggre服务能接受的格式 + return rules.stream().collect(Collectors.groupingBy(IcPolicyRuleDetailEntity::getGroupType, Collectors.toList())); + } +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceFeedbackV2ServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceFeedbackV2ServiceImpl.java new file mode 100644 index 0000000000..d1bdf326cc --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceFeedbackV2ServiceImpl.java @@ -0,0 +1,142 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcServiceFeedbackV2Dao; +import com.epmet.dto.IcServiceFeedbackV2DTO; +import com.epmet.dto.form.IcServiceFeedbackV2AddFormDTO; +import com.epmet.entity.HeartAttachmentEntity; +import com.epmet.entity.IcServiceFeedbackV2Entity; +import com.epmet.entity.IcServiceOrgEntity; +import com.epmet.entity.IcServiceRecordV2Entity; +import com.epmet.service.HeartAttachmentService; +import com.epmet.service.IcServiceFeedbackV2Service; +import com.epmet.service.IcServiceRecordV2Service; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +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.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 服务记录反馈表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Service +@Slf4j +public class IcServiceFeedbackV2ServiceImpl extends BaseServiceImpl implements IcServiceFeedbackV2Service { + @Autowired + private IcServiceRecordV2Service icServiceRecordV2Service; + @Autowired + private HeartAttachmentService heartAttachmentService; + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcServiceFeedbackV2DTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcServiceFeedbackV2DTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcServiceFeedbackV2DTO get(String id) { + IcServiceFeedbackV2Entity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcServiceFeedbackV2DTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcServiceFeedbackV2AddFormDTO formDTO) { + //1.查询服务记录是否存在 + IcServiceRecordV2Entity recordV2Entity = icServiceRecordV2Service.selectById(formDTO.getServiceRecordId()); + if (null == recordV2Entity) { + log.error(String.format("新增服务反馈记录失败,未查询到服务记录,服务记录Id->%s", formDTO.getServiceRecordId())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "新增服务反馈记录失败,未查询到服务记录"); + } + if (!"in_service".equals(recordV2Entity.getServiceStatus())) { + String msg = "服务状态不是进行中的,不允许反馈"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg); + } + + //2.校验是否已存在服务反馈 + LambdaQueryWrapper tWrapper = new LambdaQueryWrapper<>(); + tWrapper.eq(IcServiceFeedbackV2Entity::getServiceRecordId, formDTO.getServiceRecordId()); + List feedbackList = baseDao.selectList(tWrapper); + if (!CollectionUtils.isEmpty(feedbackList)) { + log.error(String.format("新增服务反馈记录失败,当前服务记录已存在反馈记录,服务记录Id->%s", formDTO.getServiceRecordId())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "新增服务反馈记录失败,当前服务记录已存在反馈记录"); + } + + //3.更新服务记录表数据状态 + recordV2Entity.setServiceStatus(formDTO.getServiceStatus()); + icServiceRecordV2Service.updateById(recordV2Entity); + + //4.新增服务反馈记录 + IcServiceFeedbackV2Entity feedback = ConvertUtils.sourceToTarget(formDTO, IcServiceFeedbackV2Entity.class); + feedback.setCustomerId(formDTO.getCustomerId()); + feedback.setServiceRecordId(formDTO.getServiceRecordId()); + baseDao.insert(feedback); + List AttachmentList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(formDTO.getFileList())) { + int sort = 0; + for (IcServiceFeedbackV2AddFormDTO.FileDTO file : formDTO.getFileList()) { + HeartAttachmentEntity attachment = ConvertUtils.sourceToTarget(file, HeartAttachmentEntity.class); + attachment.setCustomerId(formDTO.getCustomerId()); + attachment.setBusinessId(feedback.getId()); + attachment.setAttachTo("ic_service_record_v2"); + attachment.setSort(sort++); + attachment.setStatus("auto_passed"); + AttachmentList.add(attachment); + } + heartAttachmentService.insertBatch(AttachmentList); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcServiceFeedbackV2DTO dto) { + IcServiceFeedbackV2Entity entity = ConvertUtils.sourceToTarget(dto, IcServiceFeedbackV2Entity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordServiceImpl.java index cb88587cdf..0020054c21 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceRecordServiceImpl.java @@ -249,7 +249,7 @@ public class IcServiceRecordServiceImpl extends BaseServiceImpl implements IcServiceRecordV2Service { + + @Autowired + private IcPartyUnitRedis partyUnitRedis; + @Autowired + private IcServiceScopeV2Service icServiceScopeV2Service; + @Autowired + private IcServiceRecordServiceImpl icServiceRecordServiceImpl; + @Autowired + private IcServiceFeedbackV2Service icServiceFeedbackV2Service; + @Autowired + private HeartAttachmentService heartAttachmentService; + @Autowired + private IcServiceScopeDao serviceScopeDao; + @Autowired + private IcServiceFeedbackV2Dao serviceFeedbackV2Dao; + @Autowired + private IcServiceScopeV2Dao icServiceScopeV2Dao; + @Autowired + private EpmetMessageOpenFeignClient messageOpenFeignClient; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcServiceRecordV2DTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcServiceRecordV2DTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcServiceRecordV2DTO get(String id) { + IcServiceRecordV2Entity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcServiceRecordV2DTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcServiceRecordV2AddEditFormDTO formDTO) { + //1.服务记录数据 + IcServiceRecordV2Entity entity = ConvertUtils.sourceToTarget(formDTO, IcServiceRecordV2Entity.class); + entity.setId(IdWorker.getIdStr()); + entity.setServiceStatus("in_service"); + + //2.新增服务范围数据 + List scopeList = new ArrayList<>(); + formDTO.getObjList().stream().forEach(s -> { + String[] scopeObjectIdPathAndName = icServiceRecordServiceImpl.getScopeObjectIdPath(s.getObjectType(), s.getObjectId()); + IcServiceScopeV2Entity scope = new IcServiceScopeV2Entity(); + scope.setCustomerId(formDTO.getCustomerId()); + scope.setServiceRecordId(entity.getId()); + scope.setObjectType(s.getObjectType()); + scope.setObjectId(s.getObjectId()); + scope.setObjectIdPath(scopeObjectIdPathAndName[0]); + scope.setObjectName(scopeObjectIdPathAndName[1]); + scopeList.add(scope); + }); + icServiceScopeV2Service.insertBatch(scopeList); + + //3.新增服务反馈数据feedback + if(null != formDTO.getFeedback()){ + entity.setServiceStatus(formDTO.getFeedback().getServiceStatus()); + IcServiceFeedbackV2Entity feedback = ConvertUtils.sourceToTarget(formDTO.getFeedback(), IcServiceFeedbackV2Entity.class); + feedback.setCustomerId(formDTO.getCustomerId()); + feedback.setServiceRecordId(entity.getId()); + icServiceFeedbackV2Service.insert(feedback); + // 反馈附件列表 + if (CollectionUtils.isNotEmpty(formDTO.getFeedback().getFileList())) { + List attachmentList = new ArrayList<>(); + int[] sort = {0}; + formDTO.getFeedback().getFileList().forEach(f->{ + HeartAttachmentEntity attachment = ConvertUtils.sourceToTarget(f, HeartAttachmentEntity.class); + attachment.setCustomerId(formDTO.getCustomerId()); + attachment.setBusinessId(feedback.getId()); + attachment.setAttachTo("ic_service_record_v2"); + attachment.setSort(sort[0]); + attachment.setStatus("auto_passed"); + sort[0]++; + attachmentList.add(attachment); + }); + heartAttachmentService.insertBatch(attachmentList); + } + } + + insert(entity); + // 未直接反馈的,给服务组织发送短信 + // XXX社区发起一个【服务名称】服务,请服务完成后尽快反馈,谢谢合作。 + if(null==formDTO.getFeedback()){ + sendPhoneMsgToServiceOrg(formDTO.getCustomerId(),formDTO.getUserId(),formDTO.getServiceOrgId(),formDTO.getServiceOrgType(),formDTO.getServiceName()); + } + } + /** + * 未直接反馈的,给服务组织(社区自组织、联建单位、志愿者)发送短信 + */ + private void sendPhoneMsgToServiceOrg(String customerId, String staffId, String serviceOrgId, String serviceOrgType, String serviceName) { + ServerInfoDTO serverInfoDTO = SpringContextUtils.getBean(IcUserDemandRecService.class).queryServiceName(serviceOrgId, serviceOrgType); + if (null == serverInfoDTO || StringUtils.isBlank(serverInfoDTO.getMobile()) || serverInfoDTO.getMobile().length() < 11 || serverInfoDTO.getMobile().contains("-")) { + return; + } + // XXX社区发起一个【服务名称】服务,请服务完成后尽快反馈,谢谢合作。 + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, staffId); + if (null == staffInfoCacheResult || StringUtils.isBlank(staffInfoCacheResult.getAgencyName())) { + return; + } + List 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 + @Transactional(rollbackFor = Exception.class) + public void update(IcServiceRecordV2AddEditFormDTO formDTO) { + //1.校验数据是否存在 + if (null == baseDao.selectById(formDTO.getServiceRecordId())) { + log.error(String.format("修改服务记录失败,未查询到服务记录,服务记录Id->%s", formDTO.getServiceRecordId())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "修改服务记录失败,未查询到服务记录"); + } + IcServiceRecordV2Entity entity = ConvertUtils.sourceToTarget(formDTO, IcServiceRecordV2Entity.class); + entity.setId(formDTO.getServiceRecordId()); + updateById(entity); + } + + @Override + public void cancel(IcServiceRecordV2AddEditFormDTO formDTO) { + //1.校验数据是否存在 + IcServiceRecordV2Entity entity = baseDao.selectById(formDTO.getServiceRecordId()); + if (null == entity) { + log.error(String.format("取消服务记录失败,未查询到服务记录,服务记录Id->%s", formDTO.getServiceRecordId())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "取消服务记录失败,未查询到服务记录"); + } + if (!"in_service".equals(entity.getServiceStatus())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), String.format("服务状态:%s", entity.getServiceStatus()), "只有服务中的记录可以取消"); + } + //2.删除主表、字表数据【进行中数据不存在反馈记录】 + baseDao.deleteById(entity); + + LambdaQueryWrapper tWrapper = new LambdaQueryWrapper<>(); + tWrapper.eq(IcServiceScopeV2Entity::getServiceRecordId, formDTO.getServiceRecordId()); + icServiceScopeV2Dao.delete(tWrapper); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * Desc:【服务管理】列表 + * @param formDTO + * @author zxc + * @date 2022/7/19 10:24 + */ + @Override + public PageData serviceRecordV2List(ServiceRecordV2ListFormDTO formDTO) { + PageData result = new PageData<>(new ArrayList<>(), NumConstant.ZERO_L); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo){ + throw new EpmetException("未查询到工作人员信息+"+formDTO.getUserId()); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.serviceRecordV2List(formDTO)); + result.setList(pageInfo.getList()); + result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal()))); + if (CollectionUtils.isNotEmpty(result.getList())){ + result.getList().forEach(r -> { + r.setServiceOrgName(partyUnitRedis.getServiceOrgName(formDTO.getCustomerId(), r.getServiceOrgType(),r.getServiceOrgId())); + }); + } + return result; + } + + /** + * Desc: 详情 + * @param formDTO + * @author zxc + * @date 2022/7/19 16:37 + */ + @Override + public ServiceRecordV2DetailResultDTO serviceRecordV2Detail(ServiceRecordV2DetailFormDTO formDTO) { + IcServiceRecordV2Entity entity = baseDao.selectById(formDTO.getServiceRecordId()); + if (null == entity){ + return new ServiceRecordV2DetailResultDTO(); + } + ServiceRecordV2DetailResultDTO result = ConvertUtils.sourceToTarget(entity, ServiceRecordV2DetailResultDTO.class); + result.setServiceTimeStart(DateUtils.format(entity.getServiceTimeStart(),DateUtils.DATE_PATTERN)); + result.setServiceTimeEnd(DateUtils.format(entity.getServiceTimeEnd(),DateUtils.DATE_PATTERN)); + result.setServiceRecordId(entity.getId()); + List scopeV2DTOS = serviceScopeDao.selectListV2(formDTO.getServiceRecordId()); + result.setGridIdList(scopeV2DTOS); + IcServiceFeedbackV2DTO feedbackV2 = serviceFeedbackV2Dao.getFeedbackV2(formDTO.getServiceRecordId()); + result.setFeedback(feedbackV2); + return result; + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceScopeV2ServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceScopeV2ServiceImpl.java new file mode 100644 index 0000000000..8909c3b234 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceScopeV2ServiceImpl.java @@ -0,0 +1,82 @@ +package com.epmet.service.impl; + +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.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcServiceScopeV2Dao; +import com.epmet.dto.IcServiceScopeV2DTO; +import com.epmet.entity.IcServiceScopeV2Entity; +import com.epmet.service.IcServiceScopeV2Service; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 服务范围表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Service +public class IcServiceScopeV2ServiceImpl extends BaseServiceImpl implements IcServiceScopeV2Service { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcServiceScopeV2DTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcServiceScopeV2DTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IcServiceScopeV2DTO get(String id) { + IcServiceScopeV2Entity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcServiceScopeV2DTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcServiceScopeV2DTO dto) { + IcServiceScopeV2Entity entity = ConvertUtils.sourceToTarget(dto, IcServiceScopeV2Entity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcServiceScopeV2DTO dto) { + IcServiceScopeV2Entity entity = ConvertUtils.sourceToTarget(dto, IcServiceScopeV2Entity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file 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 + + + + ${log.path}/rocketmqclient.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + + + + @@ -156,6 +180,10 @@ + + + + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartAttachmentDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartAttachmentDao.xml new file mode 100644 index 0000000000..0a722db77b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartAttachmentDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from heart_attachment where BUSINESS_ID=#{businessId} + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml index fd457a3628..1ab8c2264b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml @@ -63,7 +63,10 @@ so.LATITUDE AS latitude, so.ADDRESS as address, so.ID as orgId, - so.remark + so.remark, + so.sync_type AS syncType, + so.dept_id AS deptId, + so.dept_staff_id AS deptStaffId FROM ic_community_self_organization so WHERE so.DEL_FLAG = 0 @@ -196,4 +199,11 @@ ) + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyCategoryDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyCategoryDao.xml new file mode 100644 index 0000000000..b862cc8112 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyCategoryDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + delete from ic_policy_category where IC_POLICY_ID=#{icPolicyId} + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyDao.xml new file mode 100644 index 0000000000..57fdfd27cd --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyDao.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDao.xml new file mode 100644 index 0000000000..1c87b556cf --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + delete from ic_policy_rule where IC_POLICY_ID = #{policyId} + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDetailDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDetailDao.xml new file mode 100644 index 0000000000..82a78d96f5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDetailDao.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from ic_policy_rule_detail where RULE_ID=#{ruleId} + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceFeedbackV2Dao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceFeedbackV2Dao.xml new file mode 100644 index 0000000000..576d6c8aab --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceFeedbackV2Dao.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceRecordV2Dao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceRecordV2Dao.xml new file mode 100644 index 0000000000..89f8764a30 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceRecordV2Dao.xml @@ -0,0 +1,47 @@ + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeDao.xml index 026d8c6ac4..0cb231d71c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeDao.xml @@ -39,4 +39,15 @@ s.DEL_FLAG = '0' AND s.SERVICE_RECORD_ID = #{serviceRecordId} + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeV2Dao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeV2Dao.xml new file mode 100644 index 0000000000..9692853a65 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceScopeV2Dao.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml index 1f21893994..259d1dc325 100644 --- a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-job.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-prod.yml index 6bffd4ae87..202b2bea2e 100644 --- a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-job.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-test.yml b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-test.yml index b0ef2bf2f9..8a92703f60 100644 --- a/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-job.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 1e0d00c9ba..0aaf92db4a 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -43,6 +43,11 @@ epmet-message-client 2.0.0 + + com.epmet + pli-power-base-client + 2.0.0 + org.springframework.boot spring-boot-starter-web diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java new file mode 100644 index 0000000000..4fb990d033 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java @@ -0,0 +1,17 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; + +public interface PliPowerService { + + /** + * 访客登出 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhy + * @date 2022/5/30 10:25 + */ + Result visitorLogout(VisitorLogoutFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java new file mode 100644 index 0000000000..ed54b7e6d9 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java @@ -0,0 +1,31 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.plugin.power.feign.PliPowerFeignClient; +import com.epmet.service.PliPowerService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * @Description + * @ClassName StatsUserServiceImpl + * @Auth wangc + * @Date 2020-06-29 09:41 + */ +@Service +public class PliPowerServiceImpl implements PliPowerService { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerFeignClient pliPowerFeignClient; + + @Override + public Result visitorLogout(VisitorLogoutFormDTO formDTO) { + return pliPowerFeignClient.visitorLogout(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java new file mode 100644 index 0000000000..41ffa19ecc --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java @@ -0,0 +1,41 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.service.PliPowerService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 访客登出 + * + * @author zhy + * @date 2022/5/30 10:23 + */ +@Component("pliVisitorLogoutTask") +public class PliVisitorLogoutTask implements ITask { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerService pliPowerService; + + @Override + public void run(String params) { + logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params); + VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class); + } + Result result = pliPowerService.visitorLogout(formDTO); + if (result.success()) { + logger.info("VisitorLogoutTask定时任务执行成功"); + } else { + logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcDataSyncTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcDataSyncTask.java new file mode 100644 index 0000000000..c92144ca26 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ic/IcDataSyncTask.java @@ -0,0 +1,36 @@ +package com.epmet.task.ic; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.task.ITask; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * desc:定时弥补数据 保证数据的一致性 + */ +@Slf4j +@Component("icDataSyncTask") +public class IcDataSyncTask implements ITask { + + @Resource + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + /** + * 执行定时任务接口 + * + * @param params 参数,多参数使用JSON数据 + */ + @Override + public void run(String customerId) { + log.info("icDataSyncTask定时任务正在执行,参数为customerId:{}", customerId); + Result result = epmetUserOpenFeignClient.icDataSyncTask(customerId); + if (result.success()) { + log.info("icDataSyncTask定时任务正在执行定时任务执行成功"); + } else { + log.warn("icDataSyncTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + } + } +} 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/deploy/docker-compose-dev.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml index 4c672bbdc6..3ab6727834 100644 --- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-message.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml index 121ed15355..0b9082697a 100644 --- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-message.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml index ad84863301..b256ee9150 100644 --- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-message.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java index 5a2a928d7a..120a8d5f7e 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java @@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync; public class MessageApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(MessageApplication.class, args); } 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/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index 1c4e2f2bfd..1f5a8c83bf 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -152,6 +152,8 @@ shutdown: waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 rocketmq: + client: + logUseSlf4j: true name-server: @rocketmq.nameserver@ producer: group: @rocketmq.producer.group@ diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml index 6b34183b22..338e0b9495 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml @@ -139,12 +139,36 @@ + + + + ${log.path}/rocketmqclient.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + + + + @@ -158,6 +182,10 @@ + + + + diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml index 7e1ef5224e..aa8f8011c2 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-oss.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml index 4f1e024566..8bb390b032 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-oss.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml index 3a849e0e50..8beffda74d 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-oss.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml index 8a4c242e3b..4bb1218f57 100644 --- a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-point.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-prod.yml index de8dc52452..bc9be077b5 100644 --- a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-point.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-test.yml b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-test.yml index c8224eba1a..8655bcee58 100644 --- a/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-point.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java index 7315813d90..47a7df815a 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java @@ -20,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableAsync; @EnableAsync public class EpmetPointApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(EpmetPointApplication.class, args); } diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index 58694a45a2..2d1ab19dc5 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-third.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-prod.yml index 04d9efb87a..247aef82a4 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-third.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml index 2127189ea7..fafa023c22 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-third.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java index bacb67e3cf..2b985f6316 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java @@ -1,9 +1,12 @@ package com.epmet.controller; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ModuleConstant; import com.epmet.service.ComponentVerifyTicketService; import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,6 +23,8 @@ public class WeChatNotifyController { @Autowired private ComponentVerifyTicketService componentVerifyTicketService; + @Autowired + private DistributedLock distributedLock; /** * @Description 定时获取 (令牌,component_access_token) @@ -29,10 +34,18 @@ public class WeChatNotifyController { */ @PostMapping("componentaccesstoken") public Result getComponentAccessToken() { - log.info("开始获取【component_access_token】......"); - String accessTokenCountFlag = ModuleConstant.ACCOUNT_TOKEN_FLAG_TWO; - componentVerifyTicketService.getComponentAccessToken(accessTokenCountFlag); - log.info("已成功获取到【component_access_token】......"); + RLock lock = null; + try { + lock = distributedLock.tryLock("refresh_component_access_token"); + log.info("开始获取【component_access_token】......"); + String accessTokenCountFlag = ModuleConstant.ACCOUNT_TOKEN_FLAG_TWO; + componentVerifyTicketService.getComponentAccessToken(accessTokenCountFlag); + log.info("已成功获取到【component_access_token】......"); + }catch (Exception e){ + log.warn("定时刷新component_access_token失败:".concat(ExceptionUtils.getErrorStackTrace(e))); + }finally { + distributedLock.unLock(lock); + } return new Result(); } @@ -53,9 +66,17 @@ public class WeChatNotifyController { */ @PostMapping("refreshtoken") public Result refreshToken(){ - log.info("开始刷新/获取接口调用令牌......"); - componentVerifyTicketService.refreshToken(); - log.info("刷新/获取接口调用令牌......成功了"); + RLock lock = null; + try { + lock = distributedLock.tryLock("refresh_authorizer_access_token"); + log.info("开始刷新/获取接口调用令牌......"); + componentVerifyTicketService.refreshToken(); + log.info("刷新/获取接口调用令牌......成功了"); + }catch (Exception e){ + log.warn("定时刷新authorizer_access_token失败:".concat(ExceptionUtils.getErrorStackTrace(e))); + }finally { + distributedLock.unLock(lock); + } return new Result(); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java index 52d258308a..8e6ab35c55 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java @@ -141,6 +141,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { WxResult result = new WxResult<>(); String url = WxMaCodeConstant.SUBMIT_AUDIT_URL + "?" + "access_token=" + accessToken; Result submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(auditRequest)); + log.info("submitAudit result:{}",JSON.toJSONString(submitResult)); if (!submitResult.success()) { result.setErrorCode(submitResult.getCode()); result.setErrorMsg(submitResult.getMsg()); @@ -148,7 +149,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { } JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); + result.setErrorMsg(jsonObject.getString(ERR_MSG)); result.setData(jsonObject.getString("auditid")); return result; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml index 573b117d9d..67cbb2570e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml @@ -157,6 +157,8 @@ shutdown: waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 rocketmq: + client: + logUseSlf4j: true # epmet-cloud集群内部用的rocketmq # epmet-cloud-inner: # enable: @rocketmq.epmet-cloud-inner.enable@ 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 efe6643df6..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 @@ -40,6 +40,11 @@ public class GovRoleDTO implements Serializable { */ private String id; + /** + * 客户id + */ + private String customerId; + /** * 角色名称 */ @@ -55,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/GovRoleMenuDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleMenuDTO.java index eacde30cf3..e13df4f520 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleMenuDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleMenuDTO.java @@ -39,6 +39,11 @@ public class GovRoleMenuDTO implements Serializable { */ private String id; + /** + * 客户id + */ + private String customerId; + /** * 角色ID */ diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleUserDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleUserDTO.java index d3881edeb2..4a6cd5ea64 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleUserDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleUserDTO.java @@ -39,6 +39,11 @@ public class GovRoleUserDTO implements Serializable { */ private String id; + /** + * 客户id + */ + private String customerId; + /** * 角色ID */ 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/GetStaffExistRoleFormDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetStaffExistRoleFormDTO.java new file mode 100644 index 0000000000..19f9bb3d12 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetStaffExistRoleFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/13 09:58 + * @DESC + */ +@Data +public class GetStaffExistRoleFormDTO implements Serializable { + + private static final long serialVersionUID = 8877632229886141531L; + + private String customerId; + private String staffId; +} 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/dto/form/RoleUserFormDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/RoleUserFormDTO.java new file mode 100644 index 0000000000..8a7c8569f9 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/RoleUserFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/12 16:11 + * @DESC + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RoleUserFormDTO implements Serializable { + + private static final long serialVersionUID = 7503477804419017109L; + + private List roleIds; + + private String userId; + private String customerId; +} diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/NewUserRoleResultDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/NewUserRoleResultDTO.java new file mode 100644 index 0000000000..44b9c64d7d --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/NewUserRoleResultDTO.java @@ -0,0 +1,40 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/13 09:56 + * @DESC + */ +@Data +public class NewUserRoleResultDTO implements Serializable { + + private static final long serialVersionUID = -7761042062413503637L; + + private String roleId; + /** + * 角色key + */ + private String roleKey; + /** + * 角色名称 + */ + private String roleName; + + private Integer isDefault; + + /** + * 是否选中(选中的是true) + */ + private Boolean selected; + + public NewUserRoleResultDTO() { + this.roleId = ""; + this.roleKey = ""; + this.roleName = ""; + this.selected = false; + } +} 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 5e3a2e0fcb..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,18 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; +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; +import java.util.List; import java.util.Set; //@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallbackFactory = GovAccessFeignClientFallBackFactory.class, url = "http://localhost:8099") @@ -29,4 +34,38 @@ public interface GovAccessFeignClient { */ @PostMapping("/gov/access/access/listoperationpermissions") Result> listOperationPermissions(@RequestBody ListOpePermsFormDTO listOpePermsFormDTO); + + /** + * Desc: 保存角色 + * @param formDTO + * @author zxc + * @date 2022/7/12 16:14 + */ + @PostMapping("/gov/access/govroleuser/roleUser") + Result roleUser(@RequestBody RoleUserFormDTO formDTO); + + /** + * Desc: 获取工作人员已经存在的新角色 + * @param formDTO + * @author zxc + * @date 2022/7/13 09:59 + */ + @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 3bf8d2f111..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,14 @@ 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.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; +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; +import java.util.List; import java.util.Set; /** @@ -26,4 +30,29 @@ public class GovAccessFeignClientFallBack implements GovAccessFeignClient { public Result> listOperationPermissions(ListOpePermsFormDTO listOpePermsFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listOperationPermissions", listOpePermsFormDTO); } + + @Override + public Result roleUser(RoleUserFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "roleUser", formDTO); + } + + @Override + 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/deploy/docker-compose-dev.yml b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml index df08fa34bc..c8f27010a6 100644 --- a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-prod.yml b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-prod.yml index 208783e787..6bbd6556a3 100644 --- a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./gov-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml index e28e5d30f0..328e7f9d21 100644 --- a/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./gov-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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 20636cfc3a..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; @@ -114,6 +115,12 @@ public class GovMenuController { return new Result>().ok(list); } + @GetMapping("navDigitalCommunity") + public Result> navDigitalCommunity(@LoginUser TokenDto tokenDto, String tableName){ + List list = govMenuService.navDigitalCommunity(tokenDto,tableName); + return new Result>().ok(list); + } + /** * 权限标识 * @param tokenDto token @@ -149,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 d6f866dbe2..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 @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -25,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; @@ -51,7 +54,8 @@ public class GovRoleController { private GovRoleMenuService govRoleMenuService; @GetMapping("page") - public Result> page(@RequestParam Map params){ + public Result> page(@LoginUser TokenDto tokenDto, @RequestParam Map params){ + params.put("customerId", tokenDto.getCustomerId()); PageData page = govRoleService.page(params); return new Result>().ok(page); } @@ -67,7 +71,7 @@ public class GovRoleController { return new Result().ok(data); } - @PostMapping + @PostMapping("save") public Result save(@RequestBody GovRoleDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); @@ -75,7 +79,7 @@ public class GovRoleController { return new Result(); } - @PutMapping + @PostMapping("edit") public Result update(@RequestBody GovRoleDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); @@ -83,7 +87,7 @@ public class GovRoleController { return new Result(); } - @DeleteMapping + @PostMapping("del") public Result delete(@RequestBody String[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); @@ -99,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/controller/GovRoleMenuController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleMenuController.java index 8b8a7d8aed..11c4e6e414 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleMenuController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleMenuController.java @@ -57,7 +57,7 @@ public class GovRoleMenuController { return new Result().ok(data); } - @PostMapping + @PostMapping("save") public Result save(@RequestBody GovRoleMenuDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); @@ -65,7 +65,7 @@ public class GovRoleMenuController { return new Result(); } - @PutMapping + @PostMapping("edit") public Result update(@RequestBody GovRoleMenuDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); @@ -73,7 +73,7 @@ public class GovRoleMenuController { return new Result(); } - @DeleteMapping + @PostMapping("del") public Result delete(@RequestBody String[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleUserController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleUserController.java index fcd5733a4d..6544a7a37b 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleUserController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleUserController.java @@ -25,6 +25,9 @@ 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.GovRoleUserDTO; +import com.epmet.dto.form.GetStaffExistRoleFormDTO; +import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.service.GovRoleUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -129,4 +132,27 @@ public class GovRoleUserController { return new Result(); } + /** + * Desc: 保存角色 + * @param formDTO + * @author zxc + * @date 2022/7/12 16:14 + */ + @PostMapping("roleUser") + public Result roleUser(@RequestBody RoleUserFormDTO formDTO){ + govRoleUserService.roleUser(formDTO); + return new Result(); + } + + /** + * Desc: 获取工作人员已经存在的新角色 + * @param formDTO + * @author zxc + * @date 2022/7/13 09:59 + */ + @PostMapping("getStaffExistRole") + public Result> getStaffExistRole(@RequestBody GetStaffExistRoleFormDTO formDTO){ + return new Result>().ok(govRoleUserService.getStaffExistRole(formDTO)); + } + } \ No newline at end of file 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 768fc42792..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,8 +9,13 @@ 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; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 角色管理 @@ -21,4 +26,13 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface GovRoleDao extends BaseDao { + /** + * Desc: 获取客户下所有角色 + * @param customerId + * @author zxc + * @date 2022/7/13 10:09 + */ + 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/dao/GovRoleMenuDao.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleMenuDao.java index dc0559acb3..d7aeb80836 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleMenuDao.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleMenuDao.java @@ -11,6 +11,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.GovRoleMenuEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -28,6 +29,14 @@ public interface GovRoleMenuDao extends BaseDao { */ List getMenuIdList(String roleId); + /** + * Desc: 根据角色IDs,获取菜单IDs列表 + * @param roleIds + * @author zxc + * @date 2022/7/12 14:45 + */ + List getMenuIdsList(@Param("ids") List roleIds); + /** * 根据角色id,删除角色菜单关系 * @param roleId 角色id diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovMenuEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovMenuEntity.java index fcb8a5fa38..9c1c3922ed 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovMenuEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovMenuEntity.java @@ -66,4 +66,10 @@ public class GovMenuEntity extends BaseEpmetEntity { */ private Integer showFlag; + /** + * 筛选使用,跟角色菜单匹配上为true + */ + @TableField(exist = false) + private Boolean roleStatus = false; + } 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 4bc4575836..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 @@ -41,4 +41,14 @@ public class GovRoleEntity extends BaseEpmetEntity { @TableField(fill = FieldFill.INSERT) private Long deptId; + /** + * 客户id + */ + private String customerId; + + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleMenuEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleMenuEntity.java index 6ea4d1f2a5..03fd31b1e1 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleMenuEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleMenuEntity.java @@ -33,4 +33,9 @@ public class GovRoleMenuEntity extends BaseEpmetEntity { */ private String menuId; + /** + * 客户id + */ + private String customerId; + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleUserEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleUserEntity.java index 599ca7f3e2..16d26bbc84 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleUserEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleUserEntity.java @@ -34,4 +34,9 @@ public class GovRoleUserEntity extends BaseEpmetEntity { */ private String userId; + /** + * 客户id + */ + private String customerId; + } 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 0e87946dc5..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; @@ -129,6 +130,7 @@ public interface GovMenuService extends BaseService { * @return java.util.List */ List getUserMenuNavList(TokenDto tokenDto, String tableName); + List navDigitalCommunity(TokenDto tokenDto, String tableName); /** * 获取用户权限标识 @@ -144,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/GovRoleUserService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleUserService.java index ff67c7d239..d4eba65037 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleUserService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleUserService.java @@ -20,6 +20,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.GovRoleUserDTO; +import com.epmet.dto.form.GetStaffExistRoleFormDTO; +import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.GovRoleUserEntity; import java.util.List; @@ -130,4 +133,20 @@ public interface GovRoleUserService extends BaseService { * @param userIds 用户ids */ void deleteByUserIds(String[] userIds); + + /** + * Desc: 保存角色 + * @param formDTO + * @author zxc + * @date 2022/7/12 16:14 + */ + void roleUser(RoleUserFormDTO formDTO); + + /** + * Desc: 获取工作人员已经存在的新角色 + * @param formDTO + * @author zxc + * @date 2022/7/13 09:59 + */ + List getStaffExistRole(GetStaffExistRoleFormDTO formDTO); } \ 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 page(Map params) { @@ -218,7 +234,26 @@ public class GovMenuServiceImpl extends BaseServiceImpl navDigitalCommunity(TokenDto tokenDto, String tableName) { + tableName = getTableName(tableName); + List menuList = baseDao.getCustomerMenuList(tokenDto.getCustomerId(), MenuTypeEnum.MENU.value(), HttpContextUtils.getLanguage(),tableName); + Result isRootManager = epmetUserOpenFeignClient.getIsRootManager(tokenDto.getUserId()); + if (!isRootManager.success()){ + throw new EpmetException("getIsRootManager method is failure"); + } + if (isRootManager.getData()){ + List govMenuDTOS = ConvertUtils.sourceToTarget(menuList, GovMenuDTO.class); + return TreeUtils.buildTree(govMenuDTOS); + } + disposeGovMenu(menuList,tokenDto.getUserId()); + Map> groupByStatus = menuList.stream().collect(Collectors.groupingBy(GovMenuEntity::getRoleStatus)); + List dtoList = ConvertUtils.sourceToTarget(CollectionUtils.isEmpty(groupByStatus.get(true)) ? new ArrayList<>() : groupByStatus.get(true), GovMenuDTO.class); + List govMenuDTOS = TreeUtils.buildTree(dtoList); + return govMenuDTOS; } /** @@ -231,7 +266,7 @@ public class GovMenuServiceImpl extends BaseServiceImpl getCustomerMenuList(String customerId, Integer type, String tableName) { + private List getCustomerMenuList(String customerId, Integer type, String tableName,String userId) { List govMenuDTOS = govCustomerMenuRedis.getCustomerMenuList(customerId,type,tableName); if (!CollectionUtils.isEmpty(govMenuDTOS)){ return govMenuDTOS; @@ -243,6 +278,26 @@ public class GovMenuServiceImpl extends BaseServiceImpl menuList,String userId){ + List roleIdList = govRoleUserDao.getRoleIdList(userId); + if (CollectionUtils.isEmpty(roleIdList)){ + menuList = new ArrayList<>(); + return; + } + List menuIdsList = govRoleMenuDao.getMenuIdsList(roleIdList); + if (CollectionUtils.isEmpty(menuIdsList)){ + menuList = new ArrayList<>(); + return; + } + for (String id : menuIdsList) { + for (GovMenuEntity m : menuList) { + if (m.getId().equals(id)){ + m.setRoleStatus(true); + } + } + } + } + @Override public Set getUserPermissions(TokenDto tokenDto) { //用户权限列表 @@ -289,6 +344,22 @@ public class GovMenuServiceImpl 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/GovRoleMenuServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleMenuServiceImpl.java index ec31c69146..6a882d2e92 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleMenuServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleMenuServiceImpl.java @@ -23,6 +23,7 @@ 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.page.PageData; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.GovRoleMenuDao; import com.epmet.dto.GovRoleMenuDTO; @@ -51,6 +52,9 @@ public class GovRoleMenuServiceImpl extends BaseServiceImpl page(Map params) { @@ -125,6 +129,7 @@ public class GovRoleMenuServiceImpl extends BaseServiceImpl page(Map params) { @@ -66,6 +73,7 @@ public class GovRoleServiceImpl extends BaseServiceImpl list(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); List entityList = baseDao.selectList(getWrapper(params)); return ConvertUtils.sourceToTarget(entityList, GovRoleDTO.class); @@ -74,8 +82,10 @@ public class GovRoleServiceImpl extends BaseServiceImpl getWrapper(Map params){ String id = (String)params.get(FieldConstant.ID_HUMP); String name = (String)params.get(FieldConstant.NAME_HUMP); + String customerId = (String)params.get(FieldConstant.CUSTOMER_ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id).like(StringUtils.isNotBlank(name), FieldConstant.NAME, name); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id).like(StringUtils.isNotBlank(name), FieldConstant.NAME, name) + .eq(StringUtils.isNotBlank(customerId), FieldConstant.CUSTOMER_ID, customerId); return wrapper; } @@ -107,7 +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/java/com/epmet/service/impl/GovRoleUserServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleUserServiceImpl.java index 21b796cc3b..df693351f6 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleUserServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleUserServiceImpl.java @@ -24,8 +24,12 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.GovRoleDao; import com.epmet.dao.GovRoleUserDao; import com.epmet.dto.GovRoleUserDTO; +import com.epmet.dto.form.GetStaffExistRoleFormDTO; +import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.GovRoleUserEntity; import com.epmet.redis.GovRoleUserRedis; import com.epmet.service.GovRoleUserService; @@ -33,7 +37,9 @@ import org.apache.commons.lang3.StringUtils; 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.Arrays; import java.util.List; import java.util.Map; @@ -51,6 +57,8 @@ public class GovRoleUserServiceImpl extends BaseServiceImpl page(Map params) { @@ -153,4 +161,54 @@ public class GovRoleUserServiceImpl extends BaseServiceImpl entityList = new ArrayList<>(); + formDTO.getRoleIds().forEach(r -> { + GovRoleUserEntity entity = new GovRoleUserEntity(); + entity.setUserId(formDTO.getUserId()); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setRoleId(r); + entityList.add(entity); + }); + insertBatch(entityList); + } + } + + /** + * Desc: 获取工作人员已经存在的新角色 + * @param formDTO + * @author zxc + * @date 2022/7/13 09:59 + */ + @Override + public List getStaffExistRole(GetStaffExistRoleFormDTO formDTO) { + List result = new ArrayList<>(); + result = govRoleDao.getCustomerRoles(formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(result)){ + return result; + } + List roleIdList = govRoleUserDao.getRoleIdList(formDTO.getStaffId()); + if (roleIdList.isEmpty()){ + return result; + } + for (String id : roleIdList) { + for (NewUserRoleResultDTO r : result) { + if (id.equals(r.getRoleId())){ + r.setSelected(true); + } + } + } + return result; + } + } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.7__alter_gov_role.sql b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.7__alter_gov_role.sql new file mode 100644 index 0000000000..c67ca9f27c --- /dev/null +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.7__alter_gov_role.sql @@ -0,0 +1,16 @@ + + +ALTER TABLE `gov_role` +ADD COLUMN `CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户ID' AFTER `id`; + + +ALTER TABLE `gov_role_menu` +ADD COLUMN `CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户ID' AFTER `id`; + + +ALTER TABLE `gov_role_user` +ADD COLUMN `CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户ID' AFTER `id`; + + + + 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 2de28e07bf..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 @@ -3,4 +3,25 @@ + + + + + diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleMenuDao.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleMenuDao.xml index 862679b5de..f2e09830ca 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleMenuDao.xml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleMenuDao.xml @@ -4,7 +4,17 @@ + + diff --git a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml index 6082d0021f..f35c4ab3da 100644 --- a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-grid.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-prod.yml b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-prod.yml index b47e7b1ed2..65c6a604aa 100644 --- a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./gov-grid.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-test.yml b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-test.yml index 29ad279725..48bb5e315b 100644 --- a/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./gov-grid.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml index ccf13bda1a..7ccc76bc08 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-issue.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml index b11be53989..ff8718a4fc 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./gov-issue.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml index aa986c7fa8..ea57ede817 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./gov-issue.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java index fd9e212221..2f660d47ba 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java @@ -17,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @ServletComponentScan(basePackages = "com.epmet") public class GovIssueApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(GovIssueApplication.class, args); } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml index 06f9b57041..06332fbf9b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml @@ -143,6 +143,7 @@ rocketmq: enable: @rocketmq.enable@ name-server: @rocketmq.nameserver@ + thread: # 线程池配置 threadPool: diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml index f1027a6759..078661e2a1 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml @@ -32,7 +32,7 @@ CONCAT(cd.category_name,'-',ip.category_name) AS "name" FROM issue_project_category_dict ip - INNER JOIN issue_project_category_dict cd ON ip.pid = cd.id + INNER JOIN issue_project_category_dict cd ON ip.pid = cd.id AND ip.customer_id = cd.customer_id WHERE ip.del_flag = '0' AND cd.DEL_FLAG = '0' @@ -81,4 +81,4 @@ issue_id = #{issueId} - \ No newline at end of file + diff --git a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml index fb69e6294e..4a4966909e 100644 --- a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-prod.yml b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-prod.yml index c1883ae965..6acd8cf4d1 100644 --- a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./gov-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml index 3f5da9911a..1b7b464185 100644 --- a/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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/AddStaffV2FromDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddStaffV2FromDTO.java index 5f369289e9..705ddfaadb 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddStaffV2FromDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddStaffV2FromDTO.java @@ -71,4 +71,6 @@ public class AddStaffV2FromDTO implements Serializable { * 来源client(PC端:web、微信小程序:wxmp) */ private String client; + + private List newRoles; } 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/EditGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java index 8774da4f99..671fe3aee7 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java @@ -25,6 +25,7 @@ public class EditGridFormDTO implements Serializable { /** * gridId 网格id */ + @NotBlank(message = "网格ID不能为空") private String gridId; /** diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java index e1dd0ea53d..0d220b193d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java @@ -16,4 +16,5 @@ public class HouseInfoFormDTO implements Serializable { @NotNull(message = "房屋编码不可为空") private String houseCode; + private String userId; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java index 91b93b2569..cafecc1f1b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java @@ -86,7 +86,7 @@ public class IcBulidingAddFormDTO implements Serializable { /** * 排序 */ - @NotNull(message = "排序不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) + // @NotNull(message = "排序不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) private BigDecimal sort = NumConstant.ZERO_DECIMAL; /** 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/IcHouseInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java index adde362546..3df20aa3b2 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java @@ -22,5 +22,5 @@ public class IcHouseInfoFormDTO extends PageFormDTO { private String houseCode; 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 284880f6d5..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 @@ -66,4 +66,12 @@ public class StaffSubmitFromDTO implements Serializable { * 来源client(PC端:web、微信小程序:wxmp) */ 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/AgencyAreaResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyAreaResultDTO.java new file mode 100644 index 0000000000..3eaaf991df --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyAreaResultDTO.java @@ -0,0 +1,128 @@ +/** + * 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 lombok.Data; + +import java.io.Serializable; + + +/** + * 组织信息 + * + * @author sun + */ +@Data +public class AgencyAreaResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 上级组织机构ID + */ + private String pid; + + /** + * 所有上级组织机构ID(以英文:隔开) + */ + private String pids; + + /** + * 所有上级名称,以-连接 + */ + private String allParentName; + + /** + * 组织名称 + */ + private String organizationName; + + /** + * 机关级别(社区级:community, + 乡(镇、街道)级:street, + 区县级: district, + 市级: city + 省级:province) 机关级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province) + */ + private String level; + + /** + * 地区编码 + */ + private String areaCode; + + /** + * 总人数 + */ + private Integer totalUser; + + /** + * 省 + */ + private String province; + + /** + * 【城市】名称 + */ + private String city; + + /** + * 【区县】名称 + */ + private String district; + + /** + * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 + */ + private String parentAreaCode; + + /** + * 街道 + */ + private String street; + + /** + * 【社区】名称0409 + */ + private String community; + + /** + * 组织编码 + */ + private String code; + + /** + * 负责人姓名 + */ + private String contacts; + + /** + * 联系电话 + */ + private String mobile; + +} 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/HouseInfoDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java index aa2b2fffca..fffaae071c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java @@ -103,6 +103,7 @@ public class HouseInfoDTO implements Serializable { * 房屋编码 */ private String houseCode; + private String coding; /** * 二维码地址 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java index ddb4af560e..e827b468ef 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java @@ -108,4 +108,8 @@ public class HouseInfoResultDTO implements Serializable { * 房屋可编辑编码 */ private String coding; + /** + * 是否是房主 + */ + private String isOwner = "0"; } 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/IcHouseInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java index d958f1494b..c3c77e446f 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java @@ -59,7 +59,16 @@ public class IcHouseInfoResultDTO implements Serializable { * 客户id */ private String customerId; + private String isOwner = "0"; + private String ownerIdCard; + /** + * 房屋编码 + */ + private String houseCode; + /** + * 二维码地址 + */ + private String qrCodeUrl; - - + private String coding; } 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/dto/result/OrganizationCodeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizationCodeResultDTO.java index c370f5bbe3..d74033d924 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizationCodeResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/OrganizationCodeResultDTO.java @@ -6,7 +6,7 @@ import java.io.Serializable; /** * @program: epmet-cloud - * @description:小区-楼栋-房屋编码 + * @description:小区-楼栋-单元-房屋编码 * @author: wangtong * @create: 2022-06-29 09:51 **/ @@ -14,13 +14,17 @@ import java.io.Serializable; public class OrganizationCodeResultDTO implements Serializable { /** - * 可编辑的楼栋编码 + * 可编辑的编码 */ private String coding; - /** - * 不可编辑的楼栋编码 + * 不可编辑的编码 */ private String sysCoding; + + /** + * 不可编辑的前缀编码 + */ + private String preCoding; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java index 393dd91771..c3d0f85a22 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInitResultDTO.java @@ -37,4 +37,5 @@ public class StaffInitResultDTO implements Serializable { * 职责列表 */ private List roleList; + private List newRoleList; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java index 2bf18307ce..c5e0fafb4e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java @@ -41,4 +41,6 @@ public class StaffListResultDTO implements Serializable { */ private String mobile=""; + private Boolean staffEnabledStatus = false; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java index 7962be5504..d51032930a 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java @@ -36,4 +36,6 @@ public class StaffRoleResultDTO implements Serializable { private Boolean selected; private String description; + + private Integer isDefault; } 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 b7c17a255d..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 { @@ -695,4 +695,21 @@ 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 + * @Return {@link Result< List>} + * @Author zhaoqifeng + * @Date 2022/7/20 9:52 + */ + @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 0a8e690f38..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 @@ -445,4 +445,28 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "dictInit", customerId); } + /** + * 获取房主名下的房屋 + * + * @param formDTO + * @Param formDTO + * @Return {@link Result< List>} + * @Author zhaoqifeng + * @Date 2022/7/20 9:52 + */ + @Override + public Result> getOwnerHouseList(IcHouseDTO formDTO) { + 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/deploy/docker-compose-dev.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml index 0297930754..f919e6ce8d 100644 --- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-org.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml index d93a6203ca..d8b4065a32 100644 --- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx1024m -jar ./gov-org.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml index 8e81106bf9..1a88398802 100644 --- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./gov-org.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 704a34333c..0098f38e9b 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -18,6 +18,11 @@ gov-org-client 2.0.0 + + com.epmet + gov-access-client + 2.0.0 + com.epmet oper-crm-client diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java index 3dda2f6217..8fdce3f561 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java @@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync; public class GovOrgApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(GovOrgApplication.class, args); } 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 1ff1bc303c..eb42e5a043 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 @@ -177,16 +177,7 @@ public class AgencyController { formDTO.setCustomerId(tokenDTO.getCustomerId()); ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class); Result result = agencyService.editAgency(formDTO); - - //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDTO.getCustomerId()); - mq.setOrgId(formDTO.getAgencyId()); - mq.setOrgType("agency"); - mq.setType("agency_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - //2021-10-18 end - + //发送mq 消息迁移至service return result; } @@ -201,7 +192,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; } /** @@ -505,4 +505,33 @@ public class AgencyController { List dto = agencyService.getAddressTree(name, customerId); return new Result>().ok(dto); } + + /** + * 获取区域编码下级的所有客户信息 + * + * @param areaCode + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/7 10:12 + */ + @GetMapping("/areasubagency/{areaCode}") + public Result> getAreaSubAgency(@LoginUser TokenDto tokenDto, @PathVariable String areaCode) { + List dto = agencyService.getAreaSubAgency(tokenDto, areaCode); + return new Result>().ok(dto); + } + + /** + * 客户树 + * + * @param + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/6 13:24 + */ + @RequestMapping("customertree") + public Result> customerTree(@LoginUser TokenDto tokenDto) { + return new Result>().ok(agencyService.getCustomerTree(tokenDto)); + } + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java index ec9d682d76..73316bad52 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java @@ -396,7 +396,7 @@ public class CustomerAgencyController { @PostMapping("agencygridtree") public Result getOrgTreeData(@LoginUser TokenDto tokenDTO) { //tokenDTO.setUserId("dffe71e021a61b900f9025f4f07f6955"); - return new Result().ok(customerAgencyService.getOrgTreeData(tokenDTO.getUserId())); + return new Result().ok(customerAgencyService.getOrgTreeData(tokenDTO.getUserId(),tokenDTO.getCustomerId())); } /** 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 8f026e9f44..b21da2c423 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 @@ -79,20 +79,10 @@ public class GridController { editGridFormDTO.setCustomerId(tokenDto.getCustomerId()); Result result = customerGridService.editGrid(tokenDto,editGridFormDTO); - //2021-10-18 推送mq,数据同步到中介库 start - if (result.success()) { - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDto.getCustomerId()); - mq.setOrgId(editGridFormDTO.getGridId()); - mq.setOrgType("grid"); - mq.setType("grid_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - } - //2021-10-18 end + //发送mq 消息 移至service return result; } - /** * 删除网格 */ @@ -100,7 +90,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/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index bd04087da4..62dfafccdf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -516,6 +516,7 @@ public class HouseController implements ResultDataResolver { //效验数据 ValidatorUtils.validateEntity(formDTO); formDTO.setCustomerId(loginUser.getCustomerId()); + formDTO.setUserId(loginUser.getUserId()); return houseService.getHouseInfoByCode(formDTO); } @@ -569,7 +570,8 @@ public class HouseController implements ResultDataResolver { * @return com.epmet.commons.tools.utils.Result */ @PostMapping("getHomeInfoByHouseCode") - public Result getHomeInfoByHouseCode(@RequestBody HouseInfoFormDTO dto) { + public Result getHomeInfoByHouseCode(@LoginUser TokenDto tokenDto, @RequestBody HouseInfoFormDTO dto) { + dto.setUserId(tokenDto.getUserId()); //效验数据 ValidatorUtils.validateEntity(dto); return houseService.getHomeInfoByHouseCode(dto); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java index 63668ceba1..49e3f15f92 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java @@ -24,6 +24,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcHouseDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.result.HouseAgencyInfoResultDTO; +import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.dto.result.HousesNameResultDTO; import com.epmet.service.IcHouseService; @@ -121,4 +122,18 @@ public class IcHouseController { public Result updateIcHouseResiNumber(@RequestBody List> paramList){ return new Result().ok(icHouseService.updateIcHouseResiNumber(paramList)); } + + + /** + * 获取房主名下的房屋 + * + * @Param idCards + * @Return {@link Result< List< HouseInfoDTO>>} + * @Author zhaoqifeng + * @Date 2022/7/19 17:39 + */ + @PostMapping("getOwnerHouseList") + public Result> getOwnerHouseList(@RequestBody IcHouseDTO formDTO){ + return new Result>().ok(icHouseService.getOwnerHouseList(formDTO)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java index 743254c2d4..ece90f219d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java @@ -21,6 +21,8 @@ import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -33,6 +35,7 @@ import com.epmet.entity.IcBuildingEntity; import com.epmet.service.NeighborHoodService; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; @@ -44,6 +47,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; +import java.util.concurrent.TimeUnit; /** @@ -61,6 +65,8 @@ public class NeighborHoodController { private NeighborHoodService neighborHoodService; @Resource private IcBuildingDao icBuildingDao; + @Autowired + private DistributedLock distributedLock; @PostMapping("neighborhoodlist") @@ -88,7 +94,13 @@ public class NeighborHoodController { ValidatorUtils.validateEntity(formDTO, IcNeighborHoodAddFormDTO.UpdateShowGroup.class); String customerId = tokenDTO.getCustomerId(); // String customerId = "123123"; - neighborHoodService.updateNeighborhood(customerId,formDTO); + RLock lock = null; + try { + lock = distributedLock.getLock(RedisKeys.getXiaoquEditLock(tokenDTO.getCustomerId()), 120L, 3L, TimeUnit.SECONDS); + neighborHoodService.updateNeighborhood(customerId,formDTO); + } finally { + distributedLock.unLock(lock); + } return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ServiceProjectController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ServiceProjectController.java index 6bae4e8f2f..db5b040103 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ServiceProjectController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/ServiceProjectController.java @@ -29,7 +29,7 @@ public class ServiceProjectController { */ @RequestMapping("service/serviceScopeTree") public Result getServiceScopeTree(@LoginUser TokenDto loginInfo) { - ServiceProjectScopeResultDTO r = serviceProjectService.getServiceScopeTree(loginInfo.getUserId()); + ServiceProjectScopeResultDTO r = serviceProjectService.getServiceScopeTree(loginInfo.getUserId(),loginInfo.getCustomerId()); return new Result().ok(r); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java index 3a5e67704f..3ad215bbf7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java @@ -26,7 +26,7 @@ public class UserHouseScopeController { */ @RequestMapping("service/serviceScopeTree") public Result getServiceScopeTree(@LoginUser TokenDto loginInfo) { - UserHouseScopeResultDTO r = userHouseScopeService.getServiceScopeTree(loginInfo.getUserId()); + UserHouseScopeResultDTO r = userHouseScopeService.getServiceScopeTree(loginInfo.getUserId(),loginInfo.getCustomerId()); return new Result().ok(r); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index 1c4aa9394c..3059b5a1cf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -353,5 +353,28 @@ public interface CustomerAgencyDao extends BaseDao { CommunityInfoResultDTO getCommunityInfo(OrgInfoPointFormDTO formDTO); CommunityInfoResultDTO getCommunityInfoByUserId(@Param("userId") String userId); + + /** + * 获取区域编码下级的所有客户信息 + * + * @param areaCode + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/7 10:12 + */ + List getAreaSubAgency(@Param("areaCode") String areaCode); + + /** + * 客户树根节点 + * + * @param + * @return java.util.List + * @author zhy + * @date 2022/7/6 13:32 + */ + List selectRootCustomer(@Param("areaCode") String areaCode, @Param("level") String level); + + CustomerAgencyEntity getAreaRootAgency(@Param("customerId") String customerId); + } 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/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 35abf9d798..ac4eba65fd 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -9,6 +9,7 @@ import com.epmet.entity.IcHouseEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Set; @@ -178,9 +179,10 @@ public interface IcHouseDao extends BaseDao { * * @param houseId, * @param resiNumber + * @param avgYsrD * @return */ - int updateIcHouseResiNumber(String houseId, Integer resiNumber); + int updateIcHouseResiNumber(String houseId, Integer resiNumber, BigDecimal avgYsrD); /** * @return com.epmet.entity.IcHouseEntity 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 getAddressTree(String name, String customerId); + + /** + * 获取区域编码下级的所有客户信息 + * + * @param areaCode + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/7 10:12 + */ + List getAreaSubAgency(TokenDto tokenDto, String areaCode); + + /** + * 客户树 + * + * @param tokenDto + * @return java.util.List + * @author zhy + * @date 2022/7/6 13:32 + */ + List getCustomerTree(TokenDto tokenDto); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index 21e6f17320..bec4188167 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -24,7 +24,6 @@ import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; -import org.springframework.web.bind.annotation.PathVariable; import java.util.List; import java.util.Map; @@ -270,7 +269,7 @@ public interface CustomerAgencyService extends BaseService * @param staffId * @return */ - AgencyTreeResultDTO getOrgTreeData(String staffId); + AgencyTreeResultDTO getOrgTreeData(String staffId,String customerId); /** * @Description 【事件】社区服务热线 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerStaffGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerStaffGridService.java index c6b606e7df..49ac4b16b4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerStaffGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerStaffGridService.java @@ -22,8 +22,10 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; 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; @@ -142,4 +144,5 @@ public interface CustomerStaffGridService extends BaseService 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/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java index 9aa68a4047..522acba117 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java @@ -7,6 +7,7 @@ import com.epmet.dto.IcHouseDTO; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.result.HouseAgencyInfoResultDTO; +import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.dto.result.HousesNameResultDTO; import com.epmet.entity.IcHouseEntity; @@ -119,4 +120,14 @@ public interface IcHouseService extends BaseService { * @return */ Integer updateIcHouseResiNumber(List> paramList); + + /** + * 获取房主名下的房屋 + * + * @Param formDTO + * @Return {@link List< HouseInfoDTO>} + * @Author zhaoqifeng + * @Date 2022/7/19 17:41 + */ + List getOwnerHouseList(IcHouseDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/ServiceProjectService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/ServiceProjectService.java index 22058470de..c09a6411b1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/ServiceProjectService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/ServiceProjectService.java @@ -1,9 +1,7 @@ package com.epmet.service; -import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.result.ServiceProjectScopeResultDTO; -import com.epmet.entity.IcPlaceOrgEntity; public interface ServiceProjectService { - ServiceProjectScopeResultDTO getServiceScopeTree(String staffId); + ServiceProjectScopeResultDTO getServiceScopeTree(String staffId,String customerId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java index 31fb3be5b8..210b0e7dad 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java @@ -3,5 +3,5 @@ package com.epmet.service; import com.epmet.dto.result.UserHouseScopeResultDTO; public interface UserHouseScopeService { - UserHouseScopeResultDTO getServiceScopeTree(String staffId); + UserHouseScopeResultDTO getServiceScopeTree(String staffId,String customerId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index cf2016de58..10499f4b52 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; @@ -27,6 +28,7 @@ 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.RedisKeys; 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; @@ -43,6 +45,7 @@ import com.epmet.dao.CustomerDepartmentDao; import com.epmet.dao.CustomerGridDao; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.CustomerDTO; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -52,10 +55,13 @@ import com.epmet.entity.CustomerGridEntity; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.OperCrmFeignClient; import com.epmet.redis.CustomerAgencyRedis; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerOrgParameterService; +import com.google.common.base.Joiner; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -66,10 +72,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 机关单位信息 @@ -99,11 +103,13 @@ public class AgencyServiceImpl implements AgencyService { @Autowired private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; @Autowired - private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + private OperCrmFeignClient operCrmFeignClient; @Autowired private IcBuildingDao icBuildingDao; @Autowired private CustomerDepartmentDao customerDepartmentDao; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** * @param formDTO @@ -238,6 +244,18 @@ public class AgencyServiceImpl implements AgencyService { //5.redis缓存 customerAgencyRedis.delete(formDTO.getAgencyId()); + //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(originalEntity.getCustomerId()); + mq.setOrgId(formDTO.getAgencyId()); + mq.setOrgType("agency"); + mq.setType("agency_change"); + mq.setOldCode(originalEntity.getCode()); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end + //6.一些下拉组织树的缓存要清除掉 + String orgTreeCachePrexKey = RedisKeys.getOrgTreeCachePrexKey(formDTO.getCustomerId()); + customerAgencyRedis.deleteByPrex(orgTreeCachePrexKey); return result; } @@ -902,6 +920,46 @@ public class AgencyServiceImpl implements AgencyService { return NodeTreeUtils.build(list); } + @Override + public List getAreaSubAgency(TokenDto tokenDto, String areaCode) { + if (NumConstant.ZERO_STR.equals(areaCode)) { + CustomerAgencyEntity root = customerAgencyDao.getAreaRootAgency(tokenDto.getCustomerId()); + areaCode = root.getAreaCode(); + } + + List list = customerAgencyDao.getAreaSubAgency(areaCode); + list.forEach(item -> { + CustomerDTO customerDTO = new CustomerDTO(); + customerDTO.setId(item.getCustomerId()); + Result customerResult = operCrmFeignClient.getCustomerInfo(customerDTO); + if (customerResult.success() && null != customerResult.getData()) { + item.setCustomerName(item.getOrganizationName().concat(StrConstant.HYPHEN).concat(customerResult.getData().getCustomerName())); + } + }); + + return list; + } + + @Override + public List getCustomerTree(TokenDto tokenDto) { + List resultList = new ArrayList<>(); + List rootList = customerAgencyDao.selectRootCustomer(null, null); + List treeList = new ArrayList<>(); + Map treeMap = new HashMap<>(); + if (!rootList.isEmpty()) { + // 获取已有客户的所有组织架构,并转换成map,保证唯一 + rootList.forEach(item -> { + customerHandle(item, treeList); + }); +// treeMap = treeList.stream().collect(Collectors.toMap(CustomerTreeDTO::getAreaCode, Function.identity(), (val1, val2) -> val2)); + // 组合成组织树 + resultList = getCustomerTree(treeList); + + } + + return resultList; + } + private CustomerAgencyEntity constructInsertEntity(AddAgencyV2FormDTO formDTO, CustomerAgencyDTO parent) { CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); insertEntity.setOrganizationName(formDTO.getAgencyName()); @@ -951,4 +1009,109 @@ public class AgencyServiceImpl implements AgencyService { return insertEntity; } + /** + * 处理子客户 + * + * @param customer + * @return com.epmet.dto.result.CustomerTreeDTO + * @author zhy + * @date 2022/7/6 13:54 + */ + private void customerHandle(CustomerTreeDTO customer, List treeList) { + Result> area = epmetCommonServiceOpenFeignClient.areaCodeTree(customer); + if (area.success()) { + if (area.getData() != null) { + treeList.addAll(area.getData()); + } + } + } + + /** + * 生成客户树 + * + * @param + * @return com.epmet.dto.result.CustomerTreeDTO + * @author wgf + * @date 2022/7/6 13:54 + */ + private List getCustomerTree(List treeList) { + treeList = treeList.stream().distinct().collect(Collectors.toList()); + + // 回显客户名称 + treeList.forEach(item -> { + List customerNames = new ArrayList<>(); + List subList = customerAgencyDao.selectRootCustomer(item.getAreaCode(), item.getLevel()); + subList.forEach(customer -> { + CustomerDTO customerDTO = new CustomerDTO(); + customerDTO.setId(customer.getCustomerId()); + Result customerResult = operCrmFeignClient.getCustomerInfo(customerDTO); + if (customerResult.success() && null != customerResult.getData()) { + customerNames.add(customerResult.getData().getCustomerName()); + } + }); + item.setCustomerName(Joiner.on(",").join(customerNames)); + }); + + // 省 + List province = new ArrayList(); + // 市 + List city = new ArrayList(); + // 区 + List district = new ArrayList(); + // 街道 + List street = new ArrayList(); + // 社区 + List community = new ArrayList(); + for (int i = 0; i < treeList.size(); i++) { + if ("province".equals(treeList.get(i).getLevel())) { + province.add(treeList.get(i)); + } else if ("city".equals(treeList.get(i).getLevel())) { + city.add(treeList.get(i)); + } else if ("district".equals(treeList.get(i).getLevel())) { + district.add(treeList.get(i)); + } else if ("street".equals(treeList.get(i).getLevel())) { + street.add(treeList.get(i)); + } else if ("community".equals(treeList.get(i).getLevel())) { + community.add(treeList.get(i)); + } + } + + // 组装街道树 + for (CustomerTreeDTO streetDto : street) { + this.addChild(streetDto, community); + } + // 组装区树 + for (CustomerTreeDTO districtDto : district) { + this.addChild(districtDto, street); + } + // 组装市树 + for (CustomerTreeDTO cityDto : city) { + this.addChild(cityDto, district); + } + // 组装省树 + for (CustomerTreeDTO provinceDto : province) { + this.addChild(provinceDto, city); + } + + return province; + } + + + /** + * 组装子项 + * + * @param parentDto + * @param childList + */ + private void addChild(CustomerTreeDTO parentDto, List childList) { + List children = new ArrayList(); + for (CustomerTreeDTO childDto : childList) { + if (parentDto.getAreaCode().equals(childDto.getParentCode())) { + children.add(childDto); + } + } + parentDto.setChildren(children); + + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index d7f4e95ac1..f2c0392dc7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -325,6 +325,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl> collect = agencyStaffList.stream().collect(Collectors.groupingBy(StaffListResultDTO::getStaffEnabledStatus)); + resultDTO.setAgencyStaffList(CollectionUtils.isNotEmpty(collect.get(true)) ? collect.get(true) : new ArrayList<>()); resultDTO.setDepartmentList(departmentList); resultDTO.setGridList(gridList); return resultDTO; @@ -1175,7 +1177,7 @@ public class CustomerAgencyServiceImpl 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..5aad1c9b59 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,10 @@ 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 java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -76,6 +79,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,7 +106,11 @@ public class DepartmentServiceImpl implements DepartmentService { Result result = new Result(); AddDepartmentResultDTO addDepartmentResultDTO = new AddDepartmentResultDTO(); CustomerDepartmentEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerDepartmentEntity.class); - entity.setTotalUser(NumConstant.ZERO); + if (null != formDTO.getTotalUser() && formDTO.getTotalUser() > NumConstant.ZERO) { + entity.setTotalUser(formDTO.getTotalUser()); + }else{ + entity.setTotalUser(NumConstant.ZERO); + } //1:查询当前组织机构信息,获取客户Id CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); entity.setCustomerId(parentEntity.getCustomerId()); @@ -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/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index c89d9eb8c4..5d0556337b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -20,10 +20,12 @@ import com.epmet.commons.tools.feign.ResultDataResolver; 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.CustomerResiUserRedis; 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.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; import com.epmet.constant.CustomerGridConstant; @@ -574,7 +576,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if (null == houseInfo) { return houseInfo; } - if (null != houseInfo && StringUtils.isNotBlank(houseInfo.getAgencyId())) { + if (StringUtils.isNotBlank(houseInfo.getAgencyId())) { AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(houseInfo.getAgencyId()); houseInfo.setAgencyPathName(StringUtils.isNotBlank(agencyInfoCache.getAllParentName()) ? agencyInfoCache.getAllParentName().concat(StrConstant.HYPHEN).concat(agencyInfoCache.getOrganizationName()) : agencyInfoCache.getOrganizationName()); houseInfo.setAreaCode(StringUtils.isNotBlank(agencyInfoCache.getAreaCode()) ? agencyInfoCache.getAreaCode() : StrConstant.EPMETY_STR); @@ -1058,9 +1060,23 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查询到相关房屋","未查询到相关房屋"); } HouseInfoCache cache = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), house.getId()); - IcHouseInfoResultDTO resut = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class); - resut.setHouseId(cache.getHomeId()); - return new Result().ok(resut); + if (null == cache) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查询到相关房屋","未查询到相关房屋"); + } + IcHouseInfoResultDTO result = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class); + result.setHouseId(cache.getHomeId()); + result.setOwnerIdCard(house.getOwnerIdCard()); + result.setCoding(house.getCoding()); + result.setHouseName(cache.getAllName()); + result.setQrCodeUrl(house.getHouseQrcodeUrl()); + ResiUserInfoCache userInfo = CustomerResiUserRedis.getUserBaseInfo(formDTO.getUserId()); + if (null != userInfo) { + if (StringUtils.equals(house.getOwnerIdCard(), userInfo.getIdNum())) { + result.setIsOwner(NumConstant.ONE_STR); + + } + } + return new Result().ok(result); } @@ -1137,6 +1153,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { house.setHouseTypeName(HouseTypeEnums.getTypeValue(house.getHouseType())); house.setRentName(HouseRentFlagEnums.getTypeValue(house.getRentFlag())); house.setPurposeName(HousePurposeEnums.getTypeValue(house.getPurpose())); + ResiUserInfoCache userInfo = CustomerResiUserRedis.getUserBaseInfo(dto.getUserId()); + if (null != userInfo) { + if (StringUtils.equals(house.getOwnerIdCard(), userInfo.getIdNum())) { + house.setIsOwner(NumConstant.ONE_STR); + } + } return new Result().ok(house); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index 98e340221c..d31a2cbb54 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java @@ -22,6 +22,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.result.HouseAgencyInfoResultDTO; +import com.epmet.dto.result.HomeInfoResultDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.dto.result.HousesNameResultDTO; @@ -43,6 +44,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -301,13 +303,40 @@ public class IcHouseServiceImpl extends BaseServiceImpl { Object houseId = o.get("houseId"); Object resiNumber = o.get("resiNumber"); + Object avgYsr = o.get("avgYsr"); if (houseId == null || resiNumber == null) { return; } - int i = baseDao.updateIcHouseResiNumber(houseId.toString(), Integer.valueOf(resiNumber.toString())); + BigDecimal avgYsrD = null; + if (avgYsr != null){ + avgYsrD = new BigDecimal(avgYsr.toString()); + } + int i = baseDao.updateIcHouseResiNumber(houseId.toString(), Integer.valueOf(resiNumber.toString()), avgYsrD); effects.getAndAdd(i); }); log.debug("updateIcHouseResiNumber effectRow:{}", effects.intValue()); return effects.intValue(); } + + /** + * 获取房主名下的房屋 + * + * @param formDTO + * @Param formDTO + * @Return {@link List< HomeInfoResultDTO >} + * @Author zhaoqifeng + * @Date 2022/7/19 17:41 + */ + @Override + public List getOwnerHouseList(IcHouseDTO formDTO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcHouseEntity::getCustomerId, formDTO.getCustomerId()); + wrapper.eq(IcHouseEntity::getOwnerIdCard, formDTO.getOwnerIdCard()); + wrapper.ne(IcHouseEntity::getHouseCode, formDTO.getHouseCode()); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return list.stream().map(item -> icHouseRedis.getHouseInfo(item.getId(), item.getCustomerId())).collect(Collectors.toList()); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java index 65eb7c90e2..0f5079181b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java @@ -207,6 +207,7 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl updateResult = epmetUserOpenFeignClient.changeIcResiUserBelongTo(userForm); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/ServiceProjectServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/ServiceProjectServiceImpl.java index 3e4fc139d5..9211904694 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/ServiceProjectServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/ServiceProjectServiceImpl.java @@ -1,16 +1,12 @@ package com.epmet.service.impl; -import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dao.CustomerAgencyDao; import com.epmet.dao.CustomerGridDao; import com.epmet.dao.IcNeighborHoodDao; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.result.AgencyTreeResultDTO; import com.epmet.dto.result.ServiceProjectScopeResultDTO; -import com.epmet.entity.CustomerAgencyEntity; -import com.epmet.entity.IcPlaceOrgEntity; import com.epmet.service.CustomerAgencyService; -import com.epmet.service.NeighborHoodService; import com.epmet.service.ServiceProjectService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -42,8 +38,8 @@ public class ServiceProjectServiceImpl implements ServiceProjectService { } @Override - public ServiceProjectScopeResultDTO getServiceScopeTree(String staffId) { - AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId); + public ServiceProjectScopeResultDTO getServiceScopeTree(String staffId,String customerId) { + AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId,customerId); ServiceProjectScopeResultDTO rootScope = new ServiceProjectScopeResultDTO(); rootScope.setObjectId(orgTreeData.getAgencyId()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java index c6013c1332..e62100cf8d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java @@ -4,6 +4,7 @@ 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.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; @@ -78,6 +79,8 @@ public class StaffServiceImpl implements StaffService { private CustomerStaffRedis customerStaffRedis; @Resource private StaffOrgRelationDao staffOrgRelationDao; + @Autowired + private GovAccessFeignClient govAccessFeignClient; @Override public Result getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { @@ -190,6 +193,12 @@ public class StaffServiceImpl implements StaffService { } return new Result().error(EpmetErrorCode.STAFF_EDIT_FAILED.getCode(), EpmetErrorCode.STAFF_EDIT_FAILED.getMsg()); } + if (tokenDto.getClient().equals("web")){ + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), fromDTO.getStaffId(),fromDTO.getCustomerId())); + if (!roleUserAccess.success()){ + throw new EpmetException("save data to gov-role-user failure"); + } + } //2021.8.24 sun 人员信息编辑时删除工作人员的缓存信息 CustomerStaffRedis.delStaffInfoFormCache(fromDTO.getCustomerId(), fromDTO.getStaffId()); return result; @@ -578,6 +587,13 @@ public class StaffServiceImpl implements StaffService { staffOrgRelationEntity.setOrgType(fromDTO.getOrgType()); staffOrgRelationService.insert(staffOrgRelationEntity); + if (CollectionUtils.isNotEmpty(fromDTO.getNewRoles())){ + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), customerStaffAgencyEntity.getUserId(),fromDTO.getCustomerId())); + if (!roleUserAccess.success()){ + throw new EpmetException("save data to gov-role-user failure"); + } + } + return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java index 8ccaa5a32a..f69dba9ea0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java @@ -30,8 +30,8 @@ public class UserHouseScopeServiceImpl implements UserHouseScopeService { } @Override - public UserHouseScopeResultDTO getServiceScopeTree(String staffId) { - AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId); + public UserHouseScopeResultDTO getServiceScopeTree(String staffId,String customerId) { + AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId,customerId); UserHouseScopeResultDTO rootScope = new UserHouseScopeResultDTO(); rootScope.setObjectId(orgTreeData.getAgencyId()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.36__house_add_avgysr.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.36__house_add_avgysr.sql new file mode 100644 index 0000000000..b088ca5656 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.36__house_add_avgysr.sql @@ -0,0 +1 @@ +alter table ic_house add column AVG_YSR decimal(10,4) comment '家庭平均月收入' default -1 after RESI_NUMBER; \ 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/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index 136341dc18..d0e2d2e34c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -930,4 +930,55 @@ limit 1 + + + + + + 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/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index f770ddfa8e..2abb12cdda 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -25,6 +25,7 @@ + @@ -274,6 +275,7 @@ n.GRID_ID, gr.GRID_NAME, ih.HOUSE_CODE, + ih.CODING, ih.HOUSE_QRCODE_URL FROM ic_house ih left JOIN ic_neighbor_hood n ON ( ih.NEIGHBOR_HOOD_ID = n.id AND n.DEL_FLAG = '0') @@ -525,7 +527,11 @@ - UPDATE ic_house SET RESI_NUMBER = #{resiNumber}, UPDATED_TIME = NOW() where ID = #{houseId} and RESI_NUMBER != #{resiNumber} and DEL_FLAG = '0' + UPDATE ic_house + SET RESI_NUMBER = #{resiNumber}, AVG_YSR = #{avgYsrD}, UPDATED_TIME = NOW() + where + ID = #{houseId} and DEL_FLAG = '0' + and (RESI_NUMBER != #{resiNumber} or AVG_YSR != #{avgYsrD}) + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml index 8a774f3c21..6255a9b138 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml @@ -92,7 +92,11 @@ ID AS processId, OPERATION_NAME AS processName, UNIX_TIMESTAMP(created_time) AS processTime, - DEPARTMENT_NAME, + CASE + WHEN STAFF_NAME IS NULL THEN + DEPARTMENT_NAME + ELSE CONCAT( DEPARTMENT_NAME, '(', STAFF_NAME, ')' ) + END AS "departmentName", PUBLIC_REPLY, INTERNAL_REMARK, IS_SEND, diff --git a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml index e55caf1b80..57015601a5 100644 --- a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./gov-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-prod.yml b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-prod.yml index dc5e5818f0..c986d36542 100644 --- a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-prod.yml +++ b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./gov-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml index 7ab0900635..1ec54e3755 100644 --- a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml +++ b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./gov-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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..66903400f5 --- /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,45 @@ +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; + + /** + * org 编辑之前的Code 如果有修改 则直接更新其他涉及到的表 + */ + private String oldCode; +} + 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/deploy/docker-compose-dev.yml b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-dev.yml index 5df8669717..33f46186b7 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-dev.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./open-data-worker.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml index ab0a79aa2e..f3a948cd4e 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./open-data-worker.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-test.yml b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-test.yml index faa41dfeed..19eecea63d 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-test.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./open-data-worker.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java index 8332bdca9e..cd3642aca1 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java @@ -22,6 +22,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; //@ComponentScan(value = { "com.epmet" }) public class OpenDataApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(OpenDataApplication.class, args); } } 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..d1b1bf0912 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; @@ -37,12 +37,12 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent private RedisUtils redisUtils; private DistributedLock distributedLock; - + public OpenDataOrgChangeEventListener(DistributedLock distributedLock) { this.distributedLock = distributedLock; } - - + + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -51,7 +51,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent } try { - msgs.forEach(msg -> consumeMessage(msg)); + msgs.forEach(this::consumeMessage); } catch (Exception e) { logger.error(ExceptionUtils.getErrorStackTrace(e)); return ConsumeConcurrentlyStatus.RECONSUME_LATER; @@ -78,17 +78,34 @@ 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()); + extractFormDto.setOldCode(obj.getOldCode()); 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..9958530251 --- /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,297 @@ +package com.epmet.opendata.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.form.GridBaseInfoFormDTO; +import com.epmet.dto.org.result.CustomerAgencyDTO; +import com.epmet.dto.org.result.CustomerGridDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; +import com.epmet.opendata.dao.GridInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; +import com.epmet.opendata.dto.constant.DataWorkerConstant; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import com.epmet.opendata.entity.GridInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import com.epmet.opendata.service.GridInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +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 + */ +@Slf4j +@Service +public class GridInfoPingyinServiceImpl extends BaseServiceImpl implements GridInfoPingyinService { + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + @Autowired + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + @Autowired + private GridstaffWorkInfoPingyinDao gridstaffWorkInfoPingyinDao; + @Autowired + private EventreportPingyinDao eventreportPingyinDao; + + /** + * 抽取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) { + //网格code变更了 则将旧的code 的数据删除状态设置为Y + if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){ + baseDao.deleteByCode(formDTO.getOldCode()); + } + 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.查询网格基础信息 + GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, 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()) { + log.warn("根据网格Id 没有找到网格 等待再次调用"); + 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) { + //code 变更了 + gridCodeChanged(formDTO, entity); + //根据修改后的网格code 获取网格信息 + 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()); + } + } + } + } + + } + + /** + * desc:判断是否需要网格Code 如果修改了则 同步修改其他的相关业务数据。 + * @param formDTO + * @param entity + */ + private void gridCodeChanged(ExractGridInfoPingYinFormDTO formDTO, GridInfoPingyinEntity entity) { + if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){ + GridInfoPingyinEntity gridInfoEntity = new GridInfoPingyinEntity(); + gridInfoEntity.setGridCode(entity.getGridCode()); + gridInfoEntity.setUpdateTime(new Date()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(GridInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + int update = baseDao.update(gridInfoEntity, updateWrapper); + log.info("code changed gridinfo effect row:{}",update); + //更新完 网格code 去更新其他的业务【工作人员、例行工作、事件】数据对应的code + + GridstaffInfoPingyinEntity staffInfo = new GridstaffInfoPingyinEntity(); + staffInfo.setGridCode(entity.getGridCode()); + staffInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper staffInfoWrapper = new LambdaUpdateWrapper<>(); + staffInfoWrapper.eq(GridstaffInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffInfoPingyinDao.update(staffInfo, staffInfoWrapper); + log.info("code changed gridStaffInfo effect row:{}",update); + + GridstaffWorkInfoPingyinEntity workInfo = new GridstaffWorkInfoPingyinEntity(); + workInfo.setGridCode(entity.getGridCode()); + workInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper workInfoWrapper = new LambdaUpdateWrapper<>(); + workInfoWrapper.eq(GridstaffWorkInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffWorkInfoPingyinDao.update(workInfo, workInfoWrapper); + log.info("code changed staffWorkInfo effect row:{}",update); + + EventreportPingyinEntity eventEntity = new EventreportPingyinEntity(); + eventEntity.setGridCode(entity.getGridCode()); + eventEntity.setUpdateTime(new Date()); + + LambdaUpdateWrapper eventWrapper = new LambdaUpdateWrapper<>(); + eventWrapper.eq(EventreportPingyinEntity::getGridCode,formDTO.getOldCode()); + update = eventreportPingyinDao.update(eventEntity, eventWrapper); + log.info("code changed eventreport effect row:{}",update); + + } + } + + +} 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-access/oper-access-server/deploy/docker-compose-dev.yml b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-dev.yml index 97bcee075e..0358e5f042 100644 --- a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-dev.yml +++ b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-prod.yml b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-prod.yml index eb87408016..c077d9bce0 100644 --- a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-prod.yml +++ b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./oper-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml index 286203506d..03ed20594c 100644 --- a/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml +++ b/epmet-module/oper-access/oper-access-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-access.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java index 463ac3abc5..540e1c3b2f 100644 --- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java @@ -83,6 +83,11 @@ public class CustomerRelationDTO implements Serializable { */ private String areaCode; + /** + * 当前客户的地区编码,实际就是根组织的area_code + */ + private String parentAreaCode; + /** * 删除标识0未删除1已删除 */ diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java new file mode 100644 index 0000000000..817670541f --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java @@ -0,0 +1,41 @@ +/** + * 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; + + +/** + * 客户关系表(01.14 add) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-02-03 + */ +@Data +public class CustomerRelationFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + +} \ No newline at end of file diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java new file mode 100644 index 0000000000..895e46051b --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java @@ -0,0 +1,111 @@ +/** + * 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 lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 客户关系表(01.14 add) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-02-03 + */ +@Data +public class CustomerRelationTreeDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 父级客户id;如果是顶级客户,此列=0 + */ + private String parentCustomerId; + + /** + * 当前客户的所有父级客户id,以英文冒号隔开,如果是顶级客户,此列=0 + */ + private String pids; + + /** + * 当前客户类型取值: external:外部客户,internal:内部客户 + */ + private String customerType; + + /** + * 父级客户类型取值: external:外部客户,internal:内部客户;如果是顶级客户,此列=0 + */ + private String parentCustomerType; + + /** + * open,closed是否启用 + */ + private String status; + + /** + * 当前客户级别(社区级:community, +乡(镇、街道)级:street, +区县级: district, +市级: city +省级:province) + */ + private String level; + + /** + * 当前客户的地区编码,实际就是根组织的area_code + */ + private String areaCode; + + /** + * 当前客户的地区名称 + */ + private String areaName; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 有效期 + */ + private Date validityTime; + + /** + * 客户logo + */ + private String logo; + + /** + * 下一级 + */ + private List children; +} \ No newline at end of file diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java index c6fc44b140..cda0889b35 100644 --- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java @@ -133,4 +133,16 @@ public interface OperCrmOpenFeignClient { **/ @GetMapping("/oper/crm/customer/getexternalandparentcustomerid/{customerId}") Result getExternalAndParentCustomerId(@PathVariable("customerId") String customerId); + + /** + * 获取子客户 + * + * @param customerId + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/8 13:41 + */ + @GetMapping("/oper/crm/customerRelation/subcustomer/{customerId}") + Result> getSubCustomer(@PathVariable("customerId") String customerId); + } diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java index 8366657fa8..380ed077fa 100644 --- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java @@ -99,4 +99,9 @@ public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient { public Result getExternalAndParentCustomerId(String customerId) { return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getExternalAndParentCustomerId", customerId); } + + @Override + public Result> getSubCustomer(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getSubCustomer", customerId); + } } diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml index 0a12a58e1e..e21b270d89 100644 --- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml +++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-crm.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml index cb05ebd8f2..c3f68d4cfd 100644 --- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml +++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./oper-crm.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml index 80a237aefb..453b56307c 100644 --- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml +++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-crm.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-crm/oper-crm-server/pom.xml b/epmet-module/oper-crm/oper-crm-server/pom.xml index b85e21d911..0df193618f 100644 --- a/epmet-module/oper-crm/oper-crm-server/pom.xml +++ b/epmet-module/oper-crm/oper-crm-server/pom.xml @@ -111,6 +111,12 @@ 2.0.0 compile + + com.epmet + common-service-client + 2.0.0 + compile + diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java new file mode 100644 index 0000000000..e6a4bc2f25 --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java @@ -0,0 +1,104 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +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.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.CustomerRelationDTO; +import com.epmet.dto.result.CustomerRelationTreeDTO; +import com.epmet.service.CustomerRelationService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * 客户关系表(01.14 add) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-06 + */ +@RestController +@RequestMapping("customerRelation") +public class CustomerRelationController { + + @Autowired + private CustomerRelationService customerRelationService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params) { + PageData page = customerRelationService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) + public Result get(@PathVariable("id") String id) { + CustomerRelationDTO data = customerRelationService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody CustomerRelationDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + customerRelationService.saveV2(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody CustomerRelationDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + customerRelationService.update(dto); + return new Result(); + } + + @RequestMapping(value = "delete", method = {RequestMethod.POST, RequestMethod.DELETE}) + public Result delete(@RequestBody String[] ids) { + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + customerRelationService.delete(ids); + return new Result(); + } + + /** + * 客户树 + * + * @param + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/6 13:24 + */ + @RequestMapping("customertree") + public Result> customerTree(@LoginUser TokenDto tokenDto) { + return new Result>().ok(customerRelationService.getCustomerTree(tokenDto)); + } + + /** + * 获取子客户 + * + * @param customerId + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/8 13:41 + */ + @GetMapping("subcustomer/{customerId}") + public Result> getSubCustomer(@PathVariable("customerId") String customerId) { + if(StringUtils.isNotBlank(customerId)){ + List result = customerRelationService.getSubCustomer(customerId); + return new Result>().ok(result); + } + return new Result<>(); + } +} diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java index 948937062c..ee8e6255ce 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java @@ -19,8 +19,10 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerRelationDTO; +import com.epmet.dto.result.CustomerRelationTreeDTO; import com.epmet.entity.CustomerRelationEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -48,4 +50,35 @@ public interface CustomerRelationDao extends BaseDao { * @return java.util.List */ List selectAllSubCustomerIds(String customerId); + + /** + * 客户树根节点 + * + * @param customerId + * @return java.util.List + * @author zhy + * @date 2022/7/6 13:32 + */ + List selectRootCustomerByCustomerId(@Param("customerId") String customerId); + + /** + * 客户树子节点 + * + * @param customerPid + * @return java.util.List + * @author zhy + * @date 2022/7/6 13:32 + */ + List selectSubCustomerByPid(@Param("customerPid") String customerPid); + + /** + * 获取子客户 + * + * @param customerId + * @return com.epmet.commons.tools.utils.Result> + * @author zhy + * @date 2022/7/8 13:41 + */ + List getSubCustomer(@Param("customerId") String customerId); + } \ No newline at end of file diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java index 9c33664b50..1c0a077b14 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java @@ -79,4 +79,9 @@ public class CustomerRelationEntity extends BaseEpmetEntity { */ private String areaCode; + /** + * 当前客户的地区编码,实际就是根组织的area_code + */ + private String parentAreaCode; + } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java index 2776c8b0cf..05ee703d22 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java @@ -19,7 +19,9 @@ package com.epmet.service; 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.CustomerRelationDTO; +import com.epmet.dto.result.CustomerRelationTreeDTO; import com.epmet.entity.CustomerRelationEntity; import java.util.List; @@ -73,6 +75,16 @@ public interface CustomerRelationService extends BaseService getAllSubCustomerIds(String customerId); + + /** + * 客户树 + * + * @param tokenDto + * @return java.util.List + * @author zhy + * @date 2022/7/6 13:32 + */ + List getCustomerTree(TokenDto tokenDto); + + List getSubCustomer(String customerId); + } \ No newline at end of file diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java index 6a68df0455..415a6c831a 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java @@ -25,11 +25,17 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.CustomerRelationDao; import com.epmet.dto.CustomerDTO; import com.epmet.dto.CustomerRelationDTO; +import com.epmet.dto.form.AreaCodeDetailFormDTO; +import com.epmet.dto.result.AreaCodeResultDTO; +import com.epmet.dto.result.CustomerRelationTreeDTO; import com.epmet.entity.CustomerRelationEntity; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.redis.CustomerRedis; import com.epmet.service.CustomerRelationService; import com.epmet.service.CustomerService; @@ -58,6 +64,8 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl page(Map params) { @@ -75,8 +83,8 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -97,6 +105,15 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl(); } + @Override + public List getCustomerTree(TokenDto tokenDto) { +// String customerId = tokenDto.getCustomerId(); + String customerId = "78e2b2227c07de1fe54da14e2b2d9eb6"; + List rootList = baseDao.selectRootCustomerByCustomerId(customerId); + if (!rootList.isEmpty()) { + rootList.forEach(this::getSubCustomer); + } + return rootList; + } + + @Override + public List getSubCustomer(String customerId) { + return baseDao.getSubCustomer(customerId); + } + + /** + * 处理子客户 + * + * @param customer + * @return com.epmet.dto.result.CustomerRelationTreeDTO + * @author zhy + * @date 2022/7/6 13:54 + */ + private CustomerRelationTreeDTO getSubCustomer(CustomerRelationTreeDTO customer) { + AreaCodeDetailFormDTO formDTO = new AreaCodeDetailFormDTO(); + formDTO.setAreaCode(customer.getAreaCode()); + formDTO.setLevel(customer.getLevel()); + Result area = epmetCommonServiceOpenFeignClient.areaCodeDetail(formDTO); + if (area.success()) { + if (area.getData() != null) { + customer.setAreaName(area.getData().getAreaName()); + } + } + List children = baseDao.selectSubCustomerByPid(customer.getCustomerId()); + customer.setChildren(children); + if (!children.isEmpty()) { + children.forEach(this::getSubCustomer); + } + return customer; + } + } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml index f757a48b51..525e388cf4 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml @@ -23,4 +23,46 @@ cr.DEL_FLAG = '0' AND cr.PIDS like CONCAT(#{customerId},'%') + + + + + + + \ 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-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java index 49624a71d1..15b26e7f7d 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java @@ -81,4 +81,10 @@ public class IcFormItemGroupLisFormDTO extends PageFormDTO { * 1展示,0不展示,默认1 */ private Boolean display; + + /** + * 1:政策招人 + * 0:居民信息导出 + */ + private String policyFlag; } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemQueryDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemQueryDTO.java new file mode 100644 index 0000000000..bdb67e2d52 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemQueryDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 查询分组下的组件;前端再政策招人那个界面,传入分组id,policyFlag查询 + * @Author yzm + * @Date 2022/7/19 9:24 + */ +@Data +public class IcFormItemQueryDTO implements Serializable { + public interface AddUserInternalGroup { + } + + @NotBlank(message = "客户Id不能为空", groups = AddUserInternalGroup.class) + private String customerId; + + private String groupId; + /** + * 政策人员信息组件;1:展示;0:不展示;默认0 + */ + private String policyFlag; +} + diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemBaseResult.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemBaseResult.java index c8707fcbc1..fb8d1412a7 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemBaseResult.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemBaseResult.java @@ -3,6 +3,7 @@ package com.epmet.dto.result; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description 基础表单项 @@ -59,6 +60,12 @@ public class FormItemBaseResult implements Serializable { * 是否支持添加(即多对一,eg:需求列表) */ private boolean supportAdd; + /** + * 控件类型,EG:INPUT;从字典获取 + */ + private String itemType; + private String customerId; + private List options; } diff --git a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml index 56861b1710..cfaf3a1772 100644 --- a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml +++ b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-customize.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-prod.yml b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-prod.yml index 11022f5b5b..5cb566ad8d 100644 --- a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-prod.yml +++ b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./oper-customize.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml index bff06f7016..c6cab92c56 100644 --- a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml +++ b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-customize.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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/OperCustomizeApplication.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java index 8b60526acf..f0b206f086 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java @@ -27,6 +27,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; public class OperCustomizeApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(OperCustomizeApplication.class, args); } 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/controller/IcFormItemController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java index 0d6070e7f6..9d1c814eb6 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java @@ -20,6 +20,7 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.EditIFormItemFormDTO; +import com.epmet.dto.form.IcFormItemQueryDTO; import com.epmet.dto.result.ColumnTableNameResultDTO; import com.epmet.dto.result.FormItemBaseResult; import com.epmet.dto.result.ResiCategoryItemResultDTO; @@ -99,4 +100,16 @@ public class IcFormItemController { List list = icFormItemService.getItemListByGroupId(customerId,groupId); return new Result().ok(list); } + + /** + * 根据分组id 获取分组下的item + * @return + */ + @PostMapping("getItemListV2") + public Result> getItemListByGroupId(@RequestHeader String customerId, @RequestBody IcFormItemQueryDTO formDto){ + formDto.setCustomerId(customerId); + ValidatorUtils.validateEntity(formDto,IcFormItemQueryDTO.AddUserInternalGroup.class); + List list = icFormItemService.getItemListByGroupIdV2(customerId,formDto.getGroupId(),formDto.getPolicyFlag()); + return new Result().ok(list); + } } 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 fda1c91afc..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); /** * 构造出所有子表关联语句 @@ -96,4 +96,5 @@ public interface IcFormItemDao extends BaseDao { * @return */ List getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId); + List getItemListByGroupIdV2(@Param("customerId") String customerId, @Param("groupId") String groupId,@Param("policyFlag")String policyFlag); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemGroupEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemGroupEntity.java index 29e5cec078..af11e9b05c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemGroupEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemGroupEntity.java @@ -75,4 +75,8 @@ public class IcFormItemGroupEntity extends BaseEpmetEntity { */ private Boolean display; + /** + * 政策人员信息组件;1:展示;0:不展示;默认0 + */ + private String policyFlag; } 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 b60e178ea2..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); @@ -91,4 +91,5 @@ public interface IcFormItemService extends BaseService { * @return */ List getItemListByGroupId(String customerId, String groupId); + List getItemListByGroupIdV2(String customerId, String groupId,String policyFlag); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java index 7eee10c186..0241c9e9ba 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.dto.IcFormItemGroupDTO; import com.epmet.dto.form.IcFormItemGroupLisFormDTO; import com.epmet.entity.IcFormItemGroupEntity; import com.epmet.service.IcFormItemGroupService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,7 +46,8 @@ public class IcFormItemGroupServiceImpl extends BaseServiceImpl list(IcFormItemGroupLisFormDTO params) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcFormItemGroupEntity::getCustomerId, params.getCustomerId()) - .orderByAsc(IcFormItemGroupEntity::getSort); + .eq(StringUtils.isNotBlank(params.getPolicyFlag()), IcFormItemGroupEntity::getPolicyFlag, params.getPolicyFlag()) + .orderByAsc(IcFormItemGroupEntity::getSort); List entityList = baseDao.selectList(wrapper); return ConvertUtils.sourceToTarget(entityList, IcFormItemGroupDTO.class); 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 06c8c1ed14..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 @@ -269,6 +269,10 @@ public class IcFormItemServiceImpl extends BaseServiceImpl getItemListByGroupIdV2(String customerId, String groupId,String policyFlag) { + return baseDao.getItemListByGroupIdV2(customerId,groupId,policyFlag); + } private String queryType(String itemType) { /*switch (itemType) { 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.31__resi_export.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.31__resi_export.sql new file mode 100644 index 0000000000..4383d0e701 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.31__resi_export.sql @@ -0,0 +1,15 @@ +alter table ic_form_item add COLUMN EXPORT_FLAG tinyint(1) DEFAULT '0' + COMMENT '是否用于自定义导出显示,1展示。0不展示' AFTER DATA_ANALYSE; + +update ic_form_item set EXPORT_FLAG='1' +where DEL_FLAG='0' + and LENGTH(COLUMN_NAME)>0; + +-- 恢复年龄组件 +UPDATE ic_form_item i +SET i.DEL_FLAG = '0' + AND i.COLUMN_NAME = 'BIRTHDAY', + i.UPDATED_TIME = NOW(), + i.CREATED_TIME = NOW() +WHERE + i.LABEL = '年龄'; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.32__policy_flag.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.32__policy_flag.sql new file mode 100644 index 0000000000..452d0df446 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.32__policy_flag.sql @@ -0,0 +1,17 @@ +alter table ic_form_item_group add COLUMN POLICY_FLAG VARCHAR(1) DEFAULT '0' + COMMENT '政策人员信息组件;1:展示;0:不展示;默认0' AFTER DISPLAY; + + +alter table ic_form_item add COLUMN POLICY_FLAG VARCHAR(1) DEFAULT '0' + COMMENT '政策人员信息组件;1:展示;0:不展示;默认0' AFTER MULTI_SELECT; + +update ic_form_item_group set POLICY_FLAG='1' +where DEL_FLAG='0' + and LABEL not like '%需求信息%'; + +update ic_form_item i set i.POLICY_FLAG='1' +where i.DEL_FLAG='0' + and i.COLUMN_NAME is not null + and i.COLUMN_NAME !='' + and i.ITEM_TYPE not in('cascader') + and i.label not in ('分割线','出生日期','参战时间'); \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.33__policy_flagbugfix.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.33__policy_flagbugfix.sql new file mode 100644 index 0000000000..ea437f22b7 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.33__policy_flagbugfix.sql @@ -0,0 +1,3 @@ +update ic_form_item i set i.UPDATED_TIME=NOW(),i.POLICY_FLAG='0' +where i.DEL_FLAG='0' + and i.DYNAMIC='0'; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.34__policy_nianling.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.34__policy_nianling.sql new file mode 100644 index 0000000000..b2792374e8 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.34__policy_nianling.sql @@ -0,0 +1,8 @@ +-- 恢复年龄组件 +UPDATE ic_form_item i +SET i.DEL_FLAG = '0', + i.COLUMN_NAME = 'BIRTHDAY', + i.POLICY_FLAG='1', + i.UPDATED_TIME = NOW() +WHERE + i.LABEL = '年龄'; \ No newline at end of file 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 20974d2afa..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 @@ -257,9 +265,59 @@ CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName FROM ic_form_item ifi - LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID + LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID WHERE ITEM_GROUP_ID = #{groupId} and ifi.CUSTOMER_ID = #{customerId} + and ifi.del_flag='0' + AND LENGTH(ifi.COLUMN_NAME)>0 + AND ifi.EXPORT_FLAG='1' + ORDER BY ifi.SORT + + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml index bfe0391be1..a7652f55e2 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-group.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-prod.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-prod.yml index c2d1f70171..e235fed405 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-group.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml index c53fed3810..d11febf433 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./resi-group.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java index 0e3a138491..278d64b9a6 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java @@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync; public class ResiGroupApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(ResiGroupApplication.class, args); } } diff --git a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-dev.yml b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-dev.yml index 46c73ee371..612ef0affb 100644 --- a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-guide.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-prod.yml b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-prod.yml index 5cad88228d..b2564ab858 100644 --- a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-guide.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-test.yml b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-test.yml index c37a42bcfe..d5fba5d963 100644 --- a/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-guide/resi-guide-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-guide.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml index d5d83fb58b..3c73f07ea5 100644 --- a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-hall.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-prod.yml b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-prod.yml index 11b8c09a2f..92713ea878 100644 --- a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-hall.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml index 8da80caf78..1c81abeaf6 100644 --- a/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-hall.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml index d576ed8a28..2050db96df 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-home.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-prod.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-prod.yml index d93cc35e88..5c5adfb604 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-home.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml index a2da44bf77..7c3d090fae 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-home.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml index cef4c0f867..b9f715e989 100644 --- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml index fb4fb7fd26..b8599de420 100644 --- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml index 9545a3feb3..0c46506f4a 100644 --- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-mine.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 11f20c2f0c..771bbdf2ed 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -167,7 +167,7 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { if (null == gridInfoCache || (null != gridInfoCache.getAbandonFlag() && NumConstant.ONE == gridInfoCache.getAbandonFlag())) { result.setGridId(StrConstant.EPMETY_STR); result.setCustomerId(StrConstant.EPMETY_STR); - logger.error(String.format("获取用户最近访问网格异常,网格可能被删除或者被弃用,参数%s",JSON.toJSONString(formDTO))); + logger.warn(String.format("获取用户最近访问网格异常,网格可能被删除或者被弃用,参数%s",JSON.toJSONString(formDTO))); return result; } result.setGridId(userResult.getData().getGridId()); diff --git a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml index d549dfa605..b6ac317a28 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-partymember.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-prod.yml b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-prod.yml index 593f8d4709..0d3e65ba3b 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-partymember.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-test.yml b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-test.yml index 30f7977dae..47a213ed08 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-partymember.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java index 74e592b898..180e65cfe2 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java @@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync; public class ResiPartyMemberApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(ResiPartyMemberApplication.class, args); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java index 2b0f70bade..e6e8fd9c44 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java @@ -662,21 +662,6 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(IcPartyMemberEntity::getCustomerId, customerId); - wrapper.eq(IcPartyMemberEntity::getIdCard, e.getIdCard()); - IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); - if (null != partyMember) { - String message = "党员已存在"; - IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); - errorRow.setName(name); - errorRow.setMobile(mobile); - errorRow.setIdCard(idCard); - errorRow.setErrorInfo(message); - otherRows.add(errorRow); - return; - } e.setCustomerId(customerId); e.setAgencyId(org.getAgencyId()); e.setAgencyPids(org.getAgencyPids()); @@ -707,7 +692,18 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyMemberEntity::getCustomerId, customerId); + wrapper.eq(IcPartyMemberEntity::getIdCard, e.getIdCard()); + IcPartyMemberEntity partyMember = baseDao.selectOne(wrapper); + if (null != partyMember) { + e.setId(partyMember.getId()); + baseDao.updateById(e); + } else { + baseDao.insert(e); + } + } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml index 3bbff08587..f4fc5a99ea 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml @@ -139,12 +139,36 @@ + + + + ${log.path}/rocketmqclient.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + + + + @@ -159,6 +183,10 @@ + + + + diff --git a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-dev.yml b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-dev.yml index 63cb2415e8..9d3e187b38 100644 --- a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./resi-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-prod.yml b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-prod.yml index 3375e0d198..eea50949fe 100644 --- a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-prod.yml +++ b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./resi-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-test.yml b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-test.yml index 6baa2c7be4..1d82683f68 100644 --- a/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-test.yml +++ b/epmet-module/resi-voice/resi-voice-server/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx300m -jar ./resi-voice.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml index e0ebfada9a..53cbacfb6e 100644 --- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml +++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-openapi-scan.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml index 2be1100292..68d784d052 100644 --- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml +++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-openapi-scan.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml index 49ce30a8c1..c17412537b 100644 --- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml +++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml @@ -11,6 +11,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-openapi-scan.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: 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/PaCustomerDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java new file mode 100644 index 0000000000..66abf30d75 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java @@ -0,0 +1,71 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2022/8/5 15:03 + * @DESC + */ +@Data +public class PaCustomerDTO implements Serializable { + + /** + * 客户id,本主键和oper_crm.customer.id一致 + */ + private String id; + + /** + * 客户名称,默认是根组织名称 + */ + private String customerName; + + /** + * 是否已经完成客户信息初始化 0:未初始化,1:已初始化 + */ + private Integer isInitialize; + + /** + * 客户类型 mini 微信小程序客户 app 第三方app客户 + */ + private String type; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java index 80719e6737..ec555aaa14 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java @@ -23,4 +23,8 @@ public class GetByRealNamesFormDTO implements Serializable { * 工作人员姓名集合 */ private Set realNames; + /** + * 手机号模糊查询 + */ + private String mobile; } 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/IcResiUserConfirmSubmitDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java index ea119fbd80..e2bbad8810 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java @@ -210,5 +210,5 @@ public class IcResiUserConfirmSubmitDTO implements Serializable { private String operationDescribe; private String houseCode; - + private Boolean isOwner = false; } 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/form/IcUserBelongToChangedFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserBelongToChangedFormDTO.java index da773e7266..102bbd9c9b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserBelongToChangedFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserBelongToChangedFormDTO.java @@ -19,6 +19,11 @@ public class IcUserBelongToChangedFormDTO implements Serializable { * 客户Id */ private String customerId; + + /** + * 小区ID + */ + private String neighborhoodId; /** * 原网格Id */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java new file mode 100644 index 0000000000..1aa4d2db1e --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:11 + * @DESC + */ +@Data +public class IcUserMatchGridFormDTO implements Serializable { + + private static final long serialVersionUID = -5252136149475817567L; + + public interface IcUserMatchGridForm{} + + @NotBlank(message = "idCard不能为空",groups = IcUserMatchGridForm.class) + private String idCard; + + @NotBlank(message = "appId不能为空",groups = IcUserMatchGridForm.class) + private String appId; +} 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/HomeInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java index e890aa3092..18a790d63a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java @@ -19,5 +19,14 @@ public class HomeInfoResultDTO implements Serializable { private String houseId; private String houseName; private String houseCode; + private String coding; private String qrCodeUrl; + /** + * 是否是房主 + */ + private String isOwner = "0"; + /** + * 房主身份证 + */ + private String ownerIdCard; } 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/IcUserMatchGridResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java new file mode 100644 index 0000000000..d3fd271987 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:14 + * @DESC + */ +@Data +public class IcUserMatchGridResultDTO implements Serializable { + + private static final long serialVersionUID = -3215965796907113918L; + + private String gridId; + + private String customerId; + + private String gridName; +} 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/dto/result/RegisterAndBindResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RegisterAndBindResultDTO.java new file mode 100644 index 0000000000..cb30766181 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RegisterAndBindResultDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/20 17:13 + */ +@Data +public class RegisterAndBindResultDTO implements Serializable { + private static final long serialVersionUID = 718455504517985543L; + private String isOwner = "0"; + private String isDiff = "0"; +} 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 65e7b7b850..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 @@ -835,4 +838,37 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/icresiuser/getIcUserCount") Result> getIcUserCount(@RequestBody IcUserCountFormDTO formDTO); + + /** + * desc: 同步数据,房内居民数量 类别统计数据量等只用客户id当条件 + * + * @param customerId + * @return com.epmet.commons.tools.utils.Result + * @author LiuJanJun + * @date 2022/7/16 6:53 下午 + */ + @PostMapping("/epmetuser/icResiUserDataSync/icDataSyncTask") + Result icDataSyncTask(String customerId); + + /** + * Desc: 查询是否是超级管理员 + * @param userId + * @author zxc + * @date 2022/7/13 11:03 + */ + @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 8c47cdb204..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); @@ -636,4 +641,34 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIcUserCount", formDTO); } + @Override + public Result icDataSyncTask(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "icDataSyncTask", customerId); + } + + @Override + public Result getIsRootManager(String userId) { + 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/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index 7d9ac90396..9c2564656b 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -12,6 +12,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-user.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml index 665f7108cd..fdc9c6405f 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml @@ -12,6 +12,11 @@ services: environment: RUN_INSTRUCT: "java -Xms256m -Xmx1524m -jar ./epmet-user.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml index c880913294..b867614c20 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml @@ -12,6 +12,11 @@ services: environment: RUN_INSTRUCT: "java -Xms32m -Xmx512m -jar ./epmet-user.jar" restart: "unless-stopped" + logging: + driver: local + options: + max-size: "10m" + max-file: "2" deploy: resources: limits: diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java index 4f9b736afb..5767fb4d33 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java @@ -30,6 +30,7 @@ import org.springframework.scheduling.annotation.EnableAsync; public class UserApplication { public static void main(String[] args) { + System.setProperty("rocketmq.client.logUseSlf4j", "true"); SpringApplication.run(UserApplication.class, args); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java index 8f95f22f45..c1cac171ec 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java @@ -77,7 +77,7 @@ public class ChangeWelfareController { @GetMapping("export") public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { List list = changeWelfareService.list(params); - ExcelUtils.exportExcelToTarget(response, null, list, ChangeWelfareExcel.class); + ExcelUtils.exportEpmetExcel(response, null, list, ChangeWelfareExcel.class); } /** 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 161be43e92..f958d975d3 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 @@ -30,6 +30,7 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; @@ -48,7 +49,6 @@ import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.SystemMessageType; import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.IcResiUserDTO; @@ -76,6 +76,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.poifs.filesystem.OfficeXmlFileException; import org.jetbrains.annotations.NotNull; +import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -90,6 +91,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -139,6 +141,8 @@ public class IcResiUserController implements ResultDataResolver { private RequestInterceptor requestInterceptor; @Autowired private ExecutorService executorService; + @Autowired + private DistributedLock distributedLock; /** * 模板枚举 @@ -247,11 +251,17 @@ public class IcResiUserController implements ResultDataResolver { @NoRepeatSubmit @PostMapping("edit") public Result edit(@LoginUser TokenDto tokenDto, @RequestBody List formDTO) { - String resiUserId = icResiUserService.edit(tokenDto, formDTO); - //推送MQ事件 - editResiMq(tokenDto.getCustomerId(), resiUserId); + RLock lock = null; + try { + lock = distributedLock.getLock(RedisKeys.getXiaoquEditLock(tokenDto.getCustomerId()), 120L, 3L, TimeUnit.SECONDS); + String resiUserId = icResiUserService.edit(tokenDto, formDTO); + //推送MQ事件 + editResiMq(tokenDto.getCustomerId(), resiUserId); - this.sendVolunteerMsg(tokenDto.getCustomerId(), resiUserId); + this.sendVolunteerMsg(tokenDto.getCustomerId(), resiUserId); + } finally { + distributedLock.unLock(lock); + } return new Result(); } @@ -364,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<>()); @@ -599,7 +610,9 @@ public class IcResiUserController implements ResultDataResolver { // 三.异步执行导入 executorService.execute(() -> { boolean isAllSuccess = false; + RLock lock = null; try { + lock = distributedLock.getLock(RedisKeys.getXiaoquEditLock(customerId), 120L, 3L, TimeUnit.SECONDS); List formItemList = icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode()); isAllSuccess = icResiUserImportService.importIcResiInfoFromExcel(importTaskId, formItemList, importTempFileSavePath.toString(), response, IC_RESI_UPLOAD_DIR); } catch (Throwable e) { @@ -638,6 +651,11 @@ public class IcResiUserController implements ResultDataResolver { form.setMessageType(SystemMessageType.IC_RESI_USER_ADD); form.setContent(mqMsg); epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); + + //解锁 + if (lock != null) { + lock.unlock(); + } } }); @@ -1254,4 +1272,38 @@ 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)); + } + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @PostMapping("icUserMatchGrid") + public Result icUserMatchGrid(@RequestBody IcUserMatchGridFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, IcUserMatchGridFormDTO.IcUserMatchGridForm.class); + return new Result().ok(icResiUserService.icUserMatchGrid(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserDataSyncController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserDataSyncController.java new file mode 100644 index 0000000000..ae875c7acf --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserDataSyncController.java @@ -0,0 +1,101 @@ +/** + * 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.controller; + +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.service.IcResiUserDataSyncService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.redisson.api.RLock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; +import java.util.concurrent.TimeUnit; + + +/** + * 用户基础信息同步计算入口 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +@Slf4j +@RestController +@RequestMapping("icResiUserDataSync") +public class IcResiUserDataSyncController implements ResultDataResolver { + + @Autowired + private IcResiUserDataSyncService icResiUserDataSyncService; + @Autowired + private RedisUtils redisUtils; + @Autowired + private DistributedLock distributedLock; + + + /** + * 获取录入居民的数量 + * + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/6/30 9:35 + */ + @PostMapping("icDataSyncTask") + public Result icDataSyncTask(@RequestParam(value = "customerId",required = false) String customerId) { + RLock lock = null; + String key = RedisKeys.getDataSyncKey("resi"); + try { + lock = distributedLock.getLock(RedisKeys.getLockByMethodName("icDataSyncTask"), + 30L, 30L, TimeUnit.SECONDS); + if (StringUtils.isBlank(customerId)) { + Object customerIdObj = redisUtils.sPop(key); + while (customerIdObj != null) { + try { + icResiUserDataSyncService.icDataSyncTask(customerIdObj.toString()); + log.debug("icDataSyncTask customerId:{} execute success", customerIdObj); + + customerIdObj = redisUtils.sPop(key); + } catch (Exception e) { + log.error("icDataSyncTask exception msg:{},customerId:{}", e.getMessage(), customerIdObj); + redisUtils.sAdd(key, customerIdObj); + } + log.debug("icDataSyncTask finish customerId:{} execute success", customerIdObj); + } + } else { + icResiUserDataSyncService.icDataSyncTask(customerId); + log.debug("icDataSyncTask customerId:{} execute success", customerId); + } + } catch (Exception e) { + if (StringUtils.isNotBlank(customerId)) { + redisUtils.sAdd(key, customerId); + } + log.error("icDataSyncTask exception msg:{},customerId:{}", e.getMessage(), customerId); + } finally { + distributedLock.unLock(lock); + } + return new Result().ok(true); + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java index a622798520..a2d754b2e9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java @@ -10,12 +10,10 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.IcHouseDTO; import com.epmet.dto.IcResiUserConfirmDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.ConfirmListResultDTO; -import com.epmet.dto.result.HomeInfoResultDTO; -import com.epmet.dto.result.HomeUserBriefResultDTO; -import com.epmet.dto.result.MoveOutDetailResultDTO; +import com.epmet.dto.result.*; import com.epmet.service.IcResiUserConfirmService; import com.epmet.service.IcResiUserService; import com.epmet.service.MyHomeService; @@ -135,11 +133,10 @@ public class MyHomeController { * @Date 2022/6/1 10:26 */ @PostMapping("registerAndBind") - public Result registerAndBind(@LoginUser TokenDto tokenDto, @RequestBody RegisterAndBindFormDTO formDTO) { + public Result registerAndBind(@LoginUser TokenDto tokenDto, @RequestBody RegisterAndBindFormDTO formDTO) { formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setUserId(tokenDto.getUserId()); - myHomeService.registerAndBind(formDTO); - return new Result(); + return new Result().ok(myHomeService.registerAndBind(formDTO)); } @PostMapping("homeInfo") @@ -200,4 +197,33 @@ public class MyHomeController { return new Result(); } + /** + * 获取房主名下的房屋列表 + * + * @Param tokenDto + * @Return {@link Result< HomeInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/19 16:46 + */ + @PostMapping("getOwnerHouseList") + public Result> getOwnerHouseList(@LoginUser TokenDto tokenDto, @RequestBody IcHouseDTO formDTO) { + List result = myHomeService.getOwnerHouseList(tokenDto, formDTO); + return new Result>().ok(result); + } + + /** + * 变更绑定的房屋 + * + * @Param tokenDto + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2022/7/20 17:28 + */ + @PostMapping("changeHome") + public Result changeHome(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserConfirmSubmitDTO formDTO) { + myHomeService.changeHome(tokenDto, formDTO); + return new Result(); + } + } 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/controller/StaffRoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffRoleController.java index 0cf0bc1760..63001fb2e9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffRoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffRoleController.java @@ -217,4 +217,15 @@ public class StaffRoleController { return new Result>().ok(staffRoleService.getGridStaffList(formDTO)); } + + /** + * Desc: 查询是否是超级管理员 + * @param userId + * @author zxc + * @date 2022/7/13 11:03 + */ + @PostMapping("getIsRootManager") + public Result getIsRootManager(@RequestParam("userId") String userId){ + return new Result().ok(staffRoleService.getIsRootManager(userId)); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java index 99b07f9c36..dd1cd558a6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.UserRoleDTO; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserRoleFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.excel.UserRoleExcel; import com.epmet.service.UserRoleService; @@ -102,7 +103,7 @@ public class UserRoleController { * @Date 2020.03.30 15:35 **/ @PostMapping("getuserroleinfo") - public Result> getUserRoleInfo(@RequestBody UserRoleFormDTO userRoleFormDTO) { + public Result> getUserRoleInfo(@RequestBody UserRoleFormDTO userRoleFormDTO) { ValidatorUtils.validateEntity(userRoleFormDTO); @@ -130,7 +131,7 @@ public class UserRoleController { * @Date 14:24 2020-07-23 **/ @GetMapping(value = "getuserroleinfobyuserid/{userId}") - public Result> getUserRoleInfoByUserId(@PathVariable("userId") String userId) { + public Result> getUserRoleInfoByUserId(@PathVariable("userId") String userId) { return userRoleService.getUserRoleInfoByUserId(userId); } 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/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 73e5247785..ae94fe4ec2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -322,9 +322,10 @@ public interface IcResiUserDao extends BaseDao { * * @param customerId * @param gridId + * @param neighborhoodId * @return */ - List listUserIds(@Param("customerId") String customerId, @Param("gridId") String gridId); + List listUserIds(@Param("customerId") String customerId, @Param("gridId") String gridId, @Param("neighborhoodId") String neighborhoodId); List getAllUserIds(@Param("idCard") String idCard, @Param("customerId") String customerId); @@ -402,7 +403,7 @@ public interface IcResiUserDao extends BaseDao { List getListIcResiUserDTO(@Param("icResiUserIdList") List icResiUserIdList); /** - * desc:获取客户内 每个房屋内的居民数 + * desc:获取客户内 每个房屋内的居民数和人均收入 * * @param customerId * @return @@ -412,6 +413,7 @@ public interface IcResiUserDao extends BaseDao { /** * 通过社区ID获取所属人员 + * * @param communityId * @return */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java index 3e261b041f..e3c7d35318 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java @@ -87,4 +87,6 @@ public interface IcStatsResiWarnDao extends BaseDao { List queryUserWarnNotice(@Param("customerId") String customerId, @Param("agencyId") String agencyId, @Param("configIds") List configIds); + + int deleteByCustomerIdAndConfigId(@Param("configId") String configId, @Param("customerId")String customerId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java index 8f62aef830..fa14b5a742 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java @@ -182,4 +182,6 @@ public interface StaffRoleDao extends BaseDao { * @date 2022/1/17 2:45 下午 */ List getStaffList(GridStaffFormDTO formDTO); + + List getRoleKeys(@Param("staffId")String staffId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java index e8a47ab9a1..62e59d9b98 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.dto.form.UserRoleFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.dto.result.PartyMemberUserIdsResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.UserRoleEntity; @@ -43,7 +44,7 @@ public interface UserRoleDao extends BaseDao { * @Author wangc * @Date 2020.03.30 15:35 **/ - List getUserRoleInfo(UserRoleFormDTO userRoleFormDTO); + List getUserRoleInfo(UserRoleFormDTO userRoleFormDTO); /** * @Description 根据用户Id、网格Id、客户Id查询用户角色key列表 @@ -62,7 +63,7 @@ public interface UserRoleDao extends BaseDao { * @Author zhangyong * @Date 14:24 2020-07-23 **/ - List getUserRoleInfoByUserId(@Param("userId") String userId); + List getUserRoleInfoByUserId(@Param("userId") String userId); /** * @param 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/excel/ChangeWelfareExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java index 909294dfa9..99437aa726 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java @@ -3,8 +3,6 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; -import java.util.Date; - /** * 福利表 * @@ -14,14 +12,14 @@ import java.util.Date; @Data public class ChangeWelfareExcel { - @Excel(name = "主键") - private String id; - - @Excel(name = "epmet用户主键") - private String userId; - - @Excel(name = "epmet网格ID") - private String gridId; +// @Excel(name = "主键") +// private String id; +// +// @Excel(name = "epmet用户主键") +// private String userId; +// +// @Excel(name = "epmet网格ID") +// private String gridId; @Excel(name = "姓名") private String name; @@ -32,44 +30,44 @@ public class ChangeWelfareExcel { @Excel(name = "手机号") private String mobile; - @Excel(name = "性别 0女 1男") + @Excel(name = "性别",replace = { "男_1", "女_0", "女_2", " _null"} ) private String gender; - @Excel(name = "类型") - private String type; - +// @Excel(name = "类型") +// private String type; +// @Excel(name = "加入时间") private String joinDate; - - @Excel(name = "加入原因") - private String joinReason; - - @Excel(name = "移除时间") - private String removeDate; - - @Excel(name = "移除原因") - private String removeReason; - - @Excel(name = "删除标记 0:未删除,1:已删除") - private String delFlag; - - @Excel(name = "乐观锁") - private Integer revision; - - @Excel(name = "创建人") - private String createdBy; - - @Excel(name = "创建时间") - private Date createdTime; - - @Excel(name = "更新人") - private String updatedBy; - - @Excel(name = "更新时间") - private Date updatedTime; - - @Excel(name = "客户ID") - private String customerId; +// +// @Excel(name = "加入原因") +// private String joinReason; + +// @Excel(name = "移除时间") +// private String removeDate; +// +// @Excel(name = "移除原因") +// private String removeReason; +// +// @Excel(name = "删除标记 0:未删除,1:已删除") +// private String delFlag; + +// @Excel(name = "乐观锁") +// private Integer revision; +// +// @Excel(name = "创建人") +// private String createdBy; +// +// @Excel(name = "创建时间") +// private Date createdTime; +// +// @Excel(name = "更新人") +// private String updatedBy; +// +// @Excel(name = "更新时间") +// private Date updatedTime; +// +// @Excel(name = "客户ID") +// private String customerId; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java index e74c011246..c1328f548a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java @@ -70,7 +70,11 @@ public class ICWarnStatsEventListener implements MessageListenerConcurrently { IcResiUserAddMQMsg obj = JSON.parseObject(msg, IcResiUserAddMQMsg.class); log.info("obj is {}", JSON.toJSONString(obj)); try { - if (!resiWarnStats(obj)||!updateIcNatResiFlag(tags, obj)||!updateIcHouseResiNumber(obj)){ + String key = RedisKeys.getDataSyncKey("resi"); + redisUtils.sAdd(key, obj.getCustomerId()); + //todo 统计预警人数和 更新屋内居民数 用定时任务跑吧 这样太费劲 + //||!updateIcHouseResiNumber(obj) !resiWarnStats(obj)|| installed of IcDataSyncTask + if (!updateIcNatResiFlag(tags, obj)){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"消费失败,等待重新消费"); } } catch (RenException e) { 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/IcResiUserDataSyncService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserDataSyncService.java new file mode 100644 index 0000000000..7e1ccc9a24 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserDataSyncService.java @@ -0,0 +1,36 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service; + +/** + * 用户基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +public interface IcResiUserDataSyncService { + /** + * desc: 同步与居民相关的数据 + * + * @param customerId + * @return java.lang.String + * @author LiuJanJun + * @date 2022/7/16 8:06 下午 + */ + Boolean icDataSyncTask(String customerId); +} 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..37cf258e14 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,19 @@ public interface IcResiUserService extends BaseService { */ Map getIcUserCount(IcUserCountFormDTO formDTO); + /** + * 综合治理图层-查询各类别(信访人员、安置帮教、吸毒人员、社区矫正、不良青少年、肇事肇祸精神病、邪教人员)居民信息 + * @param pageFormDTO + * @return + */ + PageData> listResiZhzl(IcResiUserPageFormDTO pageFormDTO); + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java index 0d1667b03d..a4f140670f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java @@ -1,9 +1,12 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dto.IcHouseDTO; +import com.epmet.dto.form.IcResiUserConfirmSubmitDTO; import com.epmet.dto.form.RegisterAndBindFormDTO; import com.epmet.dto.result.HomeInfoResultDTO; import com.epmet.dto.result.HomeUserBriefResultDTO; +import com.epmet.dto.result.RegisterAndBindResultDTO; import java.util.List; @@ -21,7 +24,7 @@ public interface MyHomeService { * @Author zhaoqifeng * @Date 2022/6/1 16:33 */ - void registerAndBind(RegisterAndBindFormDTO formDTO); + RegisterAndBindResultDTO registerAndBind(RegisterAndBindFormDTO formDTO); /** * 获取用户绑定的房屋信息 @@ -43,4 +46,25 @@ public interface MyHomeService { * @date 2022/6/1/0001 16:12 */ List selectListHomeMember(String houseCode, String customerId); + + /** + * 获取房主名下的房屋列表 + * + * @Param tokenDto + * @Return {@link List< HomeInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/19 16:48 + */ + List getOwnerHouseList(TokenDto tokenDto, IcHouseDTO formDTO); + + /** + * 变更绑定的房屋 + * + * @Param tokenDto + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2022/7/20 17:28 + */ + void changeHome(TokenDto tokenDto, IcResiUserConfirmSubmitDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffRoleService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffRoleService.java index 2458ba809d..f763247d30 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffRoleService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffRoleService.java @@ -122,4 +122,12 @@ public interface StaffRoleService extends BaseService { * @date 2022/1/17 2:37 下午 */ PageData getGridStaffList(GridStaffFormDTO formDTO); + + /** + * Desc: 查询是否是超级管理员 + * @param userId + * @author zxc + * @date 2022/7/13 11:03 + */ + Boolean getIsRootManager(String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java index ae47c9291a..38f9ff02ac 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserRoleDTO; import com.epmet.dto.form.UserRoleFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.UserRoleEntity; @@ -103,7 +104,7 @@ public interface UserRoleService extends BaseService { * @Author wangc * @Date 2020.03.30 15:35 **/ - Result> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO); + Result> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO); /** * 添加用户角色关系 @@ -121,7 +122,7 @@ public interface UserRoleService extends BaseService { * @Author zhangyong * @Date 14:24 2020-07-23 **/ - Result> getUserRoleInfoByUserId(String userId); + Result> getUserRoleInfoByUserId(String userId); /** * @Description 查询此人是不是党员,true是党员,false不是党员 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 024d3aed37..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(); @@ -832,11 +847,13 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl staffRoleList = staffRoleDao.staffRoleList(gridStaffs.getData()); - + if(CollectionUtils.isEmpty(staffRoleList)){ + return resultList; + } //3.查询工作人员基础信息 List staffIdList = staffRoleList.stream().map(GridMobileListResultDTO.Role::getStaffId).collect(Collectors.toList()); staffIdList = staffIdList.stream().distinct().collect(Collectors.toList()); - List list = baseDao.selectStaffByIds(staffIdList, Constant.ENABLE); + List list = CollectionUtils.isEmpty(staffIdList) ? new ArrayList<>() : baseDao.selectStaffByIds(staffIdList, Constant.ENABLE); //4.封装数据并返回 resultList = ConvertUtils.sourceToTarget(list, GridMobileListResultDTO.class); @@ -856,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/IcResiUserDataSyncServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserDataSyncServiceImpl.java new file mode 100644 index 0000000000..0c60a4e2ad --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserDataSyncServiceImpl.java @@ -0,0 +1,55 @@ +package com.epmet.service.impl; + +import com.epmet.service.IcResiUserDataSyncService; +import com.epmet.service.IcResiUserService; +import com.epmet.service.StatsResiWarnService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.concurrent.ExecutorService; + +/** + * desc: + * + * @author: LiuJanJun + * @date: 2022/7/16 8:07 下午 + * @version: 1.0 + */ +@Slf4j +@Service +public class IcResiUserDataSyncServiceImpl implements IcResiUserDataSyncService { + + @Autowired + private IcResiUserService icResiUserService; + @Autowired + private StatsResiWarnService statsResiWarnService; + @Autowired + private ExecutorService executorService; + + /** + * desc: 同步与居民相关的数据 + * + * @param customerId + * @return java.lang.String + * @author LiuJanJun + * @date 2022/7/16 8:06 下午 + */ + @Override + public Boolean icDataSyncTask(String customerId) { + Boolean flag = true; + try { + statsResiWarnService.resiWarn(customerId); + } catch (Exception e) { + flag = false; + log.error("icDataSyncTask resiWarn exception,msg:{},customerId:{}", e.getMessage(), customerId); + } + try { + icResiUserService.updateIcHouseResiNumber(customerId); + } catch (Exception e) { + flag = false; + log.error("icDataSyncTask updateIcHouseResiNumber exception,msg:{},customerId:{}", e.getMessage(), customerId); + } + return flag; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index ffeaea8246..7f8921443f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -548,6 +548,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res if ((transferData = this.getResiImportTrasferData(existingResiMap, columnAndValues)) != null) { newlyOrChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData); } + + // 因为主表会产生变更记录的,只有组织变更;其他能产生变更记录的,都在子表里面,所以此处只判断组织变更,其他类别的变更交给子表 + // 老年人产生变更记录,只会在新增居民的时候产生,修改居民信息不会产生,因为身份证不可变 } else { // 新增居民 String resiId = IdWorker.getIdStr(); @@ -566,6 +569,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnAndValues.get("HOME_ID"), new HashMap<>()); + // 因为老年人会通过年龄计算,子sheet中不一定有这个人的信息,所以此处需要加入到变更记录中去 + if ("1".equals(columnAndValues.get("IS_OLD_PEOPLE"))) { + categoryData.getCategories().put("IS_OLD_PEOPLE", "1"); + } + redisUtils.hMSet(RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", resiId), BeanUtil.beanToMap(categoryData)); categoryData = null; } 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 0616392e8e..f0fcfceefc 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 @@ -20,12 +20,14 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.epmet.bean.ResiExportBaseInfoData; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.*; +import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.DictListResultDTO; @@ -40,10 +42,12 @@ import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.CustomerResiUserRedis; 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.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; import com.epmet.constant.IcPlatformConstant; @@ -153,6 +157,8 @@ 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("没有配置列表展示列"); @@ -1463,6 +1467,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; } @@ -2213,7 +2237,20 @@ public class IcResiUserServiceImpl extends BaseServiceImpl changeIcResiUserBelongTo(TokenDto tokenDto, IcUserBelongToChangedFormDTO formDTO) { - List resiUserIdList = baseDao.listUserIds(formDTO.getCustomerId(), formDTO.getSourceGridId()); + List resiUserIdList = baseDao.listUserIds(formDTO.getCustomerId(), formDTO.getSourceGridId(), formDTO.getNeighborhoodId()); + if (StringUtils.isBlank(formDTO.getCustomerId()) || StringUtils.isBlank(formDTO.getSourceGridId()) + ||StringUtils.isBlank(formDTO.getTargetGridId())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误","参数错误"); + } + IcResiUserEntity entity = new IcResiUserEntity(); + entity.setGridId(formDTO.getTargetGridId()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getGridId,formDTO.getSourceGridId()) + .eq(IcResiUserEntity::getVillageId,formDTO.getNeighborhoodId()) + .eq(IcResiUserEntity::getCustomerId,formDTO.getCustomerId()); + baseDao.update(entity,wrapper); + //不调用原来的更新居民了 太慢 + /*List resiUserIdList = baseDao.listUserIds(formDTO.getCustomerId(), formDTO.getSourceGridId()); if (CollectionUtils.isEmpty(resiUserIdList)) { return null; } @@ -2231,8 +2268,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { map.put(FieldConstant.ID, userId); this.edit(tokenDto, icResiUserFormDTOS); - }); - + });*/ return resiUserIdList; } @@ -2401,17 +2437,83 @@ public class IcResiUserServiceImpl extends BaseServiceImpl icHouseNewResult = govOrgOpenFeignClient.get(dto.getHomeId()); + if (!icHouseNewResult.success() || null == icHouseNewResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), dto.getHomeId()); + if (null == houseInfo) { + String errorMsg = "获取房屋信息失败"; + throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + } + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(houseInfo.getGridId()); + if (null == gridInfo) { + String errorMsg = "获取网格信息失败"; + throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + } + + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setAgencyId(houseInfo.getAgencyId()); + dto.setPids(gridInfo.getPids()); + dto.setGridId(houseInfo.getGridId()); + dto.setVillageId(houseInfo.getNeighborHoodId()); + dto.setBuildId(houseInfo.getBuildingId()); + dto.setUnitId(houseInfo.getBuildingUnitId()); + dto.setHomeId(dto.getHomeId()); + dto.setStaffId(tokenDto.getUserId()); + if (idCard.equals(icHouseNewResult.getData().getOwnerIdCard())) { + dto.setIsOwner(true); + } - IcResiUserDTO userDTO = baseDao.getResiUserByIdCard(dto.getIdCard(), user.getCustomerId()); if (null != userDTO && null != userDTO.getIdCard()) { - String errorMsg = "新增居民信息失败,身份证号已存在!"; - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + if (dto.getIsOwner()) { + //如果是房东,可以将其名下其他房屋的人员移到当前房屋 + if (dto.getHomeId().equals(userDTO.getHomeId())) { + String errorMsg = "新增居民信息失败,身份证号已存在!"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } else { + //判断房屋的房主是否同一人 + Result icHouseResult = govOrgOpenFeignClient.get(userDTO.getHomeId()); + if (!icHouseResult.success() || null == icHouseResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + if (StringUtils.equals(icHouseResult.getData().getOwnerIdCard(), icHouseNewResult.getData().getOwnerIdCard())) { + //走迁移逻辑 + //这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户 + if (RelationshipEnum.SELF.getCode().equals(dto.getYhzgx())) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getHomeId, dto.getHomeId()); + wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); + List entityList = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(entityList)) { + String errorMsg = "房屋下已存在户主"; + throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + } + } + return updateOldMemberInfo(tokenDto.getCustomerId(),dto); + } else { + String errorMsg = "您无权操作其他家庭的成员,如有问题请联系工作人员"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + } + } else { + String errorMsg = "新增居民信息失败,身份证号已存在!"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } } //这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户 if (RelationshipEnum.SELF.getCode().equals(dto.getYhzgx())) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(IcResiUserEntity::getHomeId, user.getHomeId()); + wrapper.eq(IcResiUserEntity::getHomeId, dto.getHomeId()); wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); List entityList = baseDao.selectList(wrapper); if (CollectionUtils.isNotEmpty(entityList)) { @@ -2421,15 +2523,6 @@ 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()); + } + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @Override + public IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO) { + PaCustomerDTO customerInfo = getCustomerInfo(formDTO.getAppId()); + if (null == customerInfo){ + throw new EpmetException("根据APPID查询客户信息失败:"+formDTO.getAppId()); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(IcResiUserEntity::getCustomerId,customerInfo.getId()) + .eq(IcResiUserEntity::getIdCard,formDTO.getIdCard()); + IcResiUserEntity icResiUserEntity = baseDao.selectOne(qw); + if (null == icResiUserEntity){ + throw new EpmetException(EpmetErrorCode.NOT_MATCH_IC_USER_ERROR.getCode()); + } + IcUserMatchGridResultDTO result = new IcUserMatchGridResultDTO(); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(icResiUserEntity.getGridId()); + if (null == gridInfo){ + throw new EpmetException("查询网格信息失败:"+icResiUserEntity.getGridId()); + } + result.setCustomerId(customerInfo.getId()); + result.setGridId(icResiUserEntity.getGridId()); + result.setGridName(gridInfo.getGridNamePath()); + return result; + } + + public PaCustomerDTO getCustomerInfo(String appId) { + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON("https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/" + appId, JSON.toJSONString(jsonObject)).getData(); + logger.info("ThirdLoginServiceImpl.getCustomerInfo:httpclient->url:https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/ ,结果->" + data); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + logger.error(String.format("根据appId查询客户Id失败,对应appId->" + appId)); + throw new RenException(mapToResult.getMsg()); + } + Object PublicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); + Map map = (Map) json.get("customer"); + PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); + logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); + return customer; + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java index 5c3bada17e..2428c39fda 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java @@ -144,7 +144,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl selectListHomeMember(String houseCode, String customerId) { @@ -86,18 +93,42 @@ public class MyHomeServiceImpl implements MyHomeService { */ @Override @Transactional(rollbackFor = Exception.class) - public void registerAndBind(RegisterAndBindFormDTO formDTO) { - + public RegisterAndBindResultDTO registerAndBind(RegisterAndBindFormDTO formDTO) { + RegisterAndBindResultDTO result = new RegisterAndBindResultDTO(); LambdaQueryWrapper userWrapper = new LambdaQueryWrapper<>(); userWrapper.eq(IcResiUserEntity::getCustomerId, formDTO.getCustomerId()); userWrapper.eq(IcResiUserEntity::getIdCard, formDTO.getIdCard()); IcResiUserEntity icUser = icResiUserDao.selectOne(userWrapper); - if (null == icUser || !icUser.getHomeId().equals(formDTO.getHomeId())) { + //获取用户扫码的房屋 + Result icHouseNewResult = govOrgOpenFeignClient.get(formDTO.getHomeId()); + if (!icHouseNewResult.success() || null == icHouseNewResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + if (formDTO.getIdCard().equals(icHouseNewResult.getData().getOwnerIdCard())) { + //判断是否是房主 + result.setIsOwner(NumConstant.ONE_STR); + } + if (null == icUser) { throw new EpmetException(EpmetErrorCode.MISMATCH.getCode(), "人员与房屋信息不匹配,请与工作人员联系。", "人员与房屋信息不匹配,请与工作人员联系。"); + } else if (!icUser.getHomeId().equals(formDTO.getHomeId())) { + //获取用户当前所在的房屋 + Result icHouseResult = govOrgOpenFeignClient.get(icUser.getHomeId()); + if (!icHouseResult.success() || null == icHouseResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + //判断两个房屋是否是一个房主 + if (!StringUtils.equals(icHouseResult.getData().getOwnerIdCard(), icHouseNewResult.getData().getOwnerIdCard())) { + throw new EpmetException(EpmetErrorCode.MISMATCH.getCode(), + "人员与房屋信息不匹配,请与工作人员联系。", + "人员与房屋信息不匹配,请与工作人员联系。"); + } else { + result.setIsDiff(NumConstant.ONE_STR); + } } + //进入网格(entergrid)流程 EnterGridFormDTO userInfoParams = new EnterGridFormDTO(); userInfoParams.setUserId(formDTO.getUserId()); @@ -151,6 +182,7 @@ public class MyHomeServiceImpl implements MyHomeService { userResiInfoDTO.setApp("resi"); userResiInfoService.saveResiInfo(userResiInfoDTO); } + return result; } /** @@ -165,20 +197,21 @@ public class MyHomeServiceImpl implements MyHomeService { @Override public HomeInfoResultDTO getHomeInfo(TokenDto tokenDto) { HomeInfoResultDTO resultDto = new HomeInfoResultDTO(); + //通过用户ID获取居民端用户信息 ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId()); if (null == baseInfo) { return resultDto; } - + //通过居民身份证号获取居民信息 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcResiUserEntity::getCustomerId, tokenDto.getCustomerId()); wrapper.eq(IcResiUserEntity::getIdCard, baseInfo.getIdNum()); IcResiUserEntity icUser = icResiUserDao.selectOne(wrapper); - if (null == icUser) { return resultDto; } resultDto.setIcResiUserId(icUser.getId()); + //通过房屋ID获取房屋信息 HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), icUser.getHomeId()); if (null == houseInfo) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); @@ -187,6 +220,124 @@ public class MyHomeServiceImpl implements MyHomeService { resultDto.setHouseName(houseInfo.getAllName()); resultDto.setHouseCode(houseInfo.getHouseCode()); resultDto.setQrCodeUrl(houseInfo.getHouseQrcodeUrl()); + resultDto.setCoding(houseInfo.getCoding()); + //获取房屋房主信息,判断是否是房主 + Result icHouseResult = govOrgOpenFeignClient.get(icUser.getHomeId()); + if (!icHouseResult.success() || null == icHouseResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + if (icUser.getIdCard().equals(icHouseResult.getData().getOwnerIdCard())) { + resultDto.setIsOwner(NumConstant.ONE_STR); + } else { + resultDto.setIsOwner(NumConstant.ZERO_STR); + } + resultDto.setOwnerIdCard(icHouseResult.getData().getOwnerIdCard()); return resultDto; } + + /** + * 获取房主名下的房屋列表 + * + * @param tokenDto + * @Param tokenDto + * @Return {@link List< HomeInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/19 16:48 + */ + @Override + public List getOwnerHouseList(TokenDto tokenDto, IcHouseDTO formDTO) { + //通过用户ID获取居民端用户信息 + ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId()); + if (null == baseInfo) { + return Collections.emptyList(); + } + + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setOwnerIdCard(baseInfo.getIdNum()); + Result> houseResult = govOrgOpenFeignClient.getOwnerHouseList(formDTO); + if (!houseResult.success()) { + throw new EpmetException(houseResult.getCode(), houseResult.getMsg()); + } + if (CollectionUtils.isEmpty(houseResult.getData())) { + return Collections.emptyList(); + } + List list = houseResult.getData().stream().map(item -> { + HomeInfoResultDTO result = new HomeInfoResultDTO(); + result.setHouseId(item.getHomeId()); + result.setHouseName(item.getAllName()); + result.setHouseCode(item.getHouseCode()); + result.setQrCodeUrl(item.getHouseQrcodeUrl()); + return result; + }).collect(Collectors.toList()); + return list.stream().sorted((o1, o2) -> + Collator.getInstance(Locale.SIMPLIFIED_CHINESE) + .compare(o1.getHouseName(),o2.getHouseName())).collect(Collectors.toList()); + } + + /** + * 变更绑定的房屋 + * + * @param tokenDto + * @param formDTO + * @Param tokenDto + * @Param formDTO + * @Return {@link List< HomeInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/20 17:25 + */ + @Override + public void changeHome(TokenDto tokenDto, IcResiUserConfirmSubmitDTO formDTO) { + //通过用户ID获取居民端用户信息 + ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId()); + if (null == baseInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + //通过居民身份证号获取居民信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, tokenDto.getCustomerId()); + wrapper.eq(IcResiUserEntity::getIdCard, baseInfo.getIdNum()); + IcResiUserEntity icUser = icResiUserDao.selectOne(wrapper); + if (null == icUser) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息失败", "获取居民信息失败"); + } + + //通过房屋ID获取房屋信息 + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), formDTO.getHomeId()); + if (null == houseInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败"); + } + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(houseInfo.getGridId()); + if (null == gridInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格信息失败", "获取网格信息失败"); + } + //在添加调动记录的时候调整 + icUser.setAgencyId(houseInfo.getAgencyId()); + icUser.setPids(gridInfo.getPids()); + icUser.setGridId(houseInfo.getGridId()); + icUser.setVillageId(houseInfo.getNeighborHoodId()); + icUser.setBuildId(houseInfo.getBuildingId()); + icUser.setUnitId(houseInfo.getBuildingUnitId()); + icUser.setHomeId(houseInfo.getHomeId()); + icUser.setUpdatedTime(new java.util.Date()); + + //添加人员调动记录 + IcResiUserTransferFormDTO transferDTO = new IcResiUserTransferFormDTO(); + transferDTO.setCustomerId(tokenDto.getCustomerId()); + transferDTO.setStaffId(tokenDto.getUserId()); + transferDTO.setIcUserId(icUser.getId()); + transferDTO.setType("in"); + transferDTO.setNewAgencyId(houseInfo.getAgencyId()); + transferDTO.setNewGridId(houseInfo.getGridId()); + transferDTO.setNewNeighborHoodId(houseInfo.getNeighborHoodId()); + transferDTO.setNewBuildingId(houseInfo.getBuildingId()); + transferDTO.setNewBuildingUnitId(houseInfo.getBuildingUnitId()); + transferDTO.setNewHouseId(houseInfo.getHomeId()); + transferDTO.setTransferTime(new java.util.Date()); + transferDTO.setRemark("更换房屋"); + transferDTO.setReason("更换房屋"); + transferDTO.setOrigin(IcResiUserConstant.CHANGE); + icUserTransferRecordService.add(transferDTO); + //更新家庭成员信息 + icResiUserDao.updateById(icUser); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java index 0ab2d16b99..d63921e97a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java @@ -36,7 +36,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; -import com.epmet.dto.result.UserRoleResultDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.RegisterRelationEntity; import com.epmet.entity.UserCustomerEntity; import com.epmet.feign.GovOrgFeignClient; @@ -324,9 +324,9 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl roleList = userRoleDao.getUserRoleInfo(userRoleFormDTO); + List roleList = userRoleDao.getUserRoleInfo(userRoleFormDTO); List roleListString = new ArrayList<>(); - for(UserRoleResultDTO role : roleList){ + for(NewUserRoleResultDTO role : roleList){ roleListString.add(role.getRoleKey()); } resultObj.setUserRoleList(roleListString); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffRoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffRoleServiceImpl.java index b8f34b04c9..62346d3726 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffRoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffRoleServiceImpl.java @@ -204,4 +204,26 @@ public class StaffRoleServiceImpl extends BaseServiceImpl(result,count.get()); } + /** + * Desc: 查询是否是超级管理员 + * @param userId + * @author zxc + * @date 2022/7/13 11:03 + */ + @Override + public Boolean getIsRootManager(String userId) { + Boolean result = false; + List roleKeys = baseDao.getRoleKeys(userId); + if (roleKeys.isEmpty()){ + return result; + } + for (String roleKey : roleKeys) { + if (roleKey.equals("root_manager")){ + result = true; + break; + } + } + return result; + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 13645f9047..cced7c95b1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -306,7 +306,12 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { //保存数据 List icStatsResiWarnEntities = new ArrayList<>(); for (IcResiCategoryWarnConfigDTO item : icResiCategoryWarnConfigDTOList) { - icStatsResiWarnDao.delete(new QueryWrapper().lambda().eq(IcStatsResiWarnEntity::getConfigId,item.getId()).eq(IcStatsResiWarnEntity::getCustomerId,customerId)); + int deleteNum; + do { + // deleteNum = icStatsResiWarnDao.delete(new QueryWrapper().lambda().eq(IcStatsResiWarnEntity::getConfigId,item.getId()) + // .eq(IcStatsResiWarnEntity::getCustomerId,customerId)); + deleteNum = icStatsResiWarnDao.deleteByCustomerIdAndConfigId(item.getId(),customerId); + } while (deleteNum > NumConstant.ZERO); List maps = icStatsResiWarnDao.resiWarn(customerId,item.getTableName(), item.getColumnName()); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 6785817934..4cccbd7bf4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -464,7 +464,7 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl roleList = userRoleDao.getUserRoleInfo(roleParam); + List roleList = userRoleDao.getUserRoleInfo(roleParam); List roleListFormat = new LinkedList<>(); if(null != roleList && !roleList.isEmpty()){ roleList.forEach(role -> { diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java index 242a6c8a46..efb6eac3b5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.dao.UserRoleDao; import com.epmet.dto.RoleDTO; import com.epmet.dto.UserRoleDTO; import com.epmet.dto.form.UserRoleFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.UserRoleEntity; import com.epmet.service.RoleService; @@ -114,8 +115,8 @@ public class UserRoleServiceImpl extends BaseServiceImpl> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO) { - return new Result>().ok(baseDao.getUserRoleInfo(userRoleFormDTO)); + public Result> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO) { + return new Result>().ok(baseDao.getUserRoleInfo(userRoleFormDTO)); } @Override @@ -131,9 +132,9 @@ public class UserRoleServiceImpl extends BaseServiceImpl> getUserRoleInfoByUserId(String userId) { - List list = baseDao.getUserRoleInfoByUserId(userId); - return new Result>().ok(list); + public Result> getUserRoleInfoByUserId(String userId) { + List list = baseDao.getUserRoleInfoByUserId(userId); + return new Result>().ok(list); } /** diff --git a/epmet-user/epmet-user-server/src/main/resources/logback-spring.xml b/epmet-user/epmet-user-server/src/main/resources/logback-spring.xml index 41f567fccf..899eed6c7a 100644 --- a/epmet-user/epmet-user-server/src/main/resources/logback-spring.xml +++ b/epmet-user/epmet-user-server/src/main/resources/logback-spring.xml @@ -139,11 +139,35 @@ + + + + ${log.path}/rocketmqclient.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + + + + @@ -157,6 +181,10 @@ + + + + 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..5250d48a0a 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 @@ -450,10 +450,49 @@ WHERE del_flag = '0' AND customer_id = #{customerId} - - #{name} - + + + #{name} + + + + AND mobile LIKE concat('%', #{mobile}, '%') + + + 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} + + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index ce42de4964..8ba307f70c 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -206,8 +206,8 @@ ) - group by IC_RESI_USER.id + group by IC_RESI_USER.id ${groupTableName}.ID @@ -268,8 +268,8 @@ - group by IC_RESI_USER.id + group by IC_RESI_USER.id ${groupTableName}.ID @@ -445,7 +445,8 @@ id_card, mobile, agency_id, - grid_id + grid_id, + home_id FROM ic_resi_user WHERE @@ -1045,8 +1046,9 @@ SELECT ID from ic_resi_user WHERE GRID_ID = #{gridId} - AND DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} + and VILLAGE_ID = #{neighborhoodId} + AND DEL_FLAG = '0' + + + DELETE FROM ic_stats_resi_warn + WHERE config_id = #{configId} + and customer_id = #{customerId} + limit 1000 + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml index 6ce9736f4d..05881009cb 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml @@ -319,5 +319,13 @@ AND gsr.del_flag = '0' ORDER BY cs.CREATED_TIME DESC + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml index 7f3b21a0dd..bf7e4edd36 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml @@ -19,7 +19,7 @@