diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql new file mode 100644 index 0000000000..aa7b268044 --- /dev/null +++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.22__jmreport_category.sql @@ -0,0 +1,5 @@ +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 ('1556509011061993473', 'jmreport_category', '报表应用类别', '居民信息、房屋信息', 32, 0, 0, '1', '2022-08-08 13:14:01', '1', '2022-08-08 13:14: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 ('1556509175185108994', 1556509011061993473, '房屋信息', 'house_info', '0', '', 2, 0, 0, '1', '2022-08-08 13:14:41', '1', '2022-08-08 13:14:41'); +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 ('1556509102015475714', 1556509011061993473, '居民信息', 'resi_info', '0', '', 1, 0, 0, '1', '2022-08-08 13:14:23', '1', '2022-08-08 13:14:23'); diff --git a/epmet-cloud-generator/src/main/resources/application.yml b/epmet-cloud-generator/src/main/resources/application.yml index 973eb74fe0..86b39b69c8 100644 --- a/epmet-cloud-generator/src/main/resources/application.yml +++ b/epmet-cloud-generator/src/main/resources/application.yml @@ -9,7 +9,7 @@ spring: type: com.alibaba.druid.pool.DruidDataSource #MySQL配置 driverClassName: com.mysql.jdbc.Driver - url: jdbc:mysql://118.190.150.119:43306/epmet_user?useUnicode=true&characterEncoding=UTF-8&useSSL=false + url: jdbc:mysql://118.190.150.119:43306/epmet_gov_org?useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: root #oracle配置 diff --git a/epmet-commons/epmet-commons-feignclient/pom.xml b/epmet-commons/epmet-commons-feignclient/pom.xml new file mode 100644 index 0000000000..4cf486cefb --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/pom.xml @@ -0,0 +1,24 @@ + + + + epmet-commons + com.epmet + 2.0.0 + + + 4.0.0 + jar + + epmet-commons-feignclient + + + + com.epmet + epmet-commons-tools + 2.0.0 + + + + \ No newline at end of file diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java new file mode 100644 index 0000000000..1c92f30d11 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuPage.java @@ -0,0 +1,22 @@ +package com.epmet.commons.feignclient.dtos; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 积木报表的返回值Page对象 + * @param + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JiMuPage { + private int pageNo; + private int pageSize; + private int total; + private int pages; + private List records; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java new file mode 100644 index 0000000000..5aa42d273a --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/JiMuResult.java @@ -0,0 +1,20 @@ +package com.epmet.commons.feignclient.dtos; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 积木报表的返回值Result对象 + * @param + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JiMuResult { + private boolean success = true; + private String message = ""; + private Integer code = 0; + private T result; + private T data; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java new file mode 100644 index 0000000000..caf58ec9a9 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.commons.feignclient.dtos.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/8 15:08 + * @DESC + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JiMuReportFormDTO implements Serializable { + + private static final long serialVersionUID = 3590609549416867701L; + + /** + * 报表IDs + */ + private List reportIds; + + /** + * 类别 + */ + private List categoryKeys; + + private String id; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java new file mode 100644 index 0000000000..7e66c588e9 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JimuReportExportRequestDTO.java @@ -0,0 +1,27 @@ +package com.epmet.commons.feignclient.dtos.form; + +import lombok.Data; + +/** + * 批量导出用的requst dto + */ +@Data +public class JimuReportExportRequestDTO { + private String excelConfigId; + private ExportRequestQueryParam queryParam = new ExportRequestQueryParam(); + + /** + * 批量导出用的请求参数 + */ + @Data + public static class ExportRequestQueryParam { + private String id; + private String token; + private String paramKey; + private String pageNo; + private Integer pageSize; + private String currentPageNo; + private Integer currentPageSize; + } + +} \ No newline at end of file diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java new file mode 100644 index 0000000000..9e27d5ab5b --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportDetailResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.commons.feignclient.dtos.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class JiMuReportDetailResultDTO { + private String id; + private String code; + private String name; + private String note; + private String status; + private String type; + private String jsonStr; + private String apiUrl; + private String apiMethod; + private String apiCode; + private String thumb; + private Integer template; + private String createBy; + private Date createTime; + private String updateBy; + private Date updateTime; + private Map dataList; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java new file mode 100644 index 0000000000..6ef587b6d5 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.commons.feignclient.dtos.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/8 15:10 + * @DESC + */ +@Data +public class JiMuReportResultDTO implements Serializable { + + private static final long serialVersionUID = -4048477731892329569L; + + private String code; + + private String name; + + private String id; + private String reportId; + private String reportName; + + private Boolean isList = false; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java new file mode 100644 index 0000000000..8eb58e8b74 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportDbDataResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.commons.feignclient.dtos.result; + +import lombok.Data; + +@Data +public class JimuReportDbDataResultDTO { + + private ReportDB reportDb; + + @Data + public static class ReportDB { + private String apiUrl; + private String apiMethod; + private String isList; + private String dbChName; + } + +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java new file mode 100644 index 0000000000..ef4037afe8 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JimuReportFieldTreeResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.commons.feignclient.dtos.result; + +import lombok.Data; + +import java.util.List; + +/** + * 积木报表,报表字段列表 + */ +@Data +public class JimuReportFieldTreeResultDTO { + + private Boolean expand; + private String code; + private List children; + private String dbId; + private String type; + private String isList; + + @Data + public static class Child { + private Boolean expand; + private String title; + private String fieldText; + } +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/.gitkeep b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java new file mode 100644 index 0000000000..08b07c0dab --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java @@ -0,0 +1,47 @@ +package com.epmet.commons.feignclient.feigns; + +import com.epmet.commons.feignclient.dtos.JiMuPage; +import com.epmet.commons.feignclient.dtos.JiMuResult; +import com.epmet.commons.feignclient.dtos.form.JimuReportExportRequestDTO; +import com.epmet.commons.feignclient.dtos.result.JiMuReportDetailResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportDbDataResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportFieldTreeResultDTO; +import com.epmet.commons.feignclient.feigns.fallback.JiMuReportOpenFeignClientFallbackFactory; +import com.epmet.commons.tools.constant.ServiceConstant; +import feign.Response; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @Author zxc + * @DateTime 2022/8/8 13:52 + * @DESC + */ +@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class) +//@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class, url = "localhost:8118") +public interface JiMuReportOpenFeignClient { + + @GetMapping(value = "jmreport/excelQuery") + JiMuResult> getList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("name") String name, + @RequestParam("reportType") String reportType, + @RequestParam("token") String token, + @RequestHeader MultiValueMap headers); + + @GetMapping("jmreport/show") + JiMuResult> getReport(@RequestParam("id") String id,@RequestParam("apiUrl") String apiUrl,@RequestParam("params") String params,@RequestHeader MultiValueMap headers); + + @GetMapping("/jmreport/field/tree/{report-id}") + JiMuResult>> fieldTree(@PathVariable("report-id") String reportId); + + @GetMapping("jmreport/loadDbData/{report-id}") + JiMuResult loadDbData(@PathVariable("report-id") String reportId); + + @PostMapping("jmreport/exportAllExcelStream") + Response exportAllExcelStream(JimuReportExportRequestDTO param); +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java new file mode 100644 index 0000000000..b1c793d560 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java @@ -0,0 +1,51 @@ +package com.epmet.commons.feignclient.feigns.fallback; + +import com.epmet.commons.feignclient.dtos.JiMuPage; +import com.epmet.commons.feignclient.dtos.JiMuResult; +import com.epmet.commons.feignclient.dtos.form.JimuReportExportRequestDTO; +import com.epmet.commons.feignclient.dtos.result.JiMuReportDetailResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportDbDataResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportFieldTreeResultDTO; +import com.epmet.commons.feignclient.feigns.JiMuReportOpenFeignClient; +import feign.Response; +import org.springframework.util.MultiValueMap; + +import java.util.List; +import java.util.Map; + +/** + * @Author zxc + * @DateTime 2022/8/8 13:53 + * @DESC + */ +public class JiMuReportOpenFeignClientFallback implements JiMuReportOpenFeignClient { + + @Override + public JiMuResult> getList(Integer pageNo, Integer pageSize, String name, String reportType, String token, MultiValueMap headers) { + JiMuResult> rst = new JiMuResult<>(false, "请求失败", 200, null,null); + return rst; + } + + @Override + public JiMuResult> getReport(String id,String apiUrl,String params,MultiValueMap headers) { + JiMuResult> rst = new JiMuResult<>(false, "请求失败", 200, null,null); + return rst; + } + + @Override + public JiMuResult loadDbData(String reportId) { + JiMuResult rst = new JiMuResult<>(false, "请求失败", 200, null,null); + return rst; + } + + @Override + public Response exportAllExcelStream(JimuReportExportRequestDTO param) { + return null; + } + + @Override + public JiMuResult>> fieldTree(String reportId) { + JiMuResult rst = new JiMuResult<>(false, "请求失败", 200, null,null); + return rst; + } +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..e0274436c2 --- /dev/null +++ b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java @@ -0,0 +1,24 @@ +package com.epmet.commons.feignclient.feigns.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @Author zxc + * @DateTime 2022/8/9 13:27 + * @DESC + */ +@Slf4j +@Component +public class JiMuReportOpenFeignClientFallbackFactory implements FallbackFactory { + + private JiMuReportOpenFeignClientFallback fallback = new JiMuReportOpenFeignClientFallback(); + + @Override + public JiMuReportOpenFeignClientFallback create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java index 14a5a24ff8..f579fbb1fc 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java @@ -3,6 +3,7 @@ package com.epmet.commons.rocketmq.messages; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * 组织、网格、人员中间库数据上报MQ @@ -18,7 +19,16 @@ public class OrgOrStaffMQMsg implements Serializable { //数据类型【组织:agency 网格:grid 人员:staff】 private String orgType; //操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】 + //删除网格:grid_delete;删除组织:agency_delete private String type; + /** + * org原有的Code + */ + private String oldCode; + + //工作人员Id集合 + private List staffIdList; + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/annotation/ReportRequest.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/annotation/ReportRequest.java new file mode 100644 index 0000000000..41a9379fe0 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/annotation/ReportRequest.java @@ -0,0 +1,13 @@ +package com.epmet.commons.tools.annotation; + +import java.lang.annotation.*; + +/** + * 标记一个接口,它会被报表服务所调用 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ReportRequest { + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ReportRequestAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ReportRequestAspect.java new file mode 100644 index 0000000000..c355a39df1 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ReportRequestAspect.java @@ -0,0 +1,86 @@ +package com.epmet.commons.tools.aspect; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.RedisUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.lang.reflect.Parameter; +import java.util.Map; + +/** + * 需要被报表服务请求的api,需要加上这个注解 + * 1.该注解会取url中固定的key,去redis获取参数,给入参dto复制 + */ +@Aspect +@Component +@Order(20) +@Slf4j +public class ReportRequestAspect { + + /** + * 从redis中取参数用 + */ + public static final String REPORT_REDIS_KEY = "paramKey"; + + @Autowired + private RedisUtils redisUtils; + + @Before("@annotation(com.epmet.commons.tools.annotation.ReportRequest)") + public void before(JoinPoint point) { + RequestAttributes ra = RequestContextHolder.getRequestAttributes(); + ServletRequestAttributes sra = (ServletRequestAttributes) ra; + String paramKey = sra.getRequest().getParameter(REPORT_REDIS_KEY); + if (StringUtils.isBlank(paramKey)) { + // 没有携带key参数,直接跳过 + return; + } + + Map cachedParams = redisUtils.hGetAll(paramKey); + if (cachedParams == null || cachedParams.size() == 0) { + log.warn("【报表服务】根据paramKey:{}未获取到有效的参数缓存。", paramKey); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "参数失效", "参数失效"); + // redis中没有此参数 + } + + // 使用方法签名获取出参数class列表 + Object[] args = point.getArgs(); + MethodSignature signature = (MethodSignature) point.getSignature(); + Parameter[] parameters = signature.getMethod().getParameters(); + fillArgsToRequestBody(args, cachedParams, parameters); + } + + /** + * 将redis中取出的参数,赋值到指定的入参dto上 + * @param args + * @param storedParams + */ + private void fillArgsToRequestBody(Object[] args, Map storedParams, Parameter[] parameters) { + for (int i = 0; i < args.length; i++) { + Object arg = args[i]; + RequestBody requestBodyAnno = parameters[i].getAnnotation(RequestBody.class); + if (arg != null && requestBodyAnno != null) { + Object argBean = BeanUtil.mapToBean(storedParams, arg.getClass(), true); + + // "pageSize", "pageNo", "isPage"三个属性不从redis拷贝,而是取传递雇来的 + // redis里面的字段如果是null,则不会赋值给arg + BeanUtil.copyProperties(argBean, arg, new CopyOptions(null, true, "pageSize", "pageNo", "isPage")); + return; + } + } + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 0d18e6f706..1f0d76e14f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java @@ -50,6 +50,8 @@ public interface NumConstant { BigDecimal ZERO_DECIMAL = new BigDecimal(0); int ONE_THOUSAND = 1000; int TEN_THOUSAND = 10000; + + int THREE_THOUSAND = 3000; int MAX = 99999999; int EIGHTY_EIGHT = 88; int EIGHTY = 80; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java index 221d7d3f69..7d4eafae90 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java @@ -143,4 +143,14 @@ public interface ServiceConstant { * 聚合查询服务 */ String DATA_AGGREGATOR_SERVER = "data-aggregator-server"; + + /** + * 插件pli-power服务 + */ + String PLI_POWER_SERVER = "pli-power-base-server"; + + /** + * + */ + String EPMET_JM_REPORT = "epmet-jmreport-server"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index 62d9fef763..b89a521218 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -110,4 +110,9 @@ public interface StrConstant { String YES = "是"; String NO = "否"; + + String ELLIPSIS="......"; + + String BRACKET_LEFT="("; + String BRACKET_RIGNT=")"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DictListFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DictListFormDTO.java index 1880debe42..88adefbd17 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DictListFormDTO.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DictListFormDTO.java @@ -1,6 +1,8 @@ package com.epmet.commons.tools.dto.form; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; @@ -9,6 +11,8 @@ import javax.validation.constraints.NotBlank; * @Author sun */ @Data +@AllArgsConstructor +@NoArgsConstructor public class DictListFormDTO { /** diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java new file mode 100644 index 0000000000..94b58de257 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/ZhzlCategorySelectDTO.java @@ -0,0 +1,23 @@ +package com.epmet.commons.tools.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/7/26 16:37 + */ +@Data +public class ZhzlCategorySelectDTO implements Serializable { + private String label; + private String value; + + private String queryType; + private String tableName; + private String columnName; + private String columnValue; + private Integer sort; +} + diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java new file mode 100644 index 0000000000..935064e933 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java @@ -0,0 +1,34 @@ +package com.epmet.commons.tools.enums; + +public enum CollectUrlEnum { + + + URL_PRE("subpages/points/pages/fangyi/xinxi/create/index", "小程序码跳转地址"), + GET_CODE_URL("https://api.weixin.qq.com/wxa/getwxacode?access_token=", "获取二维码的url"); + + + private String code; + private String name; + + + CollectUrlEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java new file mode 100644 index 0000000000..02f5504d6a --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java @@ -0,0 +1,55 @@ +package com.epmet.commons.tools.enums; + +/** + * 图层枚举 + */ +public enum CoverageEnums { + + ZHZL("zhzl", "综合治理图层", 1), + YJCL("yjcl", "应急处置资源", 1), + AQSC("aqsc", "安全生产资源", 1), + CSGL("csgl", "城市管理资源", 1), + GGFW("ggfw", "公共服务资源", 1), + + DATA_TYPE_GOVERNED_TARGET("governedTarget", "被管理对象", 2), + DATA_TYPE_RESOURCES("resources", "资源", 2); + + private String key; + private String name; + /** + * 1:图层,2:数据类型 + */ + private Integer type; + + CoverageEnums(String key, String name, Integer type) { + this.key = key; + this.name = name; + this.type = type; + } + + public static CoverageEnums getEnum(String key) { + CoverageEnums[] values = CoverageEnums.values(); + for (CoverageEnums value : values) { + if (value.getKey().equals(key)) { + return value; + } + } + return null; + } + + public String getKey() { + return key; + } + + public String getCoverageName() { + return name; + } + + public String getName() { + return name; + } + + public Integer getType() { + return type; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java index eb8d25e80f..6f71e122b0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java @@ -8,14 +8,17 @@ public enum CoveragePlaceTypeEnum { SUPERIOR_RESOURCE("superior_resource", "优势资源"), DANGEROUS_CHEMICALS("dangerous_chemicals", "重点危化企业"), ENTERPRISE_PATROL("enterprise_patrol", "企事业单位巡查"), + ENTERPRISE_PATROL_UNQUALIFIED("enterprise_patrol_unqualified", "安全生产隐患"), SPECIAL_RESI("special_resi", "特殊人群"), CITY_MANAGEMENT("city_management", "城市管理"), COMMUNITY_ORG("community_org", "社区自组织"), PUBLIC_SERVICE("public_service", "公共服务"), - RESI("resi", "居民"), + RESI("resi", "公共服务人群"), PARTY_UNIT("party_unit", "联建单位"), + VOLUNTEER("volunteer", "志愿者"), GROUP_RENT("group_rent", "群租房"), - EVENT("event", "事件(包括难点堵点)"); + EVENT("event", "城市管理事件"), + ZHZL_RQ("zhzl_rq", "综合治理人群"); private final String code; private final String name; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java index e900f79875..07d47ba7b0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java @@ -28,6 +28,7 @@ public enum DictTypeEnum { IC_SERVICE_TYPE("ic_service_type","服务类别",20), IC_DANGER_TYPE("ic_danger_type","危化品种类",24), POLICY_LEVEL("policy_level","政策级别",25), + LOG_TYPE("log_type", "日志类型", 33), ; private final String code; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java new file mode 100644 index 0000000000..f4343639e0 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java @@ -0,0 +1,57 @@ +package com.epmet.commons.tools.enums; + +public enum ResiCategoryEnum { + IS_PARTY("IS_PARTY", "党员"), + IS_DBH("IS_DBH", "低保人员"), + IS_ENSURE_HOUSE("IS_ENSURE_HOUSE", "保障房人员"), + IS_UNEMPLOYED("IS_UNEMPLOYED", "失业人员"), + IS_YLFN("IS_YLFN", "育龄妇女"), + IS_VETERANS("IS_VETERANS", "退役军人"), + IS_UNITED_FRONT("IS_UNITED_FRONT", "统战人员"), + IS_XFRY("IS_XFRY", "信访人员"), + IS_VOLUNTEER("IS_VOLUNTEER", "志愿者"), + IS_OLD_PEOPLE("IS_OLD_PEOPLE", "老年人"), + IS_KC("IS_KC", "空巢"), + IS_SD("IS_SD", "失独人员"), + IS_SN("IS_SN", "失能"), + IS_SZ("IS_SZ", "失智"), + IS_CJ("IS_CJ", "残疾"), + IS_DB("IS_DB", "大病"), + IS_MB("IS_MB", "慢病"), + IS_SPECIAL("IS_SPECIAL", "特殊人群"), + IS_XJC("IS_XJC", "新阶层人士"); + private String colName; + private String label; + + + ResiCategoryEnum(String colName, String label) { + this.colName = colName; + this.label = label; + } + + /** + * 取枚举对象 + * @param columnName + * @return + */ + public static ResiCategoryEnum getEnum(String columnName) { + for (ResiCategoryEnum enumObject : ResiCategoryEnum.values()) { + if (enumObject.getColName().equals(columnName)) { + return enumObject; + } + } + return null; + } + + public String getColName() { + return colName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java new file mode 100644 index 0000000000..b57baedf5e --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ZhzlResiCategoryEnum.java @@ -0,0 +1,108 @@ +package com.epmet.commons.tools.enums; + +import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO; + +import java.util.ArrayList; +import java.util.List; + +public enum ZhzlResiCategoryEnum { + // resi_xfry 信访人员 + // anzhibangjiao 安置帮教 + // xiejiaorenyuan 邪教人员 + // buliangqingshaonian 不良青少年 + // shequjiaozheng 社区矫正 + // zhaoshizhaohuojingshenbing 肇事肇祸精神病 + // xidurenyuan 吸毒人员 + + resi_xfry("resi_xfry", "信访人员", "equal", "ic_resi_user", "IS_XFRY", "1", 1), + anzhibangjiao("anzhibangjiao", "安置帮教", "list_equal", "ic_special", "SPECIAL_RQLB", "anzhibangjiao", 2), + xiejiaorenyuan("xiejiaorenyuan", "邪教人员", "list_equal", "ic_special", "SPECIAL_RQLB", "xiejiaorenyuan", 3), + buliangqingshaonian("buliangqingshaonian", "不良青少年", "list_equal", "ic_special", "SPECIAL_RQLB", "buliangqingshaonian", 4), + shequjiaozheng("shequjiaozheng", "社区矫正", "list_equal", "ic_special", "SPECIAL_RQLB", "shequjiaozheng", 5), + zhaoshizhaohuojingshenbing("zhaoshizhaohuojingshenbing", "肇事肇祸精神病", "list_equal", "ic_special", "SPECIAL_RQLB", "zhaoshizhaohuojingshenbing", 6), + xidurenyuan("xidurenyuan", "吸毒人员", "list_equal", "ic_special", "SPECIAL_RQLB", "xidurenyuan", 7); + + private String code; + private String name; + private String queryType; + private String tableName; + private String columnName; + private String columnValue; + private Integer sort; + + + ZhzlResiCategoryEnum(String code, String name, String queryType, String tableName, String columnName, String columnValue, Integer sort) { + this.code = code; + this.name = name; + this.queryType = queryType; + this.tableName = tableName; + this.columnName = columnName; + this.columnValue = columnValue; + this.sort = sort; + } + + public static ZhzlResiCategoryEnum getEnum(String code) { + ZhzlResiCategoryEnum[] values = ZhzlResiCategoryEnum.values(); + for (ZhzlResiCategoryEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + + } + + + /** + * 转为数据 + * + * @return 枚举对象数组 + */ + public static List toSelectList() { + List list = new ArrayList<>(); + for (ZhzlResiCategoryEnum item : ZhzlResiCategoryEnum.values()) { + ZhzlCategorySelectDTO selectDTO = new ZhzlCategorySelectDTO(); + selectDTO.setLabel(item.getName()); + selectDTO.setValue(item.getCode()); + selectDTO.setQueryType(item.getQueryType()); + selectDTO.setTableName(item.getTableName()); + selectDTO.setColumnName(item.getColumnName()); + selectDTO.setColumnValue(item.getColumnValue()); + selectDTO.setSort(item.getSort()); + list.add(selectDTO); + } + return list; + } + + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + + public String getQueryType() { + return queryType; + } + + public String getTableName() { + return tableName; + } + + public String getColumnName() { + return columnName; + } + + public String getColumnValue() { + return columnValue; + } + + public Integer getSort() { + return sort; + } + + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index a13d6cf1db..163dee5e2f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -259,6 +259,7 @@ public enum EpmetErrorCode { NOT_REGEIST_RESI(8927,"未注册居民"), UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"), IC_VACCINE(8929,"已存在相同记录,请去修改原有记录"), + NOT_MATCH_IC_USER_ERROR(8930,"请联系社区工作人员"), MISMATCH(10086,"人员与房屋信息不匹配,请与工作人员联系。"), diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java index f7eb3a778d..746de189e9 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java @@ -25,8 +25,6 @@ public class EpmetBaseRequestInterceptor implements RequestInterceptor { // Map requestHeaders = getHeadersFromRequest(); - log.debug("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders); - if (requestHeaders != null && requestHeaders.size() > 0) { for (Map.Entry kv : requestHeaders.entrySet()) { template.header(kv.getKey(), kv.getValue()); 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 55a331c4e2..1e9271dc2a 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 @@ -29,6 +29,7 @@ public class PageData implements Serializable { private List list; + private int pages; /** * 分页 * @param list 列表数据 @@ -38,4 +39,10 @@ public class PageData implements Serializable { this.list = list; this.total = (int)total; } + + public PageData(List list, long total,int pageSize) { + this.list = list; + this.total = (int)total; + this.pages = (int) Math.ceil((double)total / pageSize); + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index d6e8a2c245..b39bb7fa47 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -766,6 +766,16 @@ public class RedisKeys { return rootPrefix.concat("gov:access:nav:"); } + /** + * Desc: 新五大图层获取菜单缓存key + * @param + * @author zxc + * @date 2022/7/27 13:42 + */ + public static String getCustomerMenuListFiveCoverage() { + return rootPrefix.concat("customer:govMenu:"); + } + /** * 如果是省列表:epmet:areacode:parentCode:0 * 山东省的下一级:epmet:areacode:parentCode:37 @@ -839,4 +849,11 @@ public class RedisKeys { public static String getServiceOrgNameKey(String customerId,String serviceOrgType,String serviceOrgId){ return rootPrefix.concat("serviceOrgName:").concat(serviceOrgType).concat(":").concat(customerId).concat(":").concat(serviceOrgId); } + + public static String getUserBaseInfoKey(String userId) { + if (StringUtils.isBlank(userId)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("staffbaseinfo:")+userId; + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java index 2dce88e919..311830ae9f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java @@ -375,6 +375,15 @@ public class RedisUtils { return redisTemplate.opsForSet().add(key,value); } + public void listAdd(String key,Object value){ + redisTemplate.opsForList().rightPush(key,value); + } + + public Object listGetAll(String key,Integer start, Integer end){ + List result = redisTemplate.opsForList().range(key, start, end); + return result; + } + /** * @Description 获取 zset 中带score的集合 * @param key diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/EpmetRequestHolder.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/EpmetRequestHolder.java index c86ef93152..e24f420fa7 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/EpmetRequestHolder.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/EpmetRequestHolder.java @@ -2,6 +2,7 @@ package com.epmet.commons.tools.utils; import com.alibaba.ttl.TransmittableThreadLocal; import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.Constant; import org.apache.commons.lang3.StringUtils; import java.util.HashMap; @@ -86,6 +87,14 @@ public class EpmetRequestHolder { return getHeader(AppClientConstant.CLIENT); } + /** + * 获取登陆用户的token + * @return + */ + public static String getLoginUserAuthorizationToken() { + return getHeader(Constant.AUTHORIZATION_HEADER); + } + /** * 获取所有 * @return diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java index 4fe6be37da..69b9d87b97 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java @@ -443,6 +443,34 @@ public class HttpClientManager { } } + public Result sendGet(String url, Map params, Map headerMap) { + + try { + URIBuilder builder = new URIBuilder(url); + if (!CollectionUtils.isEmpty(params)) { + Set set = params.keySet(); + for (String key : set) { + builder.setParameter(key, params.get(key) == null ? "" : String.valueOf(params.get(key))); + } + } + + System.out.println(builder.getPath()); + HttpGet httpGet = new HttpGet(builder.build()); + httpGet.setConfig(requestConfig); + if (null != headerMap){ + headerMap.forEach((k,v) -> { + if (StringUtils.isNotBlank(k)) { + httpGet.addHeader(k, v == null ? null : v.toString()); + } + }); + } + return execute(httpGet,false); + } catch (Exception e) { + log.error("sendGet exception", e); + return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg()); + } + } + private Result execute(HttpRequestBase httpMethod, boolean isHttps) { CloseableHttpResponse response = null; try { diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java new file mode 100644 index 0000000000..8a6b63230c --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java @@ -0,0 +1,37 @@ +package com.epmet.commons.tools.utils; + +import org.apache.commons.lang3.StringUtils; + +/** + * desc:utf8mb4转为utf8 + * + * @author: LiuJanJun + * @date: 2022/7/22 9:45 下午 + * @version: 1.0 + */ +public class StrUtil { + + private static final int LAST_BMP = 0xFFFF; + + public static String filterEmoji(String source) { + if (StringUtils.isBlank(source)) { + return source; + } + StringBuilder sb = new StringBuilder(source.length()); + for (int i = 0; i < source.length(); i++) { + int codePoint = source.codePointAt(i); + if (codePoint < LAST_BMP) { + sb.appendCodePoint(codePoint); + } else { + i++; + } + } + return sb.toString(); + } + + + public static void main(String[] args) { + String x = StrUtil.filterEmoji("😀😁😆😅🥹🥹😇😗😀😂666"); + System.out.println(x); + } +} diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index dc505b1985..301fb79a81 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -278,6 +278,7 @@ lb://epmet-message-server + lb://epmet-activiti-server @@ -317,6 +318,7 @@ lb://gov-access-server + @@ -356,7 +358,7 @@ lb://epmet-heart-server - + lb://epmet-point-server diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index a1d2a74c11..b0b2492d33 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -502,6 +502,7 @@ epmet: # 内部认证url白名单(在白名单中的,就不会再校验登录了) internalAuthUrlsWhiteList: - /epmetuser/customerstaff/customerlist + - /epmetuser/icresiuser/icUserMatchGrid - /auth/wechat/** - /**/druid/** - /gov/project/project/platformcallback diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java index f02e5faa46..ae05f1af6e 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java @@ -38,4 +38,5 @@ public interface DataSourceConstant { String EPMET_T_DUCK = "epmettduck"; String EPMETTDUCK="epmettduck"; String EPMET_HEART="heart"; + String RESI_PARTYMEMBER="partymember"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java index f6e180eb7f..4dbc80ce5c 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java @@ -15,4 +15,11 @@ public interface OrgConstant { String GRID_ID="GRID_ID"; String GENDER="GENDER"; String HOUSE_TYPE_KEY="HOUSE_TYPE"; + + String AGENCY_ID="agencyId"; + String AGENC_PATH="agencyPath"; + + String SEARCH_TYPE_USER = "user"; + String SEARCH_TYPE_EVENT = "event"; + String SEARCH_TYPE_RESOURCE = "resource"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java new file mode 100644 index 0000000000..1e80e51d2f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TableConstant.java @@ -0,0 +1,22 @@ +package com.epmet.dataaggre.constant; + +/** + * + */ +public interface TableConstant { + + String IC_DANGEROUS_CHEMICALS = "ic_dangerous_chemicals"; + + String IC_SUPERIOR_RESOURCE = "ic_superior_resource"; + + String IC_ENTERPRISE = "ic_enterprise"; + + String IC_COMMUNITY_SELF_ORGANIZATION = "ic_community_self_organization"; + + String IC_CITY_MANAGEMENT = "ic_city_management"; + + String IC_PUBLIC_SERVICE = "ic_public_service"; + + String IC_EVENT = "ic_event"; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java new file mode 100644 index 0000000000..a925663491 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisGovernedTargetsResult.java @@ -0,0 +1,25 @@ +package com.epmet.dataaggre.dto.coverage; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 五大图层分析-被管理对象分类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AnalysisGovernedTargetsResult { + + private String categoryKey; + private String categoryName; + private String coverageType; + private String placeType; + private String placeTypeName; + private Integer quantity = 0; + + private List children; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java new file mode 100644 index 0000000000..4bfd7e83c1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java @@ -0,0 +1,70 @@ +package com.epmet.dataaggre.dto.coverage; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 五大图层-可视化-右侧分类树列表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AnalysisResourceCategoriesResult { + + /** + * 图层类型 + */ + private String coverageType; + /** + * 图层名称 + */ + private String coverageName; + /** + * 个数 + */ + private AtomicInteger quantity = new AtomicInteger(0); + + /** + * 没有placeTypeInAnalysis,直接属于图层的 + */ + private List categories = new ArrayList<>(); + + /** + * 场所类型,有placeTypeInAnalysis,不直接属于图层的 + */ + private List placeTypesInAnalysis = new ArrayList<>(); + + /** + * 分类 + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class Category { + private String categoryKey; + private String categoryName; + private String coverageType; + private String placeType; + private Integer quantity = 0; + } + + /** + * 场所类型 + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class PlaceType { + private String placeType; + private String placeTypeName; + private AtomicInteger quantity = new AtomicInteger(0); + private List categories; + } + + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java new file mode 100644 index 0000000000..06f1b6eab7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dataaggre.dto.datastats.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 数据统计页面查询-接口入参 + */ +@Data +public class NowStatsDataFormDTO implements Serializable { + + private static final long serialVersionUID = 6462094914874831738L; + + public interface CustomerDataManageForm{} + + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空",groups = CustomerDataManageForm.class) + private String customerId; + + /** + * 组织ID + */ + @NotBlank(message = "组织ID不能为空",groups = CustomerDataManageForm.class) + private String agencyId; + + /** + * 区间:Interval 截止:end + */ + @NotBlank(message = "type不能为空",groups = CustomerDataManageForm.class) + private String type; + + /** + * 开始时间 精确到秒【yyyy-MM-dd HH:mm:ss】 + */ + private String startTime; + + /** + * 结束时间 精确到秒【yyyy-MM-dd HH:mm:ss】 + */ + @NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class) + private String endTime; + + + //组织或网格Id集合 + private List idList; + //数据类型【组织agency 网格grid】 + private String dataType; + + /** + * desc:是否是导出 + */ + private boolean export = false; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java new file mode 100644 index 0000000000..537179b3e1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 数据统计页面查询-接口返参 + */ +@Data +public class NowStatsDataResultDTO { + + //组织、网格Id + private String orgId; + //组织、网格名称 + private String orgName; + //注册居民数 + private Integer resiUserCount = 0; + //注册党员数 + private Integer partyMemberCount = 0; + //事件总数 + private Integer icEventCount = 0; + //居民上报事件数【小程序端随手拍随时讲】 + private Integer resiEventCount = 0; + //平台录入事件数【数字平台录入的事件数】 + private Integer pcEventCount = 0; + //项目总数 + private Integer projectCount = 0; + //议题转项目数 + private Integer issueProjectCount = 0; + //事件立项数 + private Integer icEventProjectCount = 0; + //直接立项项目数 + private Integer agencyProjectCount = 0; + + + //组织的pids + private String pids; + //事件来源,0代表居民点 其他代表数字平台 + private String sourceType; + //项目来源 issue议题 agency立项 ic_event事件 + private String origin; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java index 2759e4f745..a3e354859a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java @@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java index 659805383f..a4ba26b37b 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcResiInfoResultDTO.java @@ -10,4 +10,5 @@ public class IcResiInfoResultDTO { private String id; private String name; private String buildId; + private String idNum; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java index 179dc80aba..2b3b0127df 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java @@ -9,7 +9,16 @@ import java.util.List; */ @Data public class CoverageAnalisisDataListFormDTO { + /** + * 目前都是组织id + */ + private String orgId; + /** + * agency + * grid + */ + private String orgType; /** * 图层类型列表 */ diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java new file mode 100644 index 0000000000..ca369fd4db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:09 + */ +@Data +public class CoverageAnalisisDataListLeftFormDTO { + public interface ShowGroup extends CustomerClientShowGroup { + } + /** + * 目前都是组织id + */ + @NotBlank(message = "组织不能为空", groups = ShowGroup.class) + private String orgId; + + /** + * agency + * grid + */ + @NotBlank(message = "组织类型不能为空", groups = ShowGroup.class) + private String orgType; + /** + * 图层类型列表 + */ + private List coverageTypes; + + /** + * 分类key + */ + private List categoryKeys; + + private String customerId; + private String staffId; + +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java new file mode 100644 index 0000000000..4650740bf6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:25 + * @DESC + */ +@Data +public class CoverageHomeSearchFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = 3776954636762201010L; + + private String name; + + private String customerId; + + private String userId; + + private String orgId; + + private String pids; + + private String tableName; + + /** + * 搜索类型,居民:user;事件:event;资源:resource + */ + private String searchType; + + /** + * 资源类型:社区自组织:community_org;优势资源:superior_resource;城市管理:city_management;重点危化企业:dangerous_chemicals;公共服务:public_service;企事业单位巡查:enterprise_patrol; + * searchType为resource时,此字段必填 + */ + private String resourceType; + + private String resourceId; + private String icEventId; + private String icUserId; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java new file mode 100644 index 0000000000..ca63810b71 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/DataListLeftSubTotalFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description + * @Author yzm + * @Date 2022/7/29 10:38 + */ +@Data +public class DataListLeftSubTotalFormDTO { + public interface AddUserInterGroup{} + @NotBlank(message = "orgId不能为空",groups = AddUserInterGroup.class) + private String orgId; + @NotBlank(message = "orgType不能为空",groups = AddUserInterGroup.class) + private String orgType; + + + private String coverageType; + + @NotBlank(message = "categoryKey不能为空",groups = AddUserInterGroup.class) + private String categoryKey; + + @NotBlank(message = "placeType不能为空",groups = AddUserInterGroup.class) + private String placeType; + + + private String customerId; + private String staffId; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java new file mode 100644 index 0000000000..61fe3607a5 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/29 08:48 + * @DESC + */ +@Data +public class SearchDetailFormDTO implements Serializable { + + private static final long serialVersionUID = 3499320376768396157L; + + public interface SearchUserDetailForm{} + public interface SearchEventDetailForm{} + public interface SearchResourceDetailForm{} + + @NotBlank(message = "icUserId不能为空",groups = SearchUserDetailForm.class) + private String icUserId; + + @NotBlank(message = "icEventId不能为空",groups = SearchEventDetailForm.class) + private String icEventId; + + @NotBlank(message = "resourceId不能为空",groups = SearchResourceDetailForm.class) + private String resourceId; + + /** + * 资源类型:社区自组织:community_org;优势资源:superior_resource;城市管理:city_management;重点危化企业:dangerous_chemicals;公共服务:public_service;企事业单位巡查:enterprise_patrol; + */ + @NotBlank(message = "resourceType不能为空",groups = SearchResourceDetailForm.class) + private String resourceType; + + private String customerId; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java index fd566cb191..1af67eb36a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.dataaggre.dto.govorg.result; +import com.epmet.commons.tools.constant.StrConstant; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; @Data @NoArgsConstructor @@ -40,4 +42,21 @@ public class CoverageAnalisisDataListResultDTO { */ private String longitude; + /** + * 经度,纬度:120.38862649282282,36.07138835989835 + */ + private String longLat; + + public CoverageAnalisisDataListResultDTO(String id, String categoryKey, String categoryName, String placeType, String content, String latitude, String longitude) { + this.id=id; + this.categoryKey=categoryKey; + this.categoryName=categoryName; + this.placeType=placeType; + this.content=content; + this.latitude=latitude; + this.longitude=longitude; + if(StringUtils.isNotBlank(latitude)&&StringUtils.isNotBlank(longitude)){ + this.longLat=longitude.concat(StrConstant.COMMA).concat(latitude); + } + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java new file mode 100644 index 0000000000..dcc46ae471 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:13 + */ +@Data +public class CoverageAnalisisDataListResultDTOV2 { + /** + * 维度 + */ + private String latitude; + + /** + * 经度 + */ + private String longitude; + + private List dataList; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java new file mode 100644 index 0000000000..508c63b69c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageHomeSearchResultDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:25 + * @DESC + */ +@Data +public class CoverageHomeSearchResultDTO implements Serializable { + + private static final long serialVersionUID = 8922820109004386708L; + + /** + * 居民信息 + */ + private List userInfos; + private Long userInfosTotal; + + /** + * 事件信息 + */ + private List eventInfos; + private Long eventInfoTotal; + + /** + * 资源信息 + */ + private List resourceInfos; + private Long resourceInfoTotal; + + public CoverageHomeSearchResultDTO() { + this.userInfos = new ArrayList<>(); + this.userInfosTotal = NumConstant.ZERO_L; + this.eventInfos = new ArrayList<>(); + this.eventInfoTotal = NumConstant.ZERO_L; + this.resourceInfos = new ArrayList<>(); + this.resourceInfoTotal = NumConstant.ZERO_L; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java new file mode 100644 index 0000000000..5478368735 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/DataListLeftSubTotalResDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/7/29 10:45 + */ +@Data +public class DataListLeftSubTotalResDTO { + private String orgId; + private String orgType; + private String orgName; + private String longitude; + private String latitude; + private Integer total=0; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java new file mode 100644 index 0000000000..60866d7c3f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/EventInfoResultDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC 事件本组织及下级难点堵点: 社区治理-事件管理中标记的痛点堵点 + */ +@Data +public class EventInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + /** + * 事件ID + */ + private String eventId; + + /** + * 所属网格 + */ + private String gridName; + + @JsonIgnore + private String gridId; + + /** + * 发生时间 yyyy-dd-mm hh:ii:ss + */ + private String happenTime; + + /** + * 事件内容 + */ + private String eventContent; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + public EventInfoResultDTO() { + this.eventId = ""; + this.gridName = ""; + this.happenTime = ""; + this.eventContent = ""; + this.longitude = ""; + this.latitude = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java index a4e155231f..f819fe0bcf 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java @@ -38,5 +38,13 @@ public class GridInfoResultDTO implements Serializable { private String gridId = ""; private String gridName = ""; private String pids = ""; + /** + * 中心位置经度 + */ + private String longitude; + /** + * 中心位置纬度 + */ + private String latitude; } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java new file mode 100644 index 0000000000..c82110c7e9 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/ResourceInfoResultDTO.java @@ -0,0 +1,76 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC + */ +@Data +public class ResourceInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + private String resourceId; + private String resourceType; + + private String name; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 分类名称 + */ + private String categoryName; + private String category; + + /** + * 占地面积 + */ + private String areaCovered; + + /** + * 容纳人数 + */ + private String capacity; + + /** + * 地址 + */ + private String address; + + /** + * 联系电话 + */ + private String mobile; + + /** + * 联系人 + */ + private String principal; + + public ResourceInfoResultDTO() { + this.resourceId = ""; + this.resourceType = ""; + this.name = ""; + this.longitude = ""; + this.latitude = ""; + this.categoryName = ""; + this.areaCovered = ""; + this.capacity = ""; + this.address = ""; + this.mobile = ""; + this.principal = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java new file mode 100644 index 0000000000..efc74c0517 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/UserInfoResultDTO.java @@ -0,0 +1,92 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/7/26 16:52 + * @DESC + */ +@Data +public class UserInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 1645410018462094960L; + + private String icUserId; + + /** + * 名字 + */ + private String name; + + /** + * 所属网格 + */ + private String gridName; + + @JsonIgnore + private String gridId; + + /** + * 所属房屋 + */ + private String houseName; + + @JsonIgnore + private String homeId; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证 + */ + private String idCard; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 人户情况 + */ + private String rhqk; + + /** + * 人员分类 + */ + private List type; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + public UserInfoResultDTO() { + this.icUserId = ""; + this.name = ""; + this.gridName = ""; + this.houseName = ""; + this.homeId = ""; + this.mobile = ""; + this.idCard = ""; + this.gzdw = ""; + this.rhqk = ""; + this.type = new ArrayList<>(); + this.longitude = ""; + this.latitude = ""; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java index 79b6460be4..070a873f43 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java @@ -17,4 +17,13 @@ public class OrgInfoCommonDTO implements Serializable { private String orgId; private String orgName; private String orgType; + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java new file mode 100644 index 0000000000..c777cd1281 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/enums/MenusEnums.java @@ -0,0 +1,75 @@ +package com.epmet.dataaggre.enums; + +import org.apache.commons.lang3.StringUtils; + +public enum MenusEnums { + + IC_DANGEROUS_CHEMICALS("shequzhili/tuceng/anquan/weihua/index","ic_dangerous_chemicals","重点危化品企业","govorg"), + IC_SUPERIOR_RESOURCE("shequzhili/tuceng/yingji/ziyuan/index","ic_superior_resource","优势资源管理","govorg"), + IC_ENTERPRISE("shequzhili/tuceng/anquan/xuncha/index","ic_enterprise","企事业单位巡查","govorg"), + IC_COMMUNITY_SELF_ORGANIZATION("communityService/sqzzz/index","ic_community_self_organization","社区自组织","heart"), + IC_CITY_MANAGEMENT("shequzhili/csgltc/csgl","ic_city_management","城市管理图层","govorg"), + IC_PUBLIC_SERVICE("shequzhili/ggfwtc/ggfw","ic_public_service","公共服务图层","govorg"), + IC_EVENT("shequzhili/event/eventList","ic_event","事件管理","govproject"); + + private String url; + private String value; + private String name; + private String db; + + MenusEnums(String url, String value, String name, String db) { + this.url = url; + this.value = value; + this.name = name; + this.db = db; + } + + public static MenusEnums get(String url) { + for (MenusEnums gm : MenusEnums.values()) { + if (gm.url.equals(url)) { + return gm; + } + } + return null; + } + + public static String getValueByUrl(String url){ + if (StringUtils.isBlank(url)){ + return ""; + } + for (MenusEnums me : MenusEnums.values()) { + if (me.url.equals(url)) { + return me.getValue(); + } + } + return ""; + } + + public static String getDbByValue(String table){ + if (StringUtils.isBlank(table)){ + return ""; + } + for (MenusEnums me : MenusEnums.values()) { + if (me.value.equals(table)) { + return me.getDb(); + } + } + return ""; + } + + public String getUrl() { + return url; + } + + public String getValue() { + return value; + } + + public String getName() { + return name; + } + + public String getDb() { + return db; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index efa4bca631..27873367ec 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -13,6 +13,11 @@ data-aggregator-server + + com.epmet + gov-access-client + 2.0.0 + com.epmet epmet-heart-client @@ -254,6 +259,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -385,6 +397,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -517,6 +536,13 @@ epmet elink@833066 + + + + + epmet + elink@833066 + 0 192.168.10.150 @@ -649,6 +675,13 @@ epmet_heart_user EpmEt-db-UsEr + + + + + epmet_resi_partymember_user + EpmEt-db-UsEr + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java index 27563e2134..7a451a9f94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java @@ -1,19 +1,31 @@ package com.epmet.dataaggre.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO; +import com.epmet.commons.tools.enums.ZhzlResiCategoryEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.Result; -import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListFormDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; +import com.epmet.dataaggre.dto.govorg.form.*; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.service.CoverageService; -import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * 5大图层controller @@ -32,15 +44,122 @@ public class CoverageController { */ @RequestMapping("dataList") public Result> dataList(@RequestBody CoverageAnalisisDataListFormDTO input) { + // 获取跟组织的坐标 + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String staffId = EpmetRequestHolder.getLoginUserId(); List coverageTypes = input.getCoverageTypes(); List categoryKeys = input.getCategoryKeys(); if (CollectionUtils.isEmpty(coverageTypes)) { return new Result().ok(new PageData<>(new ArrayList<>(), 0)); } - PageData page = coverageService.analysisDataList(coverageTypes, categoryKeys, + PageData page = coverageService.analysisDataList(customerId,staffId,input.getOrgId(),input.getOrgType(),coverageTypes, categoryKeys, input.getSearch(), input.getPageNo(), input.getPageSize(), input.getIsPage()); return new Result>().ok(page); } + /** + * 综合治理图层页面,居民类别下拉框 + * @return + */ + @PostMapping("zhzl-category-option") + public Result> queryZhzlCategorySelectOptions() { + List list = ZhzlResiCategoryEnum.toSelectList(); + return new Result>().ok(list); + } + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2022/7/26 16:29 + */ + @PostMapping("search") + public Result coverageHomeSearch(@RequestBody CoverageHomeSearchFormDTO formDTO, @LoginUser TokenDto tokenDto){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + return new Result().ok(coverageService.coverageHomeSearch(formDTO)); + } + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + @PostMapping("analysis/resourceCategories") + public Result> listAnalysisResourceCategories(@RequestBody Map input) { + String agencyId = input.get("agencyId"); + List r = coverageService.listAnalysisResourceCategories(agencyId); + return new Result>().ok(r); + } + + /** + * 被管理对象分类列表 + * @param input:只有一个字段:agencyId + * @return + */ + @PostMapping("analysis/governedTargetCategories") + public Result> listGovernedTargetCategories(@RequestBody Map input) { + String agencyId = input.get("agencyId"); + if (StringUtils.isBlank(agencyId)) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "请输入组织ID"); + } + List r = coverageService.listGovernedTargetCategories(agencyId); + return new Result>().ok(r); + } + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @RequestMapping("dataList-left") + public Result> dataListLeft(@LoginUser TokenDto tokenDto, @RequestBody CoverageAnalisisDataListLeftFormDTO formDTO) { + List coverageTypes = formDTO.getCoverageTypes(); + List categoryKeys = formDTO.getCategoryKeys(); + if (CollectionUtils.isEmpty(coverageTypes)||CollectionUtils.isEmpty(categoryKeys)) { + return new Result().ok(new PageData<>(new ArrayList<>(), 0)); + } + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + PageData page = coverageService.dataListLeft(formDTO); + return new Result>().ok(page); + } + + @PostMapping("search-user-detail") + public Result searchUserDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchUserDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchUserDetail(formDTO)); + } + + @PostMapping("search-event-detail") + public Result searchEventDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchEventDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchEventDetail(formDTO)); + } + + @PostMapping("search-resource-detail") + public Result searchResourceDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchResourceDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchResourceDetail(formDTO)); + } + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("dataList-left-subtotal") + public Result> dataListLeftSubTotal(@LoginUser TokenDto tokenDto, @RequestBody DataListLeftSubTotalFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, DataListLeftSubTotalFormDTO.AddUserInterGroup.class); + List resultList = coverageService.dataListLeftSubTotal(formDTO); + return new Result>().ok(resultList); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index a4d88b3a91..4ebceec4a4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -1,11 +1,25 @@ package com.epmet.dataaggre.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.excel.NowStatsDataExcel; import com.epmet.dataaggre.service.datastats.DataStatsService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -13,13 +27,17 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; import java.text.ParseException; +import java.util.Date; import java.util.List; /** * @Author sun * @Description 数据统计服务 */ +@Slf4j @RestController @RequestMapping("datastats") public class DataStatsController { @@ -243,4 +261,48 @@ public class DataStatsController { return new Result().ok(dataStatsService.operateExport(formDTO)); } + /** + * @Description 数据统计页面查询【用户、项目、事件一些数据的实时统计查询】 + * 需求:数据统计页面查询:注册居民数、注册党员数、事件总数、居民上报事件数、平台录入事件数、项目总数、议题转项目数、事件立项数、立项数; + * 可根据组织(只选组织,查询直属下级数据)、选择统计类型(截止累计值/区间新增值,截止累计选择一天,区间选择时间段,精确到时分秒)筛选; + * 可点击查看总计,可导出,打开页面默认选中当前工作人员所在组织(页面参考灵山卫-人房信息统计页面) + * @author sun + */ + @PostMapping("nowstatsdata") + public Result> nowStatsData(@RequestBody NowStatsDataFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, NowStatsDataFormDTO.CustomerDataManageForm.class); + formDTO.setExport(false); + return new Result>().ok(dataStatsService.nowStatsData(formDTO)); + } + + @PostMapping("nowstatsdataexport") + public void nowStatsDataExport(@RequestBody NowStatsDataFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setExport(true); + ExcelWriter excelWriter = null; + try { + String fileName = "数据统计" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), NowStatsDataExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List data = null; + List list = null; + data = dataStatsService.nowStatsData(formDTO); + list = ConvertUtils.sourceToTarget(data, NowStatsDataExcel.class); + excelWriter.write(list, writeSheet); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java index 8705014852..3b3a66dd50 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -21,6 +21,8 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dto.IcResiUserDTO; @@ -28,7 +30,6 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Set; /** * 用户基础信息 @@ -61,7 +62,8 @@ public interface IcResiUserDao extends BaseDao { @Param("agencyId") String agencyId, @Param("queryPids") String queryPids, @Param("categoryKey") String categoryKey, - @Param("search") String search); + @Param("search") String search, + @Param("gridId")String gridId); /** * 政策查找居民 @@ -98,4 +100,42 @@ public interface IcResiUserDao extends BaseDao { @Param("name") String name, @Param("resiRules") List resiRule, @Param("houseIds") List houseIds); + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + List getAllIcUser(CoverageHomeSearchFormDTO formDTO); + + Integer countVolunteersByCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search, + @Param("resiCategory")String resiCategory); + + Integer countVolunteersWithoutVolCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search); + + List listVolunteersByCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search, + @Param("resiCategory")String resiCategory); + + /** + * 列出没有志愿者类别的志愿者 + * @param customerId + * @param agencyId + * @param staffOrgIds + * @param search + * @return + */ + List listVolunteersWithoutVolCategory(@Param("customerId")String customerId, + @Param("agencyId")String agencyId, + @Param("staffOrgIds")String staffOrgIds, + @Param("search")String search); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java index ced9de54cd..bb2f1d225b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java @@ -18,9 +18,13 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 注册关系表 用于统计客户网格的注册居民数 * @@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface RegisterRelationDao extends BaseDao { - + + List selectNowResiUser(NowStatsDataFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index ba9043c0f4..7c3bbfd838 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; import org.apache.ibatis.annotations.Mapper; @@ -108,4 +109,5 @@ public interface CustomerAgencyDao extends BaseDao { List getSubAgencyList(@Param("agencyId") String agencyId); + List getSubAgencyListByAgency(@Param("customerId") String customerId, @Param("agencyId") String agencyId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java index 2d2c95b424..10721a9f7a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; @@ -84,4 +85,5 @@ public interface CustomerGridDao extends BaseDao { */ CustomerGridDTO getGridInfo(@Param("gridId") String gridId); + List getSubGridList(@Param("customerId") String customerId, @Param("agencyId") String agencyId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java index 46e2005b33..04746db059 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCityManagementDao.java @@ -1,9 +1,13 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.govorg.IcCityManagementEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 城市管理图层 * @@ -13,5 +17,49 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface IcCityManagementDao extends BaseDao { + /** + * Desc: 【资源】获取城市管理信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getCityManageInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取公共服务信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取重点危化品企业信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO); + Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取优势资源信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取企事业单位巡查信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO); + Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java index e81167fc39..8c438b9119 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcCoverageCategoryDictDao.java @@ -3,6 +3,9 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.entity.govorg.IcCoverageCategoryDictEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 五大图层类别字典表 @@ -12,5 +15,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcCoverageCategoryDictDao extends BaseDao { - + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + List getAllTypeCoverageByCustomerAndType(@Param("customerId") String customerId, @Param("dataType") String dataType); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java index d6f5c83879..5c109fe0a6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java @@ -26,7 +26,8 @@ public interface IcEnterprisePatrolRecordDao extends BaseDao listEnterprisePatrol(@Param("customerId") String customerId, @Param("agencyId") String agencyId, @Param("staffOrgIds") String staffOrgIds, @Param("search") String search, - @Param("categoryKey") String categoryKey); + @Param("categoryKey") String categoryKey, @Param("latestResult") String latestResult); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java index c2305c3afc..c8e69a05a9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java @@ -1,9 +1,15 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.entity.govproject.IcEventEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 事件管理表 * @@ -12,4 +18,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcEventDao extends BaseDao { + + /** + * Desc: 【资源】获取事件信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:48 + */ + List getEventInfos(CoverageHomeSearchFormDTO formDTO); + + List getIcEvent(NowStatsDataFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 956e8b95ed..2c7792f6ee 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -18,6 +18,8 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; @@ -132,4 +134,6 @@ public interface ProjectDao extends BaseDao { List getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); List getAgencyProjectCount(OrgStatisticsFormDTO formDTO); List getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO); + + List getNowProject(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java index 2499308cf6..b0adcb3773 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/heart/IcCommunitySelfOrganizationDao.java @@ -18,9 +18,13 @@ package com.epmet.dataaggre.dao.heart; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 社区自组织表 * @@ -29,4 +33,8 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcCommunitySelfOrganizationDao extends BaseDao { + + List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java new file mode 100644 index 0000000000..d826ee778c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/IcResiCategoryWarnConfigDao.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.dao.opercustomize; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IcResiCategoryWarnConfigDao extends BaseDao { +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java new file mode 100644 index 0000000000..06429e42db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java @@ -0,0 +1,31 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.dao.resipartymember; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ResiPartymemberDao { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java index 657b37bb14..517b65938a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -215,6 +215,21 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java index 4c21db9b8d..60ee1dc873 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java @@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java index a1baff300a..fff25b16f4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCityManagementEntity.java @@ -73,4 +73,14 @@ public class IcCityManagementEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java index cdaca78b91..bc0ae5c9e2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcCoverageCategoryDictEntity.java @@ -43,11 +43,23 @@ public class IcCoverageCategoryDictEntity extends BaseEpmetEntity { */ private String placeType; + /** + * 在可视化系统中所属的plact_type,跟COVERAGE_TYPE可能不同,COVERAGE_TYPE是给管理平台用的 + */ + private String placeTypeInAnalysis; + + /** + * 要跟菜单绑定(客户配置了这个菜单,这里才显示) + */ + private String menuUrl; + /** * 所属五大图层:zhzl:综合治理图层;yjcl:应急处置图层;aqsc:安全生产图层;csgl:城市管理图层;ggfw:公共服务图层 */ private String coverageType; + private String dataType; + /** * 排序 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java index 6a454c446b..1422ac76ad 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcPublicServiceEntity.java @@ -73,4 +73,14 @@ public class IcPublicServiceEntity extends BaseEpmetEntity { */ private String latitude; + /** + * 联系人 + */ + private String principal; + + /** + * 联系电话 + */ + private String mobile; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java new file mode 100644 index 0000000000..0738f7e37a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/opercustomize/IcResiCategoryWarnConfigEntity.java @@ -0,0 +1,86 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.entity.opercustomize; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 居民类别预警配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-04 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_category_warn_config") +public class IcResiCategoryWarnConfigEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 项标签 + */ + private String label; + + /** + * 表名 + */ + private String tableName; + + /** + * 列名 + */ + private String columnName; + /** + * 是否预警 1 是 0 否 + */ + private String warn; + + /** + * 排序 + */ + private Integer sort; + + /** + * 等级1阈值 + */ + @TableField(value = "LEVEL_1") + private Integer level1; + + /** + * 等级2阈值 + */ + @TableField(value = "LEVEL_2") + private Integer level2; + + /** + * 等级3阈值 + */ + @TableField(value = "LEVEL_3") + private Integer level3; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java new file mode 100644 index 0000000000..0df02e5ab5 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java @@ -0,0 +1,68 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +@Data +public class NowStatsDataExcel { + + //组织、网格名称 + @ExcelProperty(value = "组织名称") + @ColumnWidth(25) + private String orgName; + //注册居民数 + @ExcelProperty(value = "注册居民数") + @ColumnWidth(20) + private Integer resiUserCount; + //注册党员数 + @ExcelProperty(value = "注册党员数") + @ColumnWidth(20) + private Integer partyMemberCount; + //事件总数 + @ExcelProperty(value = "事件总数") + @ColumnWidth(20) + private Integer icEventCount; + //居民上报事件数【小程序端随手拍随时讲】 + @ExcelProperty(value = "居民上报事件数") + @ColumnWidth(20) + private Integer resiEventCount; + //平台录入事件数【数字平台录入的事件数】 + @ExcelProperty(value = "平台录入事件数") + @ColumnWidth(20) + private Integer pcEventCount; + //项目总数 + @ExcelProperty(value = "项目总数") + @ColumnWidth(20) + private Integer projectCount; + //议题转项目数 + @ExcelProperty(value = "议题转项目数") + @ColumnWidth(20) + private Integer issueProjectCount; + //事件立项数 + @ExcelProperty(value = "事件立项数") + @ColumnWidth(20) + private Integer icEventProjectCount; + //直接立项项目数 + @ExcelProperty(value = "立项数") + @ColumnWidth(20) + private Integer agencyProjectCount; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java new file mode 100644 index 0000000000..5038e14a7c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/redis/GovCustomerMenuRedis.java @@ -0,0 +1,109 @@ +package com.epmet.dataaggre.redis; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; +import com.epmet.feign.GovAccessFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 客户菜单配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-03-16 + */ +@Slf4j +@Component +public class GovCustomerMenuRedis { + @Autowired + private RedisUtils redisUtils; + + @Autowired + private GovAccessFeignClient govAccessFeignClient; + + /** + * Desc: 保存客户菜单缓存 + * @param customerId + * @param type + * @param govMenuDTOS + * @author zxc + * @date 2022/7/27 13:45 + */ + public void setCustomerMenuList(String customerId, Integer type, List govMenuDTOS) { + if (checkParam(customerId, type) && !CollectionUtils.isEmpty(govMenuDTOS) && StringUtils.isNotBlank(govMenuDTOS.get(NumConstant.ZERO).getName())) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + govMenuDTOS.forEach(g -> { + Map map = BeanUtil.beanToMap(g, false, true); + redisUtils.listAdd(key,map); + }); + } + } + + /** + * Desc: 获取客户菜单缓存 + * @param customerId + * @param type + * @param tableName + * @author zxc + * @date 2022/7/27 13:45 + */ + public List getCustomerMenuList(String customerId, Integer type, String tableName) { + if (checkParam(customerId, type)) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + List result = new ArrayList<>(); + List> maps = (List>) redisUtils.listGetAll(key, NumConstant.ZERO, NumConstant.ONE_NEG); + for (Map map : maps) { + result.add(ConvertUtils.mapToEntity(map,GovMenuDTO.class)); + } +// result = (List) redisUtils.listGetAll(key, NumConstant.ZERO,NumConstant.ONE_NEG); + if (CollectionUtils.isEmpty(result)){ + GetCustomerMenuListFormDTO formDTO = new GetCustomerMenuListFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setType(type); + formDTO.setTableName(tableName); + Result> customerMenuList = govAccessFeignClient.getCustomerMenuList(formDTO); + if (!customerMenuList.success()){ + throw new EpmetException("查询客户菜单失败"+ JSON.toJSONString(formDTO)); + } + result = customerMenuList.getData(); + setCustomerMenuList(customerId,type,customerMenuList.getData()); + } + return result; + } + return new ArrayList<>(); + } + + /** + * Desc: 删除客户菜单缓存 + * @param + * @author zxc + * @date 2022/7/27 13:47 + */ + public void delAllCustomerMenu(String customerId) { + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId); + redisUtils.deleteByPattern(key); + } + + private boolean checkParam(String customerId, Integer type) { + if (StringUtils.isBlank(customerId) || type == null){ + log.warn("checkParam fail, param is null"); + return false; + } + return true; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java index 8734dcabd2..b45d4b909a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java @@ -1,7 +1,13 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.form.DataListLeftSubTotalFormDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import java.util.List; @@ -18,6 +24,43 @@ public interface CoverageService { * @param pageSize 页面大小 * @return */ - PageData analysisDataList(List coverageTypes, List categoryKeys, + PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage); + + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @author zxc + * @date 2022/7/26 16:29 + */ + CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO); + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + List listAnalysisResourceCategories(String agencyId); + + List listGovernedTargetCategories(String agencyId); + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * @param formDTO + * @return + */ + PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO); + + UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO); + + EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO); + + ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO); + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * @param formDTO + * @return + */ + List dataListLeftSubTotal(DataListLeftSubTotalFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java new file mode 100644 index 0000000000..c610a16a1c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java @@ -0,0 +1,12 @@ +package com.epmet.dataaggre.service; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; + +import java.util.List; + +public interface PartymemberService { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 7ce06a88e5..650f40b83f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -306,4 +306,6 @@ public interface DataStatsService { Map getMemberMap(String agencyId); PageData getMemberList(OrgStatisticsFormDTO formDTO); + + List nowStatsData(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index bf56d8cdb8..fd2a4e5f85 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -40,10 +40,13 @@ import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.service.PartymemberService; import com.epmet.dataaggre.service.datastats.DataStatsService; + import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govorg.GovOrgService; + import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -86,6 +89,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; @Autowired private GovOrgService govOrgService; + @Autowired + private EpmetUserService epmetUserService; + @Autowired + private GovProjectService govProjectService; + @Autowired + private PartymemberService partymemberService; /** * @Param formDTO @@ -2310,4 +2319,112 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); } + + @Override + public List nowStatsData(NowStatsDataFormDTO formDTO) { + //1.必要参数校验及处理 + String startTimeForm = formDTO.getStartTime(); + if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(startTimeForm)) { + throw new RenException("请选择开始时间或查询累计值"); + } + + //2.查询组织信息,判断要查询下级是组织还是网格数据 + ScreenAgencyOrGridListDTO agencyGrid = govOrgService.getSubAgencyOrGridList(formDTO.getCustomerId(), formDTO.getAgencyId()); + if (null == agencyGrid) { + return new ArrayList<>(); + } + //组织或网格Id集合 + List idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList()); + formDTO.setDataType(!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) ? OrgTypeEnum.AGENCY.getCode() : OrgTypeEnum.GRID.getCode()); + formDTO.setIdList(idList); + + //3.按条件分别查询统计各业务实时数据 + //3-1.注册居民、注册党员数 + List user = epmetUserService.getNowResiUser(formDTO); + List party = partymemberService.getNowPart(formDTO); + //3-2.事件总数、居民上报事件数、平台录入事件数 + List event = govProjectService.getNowIcEvent(formDTO); + //3-3.项目总数、议题转项目数、事件立项数、组织立项数 + List project = govProjectService.getNowProject(formDTO); + Map userMap = new HashMap<>(); + Map partyMap = new HashMap<>(); + Map eventMap = new HashMap<>(); + Map projectMap = new HashMap<>(); + if ("grid".equals(formDTO.getDataType())) { + userMap = CollectionUtils.isEmpty(user) ? new HashMap<>() : user.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + partyMap = CollectionUtils.isEmpty(party) ? new HashMap<>() : party.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + eventMap = CollectionUtils.isEmpty(event) ? new HashMap<>() : event.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + projectMap = CollectionUtils.isEmpty(project) ? new HashMap<>() : project.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1)); + } + + //4.封装数据 + List resultDTOList = new ArrayList<>(); + NowStatsDataResultDTO export = new NowStatsDataResultDTO(); + export.setOrgName("合计"); + for (ScreenAgencyOrGridListDTO.AgencyGrid org : agencyGrid.getAgencyGridList()) { + NowStatsDataResultDTO dto = new NowStatsDataResultDTO(); + dto.setOrgId(org.getOrgId()); + dto.setOrgName(org.getOrgName()); + //网格数据sql已统计好 + if ("grid".equals(formDTO.getDataType())) { + if (userMap.containsKey(org.getOrgId())) { + dto.setResiUserCount(userMap.get(org.getOrgId()).getResiUserCount()); + } + if (partyMap.containsKey(org.getOrgId())) { + dto.setPartyMemberCount(partyMap.get(org.getOrgId()).getPartyMemberCount()); + } + if (eventMap.containsKey(org.getOrgId())) { + dto.setIcEventCount(eventMap.get(org.getOrgId()).getIcEventCount()); + dto.setResiEventCount(eventMap.get(org.getOrgId()).getResiEventCount()); + dto.setPcEventCount(eventMap.get(org.getOrgId()).getPcEventCount()); + } + if (projectMap.containsKey(org.getOrgId())) { + dto.setProjectCount(projectMap.get(org.getOrgId()).getProjectCount()); + dto.setIssueProjectCount(projectMap.get(org.getOrgId()).getIssueProjectCount()); + dto.setIcEventProjectCount(projectMap.get(org.getOrgId()).getIcEventProjectCount()); + dto.setAgencyProjectCount(projectMap.get(org.getOrgId()).getAgencyProjectCount()); + } + } else { + //组织数据 需要java计算结果 + int resiUserCount = (int) user.stream().filter(u -> u.getPids().contains(org.getOrgId())).count(); + dto.setResiUserCount(resiUserCount); + + int partyMemberCount = (int) party.stream().filter(p -> p.getPids().contains(org.getOrgId())).count(); + dto.setPartyMemberCount(partyMemberCount); + + int resiEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && "0".equals(e.getSourceType())).count(); + int pcEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && !"0".equals(e.getSourceType())).count(); + int icEventCount = resiEventCount + pcEventCount; + dto.setIcEventCount(icEventCount); + dto.setResiEventCount(resiEventCount); + dto.setPcEventCount(pcEventCount); + + int issueProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "issue".equals(p.getOrigin())).count(); + int icEventProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "ic_event".equals(p.getOrigin())).count(); + int agencyProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "agency".equals(p.getOrigin())).count(); + int projectCount = issueProjectCount + icEventProjectCount + agencyProjectCount; + dto.setProjectCount(projectCount); + dto.setIssueProjectCount(issueProjectCount); + dto.setIcEventProjectCount(icEventProjectCount); + dto.setAgencyProjectCount(agencyProjectCount); + } + resultDTOList.add(dto); + if (formDTO.isExport()) { + export.setResiUserCount(export.getResiUserCount() + dto.getResiUserCount()); + export.setPartyMemberCount(export.getPartyMemberCount() + dto.getPartyMemberCount()); + export.setIcEventCount(export.getIcEventCount() + dto.getIcEventCount()); + export.setResiEventCount(export.getResiEventCount() + dto.getResiEventCount()); + export.setPcEventCount(export.getPcEventCount() + dto.getPcEventCount()); + export.setProjectCount(export.getProjectCount() + dto.getProjectCount()); + export.setIssueProjectCount(export.getIssueProjectCount() + dto.getIssueProjectCount()); + export.setIcEventProjectCount(export.getIcEventProjectCount() + dto.getIcEventProjectCount()); + export.setAgencyProjectCount(export.getAgencyProjectCount() + dto.getAgencyProjectCount()); + } + } + if (formDTO.isExport()) { + resultDTOList.add(export); + } + return resultDTOList; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 894e1fea1c..068b1176cd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -1,17 +1,21 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.commons.tools.page.PageData; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; +import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; +import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; @@ -230,4 +234,10 @@ public interface EpmetUserService { * @Date 2022/7/27 17:32 */ PageData getMemberList(OrgStatisticsFormDTO formDTO); + + Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); + + List listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); + + List getNowResiUser(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java index 1900b75e89..cf9f5f563d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/IcResiService.java @@ -1,6 +1,8 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import java.util.List; @@ -22,7 +24,7 @@ public interface IcResiService { List listResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search, Integer pageNo, Integer pageSize, Boolean isPage); - Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search); + Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search,String gridId); /** * 使用特殊人群类别查询居民列表 @@ -38,5 +40,13 @@ public interface IcResiService { List listSpecialResisBySpecialType(String customerId, String agencyId, String queryPids, String categoryKey, String search, Integer pageNo, Integer pageSize, Boolean isPage); - Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search); + Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search,String gridId); + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + List getAllIcUser(CoverageHomeSearchFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 025f550198..26c5ef1b3a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -15,6 +15,8 @@ import com.epmet.constant.BadgeConstant; import com.epmet.constant.OrgInfoConstant; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.*; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; @@ -30,10 +32,7 @@ import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; -import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; -import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; -import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; -import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; +import com.epmet.dataaggre.entity.epmetuser.*; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; @@ -93,6 +92,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private IcResiUserDao icResiUserDao; @Resource private CustomerFootBarService customerFootBarService; + @Resource + private RegisterRelationDao registerRelationDao; /** * @Description 根据UserIds查询 @@ -895,4 +896,31 @@ public class EpmetUserServiceImpl implements EpmetUserService { PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); } + + @Override + public Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory) { + if ("others".equals(resiCategory)) { + //others需要特殊处理,它是指那些勾选了是志愿者,但是没有选择具体志愿者类型的居民,实际上志愿者类型里面没有others这个类别的 + return icResiUserDao.countVolunteersWithoutVolCategory(customerId, agencyId, staffOrgIds, search); + } else { + return icResiUserDao.countVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); + } + } + + @Override + public List listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory) { + if ("others".equals(resiCategory)) { + //others需要特殊处理,它是指那些勾选了是志愿者,但是没有选择具体志愿者类型的居民,实际上志愿者类型里面没有others这个类别的 + return icResiUserDao.listVolunteersWithoutVolCategory(customerId, agencyId, staffOrgIds, search); + } else { + return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); + } + } + + @Override + public List getNowResiUser(NowStatsDataFormDTO formDTO) { + //实时统计组织/网格下小程序端注册居民数 + List list = registerRelationDao.selectNowResiUser(formDTO); + return list; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java index 74ba309792..2fceaabfd6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java @@ -2,9 +2,12 @@ package com.epmet.dataaggre.service.epmetuser.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.enums.ResiCategoryEnum; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.IcResiUserDao; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.UserInfoResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dataaggre.service.epmetuser.IcResiService; import com.github.pagehelper.PageHelper; @@ -37,7 +40,7 @@ public class IcResiServiceImpl implements IcResiService { PageHelper.startPage(pageNo, pageSize); } - LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search); + LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search, null); query.orderByAsc(IcResiUserEntity::getCreatedTime); return resiUserDao.selectList(query); } @@ -52,8 +55,8 @@ public class IcResiServiceImpl implements IcResiService { * @return */ @Override - public Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search) { - LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search); + public Integer countResisByCategories4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search, String gridId) { + LambdaQueryWrapper query = constructQueryWrapper4Coverage(customerId, agencyId, queryPids, categoryKey, search,gridId); return resiUserDao.selectCount(query); } @@ -66,11 +69,12 @@ public class IcResiServiceImpl implements IcResiService { * @param search * @return */ - LambdaQueryWrapper constructQueryWrapper4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search) { + LambdaQueryWrapper constructQueryWrapper4Coverage(String customerId, String agencyId, String queryPids, String categoryKey, String search,String gridId) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(IcResiUserEntity::getCustomerId, customerId); query.eq(IcResiUserEntity::getStatus, "0"); // 只查询0 正常的居民。 query.and(q -> q.eq(IcResiUserEntity::getAgencyId, agencyId).or().likeRight(IcResiUserEntity::getPids, queryPids)); + query.eq(StringUtils.isNotBlank(gridId), IcResiUserEntity::getGridId, gridId); if ("resi_xfry".equals(categoryKey)) { // 信访人员 query.eq(IcResiUserEntity::getIsXfry, true); @@ -78,6 +82,44 @@ public class IcResiServiceImpl implements IcResiService { query.eq(IcResiUserEntity::getIsSn, true); } else if ("resi_szry".equals(categoryKey)) { query.eq(IcResiUserEntity::getIsSz, true); + } else if (ResiCategoryEnum.IS_PARTY.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsParty, true); + } else if (ResiCategoryEnum.IS_DBH.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsDbh, true); + } else if (ResiCategoryEnum.IS_ENSURE_HOUSE.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsEnsureHouse, true); + } else if (ResiCategoryEnum.IS_UNEMPLOYED.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsUnemployed, true); + } else if (ResiCategoryEnum.IS_YLFN.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsYlfn, true); + } else if (ResiCategoryEnum.IS_VETERANS.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsVeterans, true); + } else if (ResiCategoryEnum.IS_UNITED_FRONT.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsUnitedFront, true); + } else if (ResiCategoryEnum.IS_XFRY.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsXfry, true); + } else if (ResiCategoryEnum.IS_VOLUNTEER.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsVolunteer, true); + } else if (ResiCategoryEnum.IS_OLD_PEOPLE.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsOldPeople, true); + } else if (ResiCategoryEnum.IS_KC.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsKc, true); + } else if (ResiCategoryEnum.IS_SD.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSd, true); + } else if (ResiCategoryEnum.IS_SN.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSn, true); + } else if (ResiCategoryEnum.IS_SZ.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSz, true); + } else if (ResiCategoryEnum.IS_CJ.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsCj, true); + } else if (ResiCategoryEnum.IS_DB.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsDb, true); + } else if (ResiCategoryEnum.IS_MB.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsMb, true); + } else if (ResiCategoryEnum.IS_SPECIAL.getColName().equals(categoryKey)) { + query.eq(IcResiUserEntity::getIsSpecial, true); + } else if(ResiCategoryEnum.IS_XJC.getColName().equals(categoryKey)){ + query.eq(IcResiUserEntity::getIsXjc, true); } if (StringUtils.isNotBlank(search)) { @@ -97,7 +139,18 @@ public class IcResiServiceImpl implements IcResiService { } @Override - public Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search) { - return resiUserDao.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search); + public Integer countSpecialResisBySpecialType(String customerId, String agencyId, String staffOrgIds, String categoryKey, String search, String gridId) { + return resiUserDao.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search,gridId); + } + + /** + * Desc: 获取icUser + * @param formDTO + * @author zxc + * @date 2022/7/27 17:09 + */ + @Override + public List getAllIcUser(CoverageHomeSearchFormDTO formDTO) { + return resiUserDao.getAllIcUser(formDTO); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java index 424cba462d..442166f157 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java @@ -1,16 +1,13 @@ package com.epmet.dataaggre.service.govorg; -import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; import com.epmet.dataaggre.entity.govorg.*; -import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; -import java.util.Set; /** * org库的图层service @@ -115,11 +112,11 @@ public interface GovOrgCoverageService { Integer countSuporiorResourceEntities(String customerId, String staffOrgIds, String search, String categoryKey); - Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey); + Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult,String gridId); List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, Integer pageNo, - Integer pageSize); + Integer pageSize, String latestResult); /** * 通过居民数量等条件查询房屋数量 @@ -137,4 +134,16 @@ public interface GovOrgCoverageService { * @return */ IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey); + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + List getAllTypeCoverageByCustomerAndType(String customerId,String dataType); + List listResourceCategoryEntities(String coverageType); + + List listGovernedTargetCategoryEntities(); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index aee2f7dbd7..6a55f59e53 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; @@ -243,4 +244,52 @@ public interface GovOrgService { * @Date 2022/7/27 9:44 */ PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO); + + /** + * Desc: 【资源】获取城市管理信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getCityManageInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取公共服务信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取重点危化品企业信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO); + Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取优势资源信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO); + Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO); + + /** + * Desc: 【资源】获取企事业单位巡查信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:22 + */ + List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO); + Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO); + + ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java index 85b7d2569c..e5688434bc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java @@ -1,8 +1,8 @@ package com.epmet.dataaggre.service.govorg.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.enums.CoverageEnums; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.*; @@ -14,7 +14,10 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * org 图层service @@ -290,18 +293,20 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { } @Override - public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey) { - return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult,String gridId) { + // ic_enterprise.AGENCY_PIDS:agency_id的所有上级 + // 网格不为空时按网格查询, 网格为空时,根据agency_id或者AGENCY_PIDS查看 + return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,latestResult,gridId); } @Override public List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, - Integer pageNo, Integer pageSize) { + Integer pageNo, Integer pageSize, String latestResult) { if (isPage) { PageHelper.startPage(pageNo, pageSize); } - return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey, latestResult); } @Override @@ -324,4 +329,35 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { query.ge(IcHouseEntity::getResiNumber, resiNumberBiggerThan); return query; } + + @Override + public List listResourceCategoryEntities(String coverageType) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcCoverageCategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + query.eq(IcCoverageCategoryDictEntity::getCoverageType, coverageType); + query.orderByAsc(IcCoverageCategoryDictEntity::getSort); + query.eq(IcCoverageCategoryDictEntity::getDataType, CoverageEnums.DATA_TYPE_RESOURCES.getKey()); + return coverageCategoryDictDao.selectList(query); + } + + @Override + public List listGovernedTargetCategoryEntities() { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcCoverageCategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + query.orderByAsc(IcCoverageCategoryDictEntity::getSort); + query.eq(IcCoverageCategoryDictEntity::getDataType, CoverageEnums.DATA_TYPE_GOVERNED_TARGET.getKey()); + return coverageCategoryDictDao.selectList(query); + } + + /** + * Desc: 根据客户ID和数据类型获取字典对应的url + * @param customerId + * @param dataType + * @author zxc + * @date 2022/7/27 16:52 + */ + @Override + public List getAllTypeCoverageByCustomerAndType(String customerId, String dataType) { + return coverageCategoryDictDao.getAllTypeCoverageByCustomerAndType(customerId, dataType); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index f9772a9f47..96099374f8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -14,6 +14,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.OrgLevelEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -39,6 +40,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.govorg.*; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; @@ -127,6 +131,8 @@ public class GovOrgServiceImpl implements GovOrgService { private IcNeighborhoodDao neighborhoodDao; @Resource private GovProjectService govProjectService; + @Autowired + private IcCityManagementDao cityManagementDao; /** * @param staffId @@ -257,6 +263,8 @@ public class GovOrgServiceImpl implements GovOrgService { agecnyInfo.setOrgId(agencyEntity.getId()); agecnyInfo.setOrgName(agencyEntity.getOrganizationName()); agecnyInfo.setOrgType("agency"); + agecnyInfo.setLatitude(agencyEntity.getLatitude()); + agecnyInfo.setLongitude(agencyEntity.getLongitude()); result.add(agecnyInfo); }); return result; @@ -268,6 +276,8 @@ public class GovOrgServiceImpl implements GovOrgService { gridInfo.setOrgId(grid.getGridId()); gridInfo.setOrgName(grid.getGridName()); gridInfo.setOrgType("grid"); + gridInfo.setLongitude(grid.getLongitude()); + gridInfo.setLatitude(grid.getLatitude()); result.add(gridInfo); }); } @@ -1188,12 +1198,8 @@ public class GovOrgServiceImpl implements GovOrgService { dto.setOrgId(grid.getId()); dto.setOrgType(OrgConstant.GRID); dto.setOrgName(grid.getGridName()); - if (projectMap.containsKey(grid.getId())) { - dto.setProjectCount(projectMap.get(grid.getId())); - } - if (closedMap.containsKey(grid.getId())) { - dto.setClosedCount(closedMap.get(grid.getId())); - } + dto.setProjectCount(projectMap.getOrDefault(grid.getId(), NumConstant.ZERO)); + dto.setClosedCount(closedMap.getOrDefault(grid.getId(), NumConstant.ZERO)); if (memberMap.containsKey(grid.getId())) { dto.setMemberCount(Math.toIntExact(memberMap.get(grid.getId()))); if (NumConstant.ZERO != dto.getMemberCount()) { @@ -1296,12 +1302,9 @@ public class GovOrgServiceImpl implements GovOrgService { //统计关闭项目数 Map closedMap = govProjectService.getMemberClosedProjectMap(formDTO); result.getList().forEach(item -> { - if (projectMap.containsKey(item.getStaffId())) { - item.setProjectCount(projectMap.get(item.getStaffId())); - } - if (projectMap.containsKey(item.getStaffId())) { - item.setClosedCount(closedMap.get(item.getStaffId())); - } + item.setProjectCount(projectMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + item.setClosedCount(closedMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(item.getOrgId()); if (null != agencyInfo) { @@ -1418,4 +1421,93 @@ public class GovOrgServiceImpl implements GovOrgService { return resultData; } + + @Override + public List getCityManageInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getCityManageInfos(formDTO); + } + + @Override + public Integer getCityManageInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getCityManageInfosCount(formDTO); + } + + @Override + public List getPublicServiceInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getPublicServiceInfos(formDTO); + } + + @Override + public Integer getPublicServiceInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getPublicServiceInfosCount(formDTO); + } + + @Override + public List getDangerousChemicalsInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getDangerousChemicalsInfos(formDTO); + } + + @Override + public Integer getDangerousChemicalsInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getDangerousChemicalsInfosCount(formDTO); + } + + @Override + public List getSuperiorResourceInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getSuperiorResourceInfos(formDTO); + } + + @Override + public Integer getSuperiorResourceInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getSuperiorResourceInfosCount(formDTO); + } + + @Override + public List getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getEnterpriseInfos(formDTO); + } + + @Override + public Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO) { + return cityManagementDao.getEnterpriseInfosCount(formDTO); + } + + @Override + public ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId) { + ScreenAgencyOrGridListDTO resultDTO = new ScreenAgencyOrGridListDTO(); + List agencyGridList = new ArrayList<>(); + //1.查询组织信息 + CustomerAgencyEntity dto = customerAgencyDao.selectById(agencyId); + if (dto == null) { + log.error(String.format("组织信息不存在,组织Id->%s", agencyId)); + return new ScreenAgencyOrGridListDTO(); + } + //2.根据组织级别判断查询直属组织或网格列表 + List agencyList = new ArrayList<>(); + List gridList = new ArrayList<>(); + if (!"community".equals(dto.getLevel())) { + //2-1.直属下级组织列表 + agencyList = customerAgencyDao.getSubAgencyListByAgency(customerId, agencyId); + agencyList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getAgencyId()); + org.setOrgName(gr.getAgencyName()); + agencyGridList.add(org); + }); + } else { + //2-2.直属下级网格列表 + gridList = customerGridDao.getSubGridList(customerId, agencyId); + gridList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getGridId()); + org.setOrgName(gr.getGridName()); + agencyGridList.add(org); + }); + } + + resultDTO.setLevel(dto.getLevel()); + resultDTO.setAgencyGridList(agencyGridList); + return resultDTO; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index 27e554145d..6b36beac2b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -1,8 +1,12 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.IcEventEntity; @@ -110,7 +114,7 @@ public interface GovProjectService { * @param isDifficultPoint 是否是难点堵点 * @return */ - Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint); + Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint,String gridId); /** * 搜索事件 @@ -169,4 +173,16 @@ public interface GovProjectService { * @Date 2022/7/28 9:29 */ Map getAgencyClosedProjectMap(OrgStatisticsFormDTO formDTO); + + /** + * Desc: 【资源】获取事件信息 + * @param formDTO + * @author zxc + * @date 2022/7/28 10:48 + */ + List getEventInfos(CoverageHomeSearchFormDTO formDTO); + + List getNowIcEvent(NowStatsDataFormDTO formDTO); + + List getNowProject(NowStatsDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index ffe5d2d7a3..4eefc02d34 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -21,12 +21,16 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govproject.IcEventDao; import com.epmet.dataaggre.dao.govproject.ProjectDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; @@ -652,15 +656,15 @@ public class GovProjectServiceImpl implements GovProjectService { } @Override - public Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint) { - LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint); + public Integer countIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, String gridId) { + LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint,gridId); return icEventDao.selectCount(query); } @Override public List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize) { - LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint); + LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint,null); if (isPage) { PageHelper.startPage(pageNo, pageSize); } @@ -714,7 +718,7 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO) { - List list = projectDao.getMemberProjectCount(formDTO); + List list = projectDao.getMemberClosedProjectCount(formDTO); if (CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); } @@ -758,6 +762,12 @@ public class GovProjectServiceImpl implements GovProjectService { } /** + @Override + public List getEventInfos(CoverageHomeSearchFormDTO formDTO) { + return icEventDao.getEventInfos(formDTO); + } + + /** * 构造事件查询 * @param customerId * @param staffOrgIds @@ -766,9 +776,13 @@ public class GovProjectServiceImpl implements GovProjectService { * @return */ private LambdaQueryWrapper constructIcEventQueryWrapper(String customerId, String staffOrgIds, - String search, Boolean difficultPoint) { + String search, Boolean difficultPoint, String gridId) { + //ic_event.grid_pids是网格所有的上级,不包括网格自己 + //ic_event.agency_id网格的所属组织 + //所以这staffOrgIds是组织的全路径 LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(IcEventEntity::getCustomerId, customerId); + query.eq(IcEventEntity::getCustomerId, customerId) + .eq(StringUtils.isNotBlank(gridId), IcEventEntity::getGridId, gridId); query.likeRight(IcEventEntity::getGridPids, staffOrgIds); if (StringUtils.isNotBlank(search)) { query.like(IcEventEntity::getName, search); @@ -779,4 +793,20 @@ public class GovProjectServiceImpl implements GovProjectService { return query; } + + @Override + public List getEventInfos(CoverageHomeSearchFormDTO formDTO) { + return icEventDao.getEventInfos(formDTO); + } + + @Override + public List getNowIcEvent(NowStatsDataFormDTO formDTO) { + return icEventDao.getIcEvent(formDTO); + } + + @Override + public List getNowProject(NowStatsDataFormDTO formDTO) { + return projectDao.getNowProject(formDTO); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java index e1b4e3692b..03d6de4431 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/HeartService.java @@ -1,5 +1,7 @@ package com.epmet.dataaggre.service.heart; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; @@ -40,4 +42,7 @@ public interface HeartService { Integer countPartyUnitEntities(String customerId, String agencyId, String staffOrgIds, String partyUnitType, String search); Integer countCommunityOrgEntities(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey); + + List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO); + Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java index c29f54c5ff..7af8676a08 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/heart/impl/HeartServiceImpl.java @@ -5,10 +5,11 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.heart.IcCommunitySelfOrganizationDao; import com.epmet.dataaggre.dao.heart.IcPartyUnitDao; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.result.ResourceInfoResultDTO; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; import com.epmet.dataaggre.service.heart.HeartService; -import com.epmet.dto.result.PartyMemberUserIdsResultDTO; import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +58,16 @@ public class HeartServiceImpl implements HeartService { return communitySelfOrganizationDao.selectCount(query); } + @Override + public List getCommunitySelOrgInfos(CoverageHomeSearchFormDTO formDTO) { + return communitySelfOrganizationDao.getCommunitySelOrgInfos(formDTO); + } + + @Override + public Integer getCommunitySelOrgInfosCount(CoverageHomeSearchFormDTO formDTO) { + return communitySelfOrganizationDao.getCommunitySelOrgInfosCount(formDTO); + } + private LambdaQueryWrapper constructCommunityOrgQueryWrapper( String customerId, String agencyId, String staffOrgIds, String search, String categoryKey) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index b5f8a0ec3a..19b7c71d7e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -1,35 +1,66 @@ package com.epmet.dataaggre.service.impl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.CoverageEnums; +import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.dataaggre.constant.OrgConstant; +import com.epmet.dataaggre.constant.TableConstant; +import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; +import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.form.DataListLeftSubTotalFormDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; +import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dataaggre.entity.govorg.*; import com.epmet.dataaggre.entity.govproject.IcEventEntity; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import com.epmet.dataaggre.entity.heart.IcPartyUnitEntity; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import com.epmet.dataaggre.enums.MenusEnums; +import com.epmet.dataaggre.redis.GovCustomerMenuRedis; import com.epmet.dataaggre.service.CoverageService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.IcResiService; import com.epmet.dataaggre.service.govorg.GovOrgCoverageService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.heart.HeartService; +import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; +import com.epmet.dto.GovMenuDTO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @Slf4j @@ -51,20 +82,20 @@ public class CoverageServiceImpl implements CoverageService { @Autowired private GovProjectService govProjectService; - /** - * 场所类型常量 - */ - public static final String PLACE_TYPE_RESI = "resi"; - public static final String PLACE_TYPE_SPECIAL_RESI = "special_resi"; - public static final String PLACE_TYPE_EVENT= "event"; - public static final String PLACE_TYPE_CITY_MANAGEMENT= "city_management"; - public static final String PLACE_TYPE_COMUNITY_ORG= "community_org"; - public static final String PLACE_TYPE_DANGEROUS_CHEMICALS= "dangerous_chemicals"; - public static final String PLACE_TYPE_ENTERPRISE_PARTROL= "enterprise_patrol"; - public static final String PLACE_TYPE_GROUP_RENT= "group_rent"; - public static final String PLACE_TYPE_PUBLIC_SERVICE= "public_service"; - public static final String PLACE_TYPE_SUPERIOR_RESOURCE= "superior_resource"; - public static final String PLACE_TYPE_PARTY_UNIT= "party_unit"; + @Autowired + private GovOrgCoverageService govOrgCoverageService; + + @Autowired + private GovCustomerMenuRedis govCustomerMenuRedis; + + @Autowired + private IcResiCategoryWarnService icResiCategoryWarnService; + + @Autowired + private ExecutorService executorService; + + @Autowired + private EpmetUserService epmetUserService; // 1:出租 0:自住 2:闲置 3:未售出 public static final Integer HOUSE_RENT_FLAG_RENT = 1; @@ -79,12 +110,11 @@ public class CoverageServiceImpl implements CoverageService { * @return */ @Override - public PageData analysisDataList(List coverageTypes, List categoryKeys, + public PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage) { // 获取跟组织的坐标 - String customerId = EpmetRequestHolder.getLoginUserCustomerId(); - String staffId = EpmetRequestHolder.getLoginUserId(); CustomerAgencyEntity rootAgency = govOrgService.getRootAgencyByCustomerId(customerId); // 1.根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map @@ -104,15 +134,9 @@ public class CoverageServiceImpl implements CoverageService { } // 2.循环coverageTypes,使用key到map中查询(为了顺序),得到categoryKeys列表之后,根据实际情况做相应的查询 - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); - - if (staffInfo == null) { - String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); - throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); - } - - String staffPids = getStaffPidsFromStaffInfo(staffInfo); - String agencyId = staffInfo.getAgencyId(); + Map agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,orgId,orgType); + String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH); + String agencyId = agencyMap.get(OrgConstant.AGENCY_ID); // 分页不太好分,先查出所有的数据,然后partation()吧 int start = (pageNo - 1) * pageSize; @@ -140,8 +164,8 @@ public class CoverageServiceImpl implements CoverageService { } for (GovOrgCoverageService.CategoryCoverageMapping e : ccm) { - Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), - e.getCategoryKey(), search); + Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), + e.getCategoryKey(), search,null); lastTotalCount = totalCount; totalCount += tempCount; @@ -149,7 +173,7 @@ public class CoverageServiceImpl implements CoverageService { // 不分页,查询所有 // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, null, null, isPage, rootAgency); rls.addAll(dataSegment); continue; @@ -171,7 +195,7 @@ public class CoverageServiceImpl implements CoverageService { // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, 1, end, isPage, rootAgency); if (firstTimeDataAppear) { @@ -195,6 +219,305 @@ public class CoverageServiceImpl implements CoverageService { } } + /** + * Desc: 五大图层首页搜索 + * @param formDTO + * @author zxc + * @date 2022/7/26 16:29 + */ + @Override + public CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO) { + String customerId = formDTO.getCustomerId(); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, formDTO.getUserId()); + if (null == staffInfo){ + throw new EpmetException("查询工作人员失败:"+formDTO.getUserId()); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + CoverageHomeSearchResultDTO result = new CoverageHomeSearchResultDTO(); + // 缓存的客户菜单 + List customerMenuList = govCustomerMenuRedis.getCustomerMenuList(customerId, 0, "gov_menu"); + // org库配置的 + List resources = govOrgCoverageService.getAllTypeCoverageByCustomerAndType(customerId, "resources"); + if (CollectionUtils.isEmpty(resources)){ + return result; + } + if (CollectionUtils.isEmpty(customerMenuList)){ + return result; + } + List tableMore = new ArrayList<>(); + customerMenuList.forEach(cm -> { + resources.forEach(r -> { + if (cm.getUrl().equals(r)){ + String tableName = MenusEnums.getValueByUrl(r); + if (StringUtils.isNotBlank(tableName)){ + tableMore.add(tableName); + } + } + }); + }); + List tables = tableMore.stream().distinct().collect(Collectors.toList()); + if (CollectionUtils.isEmpty(tables)){ + return result; + } + // 更多,查询出直接返回 + if (StringUtils.isNotBlank(formDTO.getSearchType())){ + if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_USER)){ + PageInfo allIcUserPageInfo = getIcUserPageInfo(formDTO); + result.setUserInfos(allIcUserPageInfo.getList()); + result.setUserInfosTotal(allIcUserPageInfo.getTotal()); + return result; + }else if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_RESOURCE)){ + List reInfos = new ArrayList<>(); + List>> futures = new ArrayList<>(); + for (String resource : resources) { + if (MenusEnums.IC_SUPERIOR_RESOURCE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getSuperiorResourceInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_CITY_MANAGEMENT.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getCityManageInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_COMMUNITY_SELF_ORGANIZATION.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> heartService.getCommunitySelOrgInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_DANGEROUS_CHEMICALS.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getDangerousChemicalsInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_ENTERPRISE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getEnterpriseInfos(formDTO),executorService); + futures.add(c); + }else if (MenusEnums.IC_PUBLIC_SERVICE.getUrl().equals(resource)){ + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getPublicServiceInfos(formDTO),executorService); + futures.add(c); + } + } + for (CompletableFuture> future : futures) { + try { + if (CollectionUtils.isNotEmpty(future.get())){ + reInfos.addAll(future.get()); + } + } catch (InterruptedException e) { + log.error("【五大图层首页】异步获取资源列表被中断:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层首页】异步获取异步获取资源列表失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + result.setResourceInfos(reInfos); + return result; + } + }else { + // 查询居民 + PageInfo allIcUserPageInfo = getIcUserPageInfo(formDTO); + result.setUserInfos(allIcUserPageInfo.getList()); + result.setUserInfosTotal(allIcUserPageInfo.getTotal()); + List reInfos = new ArrayList<>(); + for (String table : tables) { + if (formDTO.getIsPage() && reInfos.size() == formDTO.getPageSize()){ + break; + } + Integer flag = formDTO.getPageSize() - reInfos.size(); + switch (table){ + case TableConstant.IC_SUPERIOR_RESOURCE: + List superiorResourceInfos = govOrgService.getSuperiorResourceInfos(formDTO); + if (formDTO.getIsPage() && superiorResourceInfos.size() > flag){ + reInfos.addAll(superiorResourceInfos.subList(NumConstant.ZERO, flag)); + }else { + reInfos.addAll(superiorResourceInfos); + } + break; + case TableConstant.IC_CITY_MANAGEMENT: + List cityManageInfos = govOrgService.getCityManageInfos(formDTO); + if (formDTO.getIsPage() && cityManageInfos.size() > flag){ + reInfos.addAll(cityManageInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(cityManageInfos); + } + break; + case TableConstant.IC_COMMUNITY_SELF_ORGANIZATION: + List communitySelOrgInfos = heartService.getCommunitySelOrgInfos(formDTO); + if (formDTO.getIsPage() && communitySelOrgInfos.size() > flag){ + reInfos.addAll(communitySelOrgInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(communitySelOrgInfos); + } + break; + case TableConstant.IC_DANGEROUS_CHEMICALS: + List dangerousChemicalsInfos = govOrgService.getDangerousChemicalsInfos(formDTO); + if (formDTO.getIsPage() && dangerousChemicalsInfos.size() > flag){ + reInfos.addAll(dangerousChemicalsInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(dangerousChemicalsInfos); + } + break; + case TableConstant.IC_ENTERPRISE: + List enterpriseInfos = govOrgService.getEnterpriseInfos(formDTO); + if (formDTO.getIsPage() && enterpriseInfos.size() > flag){ + reInfos.addAll(enterpriseInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(enterpriseInfos); + } + break; + case TableConstant.IC_PUBLIC_SERVICE: + List publicServiceInfos = govOrgService.getPublicServiceInfos(formDTO); + if (formDTO.getIsPage() && publicServiceInfos.size() > flag){ + reInfos.addAll(publicServiceInfos.subList(NumConstant.ZERO,flag)); + }else { + reInfos.addAll(publicServiceInfos); + } + break; + default: + break; + } + } + result.setResourceInfos(reInfos); + result.setResourceInfoTotal(Long.valueOf(String.valueOf(reInfos.size()))); + } + for (String resource : resources) { + if (MenusEnums.IC_EVENT.getUrl().equals(resource)){ + PageInfo eventPageInfo = getEventInfo(formDTO); + result.setEventInfos(eventPageInfo.getList()); + result.setEventInfoTotal(eventPageInfo.getTotal()); + break; + } + } + return result; + } + + /** + * Desc: 【资源】优势资源查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getSuperiorResourcePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getSuperiorResourceInfos(formDTO)); + }else { + List superiorResourceInfos = govOrgService.getSuperiorResourceInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(superiorResourceInfos.size()))); + result.setList(superiorResourceInfos); + } + return result; + } + + /** + * Desc: 【资源】城市管理查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getCityManagePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getCityManageInfos(formDTO)); + }else { + List cityManageInfos = govOrgService.getCityManageInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(cityManageInfos.size()))); + result.setList(cityManageInfos); + } + return result; + } + + /** + * Desc: 【资源】公共服务查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getPublicServicePageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getPublicServiceInfos(formDTO)); + }else { + List publicServiceInfos = govOrgService.getPublicServiceInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(publicServiceInfos.size()))); + result.setList(publicServiceInfos); + } + return result; + } + + /** + * Desc: 【资源】重点危化品企业查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getDangerousChemicalsPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getDangerousChemicalsInfos(formDTO)); + }else { + List dangerousChemicalsInfos = govOrgService.getDangerousChemicalsInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(dangerousChemicalsInfos.size()))); + result.setList(dangerousChemicalsInfos); + } + return result; + } + + /** + * Desc: 【资源】企事业单位查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:37 + */ + public PageInfo getEnterpriseInfosPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govOrgService.getEnterpriseInfos(formDTO)); + }else { + List enterpriseInfos = govOrgService.getEnterpriseInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(enterpriseInfos.size()))); + result.setList(enterpriseInfos); + } + return result; + } + + /** + * Desc: 居民信息查询 + * @param formDTO + * @author zxc + * @date 2022/7/29 08:34 + */ + public PageInfo getIcUserPageInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> icResiService.getAllIcUser(formDTO)); + }else { + List allIcUser = icResiService.getAllIcUser(formDTO); + result.setTotal(Long.valueOf(String.valueOf(allIcUser.size()))); + result.setList(allIcUser); + } + if (CollectionUtils.isNotEmpty(result.getList())){ + result.getList().forEach(r -> { + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), r.getHomeId()); + if (null == houseInfo){ + throw new EpmetException("获取房屋信息失败:"+r.getHomeId()); + } + r.setLongitude(houseInfo.getBuildingLongitude()); + r.setLatitude(houseInfo.getBuildingLatitude()); + }); + } + return result; + } + + /** + * Desc: 事件查询 + * @param formDTO + * @author zxc + * @date 2022/7/28 16:03 + */ + public PageInfo getEventInfo (CoverageHomeSearchFormDTO formDTO){ + PageInfo result = new PageInfo<>(); + if (formDTO.getIsPage()){ + result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> govProjectService.getEventInfos(formDTO)); + }else { + List eventInfos = govProjectService.getEventInfos(formDTO); + result.setTotal(Long.valueOf(String.valueOf(eventInfos.size()))); + result.setList(eventInfos); + } + return result; + } + /** * 从staff信息中获取工作人员的PIDS * @param staffInfo @@ -210,6 +533,41 @@ public class CoverageServiceImpl implements CoverageService { } } + private Map getStaffPidsFromStaffInfo(String customerId, String staffId, String orgId, String orgType) { + Map map = new HashMap<>(); + String agencyPath = StrConstant.EPMETY_STR; + String agencyId = StrConstant.EPMETY_STR; + if (StringUtils.isBlank(orgId)) { + // 默认查询的是当前登录用户所属组织及下级 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); + if (staffInfo == null) { + String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + // staffPids + agencyPath = getStaffPidsFromStaffInfo(staffInfo); + agencyId = staffInfo.getAgencyId(); + } else { + // 根据传入的组织id来 + if (OrgConstant.AGENCY.equals(orgType)) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(orgId); + if (agencyInfoCache == null) { + String msg = "查询组织缓存信息异常。orgId:" + orgId; + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + agencyId = orgId; + if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) { + agencyPath = agencyInfoCache.getPids().concat(":").concat(agencyId); + } else { + agencyPath = orgId; + } + } + } + map.put(OrgConstant.AGENCY_ID, agencyId); + map.put(OrgConstant.AGENC_PATH, agencyPath); + return map; + } + /** * 计算数据条数 * @param customerId @@ -221,45 +579,55 @@ public class CoverageServiceImpl implements CoverageService { * @return */ public Integer doDataListCount(String customerId, String agencyId, String staffOrgIds, String placeType, - String categoryKey, String search) { + String categoryKey, String search,String gridId) { - if (PLACE_TYPE_RESI.equals(placeType)) { + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeType)) { // 使用分类查询居民信息 return icResiService.countResisByCategories4Coverage(customerId, agencyId, - staffOrgIds, categoryKey, search); - } else if (PLACE_TYPE_SPECIAL_RESI.equals(placeType)) { + staffOrgIds, categoryKey, search,gridId); + } else if (CoveragePlaceTypeEnum.SPECIAL_RESI.getCode().equals(placeType)) { // 特殊人群 - return icResiService.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search); - } else if (PLACE_TYPE_EVENT.equals(placeType)) { + return icResiService.countSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search,gridId); + } else if (CoveragePlaceTypeEnum.EVENT.getCode().equals(placeType)) { // 难点痛点 - return govProjectService.countIcEventEntities(customerId, staffOrgIds, search, true); - } else if (PLACE_TYPE_CITY_MANAGEMENT.equals(placeType)) { + return govProjectService.countIcEventEntities(customerId, staffOrgIds, search, true,gridId); + } else if (CoveragePlaceTypeEnum.CITY_MANAGEMENT.getCode().equals(placeType)) { // 城市资源管理 return orgCoverageService.countCityResourceEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_COMUNITY_ORG.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.COMMUNITY_ORG.getCode().equals(placeType)) { // 社区自组织 return heartService.countCommunityOrgEntities(customerId, agencyId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_PARTY_UNIT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PARTY_UNIT.getCode().equals(placeType)) { // 机关直属部门(联建单位) 楼宇党建 0;两新组织 1;区域单位党建 2;机关直属部门 3;社会团体 4;民办非企业单位 5;基金会 6;其他 7 - if (categoryKey.equals("pu_jgzsbm")) { - String partyUnitType = "3"; - return heartService.countPartyUnitEntities(customerId, agencyId, staffOrgIds, partyUnitType, search); - } - } else if (PLACE_TYPE_DANGEROUS_CHEMICALS.equals(placeType)) { +// if (categoryKey.equals("pu_jgzsbm")) { +// String partyUnitType = "3"; +// } + String[] parts = categoryKey.split("_"); + return heartService.countPartyUnitEntities(customerId, agencyId, staffOrgIds, parts[1], search); + } else if (CoveragePlaceTypeEnum.DANGEROUS_CHEMICALS.getCode().equals(placeType)) { // 危化企业 return orgCoverageService.countDangerousChemicalEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_ENTERPRISE_PARTROL.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 - return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,null,null); + } else if (CoveragePlaceTypeEnum.GROUP_RENT.getCode().equals(placeType)) { // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 return orgCoverageService.countByResiNumber(customerId, staffOrgIds, search, 5, HOUSE_RENT_FLAG_RENT); - } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PUBLIC_SERVICE.getCode().equals(placeType)) { // 公共服务 return orgCoverageService.countPublicServiceEntities(customerId, staffOrgIds, search, categoryKey); - } else if (PLACE_TYPE_SUPERIOR_RESOURCE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SUPERIOR_RESOURCE.getCode().equals(placeType)) { // 优势资源 return orgCoverageService.countSuporiorResourceEntities(customerId, staffOrgIds, search, categoryKey); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + // 企事业单位巡查 + // 最新巡查结果【0:合格 1:不合格】 + // 左侧用,可以到网格, + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,NumConstant.ONE_STR,gridId); + } else if (CoveragePlaceTypeEnum.VOLUNTEER.getCode().equals(placeType)) { + // 志愿者 + String[] parts = categoryKey.split("_"); + return epmetUserService.countVolunteers(customerId, agencyId, staffOrgIds, search, parts[1]); } return 0; @@ -283,7 +651,7 @@ public class CoverageServiceImpl implements CoverageService { // 根据categoryKey查询类别名称 IcCoverageCategoryDictEntity categoryDict = orgCoverageService.selectByCategoryKey(categoryKey); - if (PLACE_TYPE_RESI.equals(placeType)) { + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeType)) { // 使用分类查询居民信息 List resiEntities = icResiService.listResisByCategories4Coverage( customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); @@ -293,11 +661,12 @@ public class CoverageServiceImpl implements CoverageService { String[] coordinates = getUserCoordinates(re.getId(), re.getBuildId(), rootAgency); return new CoverageAnalisisDataListResultDTO( - re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? re.getName() : null, + re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdCard()).concat(StrConstant.BRACKET_RIGNT), coordinates[1], coordinates[0]); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_SPECIAL_RESI.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SPECIAL_RESI.getCode().equals(placeType)) { // 特殊人群 List resiInfos = icResiService.listSpecialResisBySpecialType( customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); @@ -307,21 +676,23 @@ public class CoverageServiceImpl implements CoverageService { return new CoverageAnalisisDataListResultDTO( re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, - isPage ? re.getName() : null, coordinates[1], coordinates[0]); + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdNum()).concat(StrConstant.BRACKET_RIGNT), + coordinates[1], coordinates[0]); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_EVENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.EVENT.getCode().equals(placeType)) { // 难点痛点 List icEventEntities = govProjectService.searchIcEventEntities( customerId, staffOrgIds, search, true, isPage, pageNo, pageSize); return icEventEntities.stream() .map(e -> new CoverageAnalisisDataListResultDTO( - e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? e.getName() : null, + e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + e.getEventContent().length() < 21 ? e.getEventContent() : e.getEventContent().substring(NumConstant.ZERO, 20).concat(StrConstant.ELLIPSIS), e.getLatitude(), e.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_CITY_MANAGEMENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.CITY_MANAGEMENT.getCode().equals(placeType)) { // 城市资源管理 List cityResources = orgCoverageService.searchCityResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -331,7 +702,7 @@ public class CoverageServiceImpl implements CoverageService { isPage ? resource.getName() : null, resource.getLatitude(), resource.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_COMUNITY_ORG.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.COMMUNITY_ORG.getCode().equals(placeType)) { // 社区自组织 List l = heartService.searchCommunityOrgEntities( customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -342,20 +713,19 @@ public class CoverageServiceImpl implements CoverageService { isPage ? org.getOrganizationName() : null, org.getLatitude(), org.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_PARTY_UNIT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PARTY_UNIT.getCode().equals(placeType)) { // 机关直属部门(联建单位) 楼宇党建 0;两新组织 1;区域单位党建 2;机关直属部门 3;社会团体 4;民办非企业单位 5;基金会 6;其他 7 - if (categoryKey.equals("pu_jgzsbm")) { - String partyUnitType = "3"; - List l = heartService.searchPartyUnitEntities( - customerId, agencyId, staffOrgIds, partyUnitType, search, isPage, pageNo, pageSize); - - return l.stream() - .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, - isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getUnitName() : null, dc.getLatitude(), dc.getLongitude())) - .collect(Collectors.toList()); - } - return new ArrayList<>(); - } else if (PLACE_TYPE_DANGEROUS_CHEMICALS.equals(placeType)) { +// if (categoryKey.equals("pu_jgzsbm")) { +// String partyUnitType = "3"; +// } + String[] parts = categoryKey.split("_"); + List l = heartService.searchPartyUnitEntities( + customerId, agencyId, staffOrgIds, parts[1], search, isPage, pageNo, pageSize); + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, + isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getUnitName() : null, dc.getLatitude(), dc.getLongitude())) + .collect(Collectors.toList()); + } else if (CoveragePlaceTypeEnum.DANGEROUS_CHEMICALS.getCode().equals(placeType)) { // 危化企业 List l = orgCoverageService.searchDangerousChemicalEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -365,17 +735,17 @@ public class CoverageServiceImpl implements CoverageService { isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_ENTERPRISE_PARTROL.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 List list = orgCoverageService.listEnterprisePatrol( - customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,null); return list.stream() .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getPlaceOrgName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.GROUP_RENT.getCode().equals(placeType)) { // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 List houses = orgCoverageService.searchByResiNumber( customerId, staffOrgIds, search, 5, HOUSE_RENT_FLAG_RENT, isPage, pageNo, pageSize); @@ -393,7 +763,7 @@ public class CoverageServiceImpl implements CoverageService { isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? houseName : null, latitude, longitude); }).collect(Collectors.toList()); - } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.PUBLIC_SERVICE.getCode().equals(placeType)) { // 公共服务 List l = orgCoverageService.searchPublicServiceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -401,7 +771,7 @@ public class CoverageServiceImpl implements CoverageService { .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); - } else if (PLACE_TYPE_SUPERIOR_RESOURCE.equals(placeType)) { + } else if (CoveragePlaceTypeEnum.SUPERIOR_RESOURCE.getCode().equals(placeType)) { // 优势资源 List l = orgCoverageService.searchSuporiorResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); @@ -409,6 +779,32 @@ public class CoverageServiceImpl implements CoverageService { .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + //最新巡查结果【0:合格 1:不合格】 + List list = orgCoverageService.listEnterprisePatrol( + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,NumConstant.ONE_STR); + + return list.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, + isPage ? categoryDict.getCategoryName() : null, placeType, dc.getPlaceOrgName() , + StringUtils.isNotBlank(dc.getLatitude()) ? dc.getLatitude() : rootAgency.getLatitude(), + StringUtils.isNotBlank(dc.getLongitude()) ? dc.getLongitude() : rootAgency.getLongitude())) + .collect(Collectors.toList()); + } else if (CoveragePlaceTypeEnum.VOLUNTEER.getCode().equals(placeType)) { + // 志愿者 + String[] parts = categoryKey.split("_"); + List resiEntities = epmetUserService.listVolunteers(customerId, agencyId, staffOrgIds, search, parts[1]); + + return resiEntities.parallelStream().map(re -> { + // 使用楼栋的坐标补充居民的坐标信息 + String[] coordinates = getUserCoordinates(re.getId(), re.getBuildId(), rootAgency); + + return new CoverageAnalisisDataListResultDTO( + re.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + re.getName().concat(StrConstant.BRACKET_LEFT).concat(re.getIdCard()).concat(StrConstant.BRACKET_RIGNT), + coordinates[1], coordinates[0]); + + }).collect(Collectors.toList()); } return new ArrayList<>(); } @@ -439,4 +835,423 @@ public class CoverageServiceImpl implements CoverageService { } return new String[]{longitude, latitude}; } + + /** + * 五大图层-可视化-右侧分类树列表 + * @return + */ + @Override + public List listAnalysisResourceCategories(String agencyId) { + + // 获取所有菜单的url + List menuUrls = new ArrayList<>(128); + + List menus = govCustomerMenuRedis.getCustomerMenuList(EpmetRequestHolder.getLoginUserCustomerId(), 0, "gov_menu"); + if (CollectionUtils.isNotEmpty(menus)) { + menus.stream().forEach(m -> menuUrls.add(m.getUrl())); + } + + //结果集 + ArrayList results = new ArrayList<>(); + + // 1.查询categoryDict表得到基础数据,每个图层循环一次 + for (CoverageEnums coverage : CoverageEnums.values()) { + + if (!coverage.getType().equals(1)) { + continue; + } + + AnalysisResourceCategoriesResult coverageResult = new AnalysisResourceCategoriesResult(); + HashMap placeTypeMap = new HashMap<>(); + + List categoryDictEntities = govOrgCoverageService.listResourceCategoryEntities(coverage.getKey()); + + if (CollectionUtils.isEmpty(categoryDictEntities)) { + continue; + } + + // 3.对上一步得到的数据进行分组,使用PLACE_TYPE_IN_ANALYSIS分组,然后放入placeType,这一列为空的说明不分组,直接属于coverage + categoryDictEntities.forEach(category -> { + if (StringUtils.isBlank(category.getPlaceTypeInAnalysis())) { + // 没有placetype的 + if ("all".equals(category.getMenuUrl()) || menuUrls.contains(category.getMenuUrl())) { + coverageResult.getCategories() + .add(new AnalysisResourceCategoriesResult.Category(category.getCategoryKey(), category.getCategoryName(), + category.getCoverageType(), category.getPlaceType(), 0)); + } + } else { + // 有placetype的 + AnalysisResourceCategoriesResult.PlaceType placeType = placeTypeMap.get(category.getPlaceTypeInAnalysis()); + if ("all".equals(category.getMenuUrl()) || menuUrls.contains(category.getMenuUrl())) { + + if (placeType == null) { + placeType = new AnalysisResourceCategoriesResult.PlaceType( + category.getPlaceTypeInAnalysis(), CoveragePlaceTypeEnum.getEnum(category.getPlaceTypeInAnalysis()).getName(), new AtomicInteger(0), new ArrayList<>()); + placeTypeMap.put(category.getPlaceTypeInAnalysis(), placeType); + } + + placeType.getCategories().add(new AnalysisResourceCategoriesResult.Category(category.getCategoryKey(), + category.getCategoryName(), category.getCoverageType(), category.getPlaceType(), 0)); + } + + } + }); + + placeTypeMap.forEach((placeTypeKey, placeType) -> { + coverageResult.getPlaceTypesInAnalysis().add(placeType); + }); + + coverageResult.setCoverageType(coverage.getKey()); + coverageResult.setCoverageName(CoverageEnums.getEnum(coverage.getKey()).getCoverageName()); + results.add(coverageResult); + } + + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String userId = EpmetRequestHolder.getLoginUserId(); + + Map stafInfoMap=getStaffPidsFromStaffInfo(customerId, userId, agencyId,OrgConstant.AGENCY); + String staffOrgPath = stafInfoMap.get(OrgConstant.AGENC_PATH); + + // 填充数量quantity字段 + fillQuantities4ResourcesCoverages(results, customerId, agencyId, staffOrgPath); + + return results; + } + + private void fillQuantities4ResourcesCoverages(ArrayList coverages, String customerId, String agencyId, String staffOrgIds) { + + ArrayList> futures = new ArrayList<>(); + + coverages.forEach(coverage -> { + List categoriesInCoverage = coverage.getCategories(); + List placeTypesInCoverage = coverage.getPlaceTypesInAnalysis(); + + if (CollectionUtils.isNotEmpty(categoriesInCoverage)) { + // 直属于图层的category。异步提交计算任务 + CompletableFuture future = CompletableFuture.runAsync(() -> fillQuantities4ResourcesCategories(coverage, null, categoriesInCoverage, customerId, agencyId, staffOrgIds)); + futures.add(future); + } + if (CollectionUtils.isNotEmpty(placeTypesInCoverage)) { + // placeType,需要拆开来算, 异步提交计算任务 + placeTypesInCoverage.forEach(placeType -> { + List categoriesInPlaceType = placeType.getCategories(); + CompletableFuture future = CompletableFuture.runAsync(() -> fillQuantities4ResourcesCategories(coverage, placeType, categoriesInPlaceType, customerId, agencyId, staffOrgIds)); + futures.add(future); + }); + } + }); + + // 等待异步任务计算完成 + futures.forEach(f -> { + try { + f.get(); + } catch (InterruptedException e) { + log.error("【五大图层】可视化-右侧资源列表异步计算数量quantity失败,计算被中止,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层】可视化-右侧资源列表异步计算数量quantity失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } + }); + } + + private void fillQuantities4ResourcesCategories(AnalysisResourceCategoriesResult coverage, + AnalysisResourceCategoriesResult.PlaceType placeType, + List categories, + String customerId, String agencyId, String staffOrgIds) { + + AtomicInteger total = new AtomicInteger(); + + categories.forEach(cat -> { + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, cat.getPlaceType(), cat.getCategoryKey(), null, null); + cat.setQuantity(quantity); + total.getAndAdd(quantity); + }); + + // 分别给所属的coverage和placeType的quantity增加quantity + coverage.getQuantity().getAndAdd(total.get()); + + if (placeType != null) { + placeType.getQuantity().getAndAdd(total.get()); + } + } + + @Override + public List listGovernedTargetCategories(String agencyId) { + + // 获取所有菜单的url + List menuUrls = new ArrayList<>(128); + + List menus = govCustomerMenuRedis.getCustomerMenuList(EpmetRequestHolder.getLoginUserCustomerId(), 0, "gov_menu"); + if (CollectionUtils.isNotEmpty(menus)) { + menus.stream().forEach(m -> menuUrls.add(m.getUrl())); + } + + // 1.从表中取数据出来 + List targetCategories = govOrgCoverageService.listGovernedTargetCategoryEntities(); + + if (CollectionUtils.isEmpty(targetCategories)) { + return new ArrayList<>(); + } + + //2.从oper_customize.ic_resi_category_warn_config表中取18大类居民中需要预警的类出来 + List categoriesNeed2Warn = icResiCategoryWarnService.listResiCategoriesNeed2Warn(EpmetRequestHolder.getLoginUserCustomerId()); + List resiCategories2Show = categoriesNeed2Warn.stream().map(wc -> wc.getColumnName()).collect(Collectors.toList()); + + List results = new ArrayList<>(); + HashMap> placeTypeTargetMap = new HashMap<>(); + + targetCategories.forEach(rc -> { + String placeTypeInAnalysis = rc.getPlaceTypeInAnalysis(); + if (CoveragePlaceTypeEnum.RESI.getCode().equals(placeTypeInAnalysis) && !resiCategories2Show.contains(rc.getCategoryKey())) { + // 因为公共服务-人群,是需要跟oper_customize.ic_resi_category_warn_config表对应,只显示warn=1的, + // 所以如果是被管理对象中的公共服务人群,如果不开启预警,就跳过;其他情况都放进去 + return; + } + + if (StringUtils.isEmpty(placeTypeInAnalysis)) { + // 只有一层,没有子级 + if (menuUrls.contains(rc.getMenuUrl()) || "all".equals(rc.getMenuUrl())) { + results.add(new AnalysisGovernedTargetsResult(rc.getCategoryKey(), rc.getCategoryName(), rc.getCoverageType(), + rc.getPlaceType(), CoveragePlaceTypeEnum.getEnum(rc.getPlaceType()).getName(), 0, new ArrayList<>())); + } + } else { + // 有子级,需要使用placeTypeInAnalysis分组 + if (menuUrls.contains(rc.getMenuUrl()) || "all".equals(rc.getMenuUrl())) { + List targets = placeTypeTargetMap.get(placeTypeInAnalysis); + if (CollectionUtils.isEmpty(targets)) { + targets = new ArrayList<>(); + placeTypeTargetMap.put(placeTypeInAnalysis, targets); + } + targets.add(new AnalysisGovernedTargetsResult(rc.getCategoryKey(), rc.getCategoryName(), rc.getCoverageType(), + rc.getPlaceType(), CoveragePlaceTypeEnum.getEnum(rc.getPlaceType()).getName(), 0, new ArrayList<>())); + } + } + }); + + // 最后,把需要分组的"公共服务人群","综合治理人群"放到最后的结果列表中 + if (placeTypeTargetMap.size() > 0) { + placeTypeTargetMap.forEach((placeTypeInAnalysis, targetObjects) -> { + AnalysisGovernedTargetsResult tr = new AnalysisGovernedTargetsResult(); + tr.setPlaceType(placeTypeInAnalysis); + tr.setPlaceTypeName(CoveragePlaceTypeEnum.getEnum(placeTypeInAnalysis).getName()); + tr.setChildren(targetObjects); + results.add(tr); + }); + } + + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String staffId = EpmetRequestHolder.getLoginUserId(); + + Map agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,agencyId,OrgConstant.AGENCY); + String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH); + + // 再最后,多线程setQuantity + fillQuantities4GovernedTarges(results, customerId, agencyId, agencyPath); + + return results; + } + + /** + * 填充数量,接收参数为多个placeType(对应左侧菜单的所有一级) + * @param results + */ + private void fillQuantities4GovernedTarges(List results, String customerId, String agencyId, String staffOrgIds) { + + ArrayList> futures = new ArrayList<>(); + + results.stream().forEach(targetsOfOnePlaceType -> { + CompletableFuture future = CompletableFuture.runAsync(() -> { + fillQuantities4GovernedTarges(targetsOfOnePlaceType, customerId, agencyId, staffOrgIds); + }, executorService); + + futures.add(future); + }); + + // 此处是为了等待计算完成 + futures.forEach(future -> { + try { + future.get(); + } catch (InterruptedException e) { + log.error("【五大图层】可视化-左侧异步计算数量quantity失败,计算被中止,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层】可视化-左侧异步计算数量quantity失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } + }); + } + + /** + * 填充数量,接收参数为左侧单个placeType + * @param targetsOfOnePlaceType + * @param customerId + * @param agencyId + * @param staffOrgIds + */ + private void fillQuantities4GovernedTarges(AnalysisGovernedTargetsResult targetsOfOnePlaceType, String customerId, String agencyId, String staffOrgIds) { + List children = targetsOfOnePlaceType.getChildren(); + if (CollectionUtils.isEmpty(children)) { + // 城市管理时间 || 安全生产隐患等只有一层的 + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, targetsOfOnePlaceType.getPlaceType(), + targetsOfOnePlaceType.getCategoryKey(), null, null); + targetsOfOnePlaceType.setQuantity(quantity); + } else { + // 综合治理人群 || 公共服务人群等有子级的 + + AtomicInteger totalOfPlaceType = new AtomicInteger(); + children.forEach(governedTarget -> { + Integer quantity = doDataListCount(customerId, agencyId, staffOrgIds, governedTarget.getPlaceType(), + governedTarget.getCategoryKey(), null, null); + governedTarget.setQuantity(quantity); + totalOfPlaceType.addAndGet(quantity); + }); + + // 设置这一组的总数 + targetsOfOnePlaceType.setQuantity(totalOfPlaceType.get()); + } + } + + + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @Override + public PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO) { + PageData page = analysisDataList(formDTO.getCustomerId(), formDTO.getStaffId(), formDTO.getOrgId(), formDTO.getOrgType(), + formDTO.getCoverageTypes(), formDTO.getCategoryKeys(), + StrConstant.EPMETY_STR,// 搜索关键词 默认空字符串 + NumConstant.ONE, + NumConstant.TWENTY, + false // 不分页 + ); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(page.getList())) { + Map> group = page.getList().stream().collect(Collectors.groupingBy(x->Optional.ofNullable(x.getLongLat()).orElse("O"))); + + if (MapUtils.isNotEmpty(group)) { + for (Map.Entry> entry : group.entrySet()) { + if (CollectionUtils.isEmpty(entry.getValue())) { + continue; + } + CoverageAnalisisDataListResultDTOV2 res = new CoverageAnalisisDataListResultDTOV2(); + res.setLatitude(entry.getValue().get(NumConstant.ZERO).getLatitude()); + res.setLongitude(entry.getValue().get(NumConstant.ZERO).getLongitude()); + res.setDataList(entry.getValue()); + list.add(res); + } + } + } + // int totalCount = CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO;//这个是实际返回的几个坐标点 + // page.getTotal()是多少条业务数据 + return new PageData<>(list, page.getTotal()); + } + + @Override + public UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + UserInfoResultDTO result = new UserInfoResultDTO(); + List allIcUser = icResiService.getAllIcUser(dto); + if (CollectionUtils.isNotEmpty(allIcUser)){ + result = allIcUser.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), result.getHomeId()); + if (null == houseInfo){ + throw new EpmetException("获取房屋信息失败:"+result.getHomeId()); + } + result.setHouseName(houseInfo.getAllName()); + result.setLongitude(houseInfo.getBuildingLongitude()); + result.setLatitude(houseInfo.getBuildingLatitude()); + } + return result; + } + + @Override + public EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + EventInfoResultDTO result = new EventInfoResultDTO(); + List eventInfos = govProjectService.getEventInfos(dto); + if (CollectionUtils.isNotEmpty(eventInfos)){ + result = eventInfos.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + } + return result; + } + + @Override + public ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + ResourceInfoResultDTO result = new ResourceInfoResultDTO(); + List infos = new ArrayList<>(); + switch (formDTO.getResourceType()){ + case "community_org": + infos = heartService.getCommunitySelOrgInfos(dto); + break; + case "superior_resource": + infos = govOrgService.getSuperiorResourceInfos(dto); + break; + case "city_management": + infos = govOrgService.getCityManageInfos(dto); + break; + case "dangerous_chemicals": + infos = govOrgService.getDangerousChemicalsInfos(dto); + break; + case "public_service": + infos = govOrgService.getPublicServiceInfos(dto); + break; + case "enterprise_patrol": + infos = govOrgService.getEnterpriseInfos(dto); + break; + default: + break; + } + if (CollectionUtils.isNotEmpty(infos)){ + result = infos.get(NumConstant.ZERO); + } + return result; + } + + /** + * 左侧菜单,点击后查询当前组织下级组织,各分类数量 + * + * @param formDTO + * @return + */ + @Override + public List dataListLeftSubTotal(DataListLeftSubTotalFormDTO formDTO) { + List resultList=new ArrayList<>(); + List list = SpringContextUtils.getBean(GovOrgService.class).queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId()); + if(CollectionUtils.isNotEmpty(list)){ + resultList=ConvertUtils.sourceToTarget(list,DataListLeftSubTotalResDTO.class); + for(DataListLeftSubTotalResDTO orgRes:resultList){ + String gridId=StrConstant.EPMETY_STR; + String agencyId=StrConstant.EPMETY_STR; + String orgIdPath=StrConstant.EPMETY_STR; + if(OrgConstant.AGENCY.equals(orgRes.getOrgType())){ + agencyId=orgRes.getOrgId(); + AgencyInfoCache agencyInfoCache=CustomerOrgRedis.getAgencyInfo(orgRes.getOrgId()); + if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) { + orgIdPath = agencyInfoCache.getPids().concat(":").concat(agencyId); + } else { + orgIdPath = agencyId; + } + }else{ + gridId=orgRes.getOrgId(); + GridInfoCache gridInfoCache=CustomerOrgRedis.getGridInfo(orgRes.getOrgId()); + orgIdPath=gridInfoCache.getPids(); + } + int count = doDataListCount(formDTO.getCustomerId(), agencyId, orgIdPath, formDTO.getPlaceType(), formDTO.getCategoryKey(), null, gridId); + orgRes.setTotal(count); + } + } + return resultList; + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java new file mode 100644 index 0000000000..cdfab84c0f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java @@ -0,0 +1,24 @@ +package com.epmet.dataaggre.service.impl; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import com.epmet.dataaggre.service.PartymemberService; +import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +public class PartymemberServiceImpl implements PartymemberService { + + @Autowired + private ResiPartymemberService resiPartymemberService; + + @Override + public List getNowPart(NowStatsDataFormDTO formDTO) { + return resiPartymemberService.getNowPart(formDTO); + } +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java index 8ea7d871d5..59810ea97b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -149,10 +149,17 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { // 使用年龄计算出生日期 if (resiRule != null) { resiRule.stream().forEach((r) -> { + // 对生日列计算 if ("BIRTHDAY".equals(r.getColKey())) { - LocalDate birthday = LocalDate.now().minus(Long.valueOf(r.getColVal()), ChronoUnit.YEARS); - r.setQueryType(revertQueryType(r.getQueryType())); - r.setColVal(birthday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + if ("is_null".equals(r.getQueryType()) || "is_not_null".equals(r.getQueryType())) { + // 如果是is_null、is_not_null,那么直接用这个条件 + return; + } else { + //如果不是is_null、is_not_null,那么需要转换为出生日期 + LocalDate birthday = LocalDate.now().minus(Long.valueOf(r.getColVal()), ChronoUnit.YEARS); + r.setQueryType(revertQueryType(r.getQueryType())); + r.setColVal(birthday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } } }); } @@ -209,7 +216,16 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { resultResis.stream().forEach((r) -> { // 小区名称 - r.setNeighborHoodName(gridIdAndName.get(r.getGridId()).concat("-").concat(neighborhoodIdAndName.get(r.getNeighborhoodId()))); + String gridName = gridIdAndName.get(r.getGridId()); + String neighborhoodName = neighborhoodIdAndName.get(r.getNeighborhoodId()); + + if (StringUtils.isNoneBlank(gridName, neighborhoodName)) { + // 网格或者小区都能找到,给填充数据 + r.setNeighborHoodName(gridIdAndName.get(r.getGridId()).concat("-").concat(neighborhoodIdAndName.get(r.getNeighborhoodId()))); + } else { + // 网格或者小区中任何一个找不到,给个空 + r.setNeighborHoodName(""); + } // 出生日期 & 年龄 if (r.getBirthday() != null) { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java new file mode 100644 index 0000000000..5910c9d9f1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryStatsConfigService.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.service.opercustomize; + +/** + * @Author zxc + * @DateTime 2022/7/27 17:20 + * @DESC + */ +public interface IcResiCategoryStatsConfigService { +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java new file mode 100644 index 0000000000..85b43f948a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/IcResiCategoryWarnService.java @@ -0,0 +1,9 @@ +package com.epmet.dataaggre.service.opercustomize; + +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; + +import java.util.List; + +public interface IcResiCategoryWarnService { + List listResiCategoriesNeed2Warn(String loginUserCustomerId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java new file mode 100644 index 0000000000..c3e52bacec --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/IcResiCategoryWarnServiceImpl.java @@ -0,0 +1,28 @@ +package com.epmet.dataaggre.service.opercustomize.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.opercustomize.IcResiCategoryWarnConfigDao; +import com.epmet.dataaggre.entity.opercustomize.IcResiCategoryWarnConfigEntity; +import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@DataSource(DataSourceConstant.OPERCUSTOMIZE) +public class IcResiCategoryWarnServiceImpl implements IcResiCategoryWarnService { + + @Autowired + private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; + + @Override + public List listResiCategoriesNeed2Warn(String customerId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcResiCategoryWarnConfigEntity::getCustomerId, customerId); + query.eq(IcResiCategoryWarnConfigEntity::getWarn, "1"); + return icResiCategoryWarnConfigDao.selectList(query); + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java new file mode 100644 index 0000000000..1d5bb43a23 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java @@ -0,0 +1,12 @@ +package com.epmet.dataaggre.service.resipartymember; + +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; + +import java.util.List; + +public interface ResiPartymemberService { + + List getNowPart(NowStatsDataFormDTO formDTO); + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java new file mode 100644 index 0000000000..cb45cb5f17 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java @@ -0,0 +1,29 @@ +package com.epmet.dataaggre.service.resipartymember.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.resipartymember.ResiPartymemberDao; +import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO; +import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +@DataSource(DataSourceConstant.RESI_PARTYMEMBER) +public class ResiPartymemberServiceImpl implements ResiPartymemberService { + + @Autowired + private ResiPartymemberDao resiPartymemberDao; + + + @Override + public List getNowPart(NowStatsDataFormDTO formDTO) { + return resiPartymemberDao.getNowPart(formDTO); + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml index aa857a1eaf..0237f7f5d7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml @@ -161,6 +161,11 @@ dynamic: url: @datasource.druid.heart.url@ username: @datasource.druid.heart.username@ password: @datasource.druid.heart.password@ + partymember: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.partymember.url@ + username: @datasource.druid.partymember.username@ + password: @datasource.druid.partymember.password@ feign: hystrix: enabled: true diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml index adcb55f269..d89996a58a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -38,7 +38,7 @@ + + + + + + + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml index 21a959c15e..2ecbd63552 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml @@ -3,4 +3,44 @@ + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index a77f1f22e0..9af0849b72 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -309,4 +309,21 @@ OR PIDS LIKE CONCAT('%', #{agencyId}, '%')) + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index c094cc33b8..2457f87733 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -47,7 +47,9 @@ + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml index 8cdd63a520..c0696d0d94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml @@ -3,4 +3,214 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml index beb08a1262..22a95a5720 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCoverageCategoryDictDao.xml @@ -3,6 +3,23 @@ + + @@ -10,6 +27,10 @@ + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml index 6aa433eb09..362e2ca60f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml @@ -8,10 +8,22 @@ select count(1) from ic_enterprise e where e.CUSTOMER_ID = #{customerId} - and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') - and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') + + + and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) + + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + + + and e.GRID_ID = #{gridId} + @@ -30,9 +42,16 @@ e.source_type from ic_enterprise e where e.CUSTOMER_ID = #{customerId} + and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') + and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml index ad5afc48d2..fdba65d9cd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml @@ -1,6 +1,74 @@ - + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index 1b159cb69d..29e53ff04b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -470,6 +470,9 @@ AND GRID_ID = #{orgId} + + AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%') + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} @@ -492,6 +495,9 @@ AND GRID_ID = #{orgId} + + AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%') + AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") = ]]> #{startDate} @@ -539,4 +545,47 @@ AGENCY_ID + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml index c785e28c0d..57b7dc3449 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/heart/IcCommunitySelfOrganizationDao.xml @@ -2,4 +2,35 @@ + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml new file mode 100644 index 0000000000..0da1fddf73 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/IcResiCategoryWarnConfigDao.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml new file mode 100644 index 0000000000..058581128d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java index 8e6c99d562..c54642b6f1 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java @@ -20,4 +20,11 @@ public class EventInfoFormDTO extends PageFormDTO implements Serializable { * 操作类型【新增:add 修改删除:edit】 */ private String type; + /** + * 是否初始化, 通常用于初期初始化数据,由自己控制 + * 0不初始化,有则更新,没有则新增 + * 1完全初始化,删除全部数据 + * 2在完全初始化之后,由于eventreport_pingyin表没有客户ID,初始化其他客户的数据时候可以设2,直接新增 + */ + private String initFlag = "0"; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java index 9d39ef6b81..768fad2827 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java @@ -28,7 +28,7 @@ public class GridBaseInfoFormDTO implements Serializable { * 操作类型【新增:add 修改删除:edit 初始化所有数据:all】 */ private String type; - + private String delFlag; public interface Grid extends CustomerClientShowGroup {} } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java index 658a3e9c2d..e281c7400e 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerAgencyDTO.java @@ -147,4 +147,14 @@ public class CustomerAgencyDTO implements Serializable { * 社区 */ private String community; + + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java index a5458793dd..7328788cb6 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java @@ -134,4 +134,9 @@ public class CustomerStaffDTO implements Serializable { */ private String roleName; + /** + * 身份证号 + */ + private String idCard; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java index c70b0332e4..ce1a1c71ee 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java @@ -20,6 +20,7 @@ package com.epmet.dto.user.result; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** @@ -78,6 +79,25 @@ public class GridUserInfoDTO implements Serializable { */ private String sex; + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date leaveDate; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 67f56957dc..ffd9da0f11 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -36,7 +36,7 @@ import java.util.List; * @author: jianjun liu */ //url="http://localhost:8108" -//@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = DataStatisticalOpenFeignClientFallBack.class, url = "http://localhost:6666") +// @FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallbackFactory = DataStatisticalOpenFeignClientFallBackFactory.class, url = "http://localhost:8108") @FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallbackFactory = DataStatisticalOpenFeignClientFallBackFactory.class) public interface DataStatisticalOpenFeignClient { @@ -341,7 +341,8 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping("/data/stats/datareporting/eventinfo") Result> getEventInfo(@RequestBody EventInfoFormDTO formDTO); - + @PostMapping("/data/stats/datareporting/eventinfoV2") + Result> getEventInfoV2(@RequestBody EventInfoFormDTO formDTO); /** * wangxianzhang * diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index b5bb0013c4..a46ceb0635 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -333,6 +333,11 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfo", formDTO); } + @Override + public Result> getEventInfoV2(EventInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfoV2", formDTO); + } + @Override public Result statsVolunteerDemandServicesDaily(String customerId) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "statsVolunteerDemandServicesDaily", customerId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java index 85706430c4..a61a208f34 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java @@ -102,5 +102,8 @@ public class DataReportingController { public Result> getEventInfo(@RequestBody(required = false) EventInfoFormDTO formDTO) { return new Result>().ok(dataReportingService.getEventInfo(formDTO)); } - + @PostMapping("eventinfoV2") + public Result> getEventInfoV2(@RequestBody(required = false) EventInfoFormDTO formDTO) { + return new Result>().ok(dataReportingService.getEventInfoV2(formDTO)); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java index db2b42ba5b..1809319a3c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -72,6 +72,7 @@ public interface ScreenProjectDataDao extends BaseDao { int updateProjectSatisfactionScore(@Param("projectId")String projectId, @Param("score")BigDecimal score); List selectProjectList(@Param("customerId") String customerId, @Param("projectIds") List projectIds); + List selectProjectListV2(@Param("customerId") String customerId, @Param("projectIds") List projectIds); /** * @Description 查询网格下的项目分类 @@ -132,4 +133,6 @@ public interface ScreenProjectDataDao extends BaseDao { * @Date 2022/3/16 9:48 */ void updateHistoryData(CustomerStaffGridDTO dto); + + int getProjectCount(@Param("customerId") String customerId,@Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java index 4a2260b045..7436847fd2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java @@ -225,6 +225,11 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java index 921a2b3dde..db3012c803 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java @@ -69,4 +69,13 @@ public interface DataReportingService { */ List getEventInfo(EventInfoFormDTO formDTO); + /** + * 事件上报 + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + List getEventInfoV2(EventInfoFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java index c0d124698f..e0b4386790 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java @@ -139,7 +139,7 @@ public interface ScreenProjectDataService extends BaseService getProjectList(String customerId, List projectId, Integer pageNo, Integer pageSize); - + List getProjectListV2(String customerId, List projectId, Integer pageNo, Integer pageSize); /** * 项目变更MQ * @Param msg diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java index db975af203..004085496a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java @@ -260,10 +260,12 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl NumConstant.ZERO) { - affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); - } + List projectIds = meta.stream().map(ScreenProjectDataDTO::getProjectId).collect(Collectors.toList()); + List> projectPartition = ListUtils.partition(projectIds, NumConstant.FIFTY); + projectPartition.forEach(part -> { + baseDao.deleteByProjectIds(customerId, part); + }); + List> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED); partition.forEach(part -> { List list = ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class); @@ -309,6 +311,11 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl getProjectListV2(String customerId, List projectId, Integer pageNo, Integer pageSize) { + PageHelper.startPage(pageNo, pageSize, false); + return baseDao.selectProjectListV2(customerId, projectId); + } /** * @Description 项目变更MQ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 8b33031420..c2a93796bd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -100,6 +100,9 @@ public class DataReportingServiceImpl implements DataReportingService { public List getStaffBaseInfo(StaffBaseInfoFormDTO formDTO) { //1.查询工作人员所属网格信息 List resultList = customerGridService.getStaffGrid(formDTO); + if (CollectionUtils.isEmpty(resultList)) { + return new ArrayList<>(); + } //2.查询工作人员基础信息 List staffDTOList = userService.getStaffBaseInfo(formDTO); @@ -118,6 +121,13 @@ public class DataReportingServiceImpl implements DataReportingService { st.setUserType(dto.getWorkType().equals("fulltime") ? "01" : "02"); st.setPhonenumber(dto.getMobile()); st.setSex(0 == dto.getGender() ? "9" : dto.getGender().toString()); + st.setUpdateTime(dto.getUpdatedTime()); + st.setIdCard(dto.getIdCard()); + st.setStaffId(dto.getUserId()); + st.setIsLeave("enable".equals(dto.getEnableFlag()) ? "N" : "Y"); + if ("Y".equals(st.getIsLeave())) { + st.setLeaveDate(DateUtils.integrate(dto.getUpdatedTime(), DateUtils.DATE_PATTERN)); + } } }); @@ -201,12 +211,72 @@ public class DataReportingServiceImpl implements DataReportingService { return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); } + /** + * 事件上报 + * + * @param formDTO + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + @Override + public List getEventInfoV2(EventInfoFormDTO formDTO) { + List list; + //根据入参,获取项目 + long start = System.currentTimeMillis(); + List projectList = screenProjectDataService.getProjectListV2(formDTO.getCustomerId(), formDTO.getProjectId(), formDTO.getPageNo(), formDTO.getPageSize()); + log.info("事件上报-查询项目列表耗时:{}ms",System.currentTimeMillis()-start); + //项目列表为空,返回空数组 + if(CollectionUtils.isEmpty(projectList)) { + return Collections.emptyList(); + } + start = System.currentTimeMillis(); + Map epmetCodeMap = new HashMap<>(); + Result parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); + if (StringUtils.isNotBlank(parentCustomer.getData())) { + epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); + } + Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId()); + //项目ID不为空时,因为只有一条,可以直接处理 + Map finalEpmetCodeMap = epmetCodeMap; + if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { + list = projectList.stream().map(project -> { + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); + ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); + dto.setOrgId(project.getOrgId()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } else { + //项目ID不为空时,提前取出客户下的组织和网格 + Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); + Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); + list = projectList.stream().map(project -> { + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); + ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); + dto.setOrgId(project.getOrgId()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } + log.info("事件上报-组装数据耗时:{}ms",System.currentTimeMillis()-start); + return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); + } + private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map epmetCodeMap, Map codeMap) { EventInfoResultDTO dto = new EventInfoResultDTO(); dto.setId(project.getProjectId()); dto.setCustomerId(project.getCustomerId()); dto.setEventName(project.getProjectTitle()); dto.setReporterId(project.getProjectCreator()); + //获取工作人员姓名和身份证 String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; String parentCode = null == codeMap.get(categoryCode)?null:codeMap.get(categoryCode).getParentCategoryCode(); //如果是孔村、榆山、锦水的项目需要关联分类字典表 @@ -290,6 +360,7 @@ public class DataReportingServiceImpl implements DataReportingService { dto.setCompleteTime(project.getCloseCaseTime()); dto.setLat(project.getLatitude()); dto.setLng(project.getLongitude()); + dto.setWaysOfResolving(ProjectConstant.PROJECT_SELF_CLOSED); return dto; } @@ -315,7 +386,6 @@ public class DataReportingServiceImpl implements DataReportingService { case ProjectConstant.PENDING: return "01"; case ProjectConstant.CLOSED: - return "02"; case ProjectConstant.CLOSED_CASE: return "03"; default: @@ -333,4 +403,7 @@ public class DataReportingServiceImpl implements DataReportingService { return userService.getPatrolDetailList(formDTO); } + + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml index 6cf57e3109..64b783c786 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml @@ -269,6 +269,80 @@ ORDER BY a.CREATED_TIME ASC + + select count(ID) + from screen_project_data + where customer_id = #{customerId} + and DATA_END_TIME = #{dateId} + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml index 7ab6ca322c..061b1e43bf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml @@ -158,8 +158,13 @@ * FROM customer_grid - WHERE del_flag = '0' - AND customer_id = #{customerId} + WHERE customer_id = #{customerId} + + AND del_flag = #{delFlag} + + and CODE is not null + and CODE !='' + and grid_name not like '%专属网格' #{gridId} @@ -176,7 +181,7 @@ cg.`code` code FROM customer_staff_grid csg - INNER JOIN customer_grid cg ON csg.grid_id = cg.id + INNER JOIN customer_grid cg ON csg.grid_id = cg.id AND cg.`CODE` != '' AND cg.`CODE` is not null WHERE csg.del_flag = '0' AND csg.customer_id = #{customerId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml index fa5da30046..fec3627bc0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml @@ -214,8 +214,12 @@ * FROM customer_agency - WHERE del_flag = '0' - AND customer_id = #{customerId} + WHERE customer_id = #{customerId} + and CODE is not null + and CODE !='' + + AND del_flag = #{delFlag} + #{agencyId} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java index 6364dc08e2..a8cad6d0f6 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java @@ -104,6 +104,21 @@ public class IcCommunitySelfOrganizationDTO implements Serializable { */ private String latitude; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java index 2258b94762..5935d564de 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java @@ -134,6 +134,21 @@ public class IcPartyUnitDTO implements Serializable { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * 删除标识 0未删除、1已删除 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java index d9f15f9637..910a5b2e38 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java @@ -64,7 +64,7 @@ public class IcPolicyRuleDetailDTO { /** * 参数值 */ - @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) + // @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class}) private String colVal; /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java index 39552f7654..790c8c2a44 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java @@ -100,6 +100,22 @@ public class CommunitySelfOrganizationListDTO implements Serializable { * 积分 */ private Integer score; + + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * 社区自组织人员 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 9939b88455..e3b04df7bb 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -16,6 +16,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; @@ -166,4 +167,8 @@ public interface EpmetHeartOpenFeignClient { */ @PostMapping("/heart/policy/rules4ResiListAndExport/{ruleId}") Result listPolicyRules4QueryAndExport(@PathVariable("ruleId") String ruleId); + + @PostMapping("/heart/icpartyunit/editpartyorcommunity") + Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO); + } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index 815bfab92c..558cd43f2b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -18,6 +18,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; @@ -166,4 +167,9 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result listPolicyRules4QueryAndExport(String ruleId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "listPolicyRules4QueryAndExport", ruleId); } + + @Override + public Result editPartyOrCommunity(CheckStaffInfoResultDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "editPartyOrCommunity", formDTO); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 236e0d3b99..95093177cb 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -22,11 +22,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.ImportTaskCommonResultDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -312,4 +308,14 @@ public class IcPartyUnitController { return new Result>().ok(icPartyUnitService.getAssistanceUnitList(tokenDto)); } + /** + * Desc: 联建单位、社会自组织同步/取消同步到通讯录部门后相应的修改业务数据 + * @author sun + */ + @PostMapping("editpartyorcommunity") + public Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO){ + icPartyUnitService.editPartyOrCommunity(formDTO); + return new Result(); + } + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java index 7098ce83e9..3f35e32184 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java @@ -117,4 +117,19 @@ public class IcCommunitySelfOrganizationEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java index 65c11a447f..47210a837a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java @@ -105,4 +105,19 @@ public class IcPartyUnitEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java new file mode 100644 index 0000000000..39bdd462f5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/ServerInfoDTO.java @@ -0,0 +1,15 @@ +package com.epmet.entity; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/7/27 16:23 + */ +@Data +public class ServerInfoDTO { + private String serviceName; + private String mobile; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 53ddf81e19..8cc2d342a7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -12,10 +12,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.PartyUnitListbriefFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -182,4 +179,6 @@ public interface IcPartyUnitService extends BaseService { * @param form */ List getTypepercent(PartyTypepercentFormDTO form); + + void editPartyOrCommunity(CheckStaffInfoResultDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index 1824e1feb3..68a295422a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -25,6 +25,7 @@ import com.epmet.dto.form.demand.*; import com.epmet.dto.result.PointRecordResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; +import com.epmet.entity.ServerInfoDTO; import java.util.List; import java.util.Map; @@ -262,4 +263,6 @@ public interface IcUserDemandRecService extends BaseService page(Map params) { @@ -374,8 +379,29 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - baseDao.deleteById(formDTO.getOrgId()); - personnelService.deleteByOrgId(formDTO.getOrgId()); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【社会自组织被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcCommunitySelfOrganizationEntity entity = baseDao.selectById(formDTO.getOrgId()); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(formDTO.getOrgId()); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("community_org"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "社会自组织删除,取消同步到通讯录数据失败", "社会自组织删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + bl = result.getData().getType(); + } + if (bl) { + baseDao.deleteById(formDTO.getOrgId()); + personnelService.deleteByOrgId(formDTO.getOrgId()); + } + } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 91dc0baa57..304705ac2d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -55,13 +55,12 @@ import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceStatDTO; +import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.IcPartyUnitImportExcel; import com.epmet.excel.IcPartyUnitImportFailedExcel; -import com.epmet.feign.EpmetAdminOpenFeignClient; -import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.EpmetHeartOpenFeignClient; -import com.epmet.feign.OssFeignClient; +import com.epmet.feign.*; +import com.epmet.service.IcCommunitySelfOrganizationService; import com.epmet.service.IcPartyUnitService; import com.epmet.service.IcServiceItemDictService; import com.epmet.service.IcUserDemandRecService; @@ -78,6 +77,7 @@ import org.apache.http.entity.ContentType; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; @@ -111,6 +111,10 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl search(PartyUnitFormDTO formDTO) { @@ -122,7 +126,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.selectList(wrapper); PageInfo pageInfo = new PageInfo<>(list); List dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitDTO.class); @@ -257,8 +261,28 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - // 逻辑删除(@TableLogic 注解) - baseDao.deleteById(id); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【联建单位被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcPartyUnitEntity entity = baseDao.selectById(id); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(id); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("party_unit"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "联建单位删除,取消同步到通讯录数据失败", "联建单位删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + } + if (bl) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteById(id); + } + } /** @@ -711,4 +735,30 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl page(Map params) { @@ -156,7 +153,37 @@ public class IcServiceRecordV2ServiceImpl extends BaseServiceImpl smsList = new ArrayList<>(); + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(customerId); + sms.setMobile(serverInfoDTO.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.IC_SERVICE_TEM); + Map paramMap = new HashMap<>(); + //${nane}发起一个${serviceName}服务,请服务完成后尽快反馈,谢谢合作。 + paramMap.put("nane",staffInfoCacheResult.getAgencyName()); + paramMap.put("serviceName",serviceName); + sms.setParamMap(paramMap); + smsList.add(sms); + messageOpenFeignClient.sendMsg(smsList); } @Override diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index c1acbcd859..951b7b2e79 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -43,6 +43,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ReadFlagConstant; +import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.UserDemandConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.IcUserDemandOperateLogDao; @@ -414,11 +415,11 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl smsList=new ArrayList<>(); + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(customerId); + sms.setMobile(mobile); + sms.setAliyunTemplateCode(SmsTemplateConstant.DEMAND_SERVICE_TEM); + Map paramMap = new HashMap<>(); + paramMap.put("name",staffInfoCacheResult.getAgencyName()); + sms.setParamMap(paramMap); + smsList.add(sms); + Result res=messageOpenFeignClient.sendMsg(smsList); } /** @@ -438,21 +467,25 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 1e0d00c9ba..0aaf92db4a 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -43,6 +43,11 @@ epmet-message-client 2.0.0 + + com.epmet + pli-power-base-client + 2.0.0 + org.springframework.boot spring-boot-starter-web diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java new file mode 100644 index 0000000000..4fb990d033 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java @@ -0,0 +1,17 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; + +public interface PliPowerService { + + /** + * 访客登出 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhy + * @date 2022/5/30 10:25 + */ + Result visitorLogout(VisitorLogoutFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java new file mode 100644 index 0000000000..ed54b7e6d9 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java @@ -0,0 +1,31 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.plugin.power.feign.PliPowerFeignClient; +import com.epmet.service.PliPowerService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * @Description + * @ClassName StatsUserServiceImpl + * @Auth wangc + * @Date 2020-06-29 09:41 + */ +@Service +public class PliPowerServiceImpl implements PliPowerService { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerFeignClient pliPowerFeignClient; + + @Override + public Result visitorLogout(VisitorLogoutFormDTO formDTO) { + return pliPowerFeignClient.visitorLogout(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java new file mode 100644 index 0000000000..41ffa19ecc --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java @@ -0,0 +1,41 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.service.PliPowerService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 访客登出 + * + * @author zhy + * @date 2022/5/30 10:23 + */ +@Component("pliVisitorLogoutTask") +public class PliVisitorLogoutTask implements ITask { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerService pliPowerService; + + @Override + public void run(String params) { + logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params); + VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class); + } + Result result = pliPowerService.visitorLogout(formDTO); + if (result.success()) { + logger.info("VisitorLogoutTask定时任务执行成功"); + } else { + logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java index c5647e5edf..3f1ec288ac 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java @@ -37,4 +37,24 @@ public interface SmsTemplateConstant { * 项目滞留提醒 */ String PROJECT_OVERDUE = "SMS_206885207"; + + /** + * 模板名称 + * 数字社区-服务方接收消息模板 + * 模板CODE + * SMS_247205033 + * 模板内容 + * ${nane}发起一个${serviceName}服务,请服务完成后尽快反馈,谢谢合作。 + */ + String IC_SERVICE_TEM="SMS_247205033"; + + /** + * 模板名称 + * 数字社区-需求服务方接收消息模板 + * 模板CODE + * SMS_247645013 + * 模板内容 + * ${name}给您指派了一个新的需求,请服务完成后尽快反馈,谢谢合作。 + */ + String DEMAND_SERVICE_TEM="SMS_247645013"; } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java new file mode 100644 index 0000000000..a24d9dcba8 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Map; + +/** + * @Description + * @Author yzm + * @Date 2022/7/27 17:23 + */ +@Data +public class SendSmsFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class}) + private String mobile; + + /** + * 场景: + */ + @NotBlank(message = "短信模板编码不能为空", groups = {AddUserInternalGroup.class}) + private String aliyunTemplateCode; + + /** + * 如果短信模板内有参数,按序传入 + */ + // private List paramsContent; + private Map paramMap; + private String customerId; +} + diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java index 920d508b89..8b9f06198f 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java @@ -21,7 +21,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:47 */ -//@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085") +// @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085") @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class) public interface EpmetMessageOpenFeignClient { /** @@ -123,4 +123,8 @@ public interface EpmetMessageOpenFeignClient { */ @PostMapping("/message/system/pendding-mq-msg-scan") Result penddingMqMsgScan(); + + + @PostMapping(value = "message/sms/send-msg", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result sendMsg(@RequestBody List formDTO); } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java index eba096ff0f..2d5c0d9073 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java @@ -73,4 +73,9 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig public Result penddingMqMsgScan() { return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "penddingMqMsgScan"); } + + @Override + public Result sendMsg(List formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendMsg",formDTO); + } } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java index c41ad3195d..47684b67c7 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java @@ -16,6 +16,7 @@ import com.epmet.commons.tools.validator.group.AliyunGroup; import com.epmet.commons.tools.validator.group.QcloudGroup; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.enums.PlatformEnum; @@ -128,4 +129,17 @@ public class SmsController { return new Result(); } + /** + * 通用发短信方法,传入短信模板,内容 + * + * @param formDTOList + * @return + */ + @PostMapping("send-msg") + public Result sendMsg(@RequestBody List formDTOList) { + ValidatorUtils.validateEntity(formDTOList, SendSmsFormDTO.AddUserShowGroup.class, SendSmsFormDTO.AddUserInternalGroup.class); + sysSmsService.sendMsg(formDTOList); + return new Result(); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java index 1327aff692..0025768d94 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.entity.SysSmsEntity; @@ -77,5 +78,6 @@ public interface SysSmsService extends BaseService { **/ void projectSendMsg(List formDTOList); + void sendMsg(List formDTOList); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java index 1fc41bc718..b001fd7978 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.dao.SysSmsDao; import com.epmet.dto.SysSmsDTO; import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendSmsFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.result.CrmParameterResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; @@ -323,7 +324,32 @@ public class SysSmsServiceImpl extends BaseServiceImpl service.sendSmsMsg(sysSmsDTO); } } catch (Exception e) { - logger.warn(String.format("项目提醒发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage())); + logger.warn(String.format("发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage())); + } + } + + @Override + public void sendMsg(List formDTOList) { + try { + for(SendSmsFormDTO formDTO:formDTOList){ + if (StringUtils.isBlank(formDTO.getAliyunTemplateCode())) { + continue; + } + SysSmsDTO sysSmsDTO = new SysSmsDTO(); + sysSmsDTO.setMobile(formDTO.getMobile()); + sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode()); + sysSmsDTO.setCustomerId(formDTO.getCustomerId()); + try{ + String paramJson = new ObjectMapper().writeValueAsString(formDTO.getParamMap()); + sysSmsDTO.setParams(paramJson); + } catch (JsonProcessingException e) { + log.warn("sendMsg JsonProcessingException", e); + } + //推送短信 + this.sendMsg(sysSmsDTO); + } + } catch (Exception e) { + logger.error("sendMsg exception", e); } } diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java index f4b7ce74e9..0915ba9348 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java @@ -60,6 +60,11 @@ public class GovRoleDTO implements Serializable { */ private Long deptId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + /** * 删除标识:0.未删除 1.已删除 */ diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java new file mode 100644 index 0000000000..a79722fcd4 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GetCustomerMenuListFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/27 10:13 + * @DESC + */ +@Data +public class GetCustomerMenuListFormDTO implements Serializable { + + private static final long serialVersionUID = 8143715578744359728L; + + private String customerId; + + /** + * 0:菜单;1:按钮 + */ + private Integer type; + + private String language; + + private String tableName; +} diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java new file mode 100644 index 0000000000..7ff4de4670 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/form/GovRoleListDTO.java @@ -0,0 +1,49 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 角色管理 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-18 + */ +@Data +public class GovRoleListDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 角色名称 + */ + private String name; + + +} \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java index 36ccf542bb..074b6f0504 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java @@ -2,13 +2,14 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.GetStaffExistRoleFormDTO; -import com.epmet.dto.form.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; -import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.fallback.GovAccessFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -52,4 +53,19 @@ public interface GovAccessFeignClient { @PostMapping("/gov/access/govroleuser/getStaffExistRole") Result> getStaffExistRole(@RequestBody GetStaffExistRoleFormDTO formDTO); + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + @PostMapping("/gov/access/menu/getCustomerMenuList") + Result> getCustomerMenuList(@RequestBody GetCustomerMenuListFormDTO formDTO); + + @PostMapping("/gov/access/govrole/getgovrole") + Result getGovRole(@RequestBody GovRoleListDTO formDTO); + + @PostMapping("/gov/access/govrole/initgovrole/{customerId}") + Result initGovRole(@PathVariable(value = "customerId") String customerId); + } diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java index bfb9acbc3b..74ea29dbfe 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java @@ -3,10 +3,10 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.GetStaffExistRoleFormDTO; -import com.epmet.dto.form.InitDefaultOperationsFormDTO; -import com.epmet.dto.form.ListOpePermsFormDTO; -import com.epmet.dto.form.RoleUserFormDTO; +import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.feign.GovAccessFeignClient; @@ -40,4 +40,19 @@ public class GovAccessFeignClientFallBack implements GovAccessFeignClient { public Result> getStaffExistRole(GetStaffExistRoleFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getStaffExistRole", formDTO); } + + @Override + public Result> getCustomerMenuList(GetCustomerMenuListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getCustomerMenuList", formDTO); + } + + @Override + public Result getGovRole(GovRoleListDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getGovRole", formDTO); + } + + @Override + public Result initGovRole(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "initGovRole", customerId); + } } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java index ce89f2c7d8..cc94cd91f0 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovMenuController.java @@ -11,6 +11,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; import com.epmet.service.GovMenuService; import com.epmet.service.GovResourceService; import org.springframework.beans.factory.annotation.Autowired; @@ -155,4 +156,15 @@ public class GovMenuController { govMenuService.clearOperUserAccess(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId()); return new Result(); } + + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + @PostMapping("getCustomerMenuList") + public Result> getCustomerMenuList(@RequestBody GetCustomerMenuListFormDTO formDTO){ + return new Result>().ok(govMenuService.getCustomerMenuList(formDTO)); + } } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java index c11faba160..d56c78229c 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/GovRoleController.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.service.GovRoleMenuService; import com.epmet.service.GovRoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -102,4 +103,19 @@ public class GovRoleController { return new Result>().ok(data); } + @PostMapping("getgovrole") + public Result getGovRole(@RequestBody GovRoleListDTO fromDTO){ + return new Result().ok(govRoleService.getGovRole(fromDTO)); + } + + /** + * 数字平台客户初始化化设置默认角色数据 + * @Author sun + */ + @PostMapping("initgovrole/{customerId}") + public Result initGovRole(@PathVariable(value = "customerId") String customerId){ + govRoleService.initGovRole(customerId); + return new Result(); + } + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java index 526dbf9b37..a70c839a63 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/GovRoleDao.java @@ -9,6 +9,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.GovRoleDTO; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.entity.GovRoleEntity; import org.apache.ibatis.annotations.Mapper; @@ -33,4 +34,5 @@ public interface GovRoleDao extends BaseDao { */ List getCustomerRoles(@Param("customerId")String customerId); + GovRoleDTO selectGovRole(@Param("customerId") String customerId, @Param("name") String name); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java index 654bee9ce6..7db443d5db 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java @@ -46,4 +46,9 @@ public class GovRoleEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java index 64dcb0fb1c..3dc0ecd6aa 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java @@ -78,6 +78,11 @@ public class GovCustomerMenuRedis { redisUtils.deleteByPattern(key); } + public void delAllCustomerMenuFiveCoverage(){ + String key = RedisKeys.getCustomerMenuListFiveCoverage().concat("*"); + redisUtils.deleteByPattern(key); + } + private boolean checkParam(String customerId, Integer type) { if (StringUtils.isBlank(customerId) || type == null){ log.warn("checkParam fail, param is null"); diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java index fd09359551..127f271940 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovMenuService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.GovMenuDTO; +import com.epmet.dto.form.GetCustomerMenuListFormDTO; import com.epmet.entity.GovMenuEntity; import java.util.List; @@ -145,4 +146,12 @@ public interface GovMenuService extends BaseService { List getListPid(String pid); void clearOperUserAccess(String app, String client, String userId); + + /** + * Desc: 获取客户下的菜单 + * @param formDTO + * @author zxc + * @date 2022/7/27 10:22 + */ + List getCustomerMenuList(GetCustomerMenuListFormDTO formDTO); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java index 4fbf7e0f58..60b22b27b1 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/GovRoleService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.entity.GovRoleEntity; import java.util.List; @@ -92,4 +93,8 @@ public interface GovRoleService extends BaseService { * @date 2020-03-18 */ void delete(String[] ids); + + GovRoleDTO getGovRole(GovRoleListDTO fromDTO); + + void initGovRole(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java index a5933f8e58..592713fdf5 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java @@ -118,6 +118,7 @@ public class GovCustomerMenuServiceImpl extends BaseServiceImpl getCustomerMenuList(GetCustomerMenuListFormDTO formDTO) { + List customerMenuList = baseDao.getCustomerMenuList(formDTO.getCustomerId(), formDTO.getType(), HttpContextUtils.getLanguage(), formDTO.getTableName()); + if (CollectionUtils.isEmpty(customerMenuList)){ + return new ArrayList<>(); + } + return ConvertUtils.sourceToTarget(customerMenuList,GovMenuDTO.class); + + } + private void saveLanguage(String tableName, String tableId, String fieldName, String fieldValue){ govLanguageService.saveOrUpdate(tableName, tableId, fieldName, fieldValue, HttpContextUtils.getLanguage()); } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java index 72a542c9e7..3f7bae6b47 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java @@ -21,13 +21,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.GovRoleDao; import com.epmet.dto.GovRoleDTO; +import com.epmet.dto.form.GovRoleListDTO; import com.epmet.entity.GovRoleEntity; import com.epmet.redis.GovRoleRedis; import com.epmet.service.GovRoleMenuService; @@ -38,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -115,6 +117,11 @@ public class GovRoleServiceImpl extends BaseServiceImpl list = new ArrayList<>(); + GovRoleEntity entity = new GovRoleEntity(); + entity.setCustomerId(customerId); + entity.setName("联建单位负责人"); + entity.setRemark("默认角色"); + entity.setDefaultRole("1"); + list.add(entity); + GovRoleEntity entity1 = ConvertUtils.sourceToTarget(entity,GovRoleEntity.class); + entity1.setId(null); + entity1.setName("社区自组织负责人"); + list.add(entity1); + insertBatch(list); + } + } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql new file mode 100644 index 0000000000..3372836974 --- /dev/null +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/db/migration/V0.0.8__alter_gov_role.sql @@ -0,0 +1,4 @@ + + +ALTER TABLE `gov_role` +ADD COLUMN `default_role` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否默认角色【0:否 1:是】' AFTER `remark`; diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml index 3078bf4cdf..dafd0c54ce 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/GovRoleDao.xml @@ -12,4 +12,16 @@ WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} + + + diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index c1d52f8ea5..5105dd1279 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -61,15 +61,19 @@ + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml index 3e1e4f50c2..ba49028cf1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerDepartmentDao.xml @@ -27,7 +27,8 @@ IFNULL(code,'')AS 'code', IFNULL(contacts,'')AS 'contacts', IFNULL(mobile,'')AS 'mobile', - IFNULL(AREA_CODE,'')AS areaCode + IFNULL(AREA_CODE,'')AS areaCode, + IFNULL(DEPT_TYPE,'')AS deptType FROM customer_department WHERE del_flag = '0' AND agency_id = #{agencyId} @@ -46,7 +47,8 @@ @@ -472,8 +482,10 @@ AND grid.customer_id = #{customerId} ORDER BY - grid.customer_id, - CONVERT ( gridName USING gbk ) ASC + grid.sort, + CONVERT ( gridName USING gbk ) ASC, + grid.customer_id + LIMIT #{pageNo}, #{pageSize} @@ -486,7 +498,9 @@ SELECT a.id AS grid_id, a.customer_id, - concat( agency.fullname, '-', a.grid_name ) AS gridName + concat( agency.fullname, '-', a.grid_name ) AS gridName, + a.sort as sort, + agency.fullname as fullName FROM CUSTOMER_GRID a LEFT JOIN ( @@ -510,7 +524,7 @@ and a.ABANDON_FLAG='0' AND a.customer_id = #{customerId} ) AS c - ORDER BY CONVERT ( gridName USING gbk ) ASC + ORDER BY fullName,c.sort,CONVERT ( gridName USING gbk ) ASC LIMIT #{pageNo}, #{pageSize} diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml index db1fa9571b..5cfece3eb1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml @@ -196,4 +196,20 @@ WHERE DEL_FLAG = '0' AND GRID_ID = #{gridId} + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml index 2ed22909f9..73a921331c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCityManagementDao.xml @@ -17,6 +17,8 @@ address, longitude, latitude, + principal, + mobile, del_flag, revision, created_by, @@ -39,6 +41,8 @@ #{i.address}, #{i.longitude}, #{i.latitude}, + #{i.principal}, + #{i.mobile}, 0, 0, #{i.createdBy}, @@ -57,6 +61,8 @@ address = values(address), longitude = null, latitude = null, + principal = values(principal), + mobile = values(mobile), updated_by = values(updated_by), updated_time = NOW() @@ -74,7 +80,9 @@ CONCAT(capacity,'人') capacityName, address address, longitude longitude, - latitude latitude + latitude latitude, + PRINCIPAL AS principal, + MOBILE AS mobile FROM ic_city_management WHERE diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 2abb12cdda..8b900c90dd 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 @@ -541,5 +541,13 @@ and CODING=#{coding} + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml index 295ee69e36..ef81d4c77a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPublicServiceDao.xml @@ -17,6 +17,8 @@ address, longitude, latitude, + principal, + mobile, del_flag, revision, created_by, @@ -39,6 +41,8 @@ #{i.address}, #{i.longitude}, #{i.latitude}, + #{i.principal}, + #{i.mobile}, 0, 0, #{i.createdBy}, @@ -57,6 +61,8 @@ address = values(address), longitude = null, latitude = null, + principal = values(principal), + mobile = values(mobile), updated_by = values(updated_by), updated_time = NOW() @@ -74,7 +80,9 @@ CONCAT(capacity,'人') capacityName, address address, longitude longitude, - latitude latitude + latitude latitude, + PRINCIPAL AS principal, + MOBILE AS mobile FROM ic_public_service WHERE diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml new file mode 100644 index 0000000000..117786e879 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml new file mode 100644 index 0000000000..7461622a6e --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + DELETE + FROM + ic_work_log_file + WHERE + LOG_ID = #{logId} + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java index 22343e9007..c5330c05d8 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java @@ -84,5 +84,10 @@ public class IcEventListFormDTO implements Serializable { * 操作类型 0:取消标记 1:标记 */ private String type; + /** + * 事件分类 一类、二类Id集合 + */ + private List firstIdList; + private List secondIdList; } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java new file mode 100644 index 0000000000..5123bb789a --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java @@ -0,0 +1,76 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class OrgProjectListFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -3317804468566708838L; + + /** + * 组织/网格Id + */ + private String orgId; + /** + * 组织agency 网格grid + */ + private String orgType; + /** + * 上报渠道 【来源:议题issue 项目立项:agency 事件:ic_event 工作人员上报:work_event】 + */ + private String origin; + /** + * 上报人姓名 + */ + private String staffName; + /** + * 手机号 + */ + private String mobile; + //手机号对应工作人员Id集合 + private List staffIds; + /** + * 事件内容 + */ + private String backGround; + /** + * 事件类型 一类、二类Id集合 + */ + private List firstIdList; + private List secondIdList; + /** + * 事件状态 处理中 pending,已结案 closed + */ + private String status; + /** + * 解决状态 已解决 resolved,无需解决 unresolved + */ + private String closedStatus; + /** + * 起始上报时间 精确到秒 + */ + private String startTime; + /** + * 终止上报时间 精确到秒 + */ + private String endTime; + /** + * 处置选项 筛选自己参与的项目 有值就按staffId查 + */ + private String staffId; + + /** + * 分页参数 + */ + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + + //token中信息 + private String userId; + private String customerId; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java index 068d449a4a..05402a071d 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.List; @@ -29,6 +30,7 @@ public class ProjectResponseFormDTO implements Serializable { /** * 公开答复内容 */ + @NotBlank(message = "公开答复不能为空") @Length(max = 1000, message = "公开答复不能超过1000个字符") private String publicReply; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java index 9953e31be7..7d34814d54 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.List; @@ -30,6 +31,7 @@ public class ReturnFromDTO implements Serializable { /** * 公开答复内容 */ + @NotBlank(message = "公开答复不能为空") @Length(max = 1000, message = "公开答复不能超过1000个字符") private String publicReply; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java index f6033bdd6a..5eb7013261 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java @@ -22,6 +22,7 @@ public class TransferFormDTO implements Serializable { @NotBlank(message = "项目人员关联Id不能为空") private String projectStaffId; + // @NotBlank(message = "公开答复不能为空") @Length(max=1000,message = "公开答复内容不能超过1000位") private String publicReply; diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java index 65d28e6501..7b4b805e7e 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** @@ -16,6 +15,10 @@ public class IcEventProcessListResultDTO implements Serializable { private static final long serialVersionUID = 5762152044573235897L; + /** + * 项目ID + */ + private String projectId; /** * 进展Id */ @@ -39,6 +42,26 @@ public class IcEventProcessListResultDTO implements Serializable { * 公开答复 */ private String publicReply; + /** + * 是否发送到外部系统 0否 1是 + */ + private Integer isSend; + /** + * 内部备注 + */ + private String internalRemark; + /** + * 子节点 + */ + private List subProcess; + /** + * 公开答复附件 + */ + private List publicFile; + /** + * 内部备注附件 + */ + private List internalFile; /** * 协办单位类型,1社区自组织,2联建单位 */ @@ -69,4 +92,5 @@ public class IcEventProcessListResultDTO implements Serializable { */ private String actualServiceTime; + } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java new file mode 100644 index 0000000000..37a4f57ff7 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java @@ -0,0 +1,108 @@ +package com.epmet.dto.result; + +import com.epmet.dto.form.FileDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +public class OrgProjectListResultDTO implements Serializable { + + private static final long serialVersionUID = 2374701362057175388L; + + /** + * 项目ID + */ + private String projectId; + /** + * 所属组织ID + */ + private String agencyId; + /** + * 上报渠道 agency:网格上报 ic_event:居民上报 work_event:巡查上报 issue:议题上报 + */ + private String origin; + /** + * 一级分类 + */ + private String firstName; + private String firstId; + + /** + * 二级分类 + */ + private String secondName; + private String secondId; + + /** + * 事件标题 + */ + private String title; + + /** + * 所属网格 + */ + private String gridName; + private String gridId; + + /** + * 地址 + */ + private String address; + /** + * 报事人 + */ + private String staffName; + private String staffId; + /** + * 上报人电话 + */ + private String mobile; + /** + * 上报时间 + */ + private String createdTime; + /** + * 事件内容 + */ + private String backGround; + /** + * 结案说明 + */ + private String publicReply; + /** + * 办结时间 + */ + private String endTime; + /** + * 办结部门 + */ + private String departmentName; + + /** + * 处理建议[创建节点的公开答复] + */ + private String createPublicReply; + + /** + * 图片url集合 + */ + private List urlList; + private String imageUrl; + + /** + * 状态 处理中 pending,已结案 closed + */ + private String status; + private String statusValue; + private String closedStatus; + private String closedStatusValue; + /** + * 是否需要自己处理 true:需要 false:不需要 + */ + private Boolean processable = false; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 1242d3064b..7907ac7ec5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -175,5 +175,7 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/icEvent/closeprojectordemand") Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO); + @PostMapping("gov/project/project/staffpendingproject") + Result> staffPendingProject(@RequestBody ProjectListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 49a969f91e..51f7922ba5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -169,4 +169,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "closeProjectOrDemand",formDTO); } + + @Override + public Result> staffPendingProject(ProjectListFromDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "staffPendingProject",formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 03bb218bd1..02f813b232 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -17,11 +17,21 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -30,15 +40,20 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.excel.OrgProjectListExcel; import com.epmet.excel.ProjectExcel; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.ProjectService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; import java.util.List; import java.util.Map; @@ -51,6 +66,7 @@ import java.util.Map; */ @RestController @RequestMapping("project") +@Slf4j public class ProjectController { @Autowired @@ -379,4 +395,60 @@ public class ProjectController { ValidatorUtils.validateEntity(formDTO, SatisfactionEvaluationListFormDTO.SatisfactionEvaluationListForm.class); return new Result().ok(projectService.satisfactionEvaluationList(formDTO)); } + + /** + * Desc: 查询客户下工作人员是否有代办项目 + */ + @PostMapping("staffpendingproject") + public Result> staffPendingProject(@RequestBody ProjectListFromDTO fromDTO){ + return new Result>().ok(projectService.staffPendingProject(fromDTO)); + } + + /** + * Desc: 数字平台-项目管理列表 + */ + @PostMapping("orgprojectlist") + public Result> orgProjectList(@LoginUser TokenDto tokenDto, @RequestBody OrgProjectListFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(projectService.orgProjectList(formDTO)); + } + + @PostMapping("orgprojectexport") + public void orgProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgProjectListFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + try { + String fileName = "项目管理导出表" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), OrgProjectListExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = projectService.orgProjectList(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), OrgProjectListExcel.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 6c5e253e06..316fbc8de6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -299,4 +299,5 @@ public interface ProjectDao extends BaseDao { List getProjectManageList(ProjectManageListFormDTO formDTO); + List orgProjectList(OrgProjectListFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java index 78599eb5bf..82a89bf6fa 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java @@ -56,7 +56,7 @@ public class ProjectProcessEntity extends BaseEpmetEntity { * 负负责人ID */ private String staffId; - + private String staffName; /** * 处理:结案close,退回return,部门流转transfer,创建项目created */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java index 5bfc88d274..45c4bdad8d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java @@ -20,6 +20,10 @@ public class IcEventExcel { @ColumnWidth(20) private String gridName; + @ExcelProperty(value = "事件分类") + @ColumnWidth(25) + private String categoryName; + @ExcelProperty(value = "事件内容") @ColumnWidth(25) private String eventContent; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java new file mode 100644 index 0000000000..50d9020259 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java @@ -0,0 +1,127 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * 事件管理表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class OrgProjectListExcel { + + private static final long serialVersionUID = 2374701362057175388L; + + /** + * 上报渠道 agency:网格上报 resi_event:居民上报 work_event:巡查上报 issue:议题上报 + */ + @ExcelProperty(value = "上报渠道") + @ColumnWidth(25) + private String origin; + /** + * 一级分类名称 + */ + @ExcelProperty(value = "一级分类") + @ColumnWidth(20) + private String firstName; + + /** + * 二级分类名称 + */ + @ExcelProperty(value = "二级分类") + @ColumnWidth(20) + private String secondName; + + /** + * 事件标题 + */ + @ExcelProperty(value = "事件标题") + @ColumnWidth(30) + private String title; + + /** + * 所属网格 + */ + @ExcelProperty(value = "所属网格") + @ColumnWidth(30) + private String gridName; + + /** + * 地址 + */ + @ExcelProperty(value = "地址") + @ColumnWidth(30) + private String address; + /** + * 报事人 + */ + @ExcelProperty(value = "报事人") + @ColumnWidth(20) + private String staffName; + /** + * 上报人电话 + */ + @ExcelProperty(value = "上报人电话") + @ColumnWidth(20) + private String mobile; + /** + * 上报时间 + */ + @ExcelProperty(value = "上报时间") + @ColumnWidth(25) + private String createdTime; + /** + * 事件内容 + */ + @ExcelProperty(value = "事件内容") + @ColumnWidth(40) + private String backGround; + /** + * 结案说明 + */ + @ExcelProperty(value = "结案说明") + @ColumnWidth(30) + private String publicReply; + /** + * 办结时间 + */ + @ExcelProperty(value = "办结时间") + @ColumnWidth(25) + private String endTime; + /** + * 办结部门 + */ + @ExcelProperty(value = "办结部门") + @ColumnWidth(30) + private String departmentName; + + /** + * 处理建议[创建节点的公开答复] + */ + @ExcelProperty(value = "处理建议") + @ColumnWidth(25) + private String createPublicReply; + + /** + * 图片url集合 + */ + @ExcelProperty(value = "图片") + @ColumnWidth(30) + private String imageUrl; + + /** + * 状态 处理中 pending,已结案 closed + */ + @ExcelProperty(value = "状态") + @ColumnWidth(20) + private String status; + + @ExcelProperty(value = "解决状态") + @ColumnWidth(20) + private String closedStatus; + + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 82a88d3a5b..c57ac318a6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -395,4 +395,6 @@ public interface ProjectService extends BaseService { */ void projectListExport(HttpServletResponse response,ProjectManageListFormDTO formDTO) throws IOException; + List staffPendingProject(ProjectListFromDTO fromDTO); + PageData orgProjectList(OrgProjectListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java index 6deb8203fa..f11fd1044d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java @@ -125,6 +125,15 @@ public class IcEventServiceImpl extends BaseServiceImpl> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.IC_EVENT_SOURCE_TYPE.getCode()); Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //查询分类信息 + IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(formDTO.getCustomerId()); + Result> categoryRes = govIssueOpenFeignClient.getCategoryList(dictFormDto); + if (!categoryRes.success() || org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + Map categoryMap = categoryRes.getData().stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getId, o -> o, (o1, o2) -> o1)); + //封装数据 for (IcEventListResultDTO dto : list) { if (gridInfoMap.containsKey(dto.getGridId())) { @@ -133,6 +142,14 @@ public class IcEventServiceImpl extends BaseServiceImpl imageList = new ArrayList<>(); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 2b51ec32ce..b8b01aa5b9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -25,10 +25,13 @@ import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +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; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; @@ -250,6 +253,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl staffList = formDTO.getStaffList(); @@ -636,6 +644,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl NumConstant.ZERO) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index a9f4ca0093..0267a6f59b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -41,17 +41,13 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.*; import com.epmet.constant.*; -import com.epmet.dao.ProjectDao; -import com.epmet.dao.ProjectOrgRelationDao; -import com.epmet.dao.ProjectSatisfactionDetailDao; -import com.epmet.dao.ProjectSatisfactionStatisticsDao; +import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.excel.ProjectListExportExcel; import com.epmet.feign.*; -import com.epmet.redis.ProjectRedis; import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.TopicAttachmentFormDTO; @@ -158,6 +154,8 @@ public class ProjectServiceImpl extends BaseServiceImpl { if (issueDTO.getOrgId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -1403,6 +1408,7 @@ public class ProjectServiceImpl extends BaseServiceImpl staffPendingProject(ProjectListFromDTO fromDTO) { + fromDTO.setPageNo(0); + fromDTO.setPageSize(1); + List projectList = baseDao.selectPendList(fromDTO); + return projectList; + } + + + private CustomerStaffInfoCacheResult getStaffInfo(String customerId, String staffId) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + return staffInfo; + } + + @Override + public PageData orgProjectList(OrgProjectListFormDTO formDTO) { + //1.整理查询条件 + if(StringUtils.isEmpty(formDTO.getOrgType())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType("agency"); + } + if (StringUtils.isNoneBlank(formDTO.getMobile())) { + //有手机号筛选条件的选按手机号查找工作人员,在按staffId查项目 + GetByRealNamesFormDTO dto = new GetByRealNamesFormDTO(); + dto.setCustomerId(formDTO.getCustomerId()); + dto.setMobile(formDTO.getMobile()); + Result> staffResult = epmetUserOpenFeignClient.getByRealNames(dto); + if (!staffResult.success()) { + throw new RenException("获取工作人员基础信息失败......"); + } + if (null != staffResult.getData() && staffResult.getData().size() > NumConstant.ZERO) { + List staffIds = staffResult.getData().stream().map(CustomerStaffDTO::getUserId).collect(Collectors.toList()); + formDTO.setStaffIds(staffIds); + } + } + //2.按条件筛选数据 列表/导出查询 + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.orgProjectList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + if (list.size() < NumConstant.ONE) { + return new PageData<>(list, pageInfo.getTotal()); + } + //3.封装数据 + //3-1.查询分类信息 + IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(formDTO.getCustomerId()); + Result> categoryRes = govIssueOpenFeignClient.getCategoryList(dictFormDto); + if (!categoryRes.success() || org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + Map categoryMap = categoryRes.getData().stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getId, IssueProjectCategoryDictDTO::getCategoryName)); + //3-2.封装数据 + for (OrgProjectListResultDTO dto : list) { + //分类名称 + dto.setFirstName(categoryMap.get(dto.getFirstId())); + dto.setSecondName(categoryMap.get(dto.getSecondId())); + try { + //工作人员基础信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), dto.getStaffId()); + if (null != staffInfo) { + dto.setStaffName(staffInfo.getRealName()); + dto.setMobile(staffInfo.getMobile()); + } + //拼接网格名 + if (StringUtils.isNoneBlank(dto.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(dto.getGridId()); + if (null != gridInfo) { + dto.setGridName((StringUtils.isEmpty(gridInfo.getAllParentName()) ? "" : gridInfo.getAllParentName() + "-") + gridInfo.getGridNamePath()); + } + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId()); + if (null != agencyInfo) { + dto.setGridName((StringUtils.isEmpty(agencyInfo.getAllParentName()) ? "" : agencyInfo.getAllParentName() + "-") + agencyInfo.getOrganizationName()); + } + } + } catch (Exception e) { + log.warn("获取组织/网格缓存失败"); + } + //图片url拼接 + if (!org.springframework.util.CollectionUtils.isEmpty(dto.getUrlList())) { + String imageUrl = StringUtils.join(dto.getUrlList().stream().map(FileDTO::getUrl).collect(Collectors.toList()),"
"); + dto.setImageUrl(imageUrl); + } + //判断未结案项目是否涉及需要当前工作人员处理[列表查询需要,导出的不需要这段逻辑] + if (formDTO.getIsPage() && "pending".equals(dto.getStatusValue())) { + //查询当前工作人员是否存在当前项目的未处理节点 + ProjectStaffDTO projectStaff = projectStaffDao.selectLatestByProjectIdAndStaffId(dto.getProjectId(), formDTO.getUserId()); + if (null != projectStaff) { + dto.setProcessable(true); + } + } + + } + return new PageData<>(list, pageInfo.getTotal()); + } + + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 3007780212..edb4bc0f89 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -427,6 +427,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -437,6 +441,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -760,6 +765,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -770,6 +779,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -1281,6 +1291,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -1291,6 +1305,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql new file mode 100644 index 0000000000..2c2d53913c --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql @@ -0,0 +1,2 @@ +ALTER TABLE `epmet_gov_project`.`project_process` + ADD COLUMN `STAFF_NAME` varchar(64) NULL COMMENT '负责人姓名' AFTER `STAFF_ID`; \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml index af09210b52..ec9ff0745f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml @@ -218,6 +218,24 @@ AND ie.`status` = #{status} + + + #{firstId} + + + + + #{secondId} + + + + + #{firstId} + + + #{secondId} + + order by ie.created_time desc, ie.latest_operated_time desc diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 493f8bbf72..73c2f11384 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -620,4 +620,134 @@ GROUP BY t.PROJECT_ID ORDER BY p.CREATED_TIME DESC + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml index 8a774f3c21..6255a9b138 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml @@ -92,7 +92,11 @@ ID AS processId, OPERATION_NAME AS processName, UNIX_TIMESTAMP(created_time) AS processTime, - DEPARTMENT_NAME, + CASE + WHEN STAFF_NAME IS NULL THEN + DEPARTMENT_NAME + ELSE CONCAT( DEPARTMENT_NAME, '(', STAFF_NAME, ')' ) + END AS "departmentName", PUBLIC_REPLY, INTERNAL_REMARK, IS_SEND, diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java new file mode 100644 index 0000000000..df1781038f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java @@ -0,0 +1,8 @@ +package com.epmet.opendata.dto.constant; + +public interface DataWorkerConstant { + String ALL = "all"; + String CREATE = "create"; + String CHANGE = "change"; + String DELETE = "delete"; +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java new file mode 100644 index 0000000000..66903400f5 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.opendata.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/22 14:02 + */ +@Data +public class ExractGridInfoPingYinFormDTO implements Serializable { + + public interface GridInfo extends CustomerClientShowGroup { + } + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空", groups = {GridInfo.class}) + private String customerId = ""; + + /** + * 网格Id或者组织id + */ + private List orgIdList; + + /** + * 废弃:这个不对。操作类型【新增:add 修改删除:edit 初始化所有数据:all】 + * 操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】 + * 删除网格grid_delete,删除组织agency_delete + */ + @NotBlank(message = "操作类型【新增:add 修改删除:edit 初始化所有数据:all】不能为空", groups = {GridInfo.class}) + private String type; + + /** + * org 编辑之前的Code 如果有修改 则直接更新其他涉及到的表 + */ + private String oldCode; +} + diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java new file mode 100644 index 0000000000..399e11a7ee --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/GridStaffInfoFormDTO.java @@ -0,0 +1,17 @@ +package com.epmet.opendata.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class GridStaffInfoFormDTO implements Serializable { + + private static final long serialVersionUID = -5277855973512833181L; + + /** + * 客户Id + */ + private String customerId; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java new file mode 100644 index 0000000000..18b6bd212f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/HistoryDataSyncFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.opendata.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/22 13:23 + * @DESC + */ +@Data +public class HistoryDataSyncFormDTO implements Serializable { + + private static final long serialVersionUID = -58891187838165930L; + + private String customerId; +} diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java index 3e1b0b4dd1..2566ed3af0 100644 --- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java @@ -22,8 +22,9 @@ public class UpsertPatrolRecordForm extends PageFormDTO { /** * 记录id + * 2022-07-22 注释校验的原因是兼容初始化,当不传id时,查询全部 */ - @NotEmpty(message = "id不能为空",groups = AddGroup.class) +// @NotEmpty(message = "id不能为空",groups = AddGroup.class) private String id; /** diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java index 1efda7b0b3..7bb809d167 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; import com.epmet.opendata.service.BaseGridDailyworkService; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -42,6 +43,8 @@ public class BaseGridDailyworkController { @Autowired private BaseGridDailyworkService baseGridDailyworkService; + @Autowired + private GridstaffWorkInfoPingyinService gridstaffWorkInfoPingyinService; /** * @Author sun @@ -54,5 +57,18 @@ public class BaseGridDailyworkController { return new Result(); } + /** + * Desc: 2022-07-22 新表 例行工作同步 + * @param formDTO + * @author zxc + * @date 2022/7/22 11:16 + */ + @PostMapping("syncV2") + public Result getStaffBaseInfoV2(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + gridstaffWorkInfoPingyinService.insertBaseGridWorkRecordV2(formDTO); + return new Result(); + } + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java new file mode 100755 index 0000000000..cc44f4c5b8 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/EventreportPingyinController.java @@ -0,0 +1,39 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.opendata.service.EventreportPingyinService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("eventreportPingyin") +public class EventreportPingyinController { + @Resource + private EventreportPingyinService eventreportPingyinService; + + /** + * 获取上报事件 + * @Param formDTO + * @Return {@link Result} + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + @PostMapping("eventinfo") + public Result getEventinfo(@RequestBody(required = false) EventInfoFormDTO formDTO) { + eventreportPingyinService.getEventInfo(formDTO); + return new Result(); + } + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java new file mode 100755 index 0000000000..2a1ac80444 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridInfoPingyinController.java @@ -0,0 +1,48 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.service.GridInfoPingyinService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridInfoPingyin") +public class GridInfoPingyinController { + + @Autowired + private GridInfoPingyinService gridInfoPingyinService; + + /** + * @Author yzm + * @Description 组织基础信息中间库同步 + **/ + @PostMapping("extract-agency") + public Result getAgencyBaseInfo(@RequestBody ExractGridInfoPingYinFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ExractGridInfoPingYinFormDTO.GridInfo.class); + gridInfoPingyinService.exractAgency(formDTO); + return new Result(); + } + + /** + * @Author yzm + * @Description 网格基础信息中间库同步 + **/ + @PostMapping("extract-grid") + public Result getGridBaseInfo(@RequestBody ExractGridInfoPingYinFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ExractGridInfoPingYinFormDTO.GridInfo.class); + gridInfoPingyinService.exractGrid(formDTO); + return new Result(); + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java new file mode 100755 index 0000000000..fa6bf83195 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffInfoPingyinController.java @@ -0,0 +1,47 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.service.GridstaffInfoPingyinService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridstaffInfoPingyin") +public class GridstaffInfoPingyinController { + + @Autowired + private GridstaffInfoPingyinService gridstaffInfoPingyinService; + + + /** + * @Author sun + * @Description 网格员基本信息同步 + **/ + @PostMapping(value = "gridstaffinfo") + public Result gridStaffInfo(@RequestBody GridStaffInfoFormDTO formDTO) { + gridstaffInfoPingyinService.gridStaffInfo(formDTO); + return new Result(); + } + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java new file mode 100755 index 0000000000..3dd7d54d03 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/GridstaffWorkInfoPingyinController.java @@ -0,0 +1,32 @@ +package com.epmet.opendata.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@RestController +@RequestMapping("gridstaffWorkInfoPingyin") +public class GridstaffWorkInfoPingyinController { + + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java index f20f9612e7..936617ff7a 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java @@ -21,6 +21,9 @@ package com.epmet.opendata.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.opendata.entity.BaseGridDailyworkEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 巡查例行工作 @@ -31,4 +34,12 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BaseGridDailyworkDao extends BaseDao { + /** + * Desc: 每次查询1000 + * @param customerId + * @author zxc + * @date 2022/7/22 13:26 + */ + List getBaseGridDailyWork(@Param("customerId")String customerId,@Param("size")Integer size); + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java new file mode 100755 index 0000000000..b06a4939fd --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/EventreportPingyinDao.java @@ -0,0 +1,16 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface EventreportPingyinDao extends BaseDao { + void deleteAllData(); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java new file mode 100755 index 0000000000..0aae21b99f --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java @@ -0,0 +1,33 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridInfoPingyinDao extends BaseDao { + + int deleteAllAgencyData(); + + int deleteAllGridData(); + + List selectByGridCode(String gridCode); + + int updateSomeCol(@Param("gridCode") String gridCode, + @Param("gridName")String gridName, + @Param("gridLevel")String gridLevel, + @Param("lng")BigDecimal lng, + @Param("lat")BigDecimal lat); + + int deleteByCode(String gridCode); +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java new file mode 100755 index 0000000000..0df03ede97 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java @@ -0,0 +1,22 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridstaffInfoPingyinDao extends BaseDao { + + void del(); + + void edit(GridstaffInfoPingyinEntity entity); + + GridstaffInfoPingyinEntity selectByCodeAndStaffId(@Param("code") String code, @Param("staffId") String staffId); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java new file mode 100755 index 0000000000..997cbf7c8e --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffWorkInfoPingyinDao.java @@ -0,0 +1,18 @@ +package com.epmet.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Mapper +public interface GridstaffWorkInfoPingyinDao extends BaseDao { + + Integer delAllGridStaffWorkInfoPY(); + +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java index 5be0280fc9..76150c399d 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java @@ -17,6 +17,7 @@ package com.epmet.opendata.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -152,4 +153,22 @@ public class BaseGridDailyworkEntity implements Serializable { */ private Date updateTime; + @TableField(exist = false) + private String qxBm; + + /** + * 上报区县名称 + */ + @TableField(exist = false) + private String qxMc; + + @TableField(exist = false) + private String workType; + + @TableField(exist = false) + private String happenTimeString; + + @TableField(exist = false) + private Date recoredInsertTime; + } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java new file mode 100755 index 0000000000..79c2064f9d --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java @@ -0,0 +1,183 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("eventreport_pingyin") +public class EventreportPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码,参照《山东省社会治理网格化智能工作平台数据标准》 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 事件编号,可以使用区县系统中的事件唯一识别码 + */ + private String eventCode; + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类别,参照《山东省社会治理网格化智能工作平台数据标准》10.19 + */ + private String eventCategory; + + /** + * 上报网格员姓名 + */ + private String gridUserName; + + /** + * 上报网格员的身份证号码 + */ + private String gridUserCardid; + + /** + * 事件上报时间 + */ + private Date reportTime; + + /** + * 事件发生时间 + */ + private Date happenTime; + + /** + * 事件发生地点描述 + */ + private String happenPlace; + + /** + * 事件简述,详细一些,文字数量不少于10字 + */ + private String eventDescription; + + /** + * 事件办结方式,符合《标准》10.20 + */ + private String waysOfResolving; + + /** + * 必填 是否化解,填写Y、N(Y 是 N 否) + */ + private String successfulOrNo; + + /** + * 必填 是否办结,填写Y、N(Y 是 N 否) + */ + private String successfulDefuse; + + /** + * 办结层级,符合《标准》10.21 + */ + private String completeLevel; + + /** + * 办结时间,办结后填写 + */ + private Date completeTime; + + /** + * 事件发生位置经度,wgs84坐标系,请勿用火星坐标系,不得跑出辖区 + */ + private BigDecimal lng; + + /** + * 事件发生位置纬度,wgs84坐标系,请勿用火星坐标系,不得跑出辖区 + */ + private BigDecimal lat; + + /** + * 事件主要当事人姓名 + */ + private String name; + + /** + * 事件涉及人数 + */ + private Integer numberInvolved; + + /** + * 事件涉及单位名称 + */ + private String relatedUnites; + + /** + * 重点场所类别,符合《标准》10.25 + */ + private String keyAreaType; + + /** + * 宗教活动规模,符合《标准》10.26 + */ + private String religionScale; + + /** + * 宗教类别,符合《标准》10.27 + */ + private String religionType; + + /** + * 重点场所是否变动,填写Y、N(Y 是 N 否) + */ + private String isKeyareaState; + + /** + * 重点人员是否在当地,填写Y、N(Y 是 N 否) + */ + private String isKeypeopleLocate; + + /** + * 重点人员现状描述 + */ + private String keypeopleStatus; + + /** + * 例行工作编辑插入、更新时间,县市区填写 + */ + private Date updateTime; + + /** + * 事件是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java new file mode 100755 index 0000000000..d469072534 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java @@ -0,0 +1,98 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("grid_info_pingyin") +public class GridInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码,参照《标准》 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 网格层级,应符合10.1组织层级,所有层级上报 + */ + private String gridLevel; + + /** + * 专属网格类型,应符合10.28专属网格类型 + */ + private String gridType; + + /** + * 网格内人口规模,如果为农村和城市网格,字段必填,应符合10.29.网格内人口规模 + */ + private String populationSize; + + /** + * 是否成立网格党支部或网格党小组,Y:是、N:否 + */ + private String isPartyBranch; + + /** + * 网格党组织类型,是否成立党支部或党小组为是,此项必填。应符合10.37网格党组织类型。 + */ + private String partyBranchType; + + /** + * 网格中心点的经度 + */ + private BigDecimal lng; + + /** + * 网格中心点纬度 + */ + private BigDecimal lat; + + /** + * 网格颜色,如 #000000 + */ + private String gridColor; + + /** + * 网格信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 此网格是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java new file mode 100755 index 0000000000..ef5fc9d982 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java @@ -0,0 +1,152 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("gridstaff_info_pingyin") +public class GridstaffInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 区县系统中的网格员唯一编码 + */ + private String gridUserId; + + /** + * 网格编码 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + /** + * 网格员姓名 + */ + private String nickName; + + /** + * 网格员身份证号码 + */ + private String cardNum; + + /** + * 网格员类型,符合《标准》10.3 + */ + private String userType; + + /** + * 网格员手机号 + */ + private String phonenumber; + + /** + * 网格员性别,应符合10.31中性别,不要有 其他 + */ + private String sex; + + /** + * 网格员民族,应符合10.32中民族 + */ + private String nation; + + /** + * 网格员政治面貌,符合GB/T 4762 + */ + private String paerty; + + /** + * 网格员出生日期 + */ + private Date birthday; + + /** + * 网格员学历,符合GB/T4658,博士、研究生会进行预警 + */ + private String education; + + /** + * 入职时间,格式为“YYYY-MM-DD” + */ + private Date entryDate; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date leaveDate; + + /** + * 网格员年收入,含福利、补贴和保险等,应符合10.30中的网格员年收入,专职低于1w5、兼职大于3w会预警 + */ + private String income; + + /** + * 是否社区(村)两委委员,Y:是、N:否 + */ + private String isCommittee; + + /** + * 是否社区工作者,Y:是、N:否 + */ + private String isCommunityWorkers; + + /** + * 是否社会工作者,Y:是、N:否 + */ + private String isSocialWorker; + + /** + * 是否村(居)民小组长,Y:是、N:否 + */ + private String isVillageLeader; + + /** + * 是否警务助理,Y:是、N:否 + */ + private String isPoliceAssistant; + + /** + * 是否人民调解员,Y:是、N:否 + */ + private String isMediator; + + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java new file mode 100755 index 0000000000..acc8721b10 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffWorkInfoPingyinEntity.java @@ -0,0 +1,94 @@ +package com.epmet.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("gridstaff_work_info_pingyin") +public class GridstaffWorkInfoPingyinEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 上报区县代码,参照6位行政区划代码 + */ + private String qxBm; + + /** + * 上报区县名称 + */ + private String qxMc; + + /** + * 网格编码 + */ + private String gridCode; + + /** + * 网格名称 + */ + private String gridName; + + @TableField(exist = false) + private String gridId; + + /** + * 例行工作类型,应符合10.27中的例行工作类型 + */ + private String workType; + + /** + * 发生日期,格式为“YYYY-MM-DD” + */ + private Date happenTime; + + /** + * 基础信息主键,出租房巡查、重点场所巡查、刑满释放人员、社区矫正、吸毒人员、信访人员重点青少年和精神障碍者必填 + */ + private Integer baseInfoId; + + /** + * 有无变动(异常),Y:是、N:否 + */ + private String workResult; + + /** + * 说明 + */ + private String workContent; + + /** + * 例行工作编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 例行工作是否删除,Y:是、N:否 + */ + private String isDel; + + /** + * 入库时间,自动生成,请勿设置 + */ + private Date recoredInsertTime; + + @TableField(exist = false) + private String happenTimeString; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java index 928489f8b0..d1b1bf0912 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java @@ -10,8 +10,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; -import com.epmet.opendata.dto.form.ExDeptFormDTO; -import com.epmet.opendata.service.ExDeptService; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.service.GridInfoPingyinService; import org.apache.commons.lang.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -37,12 +37,12 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent private RedisUtils redisUtils; private DistributedLock distributedLock; - + public OpenDataOrgChangeEventListener(DistributedLock distributedLock) { this.distributedLock = distributedLock; } - - + + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -51,7 +51,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent } try { - msgs.forEach(msg -> consumeMessage(msg)); + msgs.forEach(this::consumeMessage); } catch (Exception e) { logger.error(ExceptionUtils.getErrorStackTrace(e)); return ConsumeConcurrentlyStatus.RECONSUME_LATER; @@ -78,17 +78,34 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent lock = distributedLock.getLock(String.format("lock:open_data_org:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); - ExDeptFormDTO dto = new ExDeptFormDTO(); - dto.setCustomerId(obj.getCustomerId()); - dto.setType(obj.getType()); + // ExDeptFormDTO dto = new ExDeptFormDTO(); + // dto.setCustomerId(obj.getCustomerId()); + // dto.setType(obj.getType()); + // List orgIdList = new ArrayList<>(); + // orgIdList.add(obj.getOrgId()); + // dto.setOrgIdList(orgIdList); + // if ("agency".equals(obj.getOrgType())) { + // SpringContextUtils.getBean(ExDeptService.class).getAgencyBaseInfo(dto); + // } else { + // SpringContextUtils.getBean(ExDeptService.class).getGridBaseInfo(dto); + // } + + // 抽取到grid_info_pingyin + ExractGridInfoPingYinFormDTO extractFormDto = new ExractGridInfoPingYinFormDTO(); + extractFormDto.setCustomerId(obj.getCustomerId()); + extractFormDto.setType(obj.getType()); + extractFormDto.setOldCode(obj.getOldCode()); List orgIdList = new ArrayList<>(); - orgIdList.add(obj.getOrgId()); - dto.setOrgIdList(orgIdList); + if(StringUtils.isNotBlank(obj.getOrgId())){ + orgIdList.add(obj.getOrgId()); + } + extractFormDto.setOrgIdList(orgIdList); if ("agency".equals(obj.getOrgType())) { - SpringContextUtils.getBean(ExDeptService.class).getAgencyBaseInfo(dto); + SpringContextUtils.getBean(GridInfoPingyinService.class).exractAgency(extractFormDto); } else { - SpringContextUtils.getBean(ExDeptService.class).getGridBaseInfo(dto); + SpringContextUtils.getBean(GridInfoPingyinService.class).exractGrid(extractFormDto); } + } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-组织信息变更-同步信息到中间库失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java index d168875abb..5c3bbb4404 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java @@ -15,7 +15,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.constant.SystemMessageType; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; -import com.epmet.opendata.service.BaseGridDailyworkService; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; @@ -98,7 +98,8 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr aBoolean = true; break; case SystemMessageType.PATROL_ROUTINE_WORK_ADD: - aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecord(patrolRecordForm); +// aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecord(patrolRecordForm); + aBoolean = SpringContextUtils.getBean(GridstaffWorkInfoPingyinService.class).insertBaseGridWorkRecordV2(patrolRecordForm); break; default: log.error("错误的消息类型:{}", tags); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java index 097235e7e6..1912fc95a3 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java @@ -11,7 +11,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.dto.basereport.form.EventInfoFormDTO; -import com.epmet.opendata.service.BaseDisputeProcessService; +import com.epmet.opendata.service.EventreportPingyinService; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -75,7 +75,8 @@ public class OpenDataProjectChangeEventListener implements MessageListenerConcur try { lock = distributedLock.getLock(String.format("lock:open_data_project:%s", obj.getProjectId()), 30L, 30L, TimeUnit.SECONDS); - SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(formDTO); + //SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(formDTO); + SpringContextUtils.getBean(EventreportPingyinService.class).getEventInfo(formDTO); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-项目信息变更-上报项目信息失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java index ad7bd79b62..b2d9bd4976 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; import com.epmet.opendata.service.ExUserService; +import com.epmet.opendata.service.GridstaffInfoPingyinService; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -83,10 +84,12 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre StaffBaseInfoFormDTO dto = new StaffBaseInfoFormDTO(); dto.setCustomerId(obj.getCustomerId()); dto.setType(obj.getType()); - List staffIdList = new ArrayList<>(); + /*List staffIdList = new ArrayList<>(); staffIdList.add(obj.getOrgId()); dto.setStaffIdList(staffIdList); - SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto); + SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto);*/ + dto.setStaffIdList(obj.getStaffIdList()); + SpringContextUtils.getBean(GridstaffInfoPingyinService.class).getStaffBaseInfo(dto); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-工作人员信息变更-初始化客户组织失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java new file mode 100755 index 0000000000..d2fe6c88f2 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/EventreportPingyinService.java @@ -0,0 +1,23 @@ +package com.epmet.opendata.service; + + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface EventreportPingyinService extends BaseService { + /** + * 获取上报事件 + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + void getEventInfo(EventInfoFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java new file mode 100755 index 0000000000..3feaabc3eb --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridInfoPingyinService.java @@ -0,0 +1,27 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.GridInfoPingyinEntity; + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridInfoPingyinService extends BaseService { + /** + * 抽取customer_agency到grid_info_pingyin表 + * + * @param formDTO + */ + void exractAgency(ExractGridInfoPingYinFormDTO formDTO); + + /** + * 抽取customer_grid到grid_info_pingyin表 + * + * @param formDTO + */ + void exractGrid(ExractGridInfoPingYinFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java new file mode 100755 index 0000000000..9164dad0ac --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java @@ -0,0 +1,25 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; + +import java.util.Map; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridstaffInfoPingyinService extends BaseService { + + void gridStaffInfo(GridStaffInfoFormDTO formDTO); + + /** + * @Author sun + * @Description 网格员信息中间库同步 + **/ + void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java new file mode 100755 index 0000000000..5961e3355e --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java @@ -0,0 +1,22 @@ +package com.epmet.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +public interface GridstaffWorkInfoPingyinService extends BaseService { + /** + * Desc: 2022-07-22 新表 例行工作同步 + * @param formDTO + * @author zxc + * @date 2022/7/22 11:16 + */ + Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm formDTO); + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java new file mode 100755 index 0000000000..0fe4ff1620 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java @@ -0,0 +1,180 @@ +package com.epmet.opendata.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.StrUtil; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.dto.basereport.result.EventInfoResultDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.service.EventreportPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 平阴区事件上报中间表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Slf4j +@Service +public class EventreportPingyinServiceImpl extends BaseServiceImpl implements EventreportPingyinService { + @Resource + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + @Resource + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + + /** + * 获取上报事件 + * + * @param formDTO + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2021/10/15 16:59 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void getEventInfo(EventInfoFormDTO formDTO) { + formDTO.setPageSize(1000); + long start = System.currentTimeMillis(); + if (NumConstant.ONE_STR.equals(formDTO.getInitFlag())) { + //清空表里数据 + baseDao.deleteAllData(); + } + Result> result = dataStatisticalOpenFeignClient.getEventInfoV2(formDTO); + if (!result.success()) { + log.error("getEventinfo cost:{}ms",System.currentTimeMillis()-start); + throw new RenException(result.getInternalMsg()); + } + List list = result.getData(); + saveEvent(list, formDTO.getInitFlag()); + //分批次循环 + while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()) { + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + result = dataStatisticalOpenFeignClient.getEventInfoV2(formDTO); + list = result.getData(); + saveEvent(list, formDTO.getInitFlag()); + } + } + + private void saveEvent(List list, String initFlag) { + if (CollectionUtils.isEmpty(list)) { + log.warn("no event data to save table base_conflicts_resolve"); + return; + } + List entityList = list.stream().map(item -> { + EventreportPingyinEntity entity = new EventreportPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(item.getOrgCode()); + entity.setGridName(item.getOrgName()); + entity.setEventCode(("py_").concat(item.getId())); + + String eventName = StrUtil.filterEmoji(item.getEventName()); + entity.setEventName(eventName); + entity.setEventCategory(item.getEventCategory()); + entity.setGridUserCardid(""); + entity.setGridUserName(""); + LambdaQueryWrapper staffWrapper = new LambdaQueryWrapper<>(); + staffWrapper.eq(GridstaffInfoPingyinEntity::getGridUserId, item.getReporterId()); + List staffList = gridstaffInfoPingyinDao.selectList(staffWrapper); + if (CollectionUtils.isNotEmpty(staffList)) { + entity.setGridUserCardid(staffList.get(NumConstant.ZERO).getCardNum()); + entity.setGridUserName(staffList.get(NumConstant.ZERO).getNickName()); + } else { + staffWrapper = new LambdaQueryWrapper<>(); + staffWrapper.eq(GridstaffInfoPingyinEntity::getGridCode, item.getOrgCode()); + staffList = gridstaffInfoPingyinDao.selectList(staffWrapper); + if (CollectionUtils.isNotEmpty(staffList)) { + for (GridstaffInfoPingyinEntity staff : staffList) { + entity.setGridUserCardid(staff.getCardNum()); + entity.setGridUserName(staff.getNickName()); + if (StringUtils.isNotBlank(staff.getCardNum())) { + break; + } + } + } + } + entity.setReportTime(item.getReportTime()); + entity.setHappenTime(item.getHappenDate()); + entity.setHappenPlace(item.getHappenPlace()); + String eventDescription = item.getEventDescription(); + //如果不为空 长度控制3000以内 + if (StringUtils.isNotBlank(eventDescription) && eventDescription.length() > NumConstant.THREE_THOUSAND) { + eventDescription = eventDescription.substring(NumConstant.ZERO, NumConstant.THREE_THOUSAND); + } + eventDescription = StrUtil.filterEmoji(eventDescription); + entity.setEventDescription(eventDescription); + entity.setWaysOfResolving(item.getWaysOfResolving()); + //业务不确定 办结状态和化解状态同步修改 + if (("03").equals(item.getStatus())) { + entity.setSuccessfulOrNo("Y"); + entity.setSuccessfulDefuse("Y"); + } else { + entity.setSuccessfulOrNo("N"); + entity.setSuccessfulDefuse("N"); + } + entity.setCompleteLevel(item.getCompleteLevel()); + entity.setCompleteTime(item.getCompleteTime()); + entity.setLng(item.getLng()); + entity.setLat(item.getLat()); + entity.setIsDel("N"); + entity.setUpdateTime(new Date()); + + //业务不包含 一级分类里 如果是03 矛盾纠纷 则涉及人数写2(目前业务不支持 所以应产品需求 填2) + if ("03".equals(item.getParentEventCategory())) { + entity.setNumberInvolved(NumConstant.TWO); + } + return entity; + }).collect(Collectors.toList()); + log.info("数据拼装结果" + entityList); + //过滤掉必填字段为空的数据 + entityList = entityList.stream().filter(item -> + StringUtils.isNotBlank(item.getGridCode()) && StringUtils.isNotBlank(item.getGridName()) && + StringUtils.isNotBlank(item.getEventCategory()) && StringUtils.isNotBlank(item.getGridUserName()) && + StringUtils.isNotBlank(item.getGridUserCardid()) && null != item.getReportTime() && + null != item.getHappenTime() && StringUtils.isNotBlank(item.getHappenPlace()) && + StringUtils.isNotBlank(item.getGridUserCardid()) && StringUtils.isNotBlank(item.getEventDescription()) && + StringUtils.isNotBlank(item.getWaysOfResolving()) && null != item.getLng() && null != item.getLat() + ).collect(Collectors.toList()); + log.info("数据过滤结果" + entityList.size()); + if (NumConstant.ZERO_STR.equals(initFlag)) { + entityList.forEach(entity -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EventreportPingyinEntity::getEventCode, entity.getEventCode()); + EventreportPingyinEntity event = baseDao.selectOne(wrapper); + if (null == event) { + baseDao.insert(entity); + } else { + baseDao.update(entity, wrapper); + } + }); + } else { + for (EventreportPingyinEntity entity : entityList) { + try { + baseDao.insert(entity); + } catch (Exception e) { + log.error(e.toString()); + } + } + } + + + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..9958530251 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java @@ -0,0 +1,297 @@ +package com.epmet.opendata.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.Constant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.IndexCalConstant; +import com.epmet.dto.org.form.GridBaseInfoFormDTO; +import com.epmet.dto.org.result.CustomerAgencyDTO; +import com.epmet.dto.org.result.CustomerGridDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; +import com.epmet.opendata.dao.GridInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; +import com.epmet.opendata.dto.constant.DataWorkerConstant; +import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; +import com.epmet.opendata.entity.GridInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import com.epmet.opendata.service.GridInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * 平阴区网格表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Slf4j +@Service +public class GridInfoPingyinServiceImpl extends BaseServiceImpl implements GridInfoPingyinService { + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + @Autowired + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + @Autowired + private GridstaffWorkInfoPingyinDao gridstaffWorkInfoPingyinDao; + @Autowired + private EventreportPingyinDao eventreportPingyinDao; + + /** + * 抽取customer_agency到grid_info_pingyin表 + * + * @param formDTO + */ + @Override + public void exractAgency(ExractGridInfoPingYinFormDTO formDTO) { + // 1.查询组织基础信息,customer_agency.code为空的不抽取 + com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class); + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + formDTO1.setDelFlag("0"); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) { + formDTO1.setDelFlag(NumConstant.ONE_STR); + } + Result> result = dataStatisticalOpenFeignClient.getAgencyBaseInfo(formDTO1); + if (!result.success()) { + throw new RenException(result.getInternalMsg()); + } + if (null == result.getData() || result.getData().size() < NumConstant.ONE) { + return; + } + // 2.封装数据 + List gridInfoList = new ArrayList<>(); + result.getData().forEach(ag -> { + GridInfoPingyinEntity entity = new GridInfoPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(ag.getCode()); + entity.setGridName(ag.getOrganizationName()); + entity.setIsDel("N"); + if (Constant.DISTRICT.equals(ag.getLevel())) { + entity.setGridLevel("03"); + } else if (Constant.STREET.equals(ag.getLevel())) { + entity.setGridLevel("04"); + } else if (Constant.COMMUNITY.equals(ag.getLevel())) { + entity.setGridLevel("06"); + } + entity.setLat(new BigDecimal(ag.getLatitude())); + entity.setLng(new BigDecimal(ag.getLongitude())); + gridInfoList.add(entity); + }); + // 3、初始化传all;新增或者编辑 + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + // 全删,全增 + baseDao.deleteAllAgencyData(); + // 一次100 + List> partition = ListUtils.partition(gridInfoList, IndexCalConstant.INSERT_SIZE); + partition.forEach(list -> { + this.insertBatch(list); + }); + + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + // 单独新增组织 + this.insertBatch(gridInfoList); + + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + + // 修改组织时,先根据code查询,如果有数据,更新 + for (GridInfoPingyinEntity entity : gridInfoList) { + //网格code变更了 则将旧的code 的数据删除状态设置为Y + if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){ + baseDao.deleteByCode(formDTO.getOldCode()); + } + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + + if (CollectionUtils.isNotEmpty(orginList)) { + + // 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度 + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat()); + } + + } else { + // 插入 + baseDao.insert(entity); + } + } + }else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){ + // 要删除的组织id + for (GridInfoPingyinEntity entity : gridInfoList) { + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + if (CollectionUtils.isNotEmpty(orginList)) { + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.deleteByCode(oigin.getGridCode()); + } + } + } + } + + } + + /** + * 抽取customer_grid到grid_info_pingyin表 + * + * @param formDTO + */ + @Override + public void exractGrid(ExractGridInfoPingYinFormDTO formDTO) { + // 1.查询网格基础信息 + GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, GridBaseInfoFormDTO.class); + if (StringUtils.isBlank(formDTO.getType())||DataWorkerConstant.ALL.equals(formDTO.getType())) { + formDTO1.setDelFlag("0"); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + formDTO1.setDelFlag(NumConstant.ZERO_STR); + } else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) { + formDTO1.setDelFlag(NumConstant.ONE_STR); + } + Result> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1); + if (!result.success()) { + log.warn("根据网格Id 没有找到网格 等待再次调用"); + throw new RenException(result.getInternalMsg()); + } + if (null == result.getData() || result.getData().size() < NumConstant.ONE) { + return; + } + + // 2.封装数据 + List gridInfoList = new ArrayList<>(); + result.getData().forEach(ag -> { + GridInfoPingyinEntity entity = new GridInfoPingyinEntity(); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(ag.getCode()); + entity.setGridName(ag.getGridName()); + entity.setGridLevel("07"); + entity.setIsDel("N"); + entity.setUpdateTime(new Date()); + if (ag.getLatitude().length() > 10) { + entity.setLat(new BigDecimal(ag.getLatitude().substring(0, 10))); + } else { + entity.setLat(new BigDecimal(ag.getLatitude())); + } + if (ag.getLongitude().length() > 10) { + entity.setLng(new BigDecimal(ag.getLongitude().substring(0, 10))); + } else { + entity.setLng(new BigDecimal(ag.getLongitude())); + } + gridInfoList.add(entity); + }); + // 3、初始化传all;新增或者编辑 + if (DataWorkerConstant.ALL.equals(formDTO.getType())) { + // 全删,全增 + baseDao.deleteAllGridData(); + // 一次100 + List> partition = ListUtils.partition(gridInfoList, IndexCalConstant.INSERT_SIZE); + partition.forEach(list -> { + this.insertBatch(list); + }); + } else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) { + // 单独新增组织 + this.insertBatch(gridInfoList); + + } else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) { + // 修改组织时,先根据code查询,如果有数据,更新 + for (GridInfoPingyinEntity entity : gridInfoList) { + //code 变更了 + gridCodeChanged(formDTO, entity); + //根据修改后的网格code 获取网格信息 + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + + if (CollectionUtils.isNotEmpty(orginList)) { + + // 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度 + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat()); + } + + } else { + // 插入 + baseDao.insert(entity); + } + } + }else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){ + // 要删除的网格id + for (GridInfoPingyinEntity entity : gridInfoList) { + List orginList = baseDao.selectByGridCode(entity.getGridCode()); + if (CollectionUtils.isNotEmpty(orginList)) { + for (GridInfoPingyinEntity oigin : orginList) { + baseDao.deleteByCode(oigin.getGridCode()); + } + } + } + } + + } + + /** + * desc:判断是否需要网格Code 如果修改了则 同步修改其他的相关业务数据。 + * @param formDTO + * @param entity + */ + private void gridCodeChanged(ExractGridInfoPingYinFormDTO formDTO, GridInfoPingyinEntity entity) { + if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){ + GridInfoPingyinEntity gridInfoEntity = new GridInfoPingyinEntity(); + gridInfoEntity.setGridCode(entity.getGridCode()); + gridInfoEntity.setUpdateTime(new Date()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(GridInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + int update = baseDao.update(gridInfoEntity, updateWrapper); + log.info("code changed gridinfo effect row:{}",update); + //更新完 网格code 去更新其他的业务【工作人员、例行工作、事件】数据对应的code + + GridstaffInfoPingyinEntity staffInfo = new GridstaffInfoPingyinEntity(); + staffInfo.setGridCode(entity.getGridCode()); + staffInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper staffInfoWrapper = new LambdaUpdateWrapper<>(); + staffInfoWrapper.eq(GridstaffInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffInfoPingyinDao.update(staffInfo, staffInfoWrapper); + log.info("code changed gridStaffInfo effect row:{}",update); + + GridstaffWorkInfoPingyinEntity workInfo = new GridstaffWorkInfoPingyinEntity(); + workInfo.setGridCode(entity.getGridCode()); + workInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper workInfoWrapper = new LambdaUpdateWrapper<>(); + workInfoWrapper.eq(GridstaffWorkInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffWorkInfoPingyinDao.update(workInfo, workInfoWrapper); + log.info("code changed staffWorkInfo effect row:{}",update); + + EventreportPingyinEntity eventEntity = new EventreportPingyinEntity(); + eventEntity.setGridCode(entity.getGridCode()); + eventEntity.setUpdateTime(new Date()); + + LambdaUpdateWrapper eventWrapper = new LambdaUpdateWrapper<>(); + eventWrapper.eq(EventreportPingyinEntity::getGridCode,formDTO.getOldCode()); + update = eventreportPingyinDao.update(eventEntity, eventWrapper); + log.info("code changed eventreport effect row:{}",update); + + } + } + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..3f7fffb0ec --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java @@ -0,0 +1,147 @@ +package com.epmet.opendata.service.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CustomerGridStaffListFormDTO; +import com.epmet.dto.form.GridStaffUploadtFormDTO; +import com.epmet.dto.result.CustomerGridStaffListResultDTO; +import com.epmet.dto.result.GridStaffUploadResultDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dto.form.GridStaffInfoFormDTO; +import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.service.GridstaffInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 平阴区网格员基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Service +@Slf4j +public class GridstaffInfoPingyinServiceImpl extends BaseServiceImpl implements GridstaffInfoPingyinService { + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + + @Override + @Transactional(rollbackFor = Exception.class) + public void gridStaffInfo(GridStaffInfoFormDTO formDTO) { + //1.查询客户网格下工作人员【存在网格code的网格下的工作人员】 + CustomerGridStaffListFormDTO org = new CustomerGridStaffListFormDTO(); + org.setCustomerId(formDTO.getCustomerId()); + Result> orgList = govOrgOpenFeignClient.gridStaff(org); + if (!orgList.success()) { + throw new RenException("查询客户网格下工作人员列表信息失败:".concat(orgList.toString())); + } + log.info(String.format("网格员数据同步,查询到网格下工作人员记录共%s条", orgList.getData().size())); + + //2.查询客户工作人员基础信息【客户下未被禁用的有效工作人员信息】 + GridStaffUploadtFormDTO user = new GridStaffUploadtFormDTO(); + user.setCustomerId(formDTO.getCustomerId()); + Result> userList = epmetUserOpenFeignClient.customerStaff(user); + if (!userList.success()) { + throw new RenException("查询客户下工作人员基础信息失败:".concat(userList.toString())); + } + log.info(String.format("网格员数据同步,查询到客户下工作人员基础信息记录共%s条", userList.getData().size())); + Map map = userList.getData().stream().collect(Collectors.toMap(GridStaffUploadResultDTO::getGridUserId, m -> m, (k1, k2) -> k1)); + + //3.拼装数据 + List entityList = new ArrayList(); + if (!CollectionUtils.isEmpty(orgList.getData()) && !CollectionUtils.isEmpty(userList.getData())) { + for (CustomerGridStaffListResultDTO gs : orgList.getData()) { + if (map.containsKey(gs.getGridUserId())) { + GridStaffUploadResultDTO us = map.get(gs.getGridUserId()); + GridstaffInfoPingyinEntity entity = ConvertUtils.sourceToTarget(us, GridstaffInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(gs.getGridCode()); + entity.setGridName(gs.getGridName()); + entity.setSex("0".equals(us.getSex()) ? "9" : us.getSex()); + if ("Y".equals(entity.getIsLeave())) { + entity.setLeaveDate(us.getDate()); + } + entityList.add(entity); + } + } + } + + //4.删除表中历史数据 + baseDao.del(); + + //5.批量新增数据 + log.info(String.format("网格员数据同步,本次共同步%s条记录", entityList.size())); + insertBatch(entityList); + + } + + + /** + * @Author sun + * @Description 网格员信息中间库同步 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO) { + log.info("网格工作人员信息同步,入参对象值: " + JSON.toJSONString(formDTO, true)); + //1.查询工作人员网格信息和基础信息 + com.epmet.dto.user.form.StaffBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.user.form.StaffBaseInfoFormDTO.class); + Result> result = dataStatisticalOpenFeignClient.getStaffBaseInfo(formDTO1); + if (!result.success()) { + throw new RenException(result.getInternalMsg()); + } + if (CollectionUtils.isEmpty(result.getData())) { + return; + } + + //2.中间库新增/修改数据【基本一个人一条数据,程序按批量处理】 + result.getData().forEach(r -> { + GridstaffInfoPingyinEntity entity = ConvertUtils.sourceToTarget(r, GridstaffInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setGridCode(r.getCode()); + entity.setGridName(r.getGridName()); + entity.setIsLeave(r.getIsLeave()); + entity.setLeaveDate(r.getLeaveDate()); + entity.setGridUserId(r.getStaffId()); + entity.setCardNum(r.getIdCard()); + //按网格查询人员是否存在,存在更新否则新增 + GridstaffInfoPingyinEntity gs = baseDao.selectByCodeAndStaffId(r.getCode(), r.getStaffId()); + log.info(String.format("网格工作人员信息同步,当前操作人员信息,姓名:%s staffId:%s", entity.getNickName(), entity.getGridUserId())); + if (null != gs) { + entity.setUpdateTime(new Date()); + baseDao.edit(entity); + } else { + insert(entity); + } + }); + + } + + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java new file mode 100755 index 0000000000..01ba8bd7b6 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java @@ -0,0 +1,149 @@ +package com.epmet.opendata.service.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.StrUtil; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.dto.form.patrol.PatrolQueryFormDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; +import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; +import com.epmet.opendata.service.GridstaffWorkInfoPingyinService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 平阴区网格员例行工作信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-07-22 + */ +@Slf4j +@Service +public class GridstaffWorkInfoPingyinServiceImpl extends BaseServiceImpl implements GridstaffWorkInfoPingyinService { + + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + @Override + public Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm patrolRecordForm) { + log.info("insertBaseGridWorkRecordV2 param:{}", JSON.toJSONString(patrolRecordForm)); + ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class); + // 构建传参 + PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm); + if (StringUtils.isBlank(patrolRecordForm.getId())) { + Integer row; + do { + row = baseDao.delAllGridStaffWorkInfoPY(); + } while (row == NumConstant.ONE_THOUSAND); + } + List data; + do { + Result> record = epmetUserOpenFeignClient.getPatrolRoutineWorkListV2(midPatrolFormDTO); + if (record == null || !record.success()) { + log.warn("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode()); + } + data = record.getData(); + if (CollectionUtils.isEmpty(data)) { + //数据已被删除了 + log.warn("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO)); + int effectRow = baseDao.deleteById(patrolRecordForm.getId()); + log.warn("del effectRow:{}", effectRow); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode()); + } + data.forEach(d -> { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(d.getGridId()); + if (null == gridInfo) { + log.warn("未查询到网格信息:" + d.getGridId()); + return; + } + String s = StrUtil.filterEmoji(d.getWorkContent()); + d.setWorkContent(s); + d.setGridCode(gridInfo.getCode()); + d.setGridName(gridInfo.getGridName()); + }); + insertNewRecordBatch(data); + midPatrolFormDTO.setPageNo(midPatrolFormDTO.getPageNo() + 1); + } while (data.size() == NumConstant.ONE_THOUSAND); + return true; + } + + /** + * Desc: 数据存入 + * + * @param newEntities + * @author zxc + * @date 2022/7/22 14:17 + */ + @Transactional(rollbackFor = Exception.class) + public void insertGridStaffWorkInfoPY(List newEntities) { + if (!CollectionUtils.isEmpty(newEntities)) { + List> partition = ListUtils.partition(newEntities, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + this.insertBatch(p); + }); + } + } + + private Boolean insertNewRecordBatch(List list) { + List insertList = new ArrayList<>(); + list.forEach(o -> { + if (StringUtils.isBlank(o.getGridCode())) { + return; + } + insertList.add(buildNewEntity(o)); + }); + //insert + if (CollectionUtils.isEmpty(insertList)) { + log.error("新构建要插入的数据为空,param:{}", JSON.toJSONString(list)); + return false; + } + insertGridStaffWorkInfoPY(insertList); + return true; + } + + private GridstaffWorkInfoPingyinEntity buildNewEntity(PatrolRoutineWorkResult record) { + GridstaffWorkInfoPingyinEntity entity = ConvertUtils.sourceToTarget(record, GridstaffWorkInfoPingyinEntity.class); + entity.setQxBm("370124"); + entity.setQxMc("平阴县"); + entity.setHappenTime(DateUtils.parseDate(record.getHappenTime().concat(" 00:00:00"), DateUtils.DATE_PATTERN)); + entity.setWorkResult(NumConstant.ONE == record.getIsNormal() ? "Y" : "N"); + entity.setWorkType(record.getWorkTypeSecondCode()); + entity.setRecoredInsertTime(record.getCreatedTime()); + entity.setUpdateTime(record.getUpdatedTime()); + entity.setId(null); + entity.setIsDel("N"); + return entity; + } + + @NotNull + private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) { + PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO(); + midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId()); + midPatrolFormDTO.setId(StringUtils.isBlank(patrolRecordForm.getId()) ? "" : patrolRecordForm.getId()); + midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo()); + midPatrolFormDTO.setPageSize(NumConstant.ONE_THOUSAND); + return midPatrolFormDTO; + } +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml index 3047bc30c9..da5b05eec7 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml @@ -3,33 +3,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml new file mode 100755 index 0000000000..6688632c7b --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/EventreportPingyinDao.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM eventreport_pingyin + + + + \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml new file mode 100755 index 0000000000..c2eeb0baa9 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml @@ -0,0 +1,34 @@ + + + + + + + delete from grid_info_pingyin where grid_level !='07' + + + + + delete from grid_info_pingyin where grid_level ='07' + + + + + + update grid_info_pingyin + set grid_name = #{gridName}, + grid_level = #{gridLevel}, + lng = #{lng}, + lat = #{lat}, + update_time = now() + where grid_code = #{gridCode} and is_del = 'N' + + + + update grid_info_pingyin set is_del = 'Y',update_time = now() + where grid_code = #{gridCode} + + diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml new file mode 100755 index 0000000000..81143e89e0 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml @@ -0,0 +1,38 @@ + + + + + + + UPDATE gridstaff_info_pingyin + SET grid_name = #{gridName}, + nick_name = #{nickName}, + card_num = #{cardNum}, + phonenumber = #{phonenumber}, + sex = #{sex} + WHERE + grid_user_id = #{gridUserId} + AND grid_code = #{gridCode} + + + + delete from gridstaff_info_pingyin + + + + + \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml new file mode 100755 index 0000000000..ea3bc11030 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffWorkInfoPingyinDao.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + delete from gridstaff_work_info_pingyin LIMIT 1000 + + + + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcCustomerReportDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcCustomerReportDTO.java new file mode 100644 index 0000000000..0ea2fa3416 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcCustomerReportDTO.java @@ -0,0 +1,65 @@ +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-08-08 + */ +@Data +public class IcCustomerReportDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 报表id + */ + private String reportId; + + /** + * 客户id + */ + private String customerId; + + /** + * 删除标识:0.未删除 1.已删除; + */ + private Integer 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/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcReportFunDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcReportFunDTO.java new file mode 100644 index 0000000000..894bda4613 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcReportFunDTO.java @@ -0,0 +1,64 @@ +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-08-08 + */ +@Data +public class IcReportFunDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + /** + * ic_customer_report.id + */ + private String customerReportId; + + /** + * 功能类别来源于字典表key;eg:resi_info,house_info + */ + private String funCategoryKey; + + /** + * 删除标识:0.未删除 1.已删除; + */ + private Integer 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/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java index 1978e3660d..5f3d79cd47 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFormQueryDTO.java @@ -30,5 +30,11 @@ public class CustomerFormQueryDTO implements Serializable { * 是否动态 */ private Boolean dynamic; + + /** + * 居民信息列表:resi + * 综合治理图层:zhzl + */ + private String listType; } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/PreviewReportFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/PreviewReportFormDTO.java new file mode 100644 index 0000000000..c38eb53b1c --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/PreviewReportFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + * @Description + * @Author yzm + * @Date 2022/8/8 13:31 + */ +@Data +public class PreviewReportFormDTO { + public interface AddUserInternalGroup { + } + + @NotBlank(message = "reportId不能为空", groups = AddUserInternalGroup.class) + private String reportId; + @NotBlank(message = "categoryKey不能为空", groups = AddUserInternalGroup.class) + private String categoryKey; + private Map paramMap; + + @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) + private String customerId; + @NotBlank(message = "staffId不能为空", groups = AddUserInternalGroup.class) + private String staffId; +} + diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java new file mode 100644 index 0000000000..67f0be2c22 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportBatchExportFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 报表批量导出form dto + */ +@Data +public class ReportBatchExportFormDTO { + + //private String token; + + private String paramKey; + + @NotBlank(message = "reportId必填") + private String reportId; + + private String id; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java new file mode 100644 index 0000000000..3bb7871caa --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/8 14:04 + * @DESC + */ +@Data +public class ReportEditFormDTO implements Serializable { + + private static final long serialVersionUID = -2157859106926125470L; + + public interface ReportEditForm{} + + /** + * 操作类型,批量操作:add;单个编辑:edit + */ + @NotBlank(message = "type不能为空", groups = ReportEditForm.class) + private String type; + + @NotBlank(message = "reportId不能为空", groups = ReportEditForm.class) + private String reportId; + + @Valid + private List customerList; + + + @Data + public static class CustomerReportEditForm implements Serializable{ + + private static final long serialVersionUID = 8154093835160706134L; + + private List categoryKeys; + + @NotBlank(message = "customerId不能为空", groups = ReportEditForm.class) + private String customerId; + } +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java new file mode 100644 index 0000000000..4d67790aed --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/8 15:16 + * @DESC + */ +@Data +public class ReportListFormDTO implements Serializable { + + private static final long serialVersionUID = -4459838228433571457L; + + private List categoryKeys; + + private String customerId; +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java new file mode 100644 index 0000000000..50553ab568 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/11 13:35 + */ +@Data +public class IcFormDataAnalysisDTO implements Serializable { + private String itemId; + private String label; + /** + * 分组ID,'默认,0' + */ + private String itemGroupId; + private String tableName; + /** + * 列名 + */ + private String columnName; + private Integer sort; +} + diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/PreviewReportResDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/PreviewReportResDTO.java new file mode 100644 index 0000000000..aaff6e933b --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/PreviewReportResDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.result; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/8/8 13:37 + */ +@Data +public class PreviewReportResDTO { + private String reportId; + /** + * rediskey格式:customerId:reportId:resiinfo:staffId + */ + private String paramKey; +} + diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java new file mode 100644 index 0000000000..2701957317 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java @@ -0,0 +1,94 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/8/8 10:29 + * @DESC + */ +@Data +public class ReportResultDTO implements Serializable { + + private static final long serialVersionUID = -5798816843431200300L; + + /** + * 报表名字 + */ + private String reportName; + + /** + * 报表ID + */ + private String reportId; + + private Boolean isList; + + /** + * 客户ID + */ + @JsonIgnore + private String customerId; + + /** + * 客户名字 + */ + @JsonIgnore + private String customerName; + + /** + * 分类名字 + */ + @JsonIgnore + private String categoryName; + + /** + * 分类key + */ + @JsonIgnore + private String categoryKey; + + /** + * 客户信息集合 + */ + private List customerList; + + + @Data + public static class CustomerList implements Serializable{ + + private static final long serialVersionUID = 7146198312265513418L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 客户名字 + */ + private String customerName; + + /** + * 分类名字 + */ + private String categoryName; + + /** + * 分类key + */ + private String categoryKey; + } + + public ReportResultDTO() { + this.reportName = ""; + this.reportId = ""; + this.isList = false; + this.customerList = new ArrayList<>(); + } +} diff --git a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml index cfaf3a1772..7cee38b4f7 100644 --- a/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml +++ b/epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-dev.yml @@ -8,6 +8,7 @@ services: network_mode: host # 使用现有网络 volumes: - "/opt/epmet-cloud-logs/dev:/logs" + - "/opt/epmet_files/:/opt/epmet_files" environment: RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./oper-customize.jar" restart: "unless-stopped" diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index 55fd617ca9..218a64eb59 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -22,6 +22,11 @@ epmet-commons-tools 2.0.0 + + com.epmet + epmet-commons-feignclient + 2.0.0 + com.epmet epmet-commons-mybatis @@ -95,6 +100,12 @@ 2.0.0 compile + + com.epmet + gov-access-client + 2.0.0 + compile + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java index dc347a7c53..b5cbc36f11 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java @@ -23,5 +23,10 @@ public interface CustomerFunctionConstant { */ String PARAMETER_EXCEPTION = "请至少勾选一条默认功能或定制功能数据"; + String REPORT_CATEGORY = "jmreport_category"; + + String REPORT_EDIT = "edit"; + String REPORT_ADD = "add"; + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java new file mode 100644 index 0000000000..6859f3e942 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java @@ -0,0 +1,108 @@ +package com.epmet.controller; + +import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.annotation.ReportRequest; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.*; +import com.epmet.dto.result.PreviewReportResDTO; +import com.epmet.dto.result.ReportResultDTO; +import com.epmet.service.IcCustomerReportService; +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.util.HashMap; +import java.util.List; + + +/** + * 客户报表关系表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-08 + */ +@RestController +@RequestMapping("icCustomerReport") +public class IcCustomerReportController { + + @Autowired + private IcCustomerReportService icCustomerReportService; + + + /** + * Desc: 报表集合 + * @param + * @author zxc + * @date 2022/8/8 10:38 + */ + @PostMapping("list") + public Result> reportList(){ + return new Result>().ok(icCustomerReportService.reportList()); + } + + + /** + * 在居民信息或者房屋信息等页面点击填表,存储入参到redis,返给前端key + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("preview") + public Result previewReport(@LoginUser TokenDto tokenDto, @RequestBody PreviewReportFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, PreviewReportFormDTO.AddUserInternalGroup.class); + return new Result().ok(icCustomerReportService.previewReport(formDTO)); + } + /** + * Desc: 报表编辑 + * @param formDTO + * @author zxc + * @date 2022/8/8 14:09 + */ + @PostMapping("edit") + public Result reportEdit(@RequestBody ReportEditFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, ReportEditFormDTO.ReportEditForm.class); + icCustomerReportService.reportEdit(formDTO); + return new Result(); + } + + /** + * Desc: 居民信息/房屋信息-查询报表 + * @param formDTO + * @author zxc + * @date 2022/8/8 15:20 + */ + @PostMapping("report-list") + public Result> reportIdAndName(@RequestBody ReportListFormDTO formDTO,@LoginUser TokenDto tokenDto){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icCustomerReportService.reportIdAndName(formDTO)); + } + + /** + * 批量导出 + */ + @PostMapping("batch-export") + public void batchExport(@RequestBody ReportBatchExportFormDTO input, HttpServletResponse response) { + ValidatorUtils.validateEntity(input); + String reportId = input.getReportId(); + String paramKey = input.getParamKey(); + final String id = input.getId(); + + icCustomerReportService.batchExport(id, reportId, paramKey, response); + } + + @ReportRequest + @PostMapping("test") + public void test(@RequestBody ExportResiUserFormDTO input) { + + System.out.println(input); + } + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index ef443587d2..dcb08f35e7 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -140,7 +140,7 @@ public class IcFormController { @PostMapping(value = "queryConditions") Result> queryConditions(@RequestBody CustomerFormQueryDTO formQueryDTO) { ValidatorUtils.validateEntity(formQueryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class); - return new Result>().ok(icFormItemService.queryConditions(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode())); + return new Result>().ok(icFormItemService.queryConditions(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode(),formQueryDTO.getListType())); } /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcReportFunController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcReportFunController.java new file mode 100644 index 0000000000..8f22b6939e --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcReportFunController.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.IcReportFunDTO; +import com.epmet.service.IcReportFunService; +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-08-08 + */ +@RestController +@RequestMapping("icReportFun") +public class IcReportFunController { + + @Autowired + private IcReportFunService icReportFunService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icReportFunService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcReportFunDTO data = icReportFunService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcReportFunDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icReportFunService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcReportFunDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icReportFunService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icReportFunService.delete(ids); + return new Result(); + } + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java new file mode 100644 index 0000000000..0972fd32b4 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java @@ -0,0 +1,40 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.ReportResultDTO; +import com.epmet.entity.IcCustomerReportEntity; +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-08-08 + */ +@Mapper +public interface IcCustomerReportDao extends BaseDao { + + /** + * Desc: 报表集合 + * @param + * @author zxc + * @date 2022/8/8 10:38 + */ + List reportList(@Param("categoryKeys")List categoryKeys,@Param("customerId")String customerId); + + /** + * Desc: 根据客户IDs获取ids + * @param customerIds + * @author zxc + * @date 2022/8/8 15:39 + */ + List getIdsByCustomer(@Param("customerIds") List customerIds,@Param("reportId") String reportId); + + void delCustomerReport(@Param("customerIds") List customerIds,@Param("reportId")String reportId); + + void delCustomerReportFun(@Param("reportIds") List reportIds); + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java index 9737ddb90f..fbc68cac11 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java @@ -59,7 +59,7 @@ public interface IcFormItemDao extends BaseDao { * @author yinzuomei * @date 2021/11/1 12:58 下午 */ - List queryConditions(@Param("customerId") String customerId, @Param("formCode") String formCode); + List queryConditions(@Param("customerId") String customerId, @Param("formCode") String formCode,@Param("listType") String listType); /** * 构造出所有子表关联语句 @@ -97,4 +97,6 @@ public interface IcFormItemDao extends BaseDao { */ List getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId); List getItemListByGroupIdV2(@Param("customerId") String customerId, @Param("groupId") String groupId,@Param("policyFlag")String policyFlag); + + List selectDataAnalysisItem(String customerId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcReportFunDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcReportFunDao.java new file mode 100644 index 0000000000..a1486095e2 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcReportFunDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcReportFunEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 报表所属功能表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-08 + */ +@Mapper +public interface IcReportFunDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcCustomerReportEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcCustomerReportEntity.java new file mode 100644 index 0000000000..b43d2e9887 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcCustomerReportEntity.java @@ -0,0 +1,31 @@ +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-08-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_customer_report") +public class IcCustomerReportEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 报表id + */ + private String reportId; + + /** + * 客户id + */ + private String customerId; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcReportFunEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcReportFunEntity.java new file mode 100644 index 0000000000..b39c7fea27 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcReportFunEntity.java @@ -0,0 +1,34 @@ +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-08-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_report_fun") +public class IcReportFunEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * ic_customer_report.id + */ + private String customerReportId; + + /** + * 功能类别来源于字典表key;eg:resi_info,house_info + */ + private String funCategoryKey; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java new file mode 100644 index 0000000000..297d342e19 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java @@ -0,0 +1,55 @@ +package com.epmet.service; + +import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO; +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.form.PreviewReportFormDTO; +import com.epmet.dto.form.ReportEditFormDTO; +import com.epmet.dto.form.ReportListFormDTO; +import com.epmet.dto.result.PreviewReportResDTO; +import com.epmet.dto.result.ReportResultDTO; +import com.epmet.entity.IcCustomerReportEntity; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 客户报表关系表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-08 + */ +public interface IcCustomerReportService extends BaseService { + + /** + * Desc: 报表集合 + * @param + * @author zxc + * @date 2022/8/8 10:38 + */ + List reportList(); + + /** + * 在居民信息或者房屋信息等页面点击填表,存储入参到redis,返给前端key + * @param formDTO + * @return + */ + PreviewReportResDTO previewReport(PreviewReportFormDTO formDTO); + + /** + * Desc: 报表编辑 + * @param formDTO + * @author zxc + * @date 2022/8/8 14:09 + */ + void reportEdit(ReportEditFormDTO formDTO); + + /** + * Desc: 居民信息/房屋信息-查询报表 + * @param formDTO + * @author zxc + * @date 2022/8/8 15:20 + */ + List reportIdAndName(ReportListFormDTO formDTO); + + void batchExport(String bizId, String reportId, String paramKey, HttpServletResponse response); +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java index 435e703e33..92058db5c3 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java @@ -47,7 +47,7 @@ public interface IcFormItemService extends BaseService { List queryTableHeaderList(CustomerFormQueryDTO formDto); - List queryConditions(String customerId,String formCode); + List queryConditions(String customerId,String formCode,String listType); List querySubTables(String customerId, String formCode); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcReportFunService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcReportFunService.java new file mode 100644 index 0000000000..567609f0cf --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcReportFunService.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.IcReportFunDTO; +import com.epmet.entity.IcReportFunEntity; + +import java.util.List; +import java.util.Map; + +/** + * 报表所属功能表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-08 + */ +public interface IcReportFunService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-08-08 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-08-08 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcReportFunDTO + * @author generator + * @date 2022-08-08 + */ + IcReportFunDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-08 + */ + void save(IcReportFunDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-08 + */ + void update(IcReportFunDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-08-08 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java new file mode 100644 index 0000000000..61809bfb26 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java @@ -0,0 +1,542 @@ +package com.epmet.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.epmet.commons.feignclient.dtos.JiMuPage; +import com.epmet.commons.feignclient.dtos.JiMuResult; +import com.epmet.commons.feignclient.dtos.form.JiMuReportFormDTO; +import com.epmet.commons.feignclient.dtos.form.JimuReportExportRequestDTO; +import com.epmet.commons.feignclient.dtos.result.JiMuReportDetailResultDTO; +import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportDbDataResultDTO; +import com.epmet.commons.feignclient.dtos.result.JimuReportFieldTreeResultDTO; +import com.epmet.commons.feignclient.feigns.JiMuReportOpenFeignClient; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.*; +import com.epmet.commons.tools.dto.form.DictListFormDTO; +import com.epmet.commons.tools.dto.result.DictListResultDTO; +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.redis.RedisUtils; +import com.epmet.commons.tools.utils.*; +import com.epmet.constant.CustomerFunctionConstant; +import com.epmet.dao.IcCustomerReportDao; +import com.epmet.dto.CustomerDTO; +import com.epmet.dto.form.PreviewReportFormDTO; +import com.epmet.dto.form.ReportEditFormDTO; +import com.epmet.dto.form.ReportListFormDTO; +import com.epmet.dto.result.PreviewReportResDTO; +import com.epmet.dto.result.ReportResultDTO; +import com.epmet.entity.IcCustomerReportEntity; +import com.epmet.entity.IcReportFunEntity; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.feign.OperCrmOpenFeignClient; +import com.epmet.service.IcCustomerReportService; +import com.epmet.service.IcReportFunService; +import feign.Response; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.MultiValueMap; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * 客户报表关系表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-08 + */ +@Service +@Slf4j +public class IcCustomerReportServiceImpl extends BaseServiceImpl implements IcCustomerReportService { + @Autowired + private RedisUtils redisUtils; + + @Autowired + private EpmetAdminOpenFeignClient adminOpenFeignClient; + @Autowired + private OperCrmOpenFeignClient operCrmOpenFeignClient; + @Autowired + private IcReportFunService reportFunService; + @Autowired + private JiMuReportOpenFeignClient jiMuReportOpenFeignClient; + @Autowired + private ExecutorService executorService; + + + 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; + } + + /** + * Desc: 报表集合 + * + * @param + * @author zxc + * @date 2022/8/8 10:38 + */ + @Override + public List reportList() { + String authorization = EpmetRequestHolder.getHeader("Authorization"); + // 自定义header传递 + MultiValueMap headers = new HttpHeaders(); + headers.add("token", authorization); + JiMuResult> result = jiMuReportOpenFeignClient.getList(1, 10000, "", "datainfo", authorization, headers); + if (!result.isSuccess()) { + throw new EpmetException("获取所有jm报表失败"); + } + List> records = (List>) result.getResult().getRecords(); + List allReports = new ArrayList<>(); + for (Map record : records) { + allReports.add(ConvertUtils.mapToEntity(record, JiMuReportResultDTO.class)); + } + if (CollectionUtils.isEmpty(allReports)) { + return new ArrayList<>(); + } + List allReportList = new ArrayList<>(); + allReports.forEach(r -> { + ReportResultDTO dto = new ReportResultDTO(); + dto.setReportId(r.getId()); + dto.setReportName(r.getName()); + allReportList.add(dto); + }); + List reportList = baseDao.reportList(null, null); + if (CollectionUtils.isEmpty(reportList)) { + return allReportList; + } + Result> dictList = adminOpenFeignClient.dictList(new DictListFormDTO(CustomerFunctionConstant.REPORT_CATEGORY)); + if (!dictList.success()) { + throw new EpmetException("查询字典信息失败:" + CustomerFunctionConstant.REPORT_CATEGORY); + } + if (CollectionUtils.isNotEmpty(dictList.getData())) { + dictList.getData().forEach(d -> reportList.stream().filter(r -> d.getValue().equals(r.getCategoryKey())).forEach(r -> r.setCategoryName(d.getLabel()))); + } + Result> allCustomerList = operCrmOpenFeignClient.getAllCustomerList(); + if (!allCustomerList.success()) { + throw new EpmetException("获取客户信息失败..."); + } + if (CollectionUtils.isNotEmpty(allCustomerList.getData())) { + allCustomerList.getData().forEach(c -> reportList.stream().filter(r -> c.getId().equals(r.getCustomerId())).forEach(r -> r.setCustomerName(c.getCustomerName()))); + } + Map> groupByReport = reportList.stream().collect(Collectors.groupingBy(ReportResultDTO::getReportId)); + groupByReport.forEach((reportId, l) -> allReportList.stream().filter(a -> a.getReportId().equals(reportId)).forEach(a -> a.setCustomerList(ConvertUtils.sourceToTarget(l, ReportResultDTO.CustomerList.class)))); + return allReportList; + } + + /** + * 在居民信息或者房屋信息等页面点击填表,存储入参到redis,返给前端key + * + * @param formDTO + * @return + */ + @Override + public PreviewReportResDTO previewReport(PreviewReportFormDTO formDTO) { + // rediskey格式:customerId:reportId:resiinfo:staffId + PreviewReportResDTO reportResDTO = new PreviewReportResDTO(); + reportResDTO.setReportId(formDTO.getReportId()); + String key = "epmet:jmreport:paramkey:".concat(formDTO.getCustomerId()).concat(StrConstant.COLON).concat(formDTO.getReportId()).concat(StrConstant.COLON).concat(formDTO.getCategoryKey()).concat(StrConstant.COLON).concat(formDTO.getStaffId()); + redisUtils.hMSet(key, formDTO.getParamMap(), RedisUtils.DEFAULT_EXPIRE); + reportResDTO.setParamKey(key); + return reportResDTO; + } + + /** + * Desc: 报表编辑 + * + * @param formDTO + * @author zxc + * @date 2022/8/8 14:09 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void reportEdit(ReportEditFormDTO formDTO) { + List reportIds = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(formDTO.getCustomerList())) { + reportIds = baseDao.getIdsByCustomer(formDTO.getCustomerList().stream().map(m -> m.getCustomerId()).collect(Collectors.toList()), formDTO.getReportId()); + } + if (formDTO.getType().equals(CustomerFunctionConstant.REPORT_EDIT)) { + // 单个编辑 + baseDao.delCustomerReport(Arrays.asList(formDTO.getCustomerList().get(NumConstant.ZERO).getCustomerId()), formDTO.getReportId()); + } else if (formDTO.getType().equals(CustomerFunctionConstant.REPORT_ADD)) { + baseDao.delCustomerReport(null, formDTO.getReportId()); + } + if (CollectionUtils.isNotEmpty(reportIds)) { + baseDao.delCustomerReportFun(reportIds); + } + if (CollectionUtils.isNotEmpty(formDTO.getCustomerList())) { + List entities = new ArrayList<>(); + List funEntities = new ArrayList<>(); + formDTO.getCustomerList().forEach(c -> { + IcCustomerReportEntity reportEntity = new IcCustomerReportEntity(); + reportEntity.setReportId(formDTO.getReportId()); + reportEntity.setCustomerId(c.getCustomerId()); + reportEntity.setId(IdWorker.getIdStr()); + if (CollectionUtils.isNotEmpty(c.getCategoryKeys())) { + c.getCategoryKeys().forEach(key -> { + IcReportFunEntity funEntity = new IcReportFunEntity(); + funEntity.setCustomerReportId(reportEntity.getId()); + funEntity.setFunCategoryKey(key); + funEntities.add(funEntity); + }); + } + entities.add(reportEntity); + }); + insetCustomerReportAndFun(entities, funEntities); + } + } + + /** + * Desc: 居民信息/房屋信息-查询报表 + * + * @param formDTO + * @author zxc + * @date 2022/8/8 15:20 + */ + @Override + public List reportIdAndName(ReportListFormDTO formDTO) { + List reportList = baseDao.reportList(formDTO.getCategoryKeys(), formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(reportList)) { + return new ArrayList<>(); + } + List recordIds = reportList.stream().map(m -> m.getReportId()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + List result = new ArrayList<>(); + recordIds.forEach(r -> { + JiMuReportFormDTO form = new JiMuReportFormDTO(); + form.setId(r); + String authorization = EpmetRequestHolder.getHeader("Authorization"); + // 自定义header传递 + MultiValueMap headers = new HttpHeaders(); + headers.add("token", authorization); + headers.add("Authorization", authorization); + JiMuResult> report = jiMuReportOpenFeignClient.getReport(r, "", "", headers); + if (!report.isSuccess()) { + throw new EpmetException("获取jm报表详情失败:" + r); + } + JiMuReportResultDTO data = ConvertUtils.mapToEntity(report.getResult(), JiMuReportResultDTO.class); + JiMuResult reportDbDataResultDTOJiMuResult = jiMuReportOpenFeignClient.loadDbData(r); + if (!reportDbDataResultDTOJiMuResult.isSuccess()){ + throw new EpmetException("获取报表dbData失败:"+r); + } + log.info(JSON.toJSONString(reportDbDataResultDTOJiMuResult)); + JimuReportDbDataResultDTO.ReportDB reportDb = reportDbDataResultDTOJiMuResult.getResult().getReportDb(); + if (null != reportDb){ + data.setIsList(reportDb.getIsList().equals(NumConstant.ONE_STR)); + } + data.setReportId(data.getId()); + data.setReportName(data.getName()); + result.add(data); + }); + return result; + } + + @Transactional(rollbackFor = Exception.class) + public void insetCustomerReportAndFun(List reportEntities, List funEntities) { + if (CollectionUtils.isNotEmpty(reportEntities)) { + insertBatch(reportEntities); + } + if (CollectionUtils.isNotEmpty(funEntities)) { + reportFunService.insertBatch(funEntities); + } + } + + @Override + public void batchExport(String bizId, String reportId, String paramKey, HttpServletResponse response) { + + // 1. 首先去积木服务,查询出报表数据源的详细信息,包括报表url,isList;获取到哪一列是id(idFieldName) + + // 根据报表id查询数据源列表,取出第一个 + JiMuResult>> fResult = jiMuReportOpenFeignClient.fieldTree(reportId); + String datasourceId = fResult.getResult().get(0).get(0).getDbId(); + + // 根据数据源ID查询数据源信息 + JiMuResult dbData = jiMuReportOpenFeignClient.loadDbData(datasourceId); + JimuReportDbDataResultDTO.ReportDB reportDb = dbData.getResult().getReportDb(); + + // api的url + String apiUrl = reportDb.getApiUrl(); + // api方法 + //String apiMethod = reportDb.getApiMethod(); + // 是否是集合 + //String isList = reportDb.getIsList(); + // 返回的列表中,哪个字段是ID + String idFieldName = null; + boolean isHttps = false; + + Matcher matcher = Pattern.compile("(http://|https://).+idFieldName=(\\w+).*").matcher(apiUrl); + if (matcher.matches()) { + String proto = matcher.group(1); + if ("https://".equals(proto)) { + isHttps = true; + } + idFieldName = matcher.group(2); + } + + if (StringUtils.isBlank(idFieldName)) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "配置的业务api url缺少idFieldName列"); + } + + // 2. 调用该url的接口,获取到一个列表,根据idFieldName取出ID列 + List ids = listIds(bizId, paramKey, apiUrl, isHttps, idFieldName); + + // 3. 然后以这一列作为查询条件,循环,继续调用该接口,得到单条数据,每一条数据都下载一个excel,最后将其打包为一个压缩包下载 + Path storePath = makeTemporaryDownloadDir(reportId); + + // 4.生成压缩文件 + Path zipFile = downloadAndComppress(storePath, reportId, reportDb.getDbChName(), paramKey, ids); + + // 5.下载 + try (FileInputStream fis = new FileInputStream(zipFile.toFile())) { + ServletOutputStream os = response.getOutputStream(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-Type", "application/zip"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zipFile.getFileName().toString(), "UTF-8")); + + IOUtils.copy(fis, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + Files.delete(zipFile); + } catch (IOException e) { + log.error("【报表批量导出】删除临时zip文件失败"); + } + } + } + + /** + * 批量下载 + * @param storePath 本次导出文件的存储路径,子目录包括:zip文件,时间戳命名的子目录用于存放临时excel(导出完成会删掉) + * @param ids + * @return 压缩文件路径 + */ + private Path downloadAndComppress(Path storePath, String reportId, String reportName, String paramKey, List ids) { + // 请求头 + Map headers = new HashMap<>(); + headers.put(Constant.AUTHORIZATION_HEADER, EpmetRequestHolder.getHeader(Constant.AUTHORIZATION_HEADER)); + + // 请求体 + JimuReportExportRequestDTO param = new JimuReportExportRequestDTO(); + param.setExcelConfigId(reportId); + param.getQueryParam().setCurrentPageNo("1"); + param.getQueryParam().setCurrentPageSize(20); + param.getQueryParam().setPageNo("1"); + param.getQueryParam().setPageSize(20); + param.getQueryParam().setParamKey(paramKey); + param.getQueryParam().setToken(EpmetRequestHolder.getLoginUserAuthorizationToken()); + + ArrayList files = new ArrayList<>(); + + String currentTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + + // 创建存放xlsx的临时目录 + Path xlsxStorePath = storePath.resolve(currentTimeStr); + try { + Files.createDirectories(xlsxStorePath); + } catch (IOException e) { + throw new EpmetException("【报表批量导出】生成临时目录失败:" + xlsxStorePath.toString()); + } + + // 将所有id分片,交给多个线程并行处理 + List> idParts = ListUtils.partition(ids, 100); + + // 1. 循环下载所有id对应的excel + CountDownLatch cdl = new CountDownLatch(idParts.size()); + for (List idPart : idParts) { + CompletableFuture.runAsync(() -> { + downloadXlsByBatchByBizId(reportId, idPart, param, xlsxStorePath, files, cdl); + }, executorService); + } + + // 等待多线程执行完成,再执行打包 + try { + cdl.await(); + } catch (InterruptedException e) { + log.error(ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException("【报表批量导出】CountDownLatch等待被中断"); + } + + // 2,打包 + Path zipFile = storePath.resolve(reportName + "_" + currentTimeStr + ".zip"); + try (final FileOutputStream fos = new FileOutputStream(zipFile.toFile()); + final ZipOutputStream zos = new ZipOutputStream(fos)) { + + // 循环每一个文件 + for (File file : files) { + try (final FileInputStream fis = new FileInputStream(file.getAbsolutePath())) { + zos.putNextEntry(new ZipEntry(reportName + "_" + currentTimeStr + "/" + file.getName())); + final byte[] buffer = new byte[10240]; + for (int len; (len = fis.read(buffer)) > 0; ) { + zos.write(buffer, 0, len); + } + } finally { + zos.closeEntry(); + } + } + + zos.flush(); + } catch (Exception e) { + log.error("【报表批量导出】压缩文件失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "压缩失败", "压缩失败"); + } finally { + // 删除临时文件 + cleanTemporaryFiles(storePath.resolve(currentTimeStr)); + } + + return zipFile; + } + + /** + * 批量下载xlsx + * @param reportId + * @param bizIds + * @param param + * @param xlsxStorePath + * @param files + */ + public void downloadXlsByBatchByBizId(String reportId, List bizIds, JimuReportExportRequestDTO param, Path xlsxStorePath, ArrayList files, + CountDownLatch cdl) { + for (String id : bizIds) { + + try { + Thread.sleep(200l); + } catch (InterruptedException e) { + final String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【报表批量导出】循环导出-请求jmreport,等待过程中睡眠发生意外:{}", errorMsg); + } + + //if (!Arrays.asList("1501821697823608834","1501821694665297922","1501821695114088450","1501821695177003009","1501821695269277697","1501821695344775169","1501821695579656193","1501821695676125186","1501821695755816962","1501821695843897346","1501821695978115074","1501821696108138497","1501821696179441665","1501821696229773313","1501821696284299266","1501821696334630913","1501821696393351170","1501821696452071426","1501821696502403073","1501821696582094849","1501821696645009409","1501821696758255617","1501821696871501826","1501821696917639169","1501821696955387906","1501821696993136641","1501821697135742977","1501821697181880321","1501821697232211969","1501821697274155009").contains(id)) { + // continue; + //} + + param.getQueryParam().setId(id); + final Response response = jiMuReportOpenFeignClient.exportAllExcelStream(param); + // 取出文件后缀 + final LinkedList header = (LinkedList) response.headers().get("content-disposition"); + final Matcher matcher = Pattern.compile("attachment;filename=(.+)(.xls|.xlsx)").matcher(header.get(0)); + if (!matcher.matches()) { + log.error("【报表批量导出】批量导出失败,后缀不匹配。文件名:{}, 报表ID:{}, 业务数据ID:{}", header.get(0), reportId, id); + continue; + } + + final File excelFile = xlsxStorePath.resolve("file_" + id + matcher.group(2)).toFile(); + + files.add(excelFile); + try (FileOutputStream fos = new FileOutputStream(excelFile)) { + IOUtils.copy(response.body().asInputStream(), fos); + } catch (Exception e) { + log.error("【报表批量导出】生成临时表格文件失败,文件名:{},报表ID:{}, 业务数据ID:{},错误信息:{}", header.get(0), reportId, id, ExceptionUtils.getErrorStackTrace(e)); + } + } + + cdl.countDown(); + } + + /** + * 清理临时保存文件 + */ + private void cleanTemporaryFiles(Path tempStorePath) { + // 删除内部文件 + for (File file : tempStorePath.toFile().listFiles()) { + try { + Files.delete(file.toPath()); + } catch (IOException e) { + log.error("【报表批量导出】删除临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), null, null); + } + } + + // 删除文件夹 + try { + Files.delete(tempStorePath); + } catch (IOException e) { + log.error("【报表批量导出】删除临时目录失败:{}", ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), null, null); + } + } + + /** + * 创建临时目录 + * + * @param reportId + * @return + */ + private Path makeTemporaryDownloadDir(String reportId) { + + String userId = EpmetRequestHolder.getLoginUserId(); + try { + return FileUtils.getAndCreateDirUnderEpmetFilesDir("report/batch_export/", reportId, userId); + } catch (IOException e) { + throw new EpmetException("报表】批量导出-创建临时目录失败,错误信息:" + ExceptionUtils.getErrorStackTrace(e)); + } + } + + /** + * 列出id列表,批量下载用 + * + * @param apiUrl + * @param isHttps + * @param idFieldName + * @return + */ + public List listIds(String id, String paramKey, String apiUrl, boolean isHttps, String idFieldName) { + apiUrl = apiUrl.replace("'${id}'", id == null ? "" : id); + apiUrl = apiUrl.replace("'${paramKey}'", paramKey); + + Map headers = new HashMap<>(); + headers.put(Constant.AUTHORIZATION_HEADER, EpmetRequestHolder.getHeader(Constant.AUTHORIZATION_HEADER)); + Result stringResult = HttpClientManager.getInstance().sendPost(apiUrl, isHttps, "{\"id\":" + id + "}", headers); + + JSONObject dataJsonObject = JSON.parseObject(stringResult.getData()); + Object data = dataJsonObject.get("data"); + + JSONArray array = new JSONArray(); + ArrayList ids = new ArrayList<>(); + + if (data instanceof JSONObject) { + // 这种可能是pageData的 + JSONObject jo = (JSONObject) data; + array = jo.getJSONArray("list"); + } else { + // 可能是不分页的列表 + array = (JSONArray) data; + } + + for (ListIterator it = array.listIterator(); it.hasNext(); ) { + JSONObject e = (JSONObject) it.next(); + ids.add(e.getString(idFieldName)); + } + return ids; + } +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index c3b2e35991..74cb44a6b4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -137,8 +137,8 @@ public class IcFormItemServiceImpl extends BaseServiceImpl queryConditions(String customerId,String formCode) { - return baseDao.queryConditions(customerId,formCode); + public List queryConditions(String customerId,String formCode,String listType) { + return baseDao.queryConditions(customerId,formCode,listType); } @Override diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 0583188d71..bb75b51fc4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -37,6 +37,7 @@ import com.epmet.dto.result.FormGroupDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.entity.*; import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.feign.GovAccessFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; @@ -83,6 +84,8 @@ public class IcFormServiceImpl extends BaseServiceImpl private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; @Resource private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Resource + private GovAccessFeignClient govAccessFeignClient; /** * 获取居民信息表单 @@ -329,6 +332,12 @@ public class IcFormServiceImpl extends BaseServiceImpl throw new EpmetException(dictResult.getCode(), dictResult.getMsg()); } + //7-29 初始化为客户设置(联建单位负责人、社区自组织负责人)两个默认角色数据 + Result accessResult = govAccessFeignClient.initGovRole(customerId); + if (!accessResult.success()) { + throw new EpmetException(accessResult.getCode(), accessResult.getMsg()); + } + return "初始化成功!客户ID:" + customerId + " formCode:" + formCode; } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcReportFunServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcReportFunServiceImpl.java new file mode 100644 index 0000000000..bf2e8bece1 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcReportFunServiceImpl.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.IcReportFunDao; +import com.epmet.dto.IcReportFunDTO; +import com.epmet.entity.IcReportFunEntity; +import com.epmet.service.IcReportFunService; +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-08-08 + */ +@Service +public class IcReportFunServiceImpl extends BaseServiceImpl implements IcReportFunService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcReportFunDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcReportFunDTO.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 IcReportFunDTO get(String id) { + IcReportFunEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcReportFunDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcReportFunDTO dto) { + IcReportFunEntity entity = ConvertUtils.sourceToTarget(dto, IcReportFunEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcReportFunDTO dto) { + IcReportFunEntity entity = ConvertUtils.sourceToTarget(dto, IcReportFunEntity.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/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java index a21534cdce..6bd45b6152 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java @@ -1,20 +1,15 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.StrConstant; -import com.epmet.constant.IcResiCategoryStatsConfigConstant; import com.epmet.dao.IcFormItemDao; -import com.epmet.dao.IcFormItemGroupDao; import com.epmet.dao.IcResiCategoryStatsConfigDao; import com.epmet.dao.IcResiCategoryWarnConfigDao; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO; import com.epmet.dto.form.ResiCategoryStatsConfigListFormDTO; +import com.epmet.dto.result.IcFormDataAnalysisDTO; import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO; -import com.epmet.entity.IcFormItemEntity; -import com.epmet.entity.IcFormItemGroupEntity; import com.epmet.entity.IcResiCategoryStatsConfigEntity; import com.epmet.entity.IcResiCategoryWarnConfigEntity; import com.epmet.service.IcResiCategoryStatsConfigService; @@ -28,7 +23,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Slf4j @@ -40,8 +38,6 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf @Resource private IcFormItemDao icFormItemDao; @Resource - private IcFormItemGroupDao icFormItemGroupDao; - @Resource private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao; @Resource private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; @@ -52,60 +48,39 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf @Transactional(rollbackFor = Exception.class) public List list(String customerId, ResiCategoryStatsConfigListFormDTO formDTO) { //1.获取IC_FORM_ITEM 中 用于数据分析字段的 id 和label - List icFormItemEntityList = icFormItemDao.selectList(new QueryWrapper().lambda().eq(IcFormItemEntity::getCustomerId,customerId).eq(IcFormItemEntity::getDataAnalyse, 1)); - if(CollectionUtils.isEmpty(icFormItemEntityList)){ - return new ArrayList<>(); - } - Set groupIds = icFormItemEntityList.stream().filter(item-> !"0".equals(item.getItemGroupId())).map(IcFormItemEntity::getItemGroupId).collect(Collectors.toSet()); - List icFormItemGroupEntityList = new ArrayList<>(); - if(!CollectionUtils.isEmpty(groupIds)){ - icFormItemGroupEntityList.addAll(icFormItemGroupDao.selectList(new QueryWrapper().lambda().eq(IcFormItemGroupEntity::getCustomerId,customerId).in(IcFormItemGroupEntity::getId, groupIds))); - } - - //获取tableName和COLUMN_NAME - Map tableColumnMap = new HashMap<>(); + List dataItemList=icFormItemDao.selectDataAnalysisItem(customerId); + //key:tableName-columnName value: ic_form_item + Map tableColumnMap = new HashMap<>(); + //key:ic_form_item.id value:对应的表名 Map idTableMap = new HashMap<>(); - icFormItemEntityList.forEach(item->{ - Map map = new HashMap<>(); - item.setColumnName(item.getColumnName().concat(NumConstant.ZERO == item.getColumnNum() ? StrConstant.EPMETY_STR : item.getColumnNum().toString())); - if("0".equals(item.getItemGroupId())){ - tableColumnMap.put(IcResiCategoryStatsConfigConstant.IC_RESI_USER+"-"+item.getColumnName(),item); - idTableMap.put(item.getId(),IcResiCategoryStatsConfigConstant.IC_RESI_USER); - }else{ - List collect = icFormItemGroupEntityList.stream().filter(i -> item.getItemGroupId().equals(i.getId())).collect(Collectors.toList()); - tableColumnMap.put(CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()+"-"+item.getColumnName(),item); - idTableMap.put(item.getId(),CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()); - } + dataItemList.forEach(item->{ + tableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); + idTableMap.put(item.getItemId(),item.getTableName()); }); - //2.获取ic_resi_category_stats_config 和 ic_resi_category_warn_config 表中的数据 + //2.获取居民类别配置表ic_resi_category_stats_config 和 居民类别预警配置表ic_resi_category_warn_config 表中的数据 List statsConfigEntityList = icResiCategoryStatsConfigDao.selectList(new QueryWrapper().lambda().eq(IcResiCategoryStatsConfigEntity::getCustomerId,customerId)); - if (!CollectionUtils.isEmpty(statsConfigEntityList)){ - return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel()); - } + List warnConfigEntityList = icResiCategoryWarnConfigDao.selectList(new QueryWrapper().lambda().eq(IcResiCategoryWarnConfigEntity::getCustomerId,customerId)); - //3.新增不存在的,删除不在tableColumnMap的 + //获取居民类别配置表 Map statsTableColumnMap = new HashMap<>(); statsConfigEntityList.forEach(item->{ statsTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); }); - Map warnTableColumnMap = new HashMap<>(); - warnConfigEntityList.forEach(item->{ - warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); - }); + + //3.新增不存在的,删除不在tableColumnMap的 //差集 - //新增 List newStatsList = tableColumnMap.keySet().stream().filter(item -> !statsTableColumnMap.containsKey(item)).collect(Collectors.toList()); List newStatsEntityList = new ArrayList<>(); newStatsList.forEach(item->{ - IcFormItemEntity icFormItemEntity = tableColumnMap.get(item); + IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item); IcResiCategoryStatsConfigEntity entity = new IcResiCategoryStatsConfigEntity(); entity.setCustomerId(customerId); entity.setLabel(icFormItemEntity.getLabel()); - entity.setTableName(idTableMap.get(icFormItemEntity.getId())); + entity.setTableName(idTableMap.get(icFormItemEntity.getItemId())); entity.setColumnName(icFormItemEntity.getColumnName()); entity.setManagementIcon(""); entity.setDataIcon(""); @@ -115,16 +90,24 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf newStatsEntityList.add(entity); }); if(!CollectionUtils.isEmpty(newStatsEntityList)){ + //新增居民类别配置表 icResiCategoryStatsConfigService.insertBatch(newStatsEntityList); } + + //4、新增居民类别预警配置表 + Map warnTableColumnMap = new HashMap<>(); + warnConfigEntityList.forEach(item->{ + warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); + }); + List newWarnList = tableColumnMap.keySet().stream().filter(item -> !warnTableColumnMap.containsKey(item)).collect(Collectors.toList()); List newWarnEntityList = new ArrayList<>(); newWarnList.forEach(item->{ - IcFormItemEntity icFormItemEntity = tableColumnMap.get(item); + IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item); IcResiCategoryWarnConfigEntity entity = new IcResiCategoryWarnConfigEntity(); entity.setCustomerId(customerId); entity.setLabel(icFormItemEntity.getLabel()); - entity.setTableName(idTableMap.get(icFormItemEntity.getId())); + entity.setTableName(idTableMap.get(icFormItemEntity.getItemId())); entity.setColumnName(icFormItemEntity.getColumnName()); entity.setWarn("0"); entity.setSort(icFormItemEntity.getSort()); @@ -133,6 +116,8 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf if(!CollectionUtils.isEmpty(newWarnEntityList)){ icResiCategoryWarnConfigService.insertBatch(newWarnEntityList); } + + //5、原来用于数据分析,现在不用于数据分析的,要删除类别配置表和预警表 List delStatsEntityIdList = new ArrayList<>(); List delWarnEntityIdList = new ArrayList<>(); //需要删除的 @@ -151,7 +136,7 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf icResiCategoryWarnConfigService.deleteBatchIds(delWarnEntityIdList); } - //4.返回数据 + //6.返回数据 return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel()); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql new file mode 100644 index 0000000000..9784ebe953 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql @@ -0,0 +1,8 @@ +ALTER TABLE ic_form_item ADD COLUMN ZHZL_LIST_DISPLAY TINYINT ( 1 ) DEFAULT '0' COMMENT '综合治理图层列表显示:1展示,0不展示' AFTER LIST_DISPLAY; + + +update ic_form_item i set i.ZHZL_LIST_DISPLAY='1' +where i.DEL_FLAG='0' + and i.COLUMN_NAME in( + 'GRID_ID','HOME_ID','NAME','MOBILE','ID_CARD','GENDER','BIRTHDAY','REMARKS','IS_XFRY','IS_SPECIAL','SPECIAL_RQLB' + ); \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql new file mode 100644 index 0000000000..5ceef02408 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.36__ic_customer_report.sql @@ -0,0 +1,12 @@ +CREATE TABLE `ic_customer_report` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `REPORT_ID` varchar(64) NOT NULL COMMENT '报表id', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `DEL_FLAG` int(11) 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='客户报表关系表'; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.37__ic_report_fun.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.37__ic_report_fun.sql new file mode 100644 index 0000000000..57e0fe6602 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.37__ic_report_fun.sql @@ -0,0 +1,12 @@ +CREATE TABLE `ic_report_fun` ( + `ID` varchar(64) NOT NULL, + `CUSTOMER_REPORT_ID` varchar(64) NOT NULL COMMENT 'ic_customer_report.id', + `FUN_CATEGORY_KEY` varchar(255) NOT NULL COMMENT '功能类别来源于字典表key;eg:resi_info,house_info', + `DEL_FLAG` int(11) 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='报表所属功能表'; diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml new file mode 100644 index 0000000000..1c9b98a2bb --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml @@ -0,0 +1,61 @@ + + + + + + + DELETE FROM ic_customer_report + WHERE REPORT_ID = #{reportId} + + AND CUSTOMER_ID IN ( + + #{c} + + ) + + + + DELETE FROM ic_report_fun + + WHERE CUSTOMER_REPORT_ID IN ( + + #{r} + + ) + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index b0906de8d1..02070f1b63 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml @@ -147,7 +147,15 @@ m.DEL_FLAG = '0' AND m.CUSTOMER_ID = #{customerId} and m.FORM_CODE=#{formCode} - AND m.LIST_DISPLAY = '1' + + AND m.LIST_DISPLAY = '1' + + + AND m.LIST_DISPLAY = '1' + + + AND m.ZHZL_LIST_DISPLAY = '1' + )temp @@ -314,4 +322,23 @@ ORDER BY ifi.SORT + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcReportFunDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcReportFunDao.xml new file mode 100644 index 0000000000..0da1a5ae81 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcReportFunDao.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java index 35ebdcbb38..c2716ea00b 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java @@ -44,6 +44,16 @@ public class PartymemberRegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java index 07aa0380ff..360131ca94 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java @@ -40,6 +40,16 @@ public class PartymemberRegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 网格Id (customer_grid.id) */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index ae67b95ebf..74b9ba9844 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -5,7 +5,10 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.*; @@ -601,6 +604,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService PartymemberRegisterRelationEntity registerRelationEntity = new PartymemberRegisterRelationEntity(); registerRelationEntity.setCustomerId(partyMemberInfoDTO.getCustomerId()); registerRelationEntity.setGridId(partyMemberInfoDTO.getGridId()); + //表中新增字段 为其赋值 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(partyMemberInfoDTO.getGridId()); + if (null == gridInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败"); + } + registerRelationEntity.setAgencyId(gridInfo.getPid()); + registerRelationEntity.setAgencyIdPath(gridInfo.getPids()); registerRelationEntity.setUserId(partyMemberInfoDTO.getUserId()); registerRelationEntity.setFirstRegister(1); registerRelationEntity.setRegister(1); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java index 71efe0c029..5f6e2685a3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/CustomerStaffDTO.java @@ -138,4 +138,10 @@ public class CustomerStaffDTO implements Serializable { * 登录密码 */ private String password; + + /** + * 身份证号 + */ + private String idCard; + } \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiCollectVisitorDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiCollectVisitorDTO.java new file mode 100644 index 0000000000..01a79ad36e --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiCollectVisitorDTO.java @@ -0,0 +1,144 @@ +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-08-02 + */ +@Data +public class IcResiCollectVisitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 目的地 + */ + private String address; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 网格ID + */ + private String gridId; + + /** + * 组织Id + */ + private String agencyId; + + /** + * 组织的pids + */ + private String pids; + + /** + * 所属小区ID; + */ + private String villageId; + + /** + * 所属小区名称 + */ + private String villageName; + + /** + * 所属楼宇Id + */ + private String buildId; + + /** + * 所属楼宇名称 + */ + private String buildName; + + /** + * 单元id + */ + private String unitId; + + /** + * 单元名 + */ + private String unitName; + + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 房间名 + */ + private String homeName; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 来访事由 + */ + private String comeReason; + + /** + * 人脸照片 + */ + private String faceImg; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java index 2cd1167802..d4d3cbe812 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java @@ -219,6 +219,21 @@ public class IcResiUserDTO implements Serializable { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否是流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java new file mode 100644 index 0000000000..66abf30d75 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java @@ -0,0 +1,71 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2022/8/5 15:03 + * @DESC + */ +@Data +public class PaCustomerDTO implements Serializable { + + /** + * 客户id,本主键和oper_crm.customer.id一致 + */ + private String id; + + /** + * 客户名称,默认是根组织名称 + */ + private String customerName; + + /** + * 是否已经完成客户信息初始化 0:未初始化,1:已初始化 + */ + private Integer isInitialize; + + /** + * 客户类型 mini 微信小程序客户 app 第三方app客户 + */ + private String type; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java index 0cc3ea4019..165651b81b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java @@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 用户Id (user.id) */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/SaveCollectVisitorFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/SaveCollectVisitorFormDTO.java new file mode 100644 index 0000000000..2f7c71dfd8 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/SaveCollectVisitorFormDTO.java @@ -0,0 +1,122 @@ +package com.epmet.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@Data +public class SaveCollectVisitorFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 网格ID + */ + private String gridId; + + /** + * 组织Id + */ + private String agencyId; + + /** + * 组织的pids + */ + private String pids; + + /** + * 所属小区ID; + */ + @NotBlank(message = "小区ID不能为空") + private String villageId; + + /** + * 所属小区名称 + */ + @NotBlank(message = "小区名称不能为空") + private String villageName; + + /** + * 所属楼宇Id + */ + @NotBlank(message = "楼宇Id不能为空") + private String buildId; + + /** + * 所属楼宇名称 + */ + @NotBlank(message = "楼宇名称不能为空") + private String buildName; + + /** + * 单元id + */ + @NotBlank(message = "单元id不能为空") + private String unitId; + + /** + * 单元名 + */ + @NotBlank(message = "单元名不能为空") + private String unitName; + + /** + * 所属家庭Id + */ + @NotBlank(message = "家庭Id不能为空") + private String homeId; + + /** + * 房间名 + */ + @NotBlank(message = "房间名不能为空") + private String homeName; + + /** + * 详细地址 + */ + @NotBlank(message = "家庭地址不能为空") + private String address; + + /** + * 姓名 + */ + @NotBlank(message = "姓名不能为空") + private String name; + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 来访事由 + */ + private String comeReason; + + /** + * 人脸照片 + */ + private String faceImg; + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailFormDTO.java new file mode 100644 index 0000000000..1aa8776d36 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailFormDTO.java @@ -0,0 +1,20 @@ +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; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-08-03 14:15 + **/ +@Data +public class CollectDetailFormDTO extends PageFormDTO implements Serializable { + + @NotBlank(message = "id不可为空") + private String id; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailResultDTO.java new file mode 100644 index 0000000000..3f2f2f728b --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailResultDTO.java @@ -0,0 +1,76 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 收集居民信息入参 + */ +@Data +public class CollectDetailResultDTO implements Serializable { + + private String id; + + /** + * 组织Id + */ + private String agencyId; + + /** + * 所属小区ID + */ + private String villageId; + private String villageName; + + /** + * 所属楼宇Id + */ + private String buildId; + private String buildName; + + /** + * 单元id + */ + private String unitId; + private String unitName; + + /** + * 所属家庭Id + */ + private String homeId; + private String homeName; + + /** + * 详细地址 + */ + private String address; + + /** + * 房屋状态 + */ + private String houseType; + + /** + * 户主姓名 + */ + private String houseHolderName; + + /** + * 居住成员人数 + */ + private Integer totalResi; + + /** + * 审核状态:0待审核 1未通过 2已通过 + */ + private String checkState; + + /** + * 审核原因 + */ + private String checkReason; + + private List memberList; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectPageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectPageFormDTO.java new file mode 100644 index 0000000000..1654fe09b3 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectPageFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-08-03 14:15 + **/ +@Data +public class CollectPageFormDTO extends PageFormDTO implements Serializable { + + private String customerId; + + private String userId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java index 4d53cebb86..c6727abd24 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ExportResiUserFormDTO.java @@ -11,8 +11,9 @@ import java.io.Serializable; * @Date 2021/10/27 2:06 下午 */ @Data -public class ExportResiUserFormDTO implements Serializable { +public class ExportResiUserFormDTO extends ReportDataFormDTO implements Serializable { private static final long serialVersionUID = 8777535966834678256L; + /** * 表单查询条件 */ @@ -27,5 +28,6 @@ public class ExportResiUserFormDTO implements Serializable { */ private IcExportTemplateSaveFormDTO exportConfig; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java index 80719e6737..ec555aaa14 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java @@ -23,4 +23,8 @@ public class GetByRealNamesFormDTO implements Serializable { * 工作人员姓名集合 */ private Set realNames; + /** + * 手机号模糊查询 + */ + private String mobile; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java new file mode 100644 index 0000000000..78cd488d87 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GridStaffUploadtFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + * @author: sun + */ +@NoArgsConstructor +@Data +public class GridStaffUploadtFormDTO { + + /** + * 客户Id + */ + private String customerId; + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectCheckFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectCheckFormDTO.java new file mode 100644 index 0000000000..ad0ac9f106 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectCheckFormDTO.java @@ -0,0 +1,65 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; + + +/** + * 居民信息采集-审核入参 + * + * @author wgf + * @since v1.0.0 2022-08-02 + */ +@Data +public class IcResiCollectCheckFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @NotBlank(message = "Id不能为空") + private String id; + + /** + * 审核状态:0待审核 1未通过 2已通过 + */ + @NotBlank(message = "审核状态不能为空") + private String checkState; + + /** + * 审核原因 + */ + private String checkReason; + + /** + * 单元号 + */ + private String buildingUnitId; + + /** + * 房间号 + */ + private String doorName; + + /** + * 客户ID(审核人) + */ + private String customerId; + + /** + * 员工ID(审核人) + */ + private String userId; + + /** + * 员工姓名(审核人) + */ + private String realName; + + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectGetDetailFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectGetDetailFormDTO.java new file mode 100644 index 0000000000..3de6728d72 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectGetDetailFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +/** + * 居民信息采集-获取房屋信息 + * + * @author wgf + * @since v1.0.0 2022-08-02 + */ +@Data +public class IcResiCollectGetDetailFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @NotBlank(message = "Id不能为空") + private String id; + + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemDetailDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemDetailDTO.java new file mode 100644 index 0000000000..004d5a082f --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemDetailDTO.java @@ -0,0 +1,93 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 家庭成员信息 + * 前端做校验 + */ +@Data +public class IcResiCollectMemDetailDTO implements Serializable { + + /** + * 居住成员1姓名 + */ + // @NotBlank(message = "姓名不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + private String name; + + /** + * 居住成员1身份证号 + */ + // @NotBlank(message = "身份证号不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + private String idNum; + + /** + * 居住成员1手机号 + */ + // @NotBlank(message = "手机号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + private String mobile; + + /** + * 居住成员1是否参加几轮全员核算检测,数字1-10 + */ + // @NotBlank(message = "核算检测情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + private String heSuanCount; + + /** + * 居住成员1新冠疫苗接种情况;1:已全程接种;2:未全程接种;0未接种; + */ + // @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + private Integer ymjz; + + /** + * 户籍所在地 + */ + private String domicilePlace; + + /** + * 户籍所在地行政地区编码 + */ + private String domicilePlaceCode; + + /** + * 户籍所在地行政地区编码全路径,包含自己,英文逗号隔开例如:37,3702,370203 + */ + private String domicilePlaceCodePath; + + /** + * 学校或公司 + */ + private String workPlace; + + /** + * 备注 + */ + private String remark; + + /** + * 社区居民信息登记-查询返参用 + */ + private String id; + + /** + * 与房主关系 + */ + private String relationship; + + /** + * 人脸头像 + */ + private String faceImg; + + /** + * 是否是党员 + */ + private String isParty; + + /** + * 客户ID + */ + private String customerId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java index 7e7cb6e846..987783a172 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java @@ -73,4 +73,15 @@ public class IcResiCollectMemFormDTO implements Serializable { * 社区居民信息登记-查询返参用 */ private String id; + + /** + * 与房主关系 + */ + private String relationship; + + /** + * 人脸头像 + */ + private String faceImg; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java index 66ece366cc..7acb58f01b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java @@ -35,6 +35,10 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable { * 关键词 */ private String keyword; - + /** + * 居民信息列表:resi + * 综合治理图层:zhzl + */ + private String listType; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java new file mode 100644 index 0000000000..1aa4d2db1e --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:11 + * @DESC + */ +@Data +public class IcUserMatchGridFormDTO implements Serializable { + + private static final long serialVersionUID = -5252136149475817567L; + + public interface IcUserMatchGridForm{} + + @NotBlank(message = "idCard不能为空",groups = IcUserMatchGridForm.class) + private String idCard; + + @NotBlank(message = "appId不能为空",groups = IcUserMatchGridForm.class) + private String appId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ReportDataFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ReportDataFormDTO.java new file mode 100644 index 0000000000..6ef39cb1f4 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ReportDataFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.form; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2022/8/17 11:13 + */ +@Data +public class ReportDataFormDTO { + /** + * 客户Id + */ + private String customerId; + /** + * pageNo 报表用的 + */ + private Integer pageNo = 1; + private Integer pageSize = 1000; + private String id; +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java new file mode 100644 index 0000000000..7c3dd2983d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java @@ -0,0 +1,105 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * 收集居民信息入参 + */ +@Data +public class SaveCollectFormDTO implements Serializable { + + /** + * id + */ + private String id; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 内部:internal;外部:external + */ + private String origin; + + /** + * 网格ID_后端接口赋值 + */ + private String gridId; + + /** + * 组织Id_后端接口赋值 + */ + private String agencyId; + + /** + * 组织的pid_后端接口赋值 + */ + private String pids; + + /** + * 所属小区ID + */ + @NotBlank(message = "小区不能为空") + private String villageId; + @NotBlank(message = "小区名不能为空") + private String villageName; + + /** + * 所属楼宇Id + */ + @NotBlank(message = "楼栋不能为空") + private String buildId; + @NotBlank(message = "楼栋名不能为空") + private String buildName; + + /** + * 单元id + */ + @NotBlank(message = "单元不能为空") + private String unitId; + @NotBlank(message = "单元名不能为空") + private String unitName; + + /** + * 所属家庭Id + */ + private String homeId; + @NotBlank(message = "家庭名不能为空") + private String homeName; + + /** + * 详细地址 + */ + @NotBlank(message = "家庭地址不能为空") + private String address; + + /** + * 1自有0租住 + */ + @NotBlank(message = "房子属于自有还是租住?") + private String houseType; + + /** + * 户主姓名 + */ + @NotBlank(message = "户主姓名不能为空") + private String houseHolderName; + + /** + * 居住成员人数 + */ + @NotNull(message = "居住成员人数不能为空") + private Integer totalResi; + + + @NotEmpty(message = "成员信息不能为空") + private List memberList; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitListFormDTO.java new file mode 100644 index 0000000000..09ca9bf294 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitListFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +/** + * @Author wgf + * @DateTime 2022/8/5 8:00 + * @DESC + */ +@Data +public class VisitListFormDTO extends PageFormDTO { + + private static final long serialVersionUID = 2106773724057183577L; + + private String startTime; + + private String endTime; + + private String userId; + + private String customerId; + + private String orgId; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectHouseInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectHouseInfoResultDTO.java new file mode 100644 index 0000000000..6e9fa340ee --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectHouseInfoResultDTO.java @@ -0,0 +1,57 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author wgf + * @DateTime 2022/3/18 19:00 + * @DESC + */ +@Data +public class CollectHouseInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -6692672375850864451L; + + /** + * label + */ + private String label; + + /** + * 所属小区id + */ + private String neighborHoodId; + + /** + * 所属小区姓名 + */ + private String neighborHoodName; + + /** + * 所属楼栋id + */ + private String buildingId; + /** + * 所属楼栋名称 + */ + private String buildName; + /** + * 所属单元id + */ + private String buildingUnitId; + /** + * 所属单元名称 + */ + private String buildingUnitName; + /** + * 门牌号 + */ + private String doorName; + /** + * 房主姓名 + */ + private String ownerName; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java index 85208ba924..89742845fa 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java @@ -54,7 +54,7 @@ public class CollectListMemberExcelResultDTO implements Serializable { /** * 学校或公司 */ - @Excel(name = "单位或学校", width = 60) + @Excel(name = "单位名称", width = 60) private String workPlace; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java index 0fcaa480d4..9851be6340 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java @@ -24,6 +24,9 @@ public class CollectListResultDTO implements Serializable { // @JsonIgnore private String id; + // 组织Id + private String agencyId; + /** * 居住地址 */ @@ -39,6 +42,16 @@ public class CollectListResultDTO implements Serializable { */ private Integer totalResi; + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 审核状态:0待审核 1审核不通过 2审核通过 + */ + private String checkState; + private String domicilePlace; private List list; @@ -95,5 +108,15 @@ public class CollectListResultDTO implements Serializable { * 备注 */ private String remark; + + /** + * 与户主关系 + */ + private String relationship; + + /** + * 人脸照片 + */ + private String faceImg; } } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectPageListDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectPageListDTO.java new file mode 100644 index 0000000000..a25dbcdfec --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectPageListDTO.java @@ -0,0 +1,56 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/18 19:00 + * @DESC + */ +@Data +public class CollectPageListDTO implements Serializable { + + private static final long serialVersionUID = -6692672375850864451L; + + + private String id; + + /** + * 居住地址 + */ + private String address; + + /** + * 居民:resi 访客:visitor + */ + private String type; + + /** + * 居民登记/访客登记 + */ + private String title; + + /** + * 审核状态:0待审核 1审核不通过 2审核通过 + */ + private String checkState; + + /** + * 审核状态名称 + */ + private String checkStateName; + + /** + * 审核原因 + */ + private String checkReason; + + /** + * 提交时间 + */ + private String createTime; + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java new file mode 100644 index 0000000000..35e485df82 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java @@ -0,0 +1,58 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.util.Date; + +/** + * @description: 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + * @author: sun + */ +@Data +public class GridStaffUploadResultDTO { + /** + * 区县系统中的网格员唯一编码 + */ + private String gridUserId; + + /** + * 网格员姓名 + */ + private String nickName; + + /** + * 网格员身份证号码 + */ + private String cardNum; + + /** + * 网格员手机号 + */ + private String phonenumber; + + /** + * 网格员性别,应符合10.31中性别,不要有 其他 + */ + private String sex; + + /** + * 网格员类型,符合《标准》10.3 + */ + private String userType; + + /** + * 网格员信息编辑插入、更新时间,,县市区填写 + */ + private Date updateTime; + + /** + * 是否离职,格式为Y:是、N:否 + */ + private String isLeave; + + /** + * 离职时间,格式为“YYYY-MM-DD” + */ + private Date date; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java index c9a0160aed..87393c2a17 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java @@ -71,6 +71,11 @@ public class IcResiUserBriefDTO extends HouseUserDTO implements Serializable { */ private Map volunteerCategories = new HashMap<>(); + /** + * 居民类别 + */ + private String resiCategoryNames; + /** * 同屋的其他人 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java new file mode 100644 index 0000000000..d3fd271987 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:14 + * @DESC + */ +@Data +public class IcUserMatchGridResultDTO implements Serializable { + + private static final long serialVersionUID = -3215965796907113918L; + + private String gridId; + + private String customerId; + + private String gridName; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java index d0040279cb..ce558ef5c5 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java @@ -22,6 +22,8 @@ public class PatrolRoutineWorkResult implements Serializable { private String customerId; private String gridId; + private String gridCode; + private String gridName; private String title; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 2dffd84aee..e37454ed35 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -689,6 +689,9 @@ public interface EpmetUserOpenFeignClient { @PostMapping(value = "/epmetuser/patrolroutinework/selectList") Result> getPatrolRoutineWorkList(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO); + @PostMapping(value = "/epmetuser/patrolroutinework/selectListV2") + Result> getPatrolRoutineWorkListV2(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO); + /** * 获取ic_resi_user * @param icResiUserId @@ -855,4 +858,17 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/staffrole/getIsRootManager") Result getIsRootManager(@RequestParam("userId") String userId); + + @PostMapping("/epmetuser/customerstaff/staffdetailinfo") + Result staffDetailInfo(@RequestBody CustomerStaffFormDTO formDTO); + + @PostMapping("/epmetuser/customerstaff/depttoaddstaff") + Result deptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO); + + @PostMapping("/epmetuser/customerstaff/edittostaff") + Result editToStaff(@RequestBody CustomerStaffDTO formDTO); + + + @PostMapping("/epmetuser/customerstaff/customerstaff") + Result> customerStaff(@RequestBody GridStaffUploadtFormDTO formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index bee7102a73..71711e66a8 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -510,6 +510,11 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkList", patrolQueryFormDTO); } + @Override + public Result> getPatrolRoutineWorkListV2(PatrolQueryFormDTO patrolQueryFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkListV2", patrolQueryFormDTO); + } + @Override public Result getIcResiUserDTO(String icResiUserId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIcResiUserDTO", icResiUserId); @@ -646,4 +651,24 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIsRootManager", userId); } + @Override + public Result staffDetailInfo(CustomerStaffFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "staffDetailInfo", formDTO); + } + + @Override + public Result deptToAddStaff(StaffSubmitFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deptToAddStaff", fromDTO); + } + + @Override + public Result editToStaff(CustomerStaffDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editToStaff", formDTO); + } + + @Override + public Result> customerStaff(GridStaffUploadtFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "customerStaff", formDTO); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java index 274cb8ed87..215af4eab1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java @@ -43,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -221,7 +222,9 @@ public class CustomerStaffController { if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); - mq.setOrgId(result.getData().getUserId()); + List st = new ArrayList<>(); + st.add(result.getData().getUserId()); + mq.setStaffIdList(st); mq.setOrgType("staff"); mq.setType("staff_create"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); @@ -245,7 +248,9 @@ public class CustomerStaffController { if (result.success()) { OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); mq.setCustomerId(fromDTO.getCustomerId()); - mq.setOrgId(fromDTO.getStaffId()); + List st = new ArrayList<>(); + st.add(fromDTO.getStaffId()); + mq.setStaffIdList(st); mq.setOrgType("staff"); mq.setType("staff_change"); SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); @@ -493,5 +498,31 @@ public class CustomerStaffController { return new Result>().ok(customerStaffService.gridMobileList(formDTO.getGridId(), tokenDto.getUserId())); } + @PostMapping(value = "staffdetailinfo") + public Result staffDetailInfo(@RequestBody CustomerStaffFormDTO formDTO) { + return new Result().ok(customerStaffService.staffDetailInfo(formDTO)); + } + + @PostMapping("depttoaddstaff") + public Result dedittostaffeptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO){ + Result result = customerStaffService.deptToAddStaff(fromDTO); + return result; + } + + @PostMapping(value = "edittostaff") + public Result editToStaff(@RequestBody CustomerStaffDTO formDTO) { + customerStaffService.editToStaff(formDTO); + return new Result(); + } + + /** + * @Author sun + * @Description 网格工作人员数据上报-查询客户网格下有效工作人员信息数据 + **/ + @PostMapping(value = "customerstaff") + public Result> customerStaff(@RequestBody GridStaffUploadtFormDTO formDTO) { + return new Result>().ok(customerStaffService.customerStaff(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java index 543493a395..cca091439f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java @@ -10,14 +10,8 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.CollectListFormDTO; -import com.epmet.dto.form.IcResiCollectFormDTO; -import com.epmet.dto.form.LatestSubmitCollectFormDTO; -import com.epmet.dto.form.ResiCollectFormDTO; -import com.epmet.dto.result.CollectListExcelResultDTO; -import com.epmet.dto.result.CollectListMemberExcelResultDTO; -import com.epmet.dto.result.CollectListResultDTO; -import com.epmet.dto.result.LatestCollectResDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.service.IcResiCollectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -156,4 +150,76 @@ public class IcResiCollectController { ValidatorUtils.validateEntity(formDTO,LatestSubmitCollectFormDTO.AddUserInternalGroup.class); return new Result().ok(icResiCollectService.latestSubmit(formDTO)); } + + /** + * 信息采集-审核 + * @param formDTO + * @param tokenDto + * @return + */ + @PostMapping("collectCheck") + public Result collectCheck(@RequestBody IcResiCollectCheckFormDTO formDTO, @LoginUser TokenDto tokenDto) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + icResiCollectService.collectCheck(formDTO,tokenDto); + + return new Result(); + } + + + /** + * @describe: 扫描社区/小区二维码进行居民信息登记 + * @author wangtong + * @date 2022/8/2 16:01 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result + */ + @NoRepeatSubmit + @PostMapping("saveCollectInfo") + public Result saveCollectInfo(@RequestBody SaveCollectFormDTO formDTO) { + //效验数据 + ValidatorUtils.validateEntity(formDTO); + formDTO.setOrigin("internal");//固定为内部 + return icResiCollectService.saveCollectInfo(formDTO); + } + + /** + * @describe: 我的登记列表 + * @author wangtong + * @date 2022/8/3 13:59 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("getCollectPage") + public Result> getCollectPage(@LoginUser TokenDto tokenDto,@RequestBody CollectPageFormDTO dto) { + dto.setUserId(tokenDto.getUserId()); + dto.setCustomerId(tokenDto.getCustomerId()); + PageData page = icResiCollectService.getCollectPage(dto); + return new Result>().ok(page); + } + + /** + * 信息采集-审核通过-新增房屋-复显房屋信息 + * @param formDTO + * @param tokenDto + * @return + */ + @PostMapping("getHouseDetailByCollect") + public Result getHouseDetailByCollect(@RequestBody IcResiCollectGetDetailFormDTO formDTO, @LoginUser TokenDto tokenDto) { + return new Result().ok(icResiCollectService.getHouseDetailByCollect(formDTO)); + } + + /** + * @describe: 查看居民采集信息详情 + * @author wangtong + * @date 2022/8/3 15:05 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("getCollectDetail") + public Result getCollectDetail(@RequestBody CollectDetailFormDTO dto) { + ValidatorUtils.validateEntity(dto); + return icResiCollectService.getCollectDetail(dto); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java new file mode 100644 index 0000000000..60995a0211 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java @@ -0,0 +1,137 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.annotation.MaskResponse; +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.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IcResiCollectVisitorDTO; +import com.epmet.dto.SaveCollectVisitorFormDTO; +import com.epmet.dto.form.CollectDetailFormDTO; +import com.epmet.dto.form.CollectListFormDTO; +import com.epmet.dto.form.VisitListFormDTO; +import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.excel.IcResiCollectVisitorExcel; +import com.epmet.service.IcResiCollectVisitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@RestController +@RequestMapping("icResiCollectVisitor") +public class IcResiCollectVisitorController { + + @Autowired + private IcResiCollectVisitorService icResiCollectVisitorService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ +// PageData page = icResiCollectVisitorService.page(params); + PageData page = icResiCollectVisitorService.getPhrasePage(params); + return new Result>().ok(page); + + + } + + /** + * Desc: 访客记录列表 + * @param formDTO + * @param tokenDto + * @author wgf + * @date 2022/8/5 8:23 + */ + @PostMapping("list") +// @MaskResponse(fieldNames = { "memberIdNum", "memberMobile" }, +// fieldsMaskType = { MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE }) + public Result> getVisitorList(@RequestBody VisitListFormDTO formDTO, @LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO,CollectListFormDTO.CollectListForm.class); + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icResiCollectVisitorService.getVisitorList(formDTO)); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcResiCollectVisitorDTO data = icResiCollectVisitorService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcResiCollectVisitorDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icResiCollectVisitorService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody IcResiCollectVisitorDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + icResiCollectVisitorService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icResiCollectVisitorService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = icResiCollectVisitorService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, IcResiCollectVisitorExcel.class); + } + + /** + * @describe: 保存访客信息 + * @author wangtong + * @date 2022/8/3 10:33 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + @NoRepeatSubmit + @PostMapping("saveInfo") + public Result saveInfo(@RequestBody SaveCollectVisitorFormDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto); + return icResiCollectVisitorService.saveInfo(dto); + } + + /** + * @describe: 访客信息详情 + * @author wangtong + * @date 2022/8/3 15:41 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("getVisitorDetail") + public Result getVisitorDetail(@RequestBody CollectDetailFormDTO dto) { + ValidatorUtils.validateEntity(dto); + return icResiCollectVisitorService.getVisitorDetail(dto); + } + + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 8ed931e7ed..40e661a63b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -25,12 +25,14 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.MaskResponse; +import com.epmet.commons.tools.annotation.ReportRequest; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO; import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; @@ -67,6 +69,7 @@ import com.epmet.send.SendMqMsgUtil; import com.epmet.service.IcResiUserExportService; import com.epmet.service.IcResiUserImportService; import com.epmet.service.IcResiUserService; +import com.github.pagehelper.Page; import feign.RequestInterceptor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -187,6 +190,12 @@ public class IcResiUserController implements ResultDataResolver { IC_RESI_DOWNLOAD_DIR = exportDir; } + /** + * 批量删除居民信息 + * @param tokenDto + * @param formDTO + * @return + */ @NoRepeatSubmit @PostMapping("delete") public Result delete(@LoginUser TokenDto tokenDto, @RequestBody DelIcResiUserFormDTO formDTO) { @@ -368,12 +377,14 @@ public class IcResiUserController implements ResultDataResolver { return new Result<>(); } + @ReportRequest @PostMapping("listresi") @MaskResponse(fieldNames = {"MOBILE", "ID_CARD"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) public Result>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) { //pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); pageFormDTO.setCustomerId(tokenDto.getCustomerId()); pageFormDTO.setStaffId(tokenDto.getUserId()); + pageFormDTO.setListType("resi"); ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class); if (null == pageFormDTO.getConditions()) { pageFormDTO.setConditions(new ArrayList<>()); @@ -523,7 +534,7 @@ public class IcResiUserController implements ResultDataResolver { log.info("通过原来的模板下载,tokenDto:{}", JSON.toJSONString(tokenDto)); this.exportExcelByEasyExcel(tokenDto, pageFormDTO.getSearchForm(), response); } else { - icResiUserExportService.exportIcResiUser(tokenDto, pageFormDTO, response); + icResiUserExportService.exportIcResiUser(tokenDto, pageFormDTO, response,false); } } catch (EpmetException e) { response.reset(); @@ -536,6 +547,60 @@ public class IcResiUserController implements ResultDataResolver { } } + /** + * desc: 自定义导出居民信息 不下载只有数据 + * + * @param tokenDto + * @param pageFormDTO + * @param response + * @return void + * @author LiuJanJun + * @date 2021/11/19 4:24 下午 + * @remark 用于报表调用的接口 试试 + */ + @ReportRequest + @NoRepeatSubmit + @RequestMapping(value = "/exportExcelCustomData") + public Map exportExcelCustomData(@LoginUser TokenDto tokenDto, @RequestParam("templateId") String templateId, + @RequestBody ExportResiUserFormDTO pageFormDTO) throws Exception { + log.warn("templateId=【"+templateId+"】"); + log.warn("pageFormDTO入参【"+JSON.toJSONString(pageFormDTO)+"】"); + pageFormDTO.setTemplateId(templateId); + if (null == pageFormDTO.getSearchForm()) { + IcResiUserPageFormDTO searchForm = new IcResiUserPageFormDTO(); + searchForm.setFormCode("resi_base_info"); + searchForm.setCustomerId(tokenDto.getCustomerId()); + searchForm.setStaffId(tokenDto.getUserId()); + // searchForm.setPageNo(pageFormDTO.getPageNo()); + // searchForm.setPageSize(pageFormDTO.getPageSize()); + List conditions=new ArrayList<>(); + // ResiUserQueryValueDTO temp=new ResiUserQueryValueDTO(); + // temp.setColumnName(""); + // temp.setColumnValue(Arrays.asList("IS_UNEMPLOYED")); + // temp.setQueryType("resi_category"); + // temp.setTableName("ic_resi_user"); + // conditions.add(temp); + searchForm.setConditions(conditions); + pageFormDTO.setSearchForm(searchForm); + } + pageFormDTO.getSearchForm().setPageNo(pageFormDTO.getPageNo()); + pageFormDTO.getSearchForm().setPageSize(pageFormDTO.getPageSize()); + if (null == pageFormDTO.getExportConfig()) { + IcExportTemplateSaveFormDTO exportTemplateSaveFormDTO = new IcExportTemplateSaveFormDTO(); + exportTemplateSaveFormDTO.setFormCode("resi_base_info"); + exportTemplateSaveFormDTO.setIsSaveTemp(false); + pageFormDTO.setExportConfig(exportTemplateSaveFormDTO); + } + //固定通用客户Id + pageFormDTO.setCustomerId("jmreport_resi_default"); + Page> maps = icResiUserExportService.exportIcResiUser(tokenDto, pageFormDTO, null, true); + Map result = new HashMap<>(); + result.put("total",maps.getPages()); + result.put("count",maps.getTotal()); + result.put("data",maps.getResult()); + return result; + } + /** * desc:根据客户id 先从oss下载模版,如果有没有则使用系统默认模板 如果不存在则返回null * @@ -1271,4 +1336,38 @@ public class IcResiUserController implements ResultDataResolver { public Result> getIcUserCount(@RequestBody IcUserCountFormDTO formDTO) { return new Result>().ok(icResiUserService.getIcUserCount(formDTO)); } + + /** + * 综合治理图层:查询居民信息 + * @param tokenDto + * @param pageFormDTO + * @return + */ + @PostMapping("listresi-zhzl") + @MaskResponse(fieldNames = {"MOBILE", "ID_CARD"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) + public Result>> listResiZhzl(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) { + pageFormDTO.setCustomerId(tokenDto.getCustomerId()); + pageFormDTO.setStaffId(tokenDto.getUserId()); + pageFormDTO.setListType("zhzl"); + pageFormDTO.setIsPage(true); + ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class); + if (null == pageFormDTO.getConditions()) { + pageFormDTO.setConditions(new ArrayList<>()); + } + return new Result>>().ok(icResiUserService.listResiZhzl(pageFormDTO)); + } + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @PostMapping("icUserMatchGrid") + public Result icUserMatchGrid(@RequestBody IcUserMatchGridFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, IcUserMatchGridFormDTO.IcUserMatchGridForm.class); + return new Result().ok(icResiUserService.icUserMatchGrid(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java index f018a32789..d004630d41 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java @@ -47,6 +47,13 @@ public class PatrolRoutineWorkController { Page data = gridUserWorkService.listPage(formDTO); return new Result().ok(data.getResult()); } + + @NoRepeatSubmit + @PostMapping("selectListV2") + public Result> gridUserWorkV2(@RequestBody PatrolQueryFormDTO formDTO){ + Page data = gridUserWorkService.listPage(formDTO); + return new Result().ok(data.getResult()); + } /** * @Description 添加例行工作 * @param formDTO diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java index 725a456b46..b34065223f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java @@ -229,4 +229,8 @@ public interface CustomerStaffDao extends BaseDao { * @Description 工作人员基本信息 **/ List gridStaffMobileList(List staffIdList); + + List getStaffByCustomerId(@Param("customerId") String customerId); + + void edit(CustomerStaffDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java index db8eb3db7c..5210b45a27 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java @@ -2,7 +2,10 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.CollectListFormDTO; +import com.epmet.dto.form.IcResiCollectGetDetailFormDTO; +import com.epmet.dto.result.CollectHouseInfoResultDTO; import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.dto.result.CollectPageListDTO; import com.epmet.entity.IcResiCollectEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -43,4 +46,20 @@ public interface IcResiCollectDao extends BaseDao { * @return */ List selectLastSubmitId(@Param("customerId") String customerId, @Param("userId") String userId); -} \ No newline at end of file + + /** + * @describe: 我的登记列表 + * @author wangtong + * @date 2022/8/3 14:19 + * @params [customerId] + * @return java.util.List + */ + List getCollectPage(@Param("customerId") String customerId, @Param("userId") String userId); + + /** + * 获取房屋信息 + * @param formDTO + * @return + */ + CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java new file mode 100644 index 0000000000..acf3fe568c --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java @@ -0,0 +1,38 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcResiCollectVisitorDTO; +import com.epmet.dto.form.CollectListFormDTO; +import com.epmet.dto.form.VisitListFormDTO; +import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.entity.IcResiCollectVisitorEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@Mapper +public interface IcResiCollectVisitorDao extends BaseDao { + + /** + * 条件查询 + * @param params + * @return + */ + List getPhrasePage(Map params); + + /** + * Desc: 查询访客信息 + * @param formDTO + * @author wgf + * @date 2022/8/5 8:41 + */ + List getCollectList(VisitListFormDTO formDTO); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java index e61539e1da..bd4c629d53 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java @@ -1,6 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.IcResiCollectMemDetailDTO; import com.epmet.dto.form.IcResiCollectMemFormDTO; import com.epmet.entity.IcResiMemberEntity; import org.apache.ibatis.annotations.Mapper; @@ -18,4 +19,12 @@ import java.util.List; public interface IcResiMemberDao extends BaseDao { List selectMySubmit(@Param("latestResiCollectId") String latestResiCollectId, @Param("userId")String userId); -} \ No newline at end of file + + /** + * 审核在用 + * @param collectId + * @return + */ + List selectListByCollectId(@Param("collectId") String collectId); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeDetailedDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeDetailedDao.java index ecb3d1f561..bee24287c5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeDetailedDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeDetailedDao.java @@ -39,4 +39,6 @@ public interface IcUserChangeDetailedDao extends BaseDao icUserIds); + + int deleteByIcResiUserId(String icResiUserId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java index cff359168c..89ee1327f2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java @@ -49,4 +49,6 @@ public interface IcUserChangeRecordDao extends BaseDao * @Description 删除客户是新增类型的变更历史数据 **/ void delByCustomerId(@Param("customerId") String customerId, @Param("type") String type, @Param("icUserIds") List icUserIds); + + int deleteByIcResiUserId(String icResiUserId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserTransferRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserTransferRecordDao.java index dacd67bd6c..a869491b26 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserTransferRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserTransferRecordDao.java @@ -29,5 +29,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcUserTransferRecordDao extends BaseDao { - + + int deleteByIcResiUserId(String icResiUserId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java index 86bedb482c..690bf326c2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/CustomerStaffEntity.java @@ -101,4 +101,9 @@ public class CustomerStaffEntity extends BaseEpmetEntity { * 登录密码 */ private String password; + + /** + * 身份证号 + */ + private String idCard; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java index 3b4b8ac3e0..8c11f4a849 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java @@ -86,4 +86,14 @@ public class IcResiCollectEntity extends BaseEpmetEntity { private String buildName; private String unitName; private String homeName; + + /** + * 审核状态:0待审核 1未通过 2已通过 + */ + private String checkState; + + /** + * 审核原因 + */ + private String checkReason; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectVisitorEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectVisitorEntity.java new file mode 100644 index 0000000000..7b9c8a7501 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectVisitorEntity.java @@ -0,0 +1,111 @@ +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-08-02 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_collect_visitor") +public class IcResiCollectVisitorEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 网格ID + */ + private String gridId; + + /** + * 组织Id + */ + private String agencyId; + + /** + * 组织的pids + */ + private String pids; + + /** + * 所属小区ID; + */ + private String villageId; + + /** + * 所属小区名称 + */ + private String villageName; + + /** + * 所属楼宇Id + */ + private String buildId; + + /** + * 所属楼宇名称 + */ + private String buildName; + + /** + * 单元id + */ + private String unitId; + + /** + * 单元名 + */ + private String unitName; + + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 房间名 + */ + private String homeName; + + /** + * 详细地址 + */ + private String address; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 来访事由 + */ + private String comeReason; + + /** + * 人脸照片 + */ + private String faceImg; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java index 583663a1a1..e49fbeb008 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java @@ -77,4 +77,14 @@ public class IcResiMemberEntity extends BaseEpmetEntity { * 备注 */ private String remark; + + /** + * 与房主关系 + */ + private String relationship; + + /** + * 人脸头像 + */ + private String faceImg; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java index 5b70e7a653..f787399b23 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java @@ -225,6 +225,10 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java index ba4ff82087..2548d9b2ac 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java @@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织机构Id + */ + private String agencyId; + + /** + * agencyId的所有上级,包含自己 + */ + private String agencyIdPath; + /** * 用户Id (user.id) */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java index 7ae5d5d706..c921136c00 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java @@ -35,7 +35,8 @@ public enum IcResiUserTableEnum { IC_DB("virtual_db","大病人员信息录入表", null, 2, "IS_DB", false), IC_MB("virtual_mb","慢病人员信息录入表", null, 2, "IS_MB", false), IC_TENANT("virtual_tenant","租户信息录入表", null, 2, "IS_TENANT", false), - IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false); + IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false), + IC_XJC("virtual_xjc","新阶层人士信息录入表", null, 2, "IS_XJC", false); private String tableName; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiCollectVisitorExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiCollectVisitorExcel.java new file mode 100644 index 0000000000..32d4ce6836 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiCollectVisitorExcel.java @@ -0,0 +1,90 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@Data +public class IcResiCollectVisitorExcel { + + @Excel(name = "主键") + private String id; + + @Excel(name = "客户Id customer.id") + private String customerId; + + @Excel(name = "网格ID") + private String gridId; + + @Excel(name = "组织Id") + private String agencyId; + + @Excel(name = "组织的pids") + private String pids; + + @Excel(name = "所属小区ID;") + private String villageId; + + @Excel(name = "所属小区名称") + private String villageName; + + @Excel(name = "所属楼宇Id") + private String buildId; + + @Excel(name = "所属楼宇名称") + private String buildName; + + @Excel(name = "单元id") + private String unitId; + + @Excel(name = "单元名") + private String unitName; + + @Excel(name = "所属家庭Id") + private String homeId; + + @Excel(name = "房间名") + private String homeName; + + @Excel(name = "姓名") + private String name; + + @Excel(name = "手机号") + private String mobile; + + @Excel(name = "身份证号") + private String idCard; + + @Excel(name = "来访事由") + private String comeReason; + + @Excel(name = "人脸照片") + private String faceImg; + + @Excel(name = "删除标识 0.未删除 1.已删除") + private Integer 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; + + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java index 8f3c43251c..be03fdfc96 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java @@ -3,11 +3,10 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.form.CommonGridIdFormDTO; -import com.epmet.dto.form.CustomerGridFormDTO; -import com.epmet.dto.form.OrgInfoPointFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.CommunityInfoResultDTO; import com.epmet.dto.result.GridInfoResultDTO; +import com.epmet.dto.result.IcHouseInfoCollectResultDTO; import com.epmet.feign.fallback.GovOrgFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -85,4 +84,24 @@ public interface GovOrgFeignClient { @GetMapping("/gov/org/customeragency/getCommunityInfoByUserId/{userId}") Result getCommunityInfoByUserId(@PathVariable("userId") String userId); + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author wgf + * @Description 更新房屋新 + * @Date 2020/4/26 23:16 + **/ + @PostMapping("/gov/org/house/updateCollect") + Result updateCollect(CollectHouseFormDTO formDTO); + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author wgf + * @Description 获取房屋信息 + * @Date 2020/4/26 23:16 + **/ + @PostMapping("/gov/org/house/getHouseInfoToCollect") + Result getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java index 0c1f3a6342..77d306b310 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java @@ -4,11 +4,10 @@ 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.CustomerGridDTO; -import com.epmet.dto.form.CommonGridIdFormDTO; -import com.epmet.dto.form.CustomerGridFormDTO; -import com.epmet.dto.form.OrgInfoPointFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.CommunityInfoResultDTO; import com.epmet.dto.result.GridInfoResultDTO; +import com.epmet.dto.result.IcHouseInfoCollectResultDTO; import com.epmet.feign.GovOrgFeignClient; import org.springframework.stereotype.Component; @@ -51,4 +50,14 @@ public class GovOrgFeignClientFallBack implements GovOrgFeignClient { public Result getCommunityInfoByUserId(String userId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCommunityInfoByUserId",userId); } + + @Override + public Result updateCollect(CollectHouseFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "updateCollect",formDTO); + } + + @Override + public Result getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getHouseInfoToCollect",formDTO); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/IcResiCollectVisitorRedis.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/IcResiCollectVisitorRedis.java new file mode 100644 index 0000000000..f22d25ee1a --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/IcResiCollectVisitorRedis.java @@ -0,0 +1,30 @@ +package com.epmet.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@Component +public class IcResiCollectVisitorRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java index e986aa8f07..f6ca859101 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java @@ -347,4 +347,12 @@ public interface CustomerStaffService extends BaseService { * @Description 【事件】网格员服务电话 **/ List gridMobileList(String gridId, String userId); + + CustomerStaffDTO staffDetailInfo(CustomerStaffFormDTO formDTO); + + Result deptToAddStaff(StaffSubmitFromDTO fromDTO); + + void editToStaff(CustomerStaffDTO formDTO); + + List customerStaff(GridStaffUploadtFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java index 17b6031472..07a97f933d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java @@ -2,11 +2,12 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; -import com.epmet.dto.form.CollectListFormDTO; -import com.epmet.dto.form.IcResiCollectFormDTO; -import com.epmet.dto.form.LatestSubmitCollectFormDTO; -import com.epmet.dto.form.ResiCollectFormDTO; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.*; +import com.epmet.dto.result.CollectHouseInfoResultDTO; import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.dto.result.CollectPageListDTO; import com.epmet.dto.result.LatestCollectResDTO; import com.epmet.entity.IcResiCollectEntity; @@ -56,4 +57,46 @@ public interface IcResiCollectService extends BaseService { * @return */ CollectListResultDTO detail(CollectListFormDTO formDTO); -} \ No newline at end of file + + /** + * 信息登记审核 + * @param formDTO + * @return + */ + void collectCheck(IcResiCollectCheckFormDTO formDTO, TokenDto tokenDto); + + /** + * @describe: 扫描社区/小区二维码进行居民信息登记 + * @author wangtong + * @date 2022/8/2 17:14 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result + */ + Result saveCollectInfo(SaveCollectFormDTO formDTO); + + /** + * @describe: 我的登记列表 + * @author wangtong + * @date 2022/8/3 14:14 + * @params [dto] + * @return com.epmet.commons.tools.page.PageData + */ + PageData getCollectPage(CollectPageFormDTO dto); + + /** + * @describe: 查看居民采集信息详情 + * @author wangtong + * @date 2022/8/3 15:08 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + Result getCollectDetail(CollectDetailFormDTO dto); + + /** + * 信息采集-获取房屋信息 + * @param formDTO + * @return + */ + CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO); +} + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java new file mode 100644 index 0000000000..5f7f3e4d25 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java @@ -0,0 +1,111 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.IcResiCollectVisitorDTO; +import com.epmet.dto.SaveCollectVisitorFormDTO; +import com.epmet.dto.form.CollectDetailFormDTO; +import com.epmet.dto.form.CollectListFormDTO; +import com.epmet.dto.form.VisitListFormDTO; +import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.entity.IcResiCollectVisitorEntity; + +import java.util.List; +import java.util.Map; + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +public interface IcResiCollectVisitorService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-08-02 + */ + PageData page(Map params); + + /** + * 分页条件查询 + * @param params + * @return + */ + PageData getPhrasePage(Map params); + + PageData getVisitorList(VisitListFormDTO formDTO); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-08-02 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcResiCollectVisitorDTO + * @author generator + * @date 2022-08-02 + */ + IcResiCollectVisitorDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-02 + */ + void save(IcResiCollectVisitorDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-08-02 + */ + void update(IcResiCollectVisitorDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-08-02 + */ + void delete(String[] ids); + + /** + * @describe: 保存访客信息 + * @author wangtong + * @date 2022/8/3 10:44 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + Result saveInfo(SaveCollectVisitorFormDTO dto); + + /** + * @describe: 访客信息详情 + * @author wangtong + * @date 2022/8/3 15:43 + * @params [dto] + * @return com.epmet.commons.tools.utils.Result + */ + Result getVisitorDetail(CollectDetailFormDTO dto); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserExportService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserExportService.java index 53f9bee81f..f67864cf82 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserExportService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserExportService.java @@ -2,8 +2,10 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.ExportResiUserFormDTO; +import com.github.pagehelper.Page; import javax.servlet.http.HttpServletResponse; +import java.util.Map; /** *@Description 居民信息导出service @@ -23,5 +25,5 @@ public interface IcResiUserExportService { * @author LiuJanJun * @date 2022/4/22 1:35 下午 */ - void exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response); + Page> exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response, boolean onlyGetData); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 97cb5345a5..37cf258e14 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -490,4 +490,19 @@ public interface IcResiUserService extends BaseService { */ Map getIcUserCount(IcUserCountFormDTO formDTO); + /** + * 综合治理图层-查询各类别(信访人员、安置帮教、吸毒人员、社区矫正、不良青少年、肇事肇祸精神病、邪教人员)居民信息 + * @param pageFormDTO + * @return + */ + PageData> listResiZhzl(IcResiUserPageFormDTO pageFormDTO); + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeDetailedService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeDetailedService.java index ce2747ddcd..cf305c4b0a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeDetailedService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeDetailedService.java @@ -36,4 +36,6 @@ public interface IcUserChangeDetailedService extends BaseService icUserIds); + + int deleteByIcResiUserId(String icResiUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java index a75d3a1fe1..fa68cd34da 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java @@ -54,4 +54,6 @@ public interface IcUserChangeRecordService extends BaseService page(Map params) { @@ -737,7 +745,28 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl selectStaffBasicInfo(String userId, String customerId) { - StaffBasicInfoResultDTO resultDTO = baseDao.selectStaffBasicInfo(userId); + StaffBasicInfoResultDTO resultDTO = null; + String userBaseInfoKey = RedisKeys.getUserBaseInfoKey(userId); + resultDTO = (StaffBasicInfoResultDTO)redisUtils.get(userBaseInfoKey); + if(resultDTO == null){ + resultDTO = getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } + //启用线程去查询 并替换redis + executorService.submit(() -> { + try { + getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } catch (Exception e) { + log.error("selectStaffBasicInfo exception", e); + } + }); + + return new Result().ok(resultDTO); + } + + @Nullable + private StaffBasicInfoResultDTO getStaffBasicInfoResultDTO(String userId, String customerId, String userBaseInfoKey) { + StaffBasicInfoResultDTO resultDTO; + resultDTO = baseDao.selectStaffBasicInfo(userId); if (null != resultDTO) { resultDTO.setRoleList(baseDao.selectStaffRoles(userId, resultDTO.getCustomerId())); CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); @@ -765,7 +794,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl().ok(resultDTO); + redisUtils.set(userBaseInfoKey,resultDTO); + return resultDTO; } /** @@ -871,4 +901,52 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl deptToAddStaff(StaffSubmitFromDTO fromDTO) { + //1.查询客户小程序端'工作人员'角色 + GovStaffRoleDTO govRole = govStaffRoleDao.getRoleByCustomerIdAndRoleKey(fromDTO.getCustomerId(), "staff"); + List roles = new ArrayList<>(); + roles.add(govRole.getId()); + fromDTO.setRoles(roles); + + //2.查询客户管理平台对应角色【联建单位负责人、社区自组织负责人】 + GovRoleListDTO roleDTO = new GovRoleListDTO(); + roleDTO.setCustomerId(fromDTO.getCustomerId()); + roleDTO.setName("party_unit".equals(fromDTO.getDeptType()) ? "联建单位负责人" : "社区自组织负责人"); + Result resultRole = govAccessFeignClient.getGovRole(roleDTO); + if (!resultRole.success() || null == resultRole.getData()) { + throw new RenException("人员添加失败" + resultRole.getMsg()); + } + List newRoles = new ArrayList<>(); + newRoles.add(resultRole.getData().getId()); + fromDTO.setNewRoles(newRoles); + + //3.新增工作人员 + Result result = addStaff(fromDTO); + + //4.新增数字平台角色信息 + Result roleUserAccess = govAccessFeignClient.roleUser(new RoleUserFormDTO(fromDTO.getNewRoles(), result.getData().getUserId(), fromDTO.getCustomerId())); + if (!roleUserAccess.success()) { + throw new RenException("工作人员新增数字平台角色信息失败" + resultRole.getMsg()); + } + + return result; + } + + @Override + public void editToStaff(CustomerStaffDTO formDTO) { + baseDao.edit(formDTO); + } + + @Override + public List customerStaff(GridStaffUploadtFormDTO formDTO) { + //1.查询客户下有效工作人员信息 + return baseDao.getStaffByCustomerId(formDTO.getCustomerId()); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java index 5caeb3a008..93c25d9ec5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.RelationshipEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; @@ -12,18 +13,24 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiCollectDao; import com.epmet.dao.IcResiMemberDao; +import com.epmet.dao.IcResiUserDao; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.CollectListResultDTO; -import com.epmet.dto.result.LatestCollectResDTO; +import com.epmet.dto.result.*; import com.epmet.entity.IcResiCollectEntity; import com.epmet.entity.IcResiMemberEntity; +import com.epmet.entity.IcResiUserEntity; +import com.epmet.entity.IcUserChangeRecordEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.IcResiCollectService; +import com.epmet.service.IcUserChangeRecordService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; @@ -51,6 +58,19 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class); //查询之前录入的成员表 Map memMap = queryOriginMem(origin.getId()); - saveOrUpdateMem(newMemberList, memMap,origin.getId()); + saveOrUpdateMem(newMemberList, memMap,origin); } } @@ -130,7 +150,64 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class); + memberList.forEach(mem -> { + if (StringUtils.isNotBlank(mem.getName()) || StringUtils.isNotBlank(mem.getIdNum())) { + //姓名或份身份证号不为空时插入 + mem.setCustomerId(neighborHoodDTO.getCustomerId()); + mem.setIcResiCollectId(entity.getId()); + icResiMemberDao.insert(mem); + } + }); + } else { + IcResiCollectEntity collectInfo = baseDao.selectByAddress(formDTO.getAddress()); + //更新主表 + baseDao.updateRec(collectInfo.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi(),null); + List newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class); + //查询之前录入的成员表 + Map memMap = queryOriginMem(collectInfo.getId()); + saveOrUpdateMem(newMemberList, memMap,collectInfo); + } + return new Result().ok("提交成功"); + } + + @Override + public PageData getCollectPage(CollectPageFormDTO dto) { + PageHelper.startPage(dto.getPageNo(), dto.getPageSize()); + List list = baseDao.getCollectPage(dto.getCustomerId(),dto.getUserId()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + @Override + public Result getCollectDetail(CollectDetailFormDTO dto) { + IcResiCollectEntity entity = baseDao.selectById(dto.getId()); + if(null == entity){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "暂无查询到信息","暂无查询到信息"); + } + CollectDetailResultDTO result = ConvertUtils.sourceToTarget(entity, CollectDetailResultDTO.class); + //查询成员信息 + List memberList = icResiMemberDao.selectListByCollectId(dto.getId()); + result.setMemberList(memberList); + return new Result().ok(result); + } + + public IcNeighborHoodDTO queryIcNeighborHood(String villageId) { Result res = govOrgOpenFeignClient.getIcNeighbordhoodById(villageId); if (!res.success() || null == res.getData()) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息查询异常", "小区信息查询异常"); @@ -146,12 +223,12 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl newMemberList, Map memMap, String originIcResiCollectId) { + private void saveOrUpdateMem(List newMemberList, Map memMap, IcResiCollectEntity collectInfo) { for (IcResiMemberEntity entity : newMemberList) { if(StringUtils.isNotBlank(entity.getIdNum())){ if (MapUtils.isNotEmpty(memMap) && memMap.containsKey(entity.getIdNum())) { - entity.setIcResiCollectId(originIcResiCollectId); - entity.setCustomerId(memMap.get(entity.getIdNum()).getCustomerId()); + entity.setIcResiCollectId(collectInfo.getId()); + entity.setCustomerId(collectInfo.getCustomerId()); entity.setId(memMap.get(entity.getIdNum()).getId()); icResiMemberDao.updateById(entity); continue; @@ -161,7 +238,8 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class); //查询之前录入的成员表 Map memMap = queryOriginMem(origin.getId()); - saveOrUpdateMem(newMemberList, memMap,origin.getId()); + saveOrUpdateMem(newMemberList, memMap,origin); } } @@ -254,4 +332,245 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl memberList = icResiMemberDao.selectListByCollectId(formDTO.getId()); + + // 更新审核信息 + icResiCollectEntity.setCheckState(formDTO.getCheckState()); + icResiCollectEntity.setCheckReason(formDTO.getCheckReason()); + baseDao.updateById(icResiCollectEntity); + + // 审核状态:0待审核 1未通过 2已通过 + if("2".equals(formDTO.getCheckState())){ + + if("other".equals(icResiCollectEntity.getHomeId())){ + // 新增房屋(新增房屋操作已在审核接口之前,前端调用新增接口实现) + // 更新登记表房屋ID + icResiCollectEntity = updateHomeId(icResiCollectEntity,formDTO); + + for(int i = 0 ; i < memberList.size() ; i++){ + // 根据身份证号和房屋ID获取人员信息 + IcResiUserEntity userIdCardEntity = queryOriginUserByIdCard(memberList.get(i).getIdNum(),icResiCollectEntity.getCustomerId()); + if(userIdCardEntity != null){ + // 已存在人员 人员房屋不一致(更新人员信息和变更记录) + updateUserInfo(icResiCollectEntity,memberList.get(i),true,formDTO,userIdCardEntity); + }else{ + // 不存在人员 + insertUserInfo(icResiCollectEntity,memberList.get(i),formDTO); + } + } + }else{ + // 更新房屋 + updateHouseInfo(icResiCollectEntity); + + for(int i = 0 ; i < memberList.size() ; i++){ + // 根据身份证号和房屋ID获取人员信息 + IcResiUserEntity userIdCardEntity = queryOriginUserByIdCard(memberList.get(i).getIdNum(),icResiCollectEntity.getCustomerId()); + Map userMap = queryOriginUserByHomeId(icResiCollectEntity.getHomeId(),icResiCollectEntity.getCustomerId()); + if(userIdCardEntity != null){ + // 已存在人员 + if(userMap.containsKey(memberList.get(i).getIdNum())){ + // 人员房屋一致(只更新人员信息) + updateUserInfo(icResiCollectEntity,memberList.get(i),false,formDTO,userIdCardEntity); + }else{ + // 人员房屋不一致(更新人员信息和变更记录) + updateUserInfo(icResiCollectEntity,memberList.get(i),true,formDTO,userIdCardEntity); + } + }else{ + // 不存在人员 + insertUserInfo(icResiCollectEntity,memberList.get(i),formDTO); + } + } + } + } + } + + /** + * 更新登记表房屋ID + * @param icResiCollectEntity + * @param formDTO + * @return + */ + private IcResiCollectEntity updateHomeId(IcResiCollectEntity icResiCollectEntity,IcResiCollectCheckFormDTO formDTO){ + + // fegin获取房屋信息 + GetHouseInfoToCollectFormDTO getHouseInfoToCollectFormDTO = new GetHouseInfoToCollectFormDTO(); + getHouseInfoToCollectFormDTO.setBuildingUnitId(formDTO.getBuildingUnitId()); + getHouseInfoToCollectFormDTO.setDoorName(formDTO.getDoorName()); + Result resultDTOResult = govOrgFeignClient.getHouseInfoToCollect(getHouseInfoToCollectFormDTO); + IcHouseInfoCollectResultDTO icHouseInfoCollectResultDTO = resultDTOResult.getData(); + + // 新增房屋后需要collect更新上房屋ID + // log + icResiCollectEntity.setHomeId(icHouseInfoCollectResultDTO.getId()); + baseDao.updateById(icResiCollectEntity); + return icResiCollectEntity; + + } + + /** + * 更新房屋信息 + * @param icResiCollectEntity + */ + private void updateHouseInfo(IcResiCollectEntity icResiCollectEntity){ + CollectHouseFormDTO collectHouseFormDTO = new CollectHouseFormDTO(); + collectHouseFormDTO.setId(icResiCollectEntity.getHomeId()); + collectHouseFormDTO.setOwnerName(icResiCollectEntity.getHouseHolderName()); + collectHouseFormDTO.setRentFlag(Integer.parseInt(icResiCollectEntity.getHouseType())); + collectHouseFormDTO.setCustomerId(icResiCollectEntity.getCustomerId()); + collectHouseFormDTO.setResiNumber(icResiCollectEntity.getTotalResi()); + govOrgFeignClient.updateCollect(collectHouseFormDTO); + + } + + /** + * 更新人员信息 + * @param icResiCollectEntity 登记信息 + * @param icResiCollectMemDetailDTO 登记城阳信息 + * @param isUpdateLog 是否更新记录 + * @param formDTO 入参 + * @param userEntity 根据身份证号查询到的user信息 + */ + private void updateUserInfo(IcResiCollectEntity icResiCollectEntity,IcResiCollectMemDetailDTO icResiCollectMemDetailDTO,Boolean isUpdateLog, + IcResiCollectCheckFormDTO formDTO,IcResiUserEntity userEntity){ + + // 这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户 + if (RelationshipEnum.SELF.getCode().equals(icResiCollectMemDetailDTO.getRelationship())) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId()); + wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); + List entityList = icResiUserDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(entityList)) { + String errorMsg = "房屋下已存在户主"; + throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + } + } + + userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身 + userEntity.setAgencyId(icResiCollectEntity.getAgencyId()); + userEntity.setGridId(icResiCollectEntity.getGridId()); + userEntity.setVillageId(icResiCollectEntity.getVillageId()); + userEntity.setBuildId(icResiCollectEntity.getBuildId()); + userEntity.setUnitId(icResiCollectEntity.getUnitId()); + userEntity.setHomeId(icResiCollectEntity.getHomeId()); + userEntity.setName(icResiCollectMemDetailDTO.getName()); + userEntity.setMobile(icResiCollectMemDetailDTO.getMobile()); + userEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum()); + userEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship()); + userEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace()); + userEntity.setRemarks(icResiCollectMemDetailDTO.getRemark()); + userEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace()); + icResiUserDao.updateById(userEntity); + + // 判断是否需要更新记录 + if(isUpdateLog){ + //变更记录表 + IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); + changeRecordEntity.setCustomerId(icResiCollectEntity.getCustomerId()); + changeRecordEntity.setOperatorId(formDTO.getUserId()); + changeRecordEntity.setIcUserId(userEntity.getId()); + changeRecordEntity.setOperatorName(formDTO.getRealName()); + changeRecordEntity.setIcUserName(userEntity.getName()); + changeRecordEntity.setType("update"); + changeRecordEntity.setTypeName("修改"); + changeRecordEntity.setBeforeChangeName("-"); + changeRecordEntity.setAfterChangeName("-"); + changeRecordEntity.setChangeTime(new java.util.Date()); + icUserChangeRecordService.insert(changeRecordEntity); + } + + } + + /** + * 新增人员信息 + * @param icResiCollectMemDetailDTO + */ + private void insertUserInfo(IcResiCollectEntity icResiCollectEntity,IcResiCollectMemDetailDTO icResiCollectMemDetailDTO,IcResiCollectCheckFormDTO formDTO){ + + // 这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户 + if (RelationshipEnum.SELF.getCode().equals(icResiCollectMemDetailDTO.getRelationship())) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId()); + wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); + List entityList = icResiUserDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(entityList)) { + String errorMsg = "房屋下已存在户主"; + throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + } + } + + // 新增人员 + IcResiUserEntity userEntity = new IcResiUserEntity(); + userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身 + userEntity.setAgencyId(icResiCollectEntity.getAgencyId()); + userEntity.setGridId(icResiCollectEntity.getGridId()); + userEntity.setVillageId(icResiCollectEntity.getVillageId()); + userEntity.setBuildId(icResiCollectEntity.getBuildId()); + userEntity.setUnitId(icResiCollectEntity.getUnitId()); + userEntity.setHomeId(icResiCollectEntity.getHomeId()); + userEntity.setName(icResiCollectMemDetailDTO.getName()); + userEntity.setMobile(icResiCollectMemDetailDTO.getMobile()); + userEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum()); + userEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship()); + userEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace()); + userEntity.setRemarks(icResiCollectMemDetailDTO.getRemark()); + userEntity.setCustomerId(icResiCollectMemDetailDTO.getCustomerId()); + userEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace()); + icResiUserDao.insert(userEntity); + + //变更记录表 + IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); + changeRecordEntity.setCustomerId(icResiCollectEntity.getCustomerId()); + changeRecordEntity.setOperatorId(formDTO.getUserId()); + changeRecordEntity.setIcUserId(userEntity.getId()); + changeRecordEntity.setOperatorName(formDTO.getRealName()); + changeRecordEntity.setIcUserName(userEntity.getName()); + changeRecordEntity.setType("add"); + changeRecordEntity.setTypeName("新增"); + changeRecordEntity.setBeforeChangeName("-"); + changeRecordEntity.setAfterChangeName("-"); + changeRecordEntity.setChangeTime(new java.util.Date()); + icUserChangeRecordService.insert(changeRecordEntity); + + } + + /** + * 获取人员信息 + * @param idCard + * @return + */ + private IcResiUserEntity queryOriginUserByIdCard(String idCard,String customerId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcResiUserEntity::getIdCard, idCard); + query.eq(IcResiUserEntity::getCustomerId, customerId); + IcResiUserEntity originUser = icResiUserDao.selectOne(query); + return originUser; + } + private Map queryOriginUserByHomeId(String homeId,String customerId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcResiUserEntity::getHomeId, homeId); + query.eq(IcResiUserEntity::getCustomerId, customerId); + List originUserList = icResiUserDao.selectList(query); + Map memMap = originUserList.stream().collect(Collectors.toMap(IcResiUserEntity::getIdCard, Function.identity())); + return memMap; + } + + @Override + public CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO) { + + CollectHouseInfoResultDTO collectHouseInfoResultDTO = baseDao.getHouseDetailByCollect(formDTO); + + return collectHouseInfoResultDTO; + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java new file mode 100644 index 0000000000..ccb7451952 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java @@ -0,0 +1,158 @@ +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.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.EpmetException; +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.dao.IcResiCollectVisitorDao; +import com.epmet.dto.IcNeighborHoodDTO; +import com.epmet.dto.IcResiCollectVisitorDTO; +import com.epmet.dto.SaveCollectVisitorFormDTO; +import com.epmet.dto.form.CollectDetailFormDTO; +import com.epmet.dto.form.CollectListFormDTO; +import com.epmet.dto.form.VisitListFormDTO; +import com.epmet.dto.result.CollectListResultDTO; +import com.epmet.entity.IcResiCollectVisitorEntity; +import com.epmet.redis.IcResiCollectVisitorRedis; +import com.epmet.service.IcResiCollectVisitorService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +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.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 居民信息采集-访客 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-08-02 + */ +@Service +public class IcResiCollectVisitorServiceImpl extends BaseServiceImpl implements IcResiCollectVisitorService { + + @Autowired + private IcResiCollectVisitorRedis icResiCollectVisitorRedis; + + @Autowired + private IcResiCollectServiceImpl icResiCollectServiceImpl; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcResiCollectVisitorDTO.class); + } + + /** + * 条件查询 + * @param params + * @return + */ + @Override + public PageData getPhrasePage(Map params) { + IPage page = getPage(params); + List list = baseDao.getPhrasePage(params); + return new PageData<>(list, page.getTotal()); + } + + /** + * Desc: 查询访客信息 + * @param formDTO + * @author wgf + * @date 2022/8/5 8:23 + */ + @Override + public PageData getVisitorList(VisitListFormDTO formDTO) { + PageData result = new PageData<>(new ArrayList<>(), 0); + if (StringUtils.isBlank(formDTO.getStartTime()) && StringUtils.isBlank(formDTO.getEndTime()) ){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo){ + throw new EpmetException("查询人员信息失败"+formDTO.getUserId()); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + } + PageInfo pageList = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.getCollectList(formDTO)); + result.setList(pageList.getList()); + result.setTotal(Integer.parseInt(String.valueOf(pageList.getTotal()))); + return result; + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcResiCollectVisitorDTO.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 IcResiCollectVisitorDTO get(String id) { + IcResiCollectVisitorEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcResiCollectVisitorDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcResiCollectVisitorDTO dto) { + IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcResiCollectVisitorDTO dto) { + IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public Result saveInfo(SaveCollectVisitorFormDTO dto) { + IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class); + //根据小区id查询网格相关信息 + IcNeighborHoodDTO neighborHoodDTO = icResiCollectServiceImpl.queryIcNeighborHood(dto.getVillageId()); + entity.setGridId(neighborHoodDTO.getGridId()); + entity.setAgencyId(neighborHoodDTO.getAgencyId()); + entity.setPids(neighborHoodDTO.getAgencyPids()); + entity.setCustomerId(neighborHoodDTO.getCustomerId()); + insert(entity); + return new Result().ok("提交成功"); + } + + @Override + public Result getVisitorDetail(CollectDetailFormDTO dto) { + IcResiCollectVisitorEntity entity = baseDao.selectById(dto.getId()); + return new Result().ok(entity); + } + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java index a5ff0484c8..8157ac1ccf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java @@ -31,6 +31,7 @@ import com.epmet.constant.IcResiUserConstant; import com.epmet.dto.form.ExportResiUserFormDTO; import com.epmet.dto.form.IcExportTemplateQueryFormDTO; import com.epmet.dto.form.IcResiUserPageFormDTO; +import com.epmet.dto.form.ResiUserQueryValueDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.dto.result.OptionDTO; @@ -45,6 +46,7 @@ import com.google.common.base.Joiner; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.VerticalAlignment; @@ -91,7 +93,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { * @date 2022/4/22 1:35 下午 */ @Override - public void exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response) { + public Page> exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response, boolean onlyGetData) { + Page> mapListPage = null; + //校验参数 this.validateSearchForm(tokenDto, exportResiUserFormDTO); IcResiUserPageFormDTO searchForm = exportResiUserFormDTO.getSearchForm(); @@ -99,9 +103,11 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { String templateId = exportResiUserFormDTO.getTemplateId(); ExcelWriter excelWriter = null; + WriteSheet writeSheet = null; try { + String dynamicCustomerId=StringUtils.isNotBlank(exportResiUserFormDTO.getCustomerId()) ? exportResiUserFormDTO.getCustomerId() : tokenDto.getCustomerId(); //获取用户配置的导出条件 - Result exportConfigResult = this.getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig()); + Result exportConfigResult = this.getIcCustomExportConfig(dynamicCustomerId, templateId, exportResiUserFormDTO.getExportConfig()); Map itemOriginMap = getItemMap(searchForm.getCustomerId()); IcCustomExportResultDTO exportConfigData = exportConfigResult.getData(); @@ -114,36 +120,42 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { List allShowColumns = new ArrayList<>(exportConfigData.getShowSqlColumns()); - //需要合并的列 - List mergeColumnIndexList = new ArrayList<>(); - for (int i = 0; i < allShowColumns.size(); i++) { - IcCustomExportResultDTO.SqlColumn sqlColumn = allShowColumns.get(i); - if (!sqlColumn.getManyToOne()) { - mergeColumnIndexList.add(i); + + + if (!onlyGetData){ + searchForm.setIsPage(false); + searchForm.setPageSize(NumConstant.TEN_THOUSAND); + + //需要合并的列 + List mergeColumnIndexList = new ArrayList<>(); + for (int i = 0; i < allShowColumns.size(); i++) { + IcCustomExportResultDTO.SqlColumn sqlColumn = allShowColumns.get(i); + if (!sqlColumn.getManyToOne()) { + mergeColumnIndexList.add(i); + } } - } + int[] mergeColumnIndex = mergeColumnIndexList.stream().filter(Objects::nonNull).mapToInt(i -> i).toArray(); + // 从那一列开始合并 + int mergeRowIndex = exportConfigData.getHeaderRow(); - int[] mergeColumnIndex = mergeColumnIndexList.stream().filter(Objects::nonNull).mapToInt(i -> i).toArray(); - // 从那一列开始合并 - int mergeRowIndex = exportConfigData.getHeaderRow(); - - // 头的策略 - WriteCellStyle headWriteCellStyle = new WriteCellStyle(); - // 背景设置为红色 - headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); - WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); - contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); - FreezeAndFilter writeHandler = new FreezeAndFilter(); - //从第几行开始冻结 - writeHandler.rowSplit = exportConfigData.getHeaderRow(); - excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)) - .registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex, mergeColumnIndex)) - .registerWriteHandler(horizontalCellStyleStrategy) - .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) - .registerWriteHandler(writeHandler).build(); - - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").head(exportConfigData.getHeaders()).build(); + // 头的策略 + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + // 背景设置为红色 + headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); + FreezeAndFilter writeHandler = new FreezeAndFilter(); + //从第几行开始冻结 + writeHandler.rowSplit = exportConfigData.getHeaderRow(); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)) + .registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex, mergeColumnIndex)) + .registerWriteHandler(horizontalCellStyleStrategy) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerWriteHandler(writeHandler).build(); + + writeSheet = EasyExcel.writerSheet("Sheet1").head(exportConfigData.getHeaders()).build(); + } String staffOrgPath = null; if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { @@ -151,15 +163,31 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { } else { staffOrgPath = staffInfoCacheResult.getAgencyId(); } - Page> mapListPage = null; allShowColumns.addAll(exportConfigData.getHiddenSqlColumns()); do { + if(StringUtils.isNotBlank(exportResiUserFormDTO.getId())){ + ResiUserQueryValueDTO idCondition=new ResiUserQueryValueDTO(); + idCondition.setTableName("ic_resi_user"); + idCondition.setQueryType("equal"); + idCondition.setColumnName("ID"); + idCondition.setColumnValue(Arrays.asList(exportResiUserFormDTO.getId())); + + if(CollectionUtils.isNotEmpty(searchForm.getConditions())){ + searchForm.getConditions().add(idCondition); + }else{ + List conditions=new ArrayList<>(); + conditions.add(idCondition); + searchForm.setConditions(conditions); + } + } String finalStaffOrgPath = staffOrgPath; mapListPage = PageHelper.startPage(searchForm.getPageNo(), searchForm.getPageSize(), searchForm.getIsPage()).doSelectPage(() -> { icResiUserService.dynamicQuery(searchForm.getCustomerId(), searchForm.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, searchForm.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath); }); - searchForm.setPageNo(searchForm.getPageNo() + NumConstant.ONE); + if (!searchForm.getIsPage()){ + searchForm.setPageNo(searchForm.getPageNo() + NumConstant.ONE); + } List> result = mapListPage.getResult(); @@ -168,46 +196,12 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { List showSqlColumns = exportConfigData.getShowSqlColumns(); Set hiddenColumnSet = exportConfigData.getHiddenSqlColumns().stream().map(IcCustomExportResultDTO.SqlColumn::getColumnName).collect(Collectors.toSet()); result.forEach(o -> { - List singleRowData = new ArrayList<>(); - Map originalConditionMap = new ConcurrentHashMap<>(); - o.forEach((key, value) -> { - Map itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item)); - IcCustomExportResultDTO.SqlColumn columnDTO = itemMap.get(key); - //忽略 不需要显示的列的值得设置 要不然数据会写入到excel中 - if (singleRowData.size() >= showSqlColumns.size()) { - return; - } - - IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key); - String tableName = sqlColumn.getTableName(); - String itemId = sqlColumn.getItemId(); - String columnName = columnDTO.getColumnName(); - if (hiddenColumnSet.contains(columnName)) { - return; - } - String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString(); - //保留原始值 便于remote条件获取 - originalConditionMap.putIfAbsent(columnName, vauleStr); - ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName); - FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName); - - String newValue = vauleStr; - - if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { - putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o, originalConditionMap, formItemResult, columnName, vauleStr); - newValue = String.valueOf(o.get(columnName)); - } else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())) { - newValue = putOptionValue(formItemResult, vauleStr); - } - if (FieldConstant.ID.equals(key)) { - newValue = Md5Util.md5(vauleStr); - } - singleRowData.add(newValue); - }); - resultData.add(singleRowData); + getDataForResi(itemOriginMap, staffInfoCacheResult, resultData, showSqlColumns, hiddenColumnSet, o); }); - excelWriter.write(resultData, writeSheet); - } while (mapListPage.getResult().size() == searchForm.getPageSize()); + if (!onlyGetData){ + excelWriter.write(resultData, writeSheet); + } + } while (!searchForm.getIsPage() && mapListPage.getResult().size() == searchForm.getPageSize()); } catch (IOException e) { log.error("exportIcResiUser exception", e); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMessage(), "导出失败"); @@ -216,6 +210,48 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { excelWriter.finish(); } } + return mapListPage; + } + + private void getDataForResi(Map itemOriginMap, CustomerStaffInfoCacheResult staffInfoCacheResult, List> resultData, List showSqlColumns, Set hiddenColumnSet, Map o) { + List singleRowData = new ArrayList<>(); + Map originalConditionMap = new ConcurrentHashMap<>(); + o.forEach((key, value) -> { + Map itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item)); + IcCustomExportResultDTO.SqlColumn columnDTO = itemMap.get(key); + //忽略 不需要显示的列的值得设置 要不然数据会写入到excel中 + if (singleRowData.size() >= showSqlColumns.size()) { + return; + } + + IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key); + String tableName = sqlColumn.getTableName(); + String itemId = sqlColumn.getItemId(); + String columnName = columnDTO.getColumnName(); + if (hiddenColumnSet.contains(columnName)) { + return; + } + String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString(); + //保留原始值 便于remote条件获取 + originalConditionMap.putIfAbsent(columnName, vauleStr); + ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName); + FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName); + + String newValue = vauleStr; + + if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { + putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o, originalConditionMap, formItemResult, columnName, vauleStr); + newValue = String.valueOf(o.get(columnName)); + } else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())) { + newValue = putOptionValue(formItemResult, vauleStr); + } + o.put(key,newValue); + if (FieldConstant.ID.equals(key)) { + newValue = Md5Util.md5(vauleStr); + } + singleRowData.add(newValue); + }); + resultData.add(singleRowData); } /** @@ -229,8 +265,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { searchForm.setCustomerId(tokenDto.getCustomerId()); searchForm.setStaffId(tokenDto.getUserId()); ValidatorUtils.validateEntity(searchForm, IcResiUserPageFormDTO.AddUserInternalGroup.class); - searchForm.setIsPage(false); - searchForm.setPageSize(NumConstant.TEN_THOUSAND); } @Nullable diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 57fd9c7d34..2b27bcc4d2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -183,6 +184,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl hash : formMap.get("ic_party_member")) { + if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) { + String errorMsg = "党员信息所属支部不能为空"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + } + } } if ((map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY"))) || (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty()))) { @@ -787,9 +801,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> pageResiMap(IcResiUserPageFormDTO formDTO) { // 查询列表展示项,如果没有,直接返回 - CustomerFormQueryDTO queryDTO1 = new CustomerFormQueryDTO(); - queryDTO1.setCustomerId(formDTO.getCustomerId()); - queryDTO1.setFormCode(formDTO.getFormCode()); + CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO,CustomerFormQueryDTO.class); Result> resultColumnRes = operCustomizeOpenFeignClient.queryConditions(queryDTO1); if (!resultColumnRes.success() || CollectionUtils.isEmpty(resultColumnRes.getData())) { log.warn("没有配置列表展示列"); @@ -961,6 +973,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl(pageInfo.getList(), pageInfo.getTotal(), formDTO.getPageSize()); + } return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); } @@ -1468,6 +1483,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiCategoryColumns = Arrays.stream(ResiCategoryEnum.values()).map(c -> c.getColName()).collect(Collectors.toList()); + + ArrayList resiCategoryNames = new ArrayList<>(); + + Map categories = icResiUserDao.getCategoryListMap(resiCategoryColumns, resiUserId); + categories.forEach((k, v) -> { + if (NumConstant.ONE_STR.equals(v)) { + ResiCategoryEnum enumObject = ResiCategoryEnum.getEnum(k); + resiCategoryNames.add(enumObject.getLabel()); + } + }); + + r.setResiCategoryNames(String.join("、", resiCategoryNames)); + return r; } @@ -3045,4 +3080,236 @@ public class IcResiUserServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(userList,SendPointNoticeFormDTO.UserListBean.class); return list; } + + /** + * 综合治理图层-查询各类别(信访人员、安置帮教、吸毒人员、社区矫正、不良青少年、肇事肇祸精神病、邪教人员)居民信息 + * + * @param formDTO + * @return + */ + @Override + public PageData> listResiZhzl(IcResiUserPageFormDTO formDTO) { + // 查询列表展示项,如果没有,直接返回 + CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO,CustomerFormQueryDTO.class); + Result> resultColumnRes = operCustomizeOpenFeignClient.queryConditions(queryDTO1); + if (!resultColumnRes.success() || CollectionUtils.isEmpty(resultColumnRes.getData())) { + log.warn("没有配置列表展示列"); + return new PageData(new ArrayList(), NumConstant.ZERO); + } + List resultColumns = resultColumnRes.getData(); + // 查询结果列对应的表: + Set resultColumnTables = resultColumns.stream().map(IcFormResColumnDTO::getTableName).collect(Collectors.toSet()); + List queryAgencyIdList = formDTO.getConditions().stream() + .filter(o -> IcResiUserConstant.IC_RESI_USER.equals(o.getTableName()) && "AGENCY_ID".equals(o.getColumnName()) + && CollectionUtils.isNotEmpty(o.getColumnValue()) && StringUtils.isNotBlank(o.getColumnValue().get(NumConstant.ZERO))) + .flatMap(o -> o.getColumnValue().stream()).collect(Collectors.toList()); + + //添加数据权限 + String staffOrgPath; + String agencyId; + //如果查询条件中 有居民表的agencyId 则匹配查询该组织下的 数据 + if (queryAgencyIdList.isEmpty()){ + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + agencyId = staffInfoCacheResult.getAgencyId(); + if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { + staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); + } else { + staffOrgPath = staffInfoCacheResult.getAgencyId(); + } + } else { + formDTO.getConditions().removeIf(o->IcResiUserConstant.IC_RESI_USER.equals(o.getTableName()) && "AGENCY_ID".equals(o.getColumnName())); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(queryAgencyIdList.get(NumConstant.ZERO)); + if (agencyInfo == null){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取组织信息失败"); + } + agencyId = agencyInfo.getId(); + staffOrgPath = agencyInfo.getPids(); + if (StringUtils.isBlank(staffOrgPath)){ + staffOrgPath = agencyId; + }else{ + staffOrgPath = staffOrgPath+StrConstant.COLON+agencyInfo.getId(); + } + } + // 查询列表展示项需要用到哪些子表 + Result> subTablesRes = operCustomizeOpenFeignClient.querySubTables(queryDTO1); + List subTables = subTablesRes.getData(); + log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true)); + + //关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重 + Set whereConditionTables = formDTO.getConditions().stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); + Set tables = new HashSet<>(); + tables.addAll(whereConditionTables); + tables.addAll(resultColumnTables); + log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true)); + //最终关联的子表对应的sql: + List finalSubTables = new ArrayList<>(); + //groupBy用到的表 + Set groupByTables = new HashSet<>(); + subTables.forEach(subTable -> { + if (tables.contains(subTable.getTableName())) { + finalSubTables.add(subTable.getJoinTableSql()); + if (subTable.getSupportAdd()) { + groupByTables.add(subTable.getTableName()); + } + } + }); + + PageInfo> pageInfo = new PageInfo<>(); + if (null == formDTO.getIsPage() || formDTO.getIsPage()) { + //分页 + String finalStaffOrgPath = staffOrgPath; + pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectListResiMap(formDTO.getCustomerId(), + formDTO.getFormCode(), + formDTO.getConditions(), + resultColumns, + finalSubTables, + agencyId, finalStaffOrgPath,null, formDTO.getKeyword(), + groupByTables)); + } else { + List> list = baseDao.selectListResiMap(formDTO.getCustomerId(), + formDTO.getFormCode(), + formDTO.getConditions(), + resultColumns, + finalSubTables, + agencyId, + staffOrgPath,null, + formDTO.getKeyword(), + groupByTables); + pageInfo.setTotal(CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size()); + pageInfo.setList(list); + } + + List> list = pageInfo.getList(); + //查询网格名称 + List gridIds = new ArrayList<>(); + Set houseIds = new HashSet<>(); + for (Map map : list) { + if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) { + gridIds.add(map.get(UserConstant.GRID_ID).toString()); + } + if (map.containsKey(UserConstant.HOME_ID) && null != map.get(UserConstant.HOME_ID) && StringUtils.isNotBlank(map.get(UserConstant.HOME_ID).toString())) { + houseIds.add(map.get(UserConstant.HOME_ID).toString()); + } + } + Result> gridInfoRes = govOrgOpenFeignClient.getGridListByGridIds(gridIds); + List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + + //查询房子名称 + Result> houseInfoRes = govOrgOpenFeignClient.queryListHouseInfo(houseIds, formDTO.getCustomerId()); + List houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>(); + Map houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity())); + + + for (Map resultMap : list) { + String gridIdValue = null != resultMap.get(UserConstant.GRID_ID) ? resultMap.get(UserConstant.GRID_ID).toString() : StrConstant.EPMETY_STR; + resultMap.put("GRID_ID_VALUE", gridIdValue); + if (gridInfoMap.containsKey(gridIdValue) && null != gridInfoMap.get(gridIdValue)) { + //GRID_NAME + resultMap.put(UserConstant.GRID_ID, gridInfoMap.get(gridIdValue).getGridName()); + } + + String homeId = null != resultMap.get(UserConstant.HOME_ID) ? resultMap.get(UserConstant.HOME_ID).toString() : StrConstant.EPMETY_STR; + resultMap.put("HOME_ID_VALUE", homeId); + if (houseInfoMap.containsKey(homeId) && null != houseInfoMap.get(homeId)) { + HouseInfoDTO houseInfoDTO = houseInfoMap.get(homeId); + String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR; + resultMap.put("BUILD_NAME", buildName); + + String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR; + resultMap.put("VILLAGE_NAME", neighBorName); + + String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR; + resultMap.put("UNIT_NAME", unitName); + + String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR; + resultMap.put("DOOR_NAME", doorName); + + String houseType = StringUtils.isNotBlank(houseInfoDTO.getHouseType()) ? houseInfoDTO.getHouseType() : StrConstant.EPMETY_STR; + resultMap.put(UserConstant.HOME_ID, neighBorName.concat(buildName).concat(unitName).concat(doorName)); + + } + + if (resultMap.containsKey(UserConstant.GENDER)) { + String genderValue = null != resultMap.get(UserConstant.GENDER) ? resultMap.get(UserConstant.GENDER).toString() : StrConstant.EPMETY_STR; + if (GenderEnum.MAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.MAN.getName()); + } else if (GenderEnum.WOMAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.WOMAN.getName()); + } else if (GenderEnum.UN_KNOWN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.UN_KNOWN.getName()); + } + } + List zhzlCategoryName=new ArrayList<>(); + // 如果是信访人员 + String isXfry = StringUtils.isNotBlank((String)resultMap.get("IS_XFRY")) ? resultMap.get("IS_XFRY").toString() : StrConstant.EPMETY_STR; + if(NumConstant.ONE_STR.equals(isXfry)){ + zhzlCategoryName.add("信访人员"); + } + // 如果是特殊人群,且有特殊人群类别 + String isSpecial = StringUtils.isNotBlank((String)resultMap.get("IS_SPECIAL")) ? resultMap.get("IS_SPECIAL").toString() : StrConstant.EPMETY_STR; + String specialRqlb = StringUtils.isNotBlank((String)resultMap.get("SPECIAL_RQLB")) ? resultMap.get("SPECIAL_RQLB").toString() : StrConstant.EPMETY_STR; + if(NumConstant.ONE_STR.equals(isSpecial)&&StringUtils.isNotBlank(specialRqlb)){ + String[] att=specialRqlb.split(StrConstant.COMMA); + for(String categoryCode:att){ + zhzlCategoryName.add(ZhzlResiCategoryEnum.getEnum(categoryCode).getName()); + } + } + resultMap.put("zhzlCategoryName",zhzlCategoryName.stream().collect(Collectors.joining(StrConstant.COMMA))); + } + pageInfo.setList(list); + return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); + } + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @Override + public IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO) { + PaCustomerDTO customerInfo = getCustomerInfo(formDTO.getAppId()); + if (null == customerInfo){ + throw new EpmetException("根据APPID查询客户信息失败:"+formDTO.getAppId()); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(IcResiUserEntity::getCustomerId,customerInfo.getId()) + .eq(IcResiUserEntity::getIdCard,formDTO.getIdCard()); + IcResiUserEntity icResiUserEntity = baseDao.selectOne(qw); + if (null == icResiUserEntity){ + throw new EpmetException(EpmetErrorCode.NOT_MATCH_IC_USER_ERROR.getCode()); + } + IcUserMatchGridResultDTO result = new IcUserMatchGridResultDTO(); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(icResiUserEntity.getGridId()); + if (null == gridInfo){ + throw new EpmetException("查询网格信息失败:"+icResiUserEntity.getGridId()); + } + result.setCustomerId(customerInfo.getId()); + result.setGridId(icResiUserEntity.getGridId()); + result.setGridName(gridInfo.getGridNamePath()); + return result; + } + + public PaCustomerDTO getCustomerInfo(String appId) { + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON("https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/" + appId, JSON.toJSONString(jsonObject)).getData(); + logger.info("ThirdLoginServiceImpl.getCustomerInfo:httpclient->url:https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/ ,结果->" + data); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + logger.error(String.format("根据appId查询客户Id失败,对应appId->" + appId)); + throw new RenException(mapToResult.getMsg()); + } + Object PublicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); + Map map = (Map) json.get("customer"); + PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); + logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); + return customer; + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeDetailedServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeDetailedServiceImpl.java index dbdb593d7a..7cf719e48d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeDetailedServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeDetailedServiceImpl.java @@ -43,4 +43,9 @@ public class IcUserChangeDetailedServiceImpl extends BaseServiceImpl icUserIds) { baseDao.delByCustomerId(customerId, type, icUserIds); } + + @Override + public int deleteByIcResiUserId(String icResiUserId) { + return baseDao.deleteByIcResiUserId(icResiUserId); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java index f72d695c5e..4120e5c2a6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java @@ -171,6 +171,11 @@ public class IcUserChangeRecordServiceImpl extends BaseServiceImpl - #{name} - + + + #{name} + + + + AND mobile LIKE concat('%', #{mobile}, '%') + + + UPDATE customer_staff + + real_name = #{realName}, + mobile = #{mobile}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime}, + del_flag = #{delFlag} + + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND user_id = #{userId} + + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml index d2ca4339c1..35090d4a12 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml @@ -4,7 +4,7 @@ @@ -16,6 +16,9 @@ + + + @@ -26,6 +29,9 @@ c.ADDRESS AS address, c.HOUSE_TYPE AS houseType, c.TOTAL_RESI AS totalResi, + c.HOME_ID as homeId, + c.CHECK_STATE as checkState, + c.AGENCY_ID as agencyId, #{domicilePlace} as domicile_place FROM ic_resi_collect c left join ic_resi_member m on(c.id=m.IC_RESI_COLLECT_ID and m.del_flag='0') @@ -61,7 +67,9 @@ m.DOMICILE_PLACE_CODE as domicilePlaceCode, m.DOMICILE_PLACE_CODE_PATH as domicilePlaceCodePath, m.WORK_PLACE as workPlace, - m.REMARK as remark + m.REMARK as remark, + m.RELATIONSHIP as relationship, + m.FACE_IMG as faceImg from ic_resi_member m where m.DEL_FLAG = 0 and m.IC_RESI_COLLECT_ID = #{id} @@ -85,7 +93,8 @@ UPDATED_BY = #{updatedBy}, - UPDATED_TIME = NOW() + UPDATED_TIME = NOW(), + CHECK_STATE = '0' WHERE id = #{id} @@ -102,4 +111,56 @@ ORDER BY m.UPDATED_TIME DESC - \ No newline at end of file + + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml new file mode 100644 index 0000000000..52cdb9ace8 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml index 13db077a3c..d7cfcc48f2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml @@ -25,4 +25,11 @@ AND m.DEL_FLAG = '0' AND ( m.CREATED_BY = #{userId} OR m.UPDATED_BY = #{userId} ) - \ No newline at end of file + + 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 8ba307f70c..da04d1a58c 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 @@ -213,7 +213,7 @@ ORDER BY - IC_RESI_USER.GRID_ID ASC, + IC_RESI_USER.GRID_ID desc, IC_RESI_USER.VILLAGE_ID ASC, IC_RESI_USER.BUILD_ID ASC, IC_RESI_USER.UNIT_ID ASC, diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeDetailedDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeDetailedDao.xml index 0931d47836..6edda514fe 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeDetailedDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeDetailedDao.xml @@ -15,4 +15,8 @@ + + update ic_user_change_detailed set del_flag='1' + where IC_USER_ID=#{icResiUserId} + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml index cd04e8ddfa..cc865efc81 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml @@ -73,4 +73,9 @@ + + update ic_user_change_record set del_flag='1' + where IC_USER_ID = #{icResiUserId} + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserTransferRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserTransferRecordDao.xml index be24ced9be..d2a829567e 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserTransferRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserTransferRecordDao.xml @@ -3,5 +3,8 @@ - + + update ic_user_transfer_record set del_flag='1' + where IC_USER_ID = #{icResiUserId} + \ No newline at end of file diff --git a/pom.xml b/pom.xml index ff15bf358e..95a3495790 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,8 @@ epmet-module epmet-user epmet-openapi - + epmet-commons/epmet-commons-feignclient + UTF-8