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-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/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/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 a7f70c1b1b..d27a44bb21 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); } /** @@ -814,4 +824,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..2dce88e919 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,24 @@ 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); + } + /** * @Description 获取 zset 中带score的集合 * @param key @@ -444,4 +462,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-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/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/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/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index 8846fd020d..73663ce155 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -13,6 +13,11 @@ data-aggregator-server + + com.epmet + 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/IcUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java index 15c0473ba0..63d686260c 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,49 @@ 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.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 ResiService icResiService; + + @Autowired + private EpmetHeartOpenFeignClient heartOpenFeignClient; /** * 【人员类别分析】-各类别人数 @@ -38,5 +60,70 @@ 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)); + } + + 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/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java index 78e7b7d4b7..8705014852 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,9 @@ 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.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dto.IcResiUserDTO; @@ -26,6 +28,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 用户基础信息 @@ -59,4 +62,40 @@ public interface IcResiUserDao extends BaseDao { @Param("queryPids") String queryPids, @Param("categoryKey") String categoryKey, @Param("search") String search); + + /** + * 政策查找居民 + * @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); } 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/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/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/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index dec1415a20..01b9dae907 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 @@ -13,6 +13,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import java.util.List; +import java.util.Set; /** * @Author zxc @@ -199,4 +200,12 @@ 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); } 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..000affa6ff 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 @@ -45,6 +45,7 @@ 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 lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; @@ -844,5 +845,16 @@ 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); + } } 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..ee502bd493 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 @@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.govorg; 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,9 +11,13 @@ 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.IcHouseEntity; +import com.epmet.dto.IcNeighborHoodDTO; +import com.epmet.dto.result.NeighborHoodListResultDTO; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Set; /** * @Author zxc @@ -212,4 +217,10 @@ 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); } 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..86999e17bd 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 @@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dingtalk.api.request.OapiRobotSendRequest; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.Constant; @@ -26,10 +27,12 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; 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.EpmetRequestHolder; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.*; +import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; 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 +41,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.IcHouseEntity; import com.epmet.dataaggre.excel.GridLivelyDetailExcel; import com.epmet.dataaggre.excel.GridLivelyExcel; import com.epmet.dataaggre.service.commonservice.AreaCodeService; @@ -46,8 +50,10 @@ 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.opercrm.CustomerRelation; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.feign.OssFeignClient; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.fileupload.FileItem; @@ -107,6 +113,10 @@ public class GovOrgServiceImpl implements GovOrgService { private RedisUtils redisUtils; @Autowired private ExecutorService executorService; + @Autowired + private IcHouseDao houseDao; + @Autowired + private IcNeighborhoodDao neighborhoodDao; /** * @param staffId @@ -566,7 +576,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 +1089,45 @@ 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); + } } 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..0df05a3831 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -0,0 +1,288 @@ +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(); + + // 对特殊规则进行转换。 + specificRuleConvert(resiRule); + + // 查询当前组织及下级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 + */ + private void specificRuleConvert(List resiRule) { + // 使用年龄计算出生日期 + if (resiRule != null) { + resiRule.stream().forEach((r) -> { + if ("BIRTHDAY".equals(r.getColKey())) { + LocalDate birthday = LocalDate.now().minus(Long.valueOf(r.getColVal()), ChronoUnit.YEARS); + r.setQueryType(revertQueryType(r.getQueryType())); + r.setColVal(birthday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } + }); + } + } + + /** + * 翻转逻辑操作符 + * @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) -> { + // 小区名称 + r.setNeighborHoodName(gridIdAndName.get(r.getGridId()).concat("-").concat(neighborhoodIdAndName.get(r.getNeighborhoodId()))); + + // 出生日期 & 年龄 + 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; + + 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/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml index c5f04ae7bd..adcb55f269 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 @@ -69,4 +69,95 @@ and resi.STATUS='0' + + + 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} ${rule.queryType} + + + CONCAT('%',#{rule.colVal} ,'%') + + + #{rule.colVal} + + + ${rule.nextLogicalRel} + + + + + + + + + + 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-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/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/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-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/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..d9f15f9637 --- /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/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..9939b88455 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,6 +14,7 @@ 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.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; @@ -158,4 +159,11 @@ 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); } 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..815bfab92c 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,6 +16,7 @@ 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.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; @@ -161,4 +162,8 @@ 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); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index 5233ee09dd..24f5c194c5 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/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/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/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/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/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/impl/HeartAttachmentServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartAttachmentServiceImpl.java new file mode 100644 index 0000000000..5691a02847 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartAttachmentServiceImpl.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.HeartAttachmentDao; +import com.epmet.dto.HeartAttachmentDTO; +import com.epmet.entity.HeartAttachmentEntity; +import com.epmet.service.HeartAttachmentService; +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; + +/** + * heart库附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-18 + */ +@Service +public class HeartAttachmentServiceImpl extends BaseServiceImpl 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/IcPolicyCategoryServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyCategoryServiceImpl.java new file mode 100644 index 0000000000..be2bc4c568 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyCategoryServiceImpl.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.IcPolicyCategoryDao; +import com.epmet.dto.IcPolicyCategoryDTO; +import com.epmet.entity.IcPolicyCategoryEntity; +import com.epmet.service.IcPolicyCategoryService; +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 IcPolicyCategoryServiceImpl 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; + + @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); + + } + + @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/resources/db/migration/V0.0.24__ic_policy.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.24__ic_policy.sql new file mode 100644 index 0000000000..ebf16c860c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.24__ic_policy.sql @@ -0,0 +1,112 @@ +CREATE TABLE `ic_policy` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `ORG_ID` varchar(64) NOT NULL COMMENT '政策创建人,所属组织id', + `ORG_ID_PATH` varchar(255) NOT NULL COMMENT 'AGENCY_ID的全路径,含agency_id', + `POLICY_LEVEL` varchar(1) NOT NULL COMMENT '政策级别,0市级;1区级;2街道级', + `START_DATE` date NOT NULL COMMENT '生效起止日期', + `END_DATE` date NOT NULL COMMENT '截止日期', + `TITLE` varchar(128) NOT NULL COMMENT '政策标题', + `CONTENT` varchar(2048) NOT NULL COMMENT '政策内容', + `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='政策表'; + + +CREATE TABLE `ic_policy_category` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `IC_POLICY_ID` varchar(64) NOT NULL COMMENT '政策id', + `CATEGORY_CODE` varchar(64) NOT NULL COMMENT '分类编码', + `CODE_PATH` varchar(128) NOT NULL COMMENT '分类全路径,包含CATEGORY_CODE,英文逗号隔开', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='政策匹配资源类型'; + +CREATE TABLE `ic_policy_rule` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `IC_POLICY_ID` varchar(64) NOT NULL COMMENT '政策id', + `RULE_NAME` varchar(128) NOT NULL COMMENT '规则名称', + `SORT` int(1) NOT NULL COMMENT '排序字段', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='政策匹配规则'; + + +CREATE TABLE `ic_policy_rule_detail` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `IC_POLICY_ID` varchar(64) NOT NULL COMMENT '政策id', + `RULE_ID` varchar(32) NOT NULL COMMENT '规则id', + `RULE_DESC` varchar(512) DEFAULT NULL COMMENT '规则描述文字,例如:基础信息性别等于女', + `GROUP_TYPE` varchar(10) NOT NULL COMMENT 'resi:人员信息,house:房屋信息,stat:统计信息', + `NEXT_LOGICAL_REL` varchar(4) DEFAULT NULL COMMENT '与下一条的关系;and、or', + `ITEM_GROUP_ID` varchar(64) DEFAULT NULL COMMENT '分组id;人员信息有值;', + `ITEM_ID` varchar(64) DEFAULT NULL COMMENT '组件id;人员信息有值;', + `COL_TABLE` varchar(64) DEFAULT NULL COMMENT '表名;人员信息有值;房屋信息也有值', + `QUERY_TYPE` varchar(32) NOT NULL COMMENT '查询类型:等于、不等于....;来源于字典表sql_query_type', + `COL_KEY` varchar(32) NOT NULL COMMENT '人员信息存储组件对应的列名;房屋信息存储ic_house表的列名;统计信息应该是定义到字典表,这里存储字典key就行吧', + `COL_VAL` varchar(512) NOT NULL COMMENT '参数值', + `SORT` int(1) NOT NULL COMMENT '排序字段;同一group_type升序', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + `ITEM_GROUP_NAME` varchar(64) DEFAULT NULL COMMENT '用于前端展示:基础信息、教育信息、房屋类型.....', + `ITEM_LABEL` varchar(64) DEFAULT NULL COMMENT '用于前端展示:姓名、手机号、......', + `QUERY_TYPE_NAME` varchar(64) DEFAULT NULL COMMENT '用于前端展示:等于、不等于、大于、小于....', + `COL_VAL_LABEL` varchar(64) DEFAULT NULL COMMENT '用于前端展示:参数值显示值eg:男女', + `NEXT_LOGICAL_REL_NAME` varchar(32) DEFAULT NULL COMMENT '用于前端展示:逻辑:并且、或者', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='政策匹配规则明细'; + + +CREATE TABLE `ic_policy_item` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_ID` varchar(64) NOT NULL, + `GROUP_TYPE` varchar(10) NOT NULL COMMENT 'house:房屋信息,stat:统计信息', + `LABEL` varchar(255) NOT NULL COMMENT '选项名;例如:房屋类型,房屋状态,人均收入', + `COL_KEY` varchar(64) NOT NULL COMMENT '房屋信息存储列名;统计信息定义好key放在这里', + `ITEM_TYPE` varchar(64) NOT NULL, + `TABLE_NAME` varchar(64) DEFAULT NULL COMMENT '表名', + `SORT` int(11) NOT NULL COMMENT '排序', + `REMARK` varchar(255) DEFAULT NULL COMMENT '备注', + `OPTION_SOURCE_TYPE` varchar(10) DEFAULT NULL COMMENT '值来源;需要接口获取:remote。', + `OPTION_SOURCE_URL` varchar(128) DEFAULT NULL COMMENT '动态url;', + `OPTION_SOURCE_PARAM` varchar(255) DEFAULT NULL COMMENT '动态url的入参;存储json串', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='政策找人规则组件表'; + + + +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1', 'default', 'house', '房屋类型', 'HOUSE_TYPE', 'select', 'ic_house', 1, '从字典表获取', 'remote', '/sys/dict/data/dictlist', '{\"dictType\":\"house_type\"}', '0', 0, 'APP_USER', '2022-07-19 10:01:39', 'APP_USER', '2022-07-19 10:01:42'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('2', 'default', 'house', '房屋用途', 'PURPOSE', 'select', 'ic_house', 2, '从字典表获取', 'remote', '/sys/dict/data/dictlist', '{\"dictType\":\"house_purpose\"}', '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3', 'default', 'house', '房屋状态', 'RENT_FLAG', 'select', 'ic_house', 3, '从字典表获取', 'remote', '/sys/dict/data/dictlist', '{\"dictType\":\"house_status\"}', '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('4', 'default', 'house', '创建时间', 'CREATED_TIME', 'date', 'ic_house', 4, '日期格式', NULL, NULL, NULL, '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('5', 'default', 'house', '备注', 'REMARK', 'input', 'ic_house', 5, '文本域', NULL, NULL, NULL, '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('6', 'default', 'stat', '人均收入', 'AVG_YSR', 'inputNum', '', 1, '只能输入数字,可以是小数', NULL, NULL, NULL, '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); +INSERT INTO `epmet_heart`.`ic_policy_item` (`ID`, `CUSTOMER_ID`, `GROUP_TYPE`, `LABEL`, `COL_KEY`, `ITEM_TYPE`, `TABLE_NAME`, `SORT`, `REMARK`, `OPTION_SOURCE_TYPE`, `OPTION_SOURCE_URL`, `OPTION_SOURCE_PARAM`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('7', 'default', 'stat', '家庭人数', 'RESI_NUMBER', 'inputNum', '', 2, '只能输入数字', NULL, NULL, NULL, '0', 0, 'APP_USER', '2022-07-19 10:02:54', 'APP_USER', '2022-07-19 10:03:01'); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.25__ic_service_v2.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.25__ic_service_v2.sql new file mode 100644 index 0000000000..c52f2abc0d --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.25__ic_service_v2.sql @@ -0,0 +1,81 @@ +CREATE TABLE `ic_service_record_v2` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_ID` varchar(64) NOT NULL, + `POLICY_ID` varchar(64) NOT NULL COMMENT '政策依据ID', + `SERVICE_NAME` varchar(32) NOT NULL COMMENT '服务名称', + `SERVICE_ORG_TYPE` varchar(64) NOT NULL COMMENT '服务组织类型\n社区自组织:community_org,\n志愿者:ic_user_volunteer,\n联建单位:party_unit', + `SERVICE_ORG_ID` varchar(64) NOT NULL COMMENT '服务组织ID', + `PRINCIPAL_NAME` varchar(32) DEFAULT NULL COMMENT '经办人姓名', + `PRINCIPAL_CONTACT` varchar(64) DEFAULT NULL COMMENT '联系方式', + `SERVICE_TIME_START` datetime NOT NULL COMMENT '服务时间', + `SERVICE_TIME_END` datetime NOT NULL COMMENT '服务截止时间', + `SERVICE_STATUS` varchar(32) NOT NULL COMMENT 'in_service服务中;completed:已完成;cancel:取消', + `REMARK` varchar(255) DEFAULT NULL COMMENT '备注', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务记录表'; + +CREATE TABLE `ic_service_feedback_v2` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_ID` varchar(64) NOT NULL, + `SERVICE_RECORD_ID` varchar(64) NOT NULL COMMENT '服务ID', + `SERVICE_GOAL` varchar(2000) DEFAULT NULL COMMENT '服务目标', + `SERVICE_EFFECT` varchar(2000) DEFAULT NULL COMMENT '服务效果', + `SERVICE_PEOPLE_NUMBER` int(10) DEFAULT NULL COMMENT '服务人数', + `SATISFACTION` varchar(30) DEFAULT NULL COMMENT '满意度。满意度 - 不满意:bad、基本满意:good、非常满意:perfect', + `LONGITUDE` varchar(255) DEFAULT NULL COMMENT '地址经度', + `LATITUDE` varchar(255) DEFAULT NULL COMMENT '地址纬度', + `ADDRESS` varchar(64) DEFAULT NULL COMMENT '地址', + `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务记录反馈表'; + + +CREATE TABLE `ic_service_scope_v2` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_ID` varchar(64) NOT NULL, + `SERVICE_RECORD_ID` varchar(64) NOT NULL COMMENT '服务记录的ID', + `OBJECT_TYPE` varchar(32) NOT NULL COMMENT 'agency单位;grid网格;neighborhood小区', + `OBJECT_ID` varchar(64) NOT NULL COMMENT '选中的组织的ID', + `OBJECT_ID_PATH` varchar(255) NOT NULL COMMENT '发布范围的组织ID【包含组织、网格、小区本身的全路径】', + `OBJECT_NAME` varchar(32) DEFAULT NULL, + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务范围表'; + +CREATE TABLE `heart_attachment` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `BUSINESS_ID` varchar(64) NOT NULL COMMENT '业务id', + `ATTACH_TO` varchar(32) DEFAULT NULL COMMENT '政策:ic_policy;服务:ic_service_record_v2', + `NAME` varchar(64) DEFAULT NULL COMMENT '附件名', + `FORMAT` varchar(64) DEFAULT NULL COMMENT '文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS)', + `TYPE` varchar(64) NOT NULL COMMENT '附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))', + `URL` varchar(255) NOT NULL COMMENT '附件地址', + `SORT` int(1) NOT NULL COMMENT '排序字段', + `STATUS` varchar(32) NOT NULL DEFAULT 'auto_passed' COMMENT '附件状态(审核中:auditing; \r\nauto_passed: 自动通过;\r\nreview:结果不确定,需要人工审核;\r\nblock: 结果违规;\r\nrejected:人工审核驳回;\r\napproved:人工审核通过)\r\n现在图片是同步审核的,所以图片只有auto_passed一种状态', + `REASON` varchar(255) DEFAULT NULL COMMENT '失败原因', + `DURATION` int(11) DEFAULT NULL COMMENT '语音或视频时长,秒', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='heart库附件表'; \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.26__add_service_v2_category.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.26__add_service_v2_category.sql new file mode 100644 index 0000000000..d09a7eca73 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.26__add_service_v2_category.sql @@ -0,0 +1 @@ +alter table ic_service_record_v2 add COLUMN SERVICE_CATEGORY_KEY VARCHAR(64) comment '服务类别KEY' AFTER remark; \ No newline at end of file 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..872caf9999 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 @@ -196,4 +196,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/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-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..70b6bdb9ae 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()); 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..f4b7ce74e9 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; + /** * 角色名称 */ 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/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/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..36ccf542bb 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,17 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.GetStaffExistRoleFormDTO; import com.epmet.dto.form.InitDefaultOperationsFormDTO; import com.epmet.dto.form.ListOpePermsFormDTO; +import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.fallback.GovAccessFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; 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 +33,23 @@ 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); + } 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..bfb9acbc3b 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.GetStaffExistRoleFormDTO; import com.epmet.dto.form.InitDefaultOperationsFormDTO; import com.epmet.dto.form.ListOpePermsFormDTO; +import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.GovAccessFeignClient; +import java.util.List; import java.util.Set; /** @@ -26,4 +30,14 @@ 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); + } } 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..ce89f2c7d8 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 @@ -114,6 +114,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 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..c11faba160 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; @@ -51,7 +53,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 +70,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 +78,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 +86,7 @@ public class GovRoleController { 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/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..526dbf9b37 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,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +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 +25,12 @@ 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); + } 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..654bee9ce6 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,9 @@ public class GovRoleEntity extends BaseEpmetEntity { @TableField(fill = FieldFill.INSERT) private Long deptId; + /** + * 客户id + */ + private String customerId; + } 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/service/GovMenuService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java index 0e87946dc5..fd09359551 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 @@ -129,6 +129,7 @@ public interface GovMenuService extends BaseService { * @return java.util.List */ List getUserMenuNavList(TokenDto tokenDto, String tableName); + List navDigitalCommunity(TokenDto tokenDto, String tableName); /** * 获取用户权限标识 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/GovMenuServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovMenuServiceImpl.java index 2dbb4abe05..92c86a2c1c 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovMenuServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovMenuServiceImpl.java @@ -22,17 +22,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.exception.RenException; 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.HttpContextUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.TreeUtils; import com.epmet.dao.GovMenuDao; +import com.epmet.dao.GovRoleDao; +import com.epmet.dao.GovRoleMenuDao; +import com.epmet.dao.GovRoleUserDao; import com.epmet.dto.GovMenuDTO; import com.epmet.entity.GovMenuEntity; import com.epmet.enums.MenuTypeEnum; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.redis.GovCustomerMenuRedis; import com.epmet.redis.GovMenuRedis; import com.epmet.service.*; @@ -45,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.stream.Collectors; /** * 菜单管理 @@ -67,6 +74,14 @@ public class GovMenuServiceImpl extends BaseServiceImpl page(Map params) { @@ -218,7 +233,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 +265,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 +277,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) { //用户权限列表 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 +71,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 +80,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 +115,6 @@ public class GovRoleServiceImpl 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/mapper/GovRoleDao.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml index 2de28e07bf..3078bf4cdf 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,13 @@ + + 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-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-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/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/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/StaffSubmitFromDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/StaffSubmitFromDTO.java index 284880f6d5..0f9f35a2f6 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,6 @@ public class StaffSubmitFromDTO 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/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/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/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/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/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..7e2bcae37e 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 @@ -695,4 +695,14 @@ public interface GovOrgOpenFeignClient { */ @PostMapping("/gov/org/coverage/dictinit/{customerId}") Result dictInit(@PathVariable(value = "customerId") String customerId); + + /** + * 获取房主名下的房屋 + * @Param formDTO + * @Return {@link Result< List>} + * @Author zhaoqifeng + * @Date 2022/7/20 9:52 + */ + @PostMapping("/gov/org/ichouse/getOwnerHouseList") + Result> getOwnerHouseList(@RequestBody IcHouseDTO 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..f9046d5979 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,18 @@ 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); + } + } diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 979279e37b..0ac2bc0ff1 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/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 1ff1bc303c..ae07816fa2 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 @@ -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/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 8f026e9f44..abcf908367 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 @@ -92,7 +92,6 @@ public class GridController { 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/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/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/redis/CustomerAgencyRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java index a4be0f2703..c41d5eae0e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/CustomerAgencyRedis.java @@ -59,4 +59,7 @@ public class CustomerAgencyRedis { return BeanUtil.mapToBean(resultMap, AgencyInfoCache.class, true); } + public void deleteByPrex(String orgTreeCachePrexKey) { + redisUtils.deleteByPrex(orgTreeCachePrexKey); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java index 4ae4672647..04c73a7756 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java @@ -178,4 +178,25 @@ public interface AgencyService { * @date 2022/5/16 10:43 */ List 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/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..61059fb01c 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 @@ -27,6 +27,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 +44,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.*; @@ -50,12 +52,14 @@ import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.CustomerDepartmentEntity; 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.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerOrgParameterService; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -66,10 +70,9 @@ 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.function.Function; +import java.util.stream.Collectors; /** * 机关单位信息 @@ -99,7 +102,7 @@ public class AgencyServiceImpl implements AgencyService { @Autowired private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; @Autowired - private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + private OperCrmFeignClient operCrmFeignClient; @Autowired private IcBuildingDao icBuildingDao; @Autowired @@ -237,7 +240,9 @@ public class AgencyServiceImpl implements AgencyService { //5.redis缓存 customerAgencyRedis.delete(formDTO.getAgencyId()); - + //6.一些下拉组织树的缓存要清除掉 + String orgTreeCachePrexKey = RedisKeys.getOrgTreeCachePrexKey(formDTO.getCustomerId()); + customerAgencyRedis.deleteByPrex(orgTreeCachePrexKey); return result; } @@ -902,6 +907,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 +996,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..4354be6b51 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 @@ -1175,7 +1175,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl().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..80a0733c5c 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,10 @@ public class StaffServiceImpl implements StaffService { } return new Result().error(EpmetErrorCode.STAFF_EDIT_FAILED.getCode(), EpmetErrorCode.STAFF_EDIT_FAILED.getMsg()); } + 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 +585,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/excel/house_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_template.xlsx index c722017f31..b0ceaed94f 100644 Binary files a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_template.xlsx and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_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/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/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/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..9737ddb90f 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 @@ -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..435e703e33 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 @@ -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..c3b2e35991 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 @@ -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/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/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index 20974d2afa..b0906de8d1 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 @@ -257,9 +257,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-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/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-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/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/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/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..2dffd84aee 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 @@ -835,4 +835,24 @@ 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); } 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..bee7102a73 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 @@ -636,4 +636,14 @@ 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); + } + } 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/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/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/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index a10f7e8295..f75c1cbb55 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/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/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/excel/handler/IcResiImportDynamicExcelListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java index 1d06fe5707..659c186d29 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java @@ -195,10 +195,10 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener + * 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/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..c9c416d63c 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; @@ -44,11 +45,13 @@ import com.epmet.dao.StaffRoleDao; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.CustomerStaffEntity; 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; @@ -94,6 +97,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -283,7 +288,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); } 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/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index cc0b87407d..b110a33332 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 @@ -41,10 +41,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; @@ -293,18 +295,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : formMap.get("ic_party_member")) { - if (!hash.containsKey("SSZB")) { - 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); - } - partyMemberDTO.setCustomerId(tokenDto.getCustomerId()); partyMemberDTO.setAgencyId(agencyId); partyMemberDTO.setAgencyPids(result.getData().getPids()); @@ -521,19 +511,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : formMap.get("ic_party_member")) { - if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) { - String errorMsg = "党员信息所属支部不能为空"; - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); - } - } - } else { - String errorMsg = "党员信息所属支部不能为空"; - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); - } - } if ((map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY"))) || (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty()))) { partyMemberDTO.setCustomerId(tokenDto.getCustomerId()); @@ -2216,7 +2193,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl changeIcResiUserBelongTo(TokenDto tokenDto, IcUserBelongToChangedFormDTO formDTO) { - + 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(),"参数错误","参数错误"); @@ -2225,7 +2202,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcResiUserEntity::getGridId,formDTO.getSourceGridId()) - .eq(IcResiUserEntity::getCustomerId,formDTO.getCustomerId()); + .eq(IcResiUserEntity::getVillageId,formDTO.getNeighborhoodId()) + .eq(IcResiUserEntity::getCustomerId,formDTO.getCustomerId()); baseDao.update(entity,wrapper); //不调用原来的更新居民了 太慢 /*List resiUserIdList = baseDao.listUserIds(formDTO.getCustomerId(), formDTO.getSourceGridId()); @@ -2246,9 +2224,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { map.put(FieldConstant.ID, userId); this.edit(tokenDto, icResiUserFormDTOS); - }); -*/ - return null; + });*/ + return resiUserIdList; } /** @@ -2416,17 +2393,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)) { @@ -2436,15 +2479,6 @@ public class IcResiUserServiceImpl 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/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/excel/ic_resi_import_template.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls index 0cd7fc22f1..c6ce625d93 100644 Binary files a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls and b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls differ 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 6f708835cc..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 @@ -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' + 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 @@