diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java index bb8d12f49c..6d7e1124dd 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java @@ -1,6 +1,8 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; +import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.CorsConfigResultDTO; @@ -8,6 +10,7 @@ import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; @@ -84,4 +87,7 @@ public interface EpmetAdminOpenFeignClient { */ @PostMapping("/sys/dict/data/dictmap/{dictType}") Result> dictMap(@PathVariable("dictType") String dictType); + + @PostMapping("/sys/dict/data/dictlist") + Result> dictList(@RequestBody DictListFormDTO formDTO); } diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java index 139514d1f5..6c16e8f3ae 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java @@ -1,6 +1,8 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; +import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; @@ -46,4 +48,9 @@ public class EpmetAdminOpenFeignClientFallback implements EpmetAdminOpenFeignCli public Result> dictMap(String dictType) { return ModuleUtils.feignConError(ServiceConstant.EPMET_ADMIN_SERVER, "dictMap", dictType); } + + @Override + public Result> dictList(DictListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_ADMIN_SERVER, "dictList", formDTO); + } } diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.7__add_dict_data_V3.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.7__add_dict_data_V3.sql new file mode 100644 index 0000000000..792aec0c87 --- /dev/null +++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.7__add_dict_data_V3.sql @@ -0,0 +1,9 @@ +-- 1、增加字典类型 +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000011, 'age_group', '年龄范围', '', 11, 1067246875800000001, '2021-11-18 16:29:58', 1067246875800000001, '2021-11-18 16:29:58'); + +-- 2、增加字典数据 +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000230, 1000000000000000011, '50岁以下', '0', '', 0, 1, '2021-11-23 14:04:42', 1, '2021-11-23 14:04:42'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000231, 1000000000000000011, '50-59岁', '1', '', 1, 1, '2021-11-23 14:04:42', 1, '2021-11-23 14:04:42'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000232, 1000000000000000011, '60-69岁', '2', '', 2, 1, '2021-11-23 14:04:42', 1, '2021-11-23 14:04:42'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000233, 1000000000000000011, '70-79岁', '3', '', 3, 1, '2021-11-23 14:04:42', 1, '2021-11-23 14:04:42'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `remark`, `sort`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1000000000000000234, 1000000000000000011, '80岁以上', '4', '', 4, 1, '2021-11-23 14:04:42', 1, '2021-11-23 14:04:42'); diff --git a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java index 03a3139df2..bfc425b8e1 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java @@ -23,6 +23,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; /** * @Description 通用登录接口 @@ -145,4 +148,86 @@ public class LoginController { } return new Result().ok(""); } + //================start test code========== + /** + * 校验签名 + */ + public static boolean checkSignature(String signature, String timestamp, String nonce) { + System.out.println("signature:" + signature + "timestamp:" + timestamp + "nonc:" + nonce); + String WECHAT_TOKEN = "1jkoyyih83nj8"; + String[] arr = new String[]{WECHAT_TOKEN, timestamp, nonce}; + // 将token、timestamp、nonce三个参数进行字典序排序 + Arrays.sort(arr); + StringBuilder content = new StringBuilder(); + for (int i = 0; i < arr.length; i++) { + content.append(arr[i]); + } + MessageDigest md = null; + String tmpStr = null; + + try { + md = MessageDigest.getInstance("SHA-1"); + // 将三个参数字符串拼接成一个字符串进行sha1加密 + byte[] digest = md.digest(content.toString().getBytes()); + tmpStr = byteToStr(digest); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + content = null; + // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信 + System.out.println(tmpStr.equals(signature.toUpperCase())); + return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false; + } + + /** + * 将字节数组转换为十六进制字符串 + * + * @param byteArray + * @return + */ + private static String byteToStr(byte[] byteArray) { + String strDigest = ""; + for (int i = 0; i < byteArray.length; i++) { + strDigest += byteToHexStr(byteArray[i]); + } + return strDigest; + } + + /** + * 将字节转换为十六进制字符串 + * + * @param mByte + * @return + */ + private static String byteToHexStr(byte mByte) { + char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + char[] tempArr = new char[2]; + tempArr[0] = Digit[(mByte >>> 4) & 0X0F]; + tempArr[1] = Digit[mByte & 0X0F]; + + String s = new String(tempArr); + return s; + } + + + /** + * 打开开发者模式签名认证 + * @param signature + * @param timestamp + * @param nonce + * @param echostr + * @return + */ + @ResponseBody + @RequestMapping(value = "/service", method = RequestMethod.GET) + public Object defaultView(String signature, String timestamp, String nonce, String echostr) { + if (echostr == null || echostr.isEmpty()) { + return nonce; + } + if (this.checkSignature(signature, timestamp, nonce)) { + return echostr; + } + return nonce; + } } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java index 0bc1a8f7a0..9d455af694 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java @@ -4,7 +4,6 @@ import com.epmet.common.token.constant.LoginConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.GovTokenDto; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.password.PasswordUtils; import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.DateUtils; diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java index 27f7e71fe5..569ef87c85 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java @@ -295,7 +295,7 @@ public class LoginServiceImpl implements LoginService { if (!flag) { logger.warn(String.format("用户%s登录,验证码输入错误", formDTO.getPhone())); //2020-05-21去除验证码校验 - return new Result().error(EpmetErrorCode.ERR10019.getCode()); + //return new Result().error(EpmetErrorCode.ERR10019.getCode()); } //2、账号是否存在 //获取用户信息 diff --git a/epmet-auth/src/main/resources/bootstrap.yml b/epmet-auth/src/main/resources/bootstrap.yml index 42ec69d1ac..bf965caff7 100644 --- a/epmet-auth/src/main/resources/bootstrap.yml +++ b/epmet-auth/src/main/resources/bootstrap.yml @@ -32,6 +32,8 @@ spring: namespace: @nacos.discovery.namespace@ #不把自己注册到注册中心的地址 register-enabled: @nacos.register-enabled@ + serviceListChangedListening: + enable: @nacos.service-list-changed-listening.enable@ config: enabled: @nacos.config-enabled@ server-addr: @nacos.server-addr@ diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java index 1a26a3318f..12720182f5 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java @@ -1,5 +1,6 @@ package com.epmet.commons.tools.aspect; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.ThreadLocalConstant; import com.epmet.commons.tools.exception.*; @@ -14,6 +15,9 @@ import javax.servlet.http.HttpServletRequest; import java.time.Duration; import java.time.LocalDateTime; import java.util.Arrays; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; /** * 日志切面 @@ -54,6 +58,8 @@ public abstract class BaseRequestLogAspect { // transactionSerial = UUID.randomUUID().toString(); //} + Map requestHeaders = getRequestHeaders(request); + // 将当前线程名称设置为事务流水号 if (!StringUtils.isEmpty(transactionSerial)) { Thread.currentThread().setName(transactionSerial); @@ -64,7 +70,8 @@ public abstract class BaseRequestLogAspect { try { Object[] args = point.getArgs(); ThreadLocalConstant.requestParam.set(Arrays.toString(point.getArgs())); - log.info(">>>>>>>>请求信息>>>>>>>>:事务流水号:{},url:{} ,method:{},请求参数:{}", transactionSerial, requestURI, method, objectsToString(args)); + log.info(">>>>>>>>请求信息>>>>>>>>:事务流水号:{},url:{} ,method:{},请求参数:{},请求头:{}", + transactionSerial, requestURI, method, objectsToString(args), requestHeaders); result = point.proceed(); resultInfoLog(transactionSerial, getExecPeriod(startTime), result); } catch (EpmetException e) { @@ -99,6 +106,23 @@ public abstract class BaseRequestLogAspect { return result; } + /** + * @Description 获取请求头信息 + * @return + * @author wxz + * @date 2021.03.31 13:59 + */ + private Map getRequestHeaders(HttpServletRequest request) { + Enumeration headerNames = request.getHeaderNames(); + HashMap headerMap = new HashMap<>(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + String headerValue = request.getHeader(headerName); + headerMap.put(headerName, headerValue); + } + return headerMap; + } + /** * info日志 * @param transactionSerial @@ -258,7 +282,13 @@ public abstract class BaseRequestLogAspect { StringBuilder builder = new StringBuilder("["); for (Object object : args) { if (object != null) { - builder.append(object.toString()); + try { + // 尝试作为json解析 + String objectString = JSON.toJSONString(object); + builder.append(objectString); + } catch (Exception e) { + builder.append(object.toString()); + } builder.append(","); } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java new file mode 100644 index 0000000000..5f815c7f5c --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.commons.tools.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/8 14:50 + */ +@Data +public class OptionDataResultDTO implements Serializable { + private static final long serialVersionUID = 416877704759019210L; + private String label; + private String value; + private String code; + private String radio; +} 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 478e7d4376..e1fa6b1456 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 @@ -18,7 +18,8 @@ public enum DictTypeEnum { GENDER("gender", "性别", 8), USER_DEMAND_STATUS("user_demand_status", "居民需求状态",8), USER_DEMAND_REPORT_TYPE("user_demand_report_type","居民需求上报类型",9), - USER_DEMAND_SERVICE_TYPE("user_demand_service_type","居民需求服务方类型",10) + USER_DEMAND_SERVICE_TYPE("user_demand_service_type","居民需求服务方类型",10), + AGE_GROUP("age_group", "年龄范围", 11), ; private final String code; 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 new file mode 100644 index 0000000000..7fb9822290 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java @@ -0,0 +1,35 @@ +package com.epmet.commons.tools.feign; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; + + +public class EpmetBaseRequestInterceptor implements RequestInterceptor { + + @Override + public void apply(RequestTemplate template) { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if (requestAttributes == null) { + return; + } + + HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); + Enumeration headerNames = request.getHeaderNames(); + if (headerNames != null) { + while (headerNames.hasMoreElements()) { + String name = headerNames.nextElement(); + Enumeration values = request.getHeaders(name); + while (values.hasMoreElements()) { + String value = values.nextElement(); + template.header(name, value); + } + } + } + } +} \ No newline at end of file diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java index c68dbc2913..ec7806a620 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/FeignConfig.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -10,49 +10,32 @@ package com.epmet.commons.tools.feign; import feign.Logger; import feign.RequestInterceptor; -import feign.RequestTemplate; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.util.Enumeration; /** * Feign调用,携带header + * 各服务可以自定义自己的RequestInterceptor,如果自定义了,此处不会再生效,会优先使用自定义的拦截器实例 * * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ @Configuration -public class FeignConfig implements RequestInterceptor { - @Override - public void apply(RequestTemplate template) { - RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); - if (requestAttributes == null) { - return; - } - - HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); - Enumeration headerNames = request.getHeaderNames(); - if (headerNames != null) { - while (headerNames.hasMoreElements()) { - String name = headerNames.nextElement(); - Enumeration values = request.getHeaders(name); - while (values.hasMoreElements()) { - String value = values.nextElement(); - template.header(name, value); - } - } - } +public class FeignConfig { + @Bean + @ConditionalOnMissingBean + RequestInterceptor requestInterceptor() { + return new EpmetBaseRequestInterceptor(); } @Bean + @ConditionalOnMissingBean Logger.Level feignLoggerLevel() { return Logger.Level.BASIC;//控制台会输出debug日志 } + + } 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 fce9a8cf85..1003009805 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 @@ -349,6 +349,13 @@ public class RedisKeys { return rootPrefix.concat("stats:calflag"); } + /** + * 插入大屏指标数据分布式锁 key + */ + public static String getScreenIndexDataLockKey() { + return rootPrefix.concat("stats:indexcal:lock"); + } + /** * footbar缓存key * @param customerId @@ -359,12 +366,6 @@ public class RedisKeys { return rootPrefix.concat("footbar").concat(":").concat(customerId).concat(":").concat(appType); } - /** - * 插入大屏指标数据分布式锁 key - */ - public static String getScreenIndexDataLockKey() { - return rootPrefix.concat("stats:indexcal:lock"); - } /** * @return @@ -568,6 +569,15 @@ public class RedisKeys { return rootPrefix.concat("message:mq:blocked:").concat(blockedMsgLabel); } + /** + * desc:获取执行完毕的 业务 参数结果key + * @param bizMethod + * @return + */ + public static String getBackDoorbizExcuteResult(String bizMethod) { + return rootPrefix.concat("backdoor:").concat(bizMethod); + } + /** * @description 登录票据。目前只有IC基层治理平台用到 * @@ -623,12 +633,4 @@ public class RedisKeys { return rootPrefix.concat("resi:").concat("export").concat(":template:changed").concat(customerId); } - /** - * desc:获取执行完毕的 业务 参数结果key - * @param bizMethod - * @return - */ - public static String getBackDoorbizExcuteResult(String bizMethod) { - return rootPrefix.concat("backdoor:").concat(bizMethod); - } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index cfca4dec6f..db6abec6aa 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -11,6 +11,7 @@ package com.epmet.commons.tools.utils; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.TimeListResultDTO; +import com.google.common.collect.Maps; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.LocalDate; @@ -890,4 +891,58 @@ public class DateUtils { format = DateUtils.format(DateUtils.getMonthEnd(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD); System.out.println(format); } + + /** + * @Author sun + * @Description 获取dateId对应的num天的dateId活monthId + * dateId yyyymmdd + * type[date;month] + * num[1;-1] + * 20211201 date 1 -> 20211202 + * 20211201 month -1 -> 202111 + **/ + public static String dateOrmonthId(String dateId, String type, int num){ + Calendar cal=Calendar.getInstance(); + if (StringUtils.isNotBlank(dateId)){ + cal.setTime(DateUtils.parseDate(dateId,DateUtils.DATE_PATTERN_YYYYMMDD)); + } + if("date".equals(type)){ + cal.add(Calendar.DATE, num); + }else if("month".equals(type)){ + cal.add(Calendar.MONTH, num); + } + Date time=cal.getTime(); + if("month".equals(type)){ + return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMM).format(time); + } + return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(time); + } + + /** + * @Author sun + * @Description 获取dateId对应上一个月过去12个月的monthId + * dateId yyyymmdd + * 20211201 -> 202012-202111的值 + **/ + public static LinkedHashMap getXproSub(String dateId){ + java.time.format.DateTimeFormatter fmt = java.time.format.DateTimeFormatter.ofPattern("yyyyMM"); + LinkedHashMap xAxis = new LinkedHashMap<>(); + Calendar cal=Calendar.getInstance(); + cal.setTime(DateUtils.parseDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); + TimeZone tz = cal.getTimeZone(); + ZoneId zid = tz == null ? ZoneId.systemDefault() : tz.toZoneId(); + java.time.LocalDate today = java.time.LocalDateTime.ofInstant(cal.toInstant(), zid).toLocalDate(); + //java.time.LocalDate today = java.time.LocalDate.now(); + + for(int i = NumConstant.TWELVE;i > NumConstant.ZERO; i--){ + java.time.LocalDate localDate = today.minusMonths(i); + String s = localDate.getMonth().getValue() + "月"; + xAxis.put(localDate.format(fmt),s); + } + LinkedHashMap result = Maps.newLinkedHashMap(); + xAxis.entrySet().stream().sorted(Map.Entry.comparingByKey()) + .forEachOrdered((e -> result.put(e.getKey(),e.getValue()))); + return result; + } + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/Pinyin4jUtil.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/Pinyin4jUtil.java index 331febcfe9..68c0b8012e 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/Pinyin4jUtil.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/Pinyin4jUtil.java @@ -31,7 +31,6 @@ public class Pinyin4jUtil { duoyinMap.put('均',new String[]{"jun"}); duoyinMap.put('会', new String[]{"hui"}); duoyinMap.put('属', new String[]{"shu"}); - duoyinMap.put('调', new String[]{"diao"}); } /** @@ -43,6 +42,7 @@ public class Pinyin4jUtil { */ public static String getFirstSpellPinYin(String src, boolean isFullSpell) { String targetStr = Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(src, isFullSpell, 1)); + System.out.println("targetStr="+targetStr); String[] split = targetStr.split(","); if (split.length > 1) { targetStr = split[0]; @@ -59,6 +59,7 @@ public class Pinyin4jUtil { */ public static String getSpellPinYin(String src, boolean isFullSpell,Integer preFont) { String targetStr = Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(src, isFullSpell, preFont)); + System.out.println("targetStr="+targetStr); String[] split = targetStr.split(","); if (split.length > 1) { targetStr = split[0]; @@ -195,8 +196,9 @@ public class Pinyin4jUtil { } public static void main(String[] args) { - System.out.println(getFirstSpellPinYin("区直部门",false)); - System.out.println(getSpellPinYin("党员提出话题数",false,4)); - System.out.println(getSpellPinYin("社区超期项目数",false,4)); + //System.out.println(getSpellPinYin("社区超期项目数",true,0)); + System.out.println(getFirstSpellPinYin("区直部门",true)); + //System.out.println(getSpellPinYin("党员提出话题数",false,4)); + //System.out.println(getSpellPinYin("社区超期项目数",false,4)); } } diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index 2ef1bea3dd..1169c9ca84 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -323,11 +323,11 @@ lb://gov-issue-server - + lb://gov-project-server - - http://localhost:8103 + lb://common-service-server + lb://resi-home-server diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index 6db9fa47bb..632d3a0ac4 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -486,13 +486,16 @@ epmet: - /data/aggregator/** - /gov/voice/** - /resi/voice/** + - /epmet/point/** # 内部认证url白名单(在白名单中的,就不会再校验登录了) internalAuthUrlsWhiteList: - /epmetuser/customerstaff/customerlist + - /auth/wechat/** + - /**/druid/** - /gov/project/project/platformcallback - /oper/customize/customerstartpage/homestartpage - - /tduck-api/** + - /epmet/point/mqCallback/** # 外部应用认证,使用AccessToken等头进行认证 externalOpenUrls: diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectMonthResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectMonthResultDTO.java new file mode 100644 index 0000000000..8138219216 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectMonthResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 项目月数据-接口返参 + * @Auth sun + */ +@Data +public class FactAgencyProjectMonthResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + //组织Id + private String agencyId; + //月维度Id + private String monthId; + //当月项目总数 【当前组织及下级前一月新增项目数】 + private Integer projectIncr = 0; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java new file mode 100644 index 0000000000..13bc60fa06 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 项目总数-接口返参 + * @Auth sun + */ +@Data +public class FactAgencyProjectResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + @JsonIgnore + BigDecimal bi = new BigDecimal(0); + //组织Id + private String agencyId; + //组织名称 + private String dateId; + //月维度Id + private String monthId; + //项目总数 + private Integer projectTotal = 0; + //处理中项目数 + private Integer pendingTotal = 0; + //处理中项目占比 + private String pendingRatio = "0%"; + //已结案中项目数 + private Integer closedTotal = 0; + //已结案中项目占比 + private String closedRatio = "0%"; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectCategoryDictDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectCategoryDictDTO.java new file mode 100644 index 0000000000..fc11fafe4f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectCategoryDictDTO.java @@ -0,0 +1,93 @@ +/** + * 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.dto.govissue; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 议题项目分类字典 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-12-08 + */ +@Data +public class IssueProjectCategoryDictDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id, 产品默认default + */ + private String customerId; + + /** + * 上级分类ID 顶级此列存储0 + */ + private String pid; + + /** + * 所有上级分类ID,用逗号分开 + */ + private String pids; + + /** + * 上级分类编码 + */ + private String parentCategoryCode; + + /** + * 分类编码,分类编码+customer_id唯一 + */ + private String categoryCode; + + /** + * 分类名称 + */ + private String categoryName; + + /** + * 分类类别1,2,3,4.... + */ + private String categoryType; + + /** + * 排序 + */ + private Integer sort; + + /** + * 是否禁用(enable:启用 disable:禁用) + */ + private String isDisable; + + /** + * 颜色 + */ + private String color; + + +} \ 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/GridsInfoListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java index f25721539f..571195cd86 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java @@ -24,8 +24,12 @@ public class GridsInfoListResultDTO implements Serializable { private String gridId; /** - * 网格名称 + * 组织-网格名称 */ private String gridName; + /** + * 网格名称 + */ + private String name; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java new file mode 100644 index 0000000000..4f0e39c907 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java @@ -0,0 +1,45 @@ +/** + * 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.dto.govproject; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 居民报事表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-08-03 + */ +@Data +public class ResiEventDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + private String projectId; + + private String reportUserId; + + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java new file mode 100644 index 0000000000..07588e5e3c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dataaggre.dto.govproject.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 赋能平台【项目分类分析】-接口入参 + * @Auth sun + */ +@NoArgsConstructor +@Data +public class CategoryProjectFormDTO implements Serializable { + private static final long serialVersionUID = -8515172319313536407L; + //组织Id + @NotBlank(message = "组织ID不能为空", groups = {Category.class}) + private String agencyId; + //日期yyyymmdd + @NotBlank(message = "组织ID不能为空", groups = {Category.class}) + private String dateId; + //一级分类Id + @NotBlank(message = "分类Code不能为空", groups = {Category.class}) + private String categoryCode; + //页码 + @Min(1) + private Integer pageNo = 1; + //每页多少条 + private Integer pageSize = 20; + //是否分页(是:true 否:false) + private Boolean isPage = true; + //明天的dateId值 + private String toDateId; + private String customerId; + private List categoreCodeList; + + + public interface Category extends CustomerClientShowGroup { + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java new file mode 100644 index 0000000000..a620667571 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dataaggre.dto.govproject.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 赋能平台【项目分类分析】-接口入参 + * @Auth sun + */ +@NoArgsConstructor +@Data +public class ProjectAnalysisFormDTO implements Serializable { + private static final long serialVersionUID = -8515172319313536407L; + //小程序话题或事件发起人Id + @NotBlank(message = "话题或事件发起人Id不能为空", groups = {Analysis.class}) + private String userId; + //一级分类Id集合 + @NotNull(message = "分类Code集合不能为空", groups = {Analysis.class}) + private List categoryCodeList; + //当前查看的项目Id + @NotBlank(message = "当前查看项目Id不能为空", groups = {Analysis.class}) + private String projectId; + + private String customerId; + + public interface Analysis extends CustomerClientShowGroup { + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java new file mode 100644 index 0000000000..66d4e983b8 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dataaggre.dto.govproject.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 赋能平台【项目分类分析】-接口入参 + * @Auth sun + */ +@NoArgsConstructor +@Data +public class ProjectCategoryTotalFormDTO implements Serializable { + private static final long serialVersionUID = -8515172319313536407L; + //组织Id + @NotBlank(message = "组织ID不能为空", groups = {Project.class}) + private String agencyId; + //日期yyyymmdd + @NotBlank(message = "日维度ID不能为空", groups = {Project.class}) + private String dateId; + + private String customerId; + + public interface Project extends CustomerClientShowGroup { + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java index 975e22596b..22c0e731b6 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java @@ -19,7 +19,7 @@ public class ProjectTotalFormDTO implements Serializable { @NotBlank(message = "组织ID不能为空", groups = {Total.class, Monthincr.class, Statuslist.class}) private String agencyId; //日期yyyymmdd - @NotBlank(message = "组织ID不能为空", groups = {Total.class, Monthincr.class, Statuslist.class}) + @NotBlank(message = "日维度ID不能为空", groups = {Total.class, Monthincr.class, Statuslist.class}) private String dateId; //状态:待处理 pending,结案closed @NotBlank(message = "项目状态不能为空", groups = {Statuslist.class}) @@ -32,4 +32,15 @@ public class ProjectTotalFormDTO implements Serializable { public interface Statuslist extends CustomerClientShowGroup { } + //较昨日的dateId值 + private String yeDateId; + //较dateId上月的monthId值 + private String monthId; + //查询数据起始月份Id + private String startMonth; + //查询数据结束月份Id + private String endMonth; + //明天的dateId值 + private String toDateId; + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java new file mode 100644 index 0000000000..0d5b2f2707 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java @@ -0,0 +1,57 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 赋能平台【项目处理分析】分类下项目列表-接口返参 + * @Auth sun + */ +@Data +public class CategoryProjectResultDTO implements Serializable { + private static final long serialVersionUID = 6188316867855643263L; + + //总条数 + private Integer total = 0; + + private List list; + + @Data + public static class Project { + //项目所属组织Id + private String agencyId; + //项目Id + private String projectId; + //项目编码[目前没这个功能 默认为空] + private String projectCode = ""; + //一级分类Code集合 + private List categoryCodes = new ArrayList<>(); + //一级分类名称集合 + private List categoryNames = new ArrayList<>(); + //来源:议题issue 项目立项:agency 事件:resi_event【控制电机查看时里边三个按钮的显示】 + private String origin; + //网格Id[上报给组织的事件、直接立项的项目此值为空] + private String gridId = ""; + //网格名[上报给组织的事件、直接立项的项目此值为空] + private String gridName = ""; + //状态:待处理 pending,已结案closed + private String status; + //标题 + private String title; + //转项目时间 + private String time; + //小程序居民端话题或事件创建人【立项项目此值为空】 + private String userId = ""; + //分类对应的所有上级,英文逗号隔开【目前分类只有两级,所以这个字段值其实就是一类的id值】 + @JsonIgnore + private String categoryPids; + //二级分类code + @JsonIgnore + private String categoryCode; + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java new file mode 100644 index 0000000000..1e50bd7c19 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java @@ -0,0 +1,12 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class IssueProjectCategory implements Serializable { + private static final long serialVersionUID = -2226298165882293959L; + private String issueId; + private String projectId; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java new file mode 100644 index 0000000000..2601c26a63 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 赋能平台【项目处理分析】研判分析-接口返参 + * @Auth sun + */ +@Data +public class ProjectAnalysisResultDTO implements Serializable { + private static final long serialVersionUID = 6188316867855643263L; + + //小程序居民Id + private String userId; + //负能平台居民Id + private String icUserId; + //负能平台居民名称 + private String icUserName; + //家庭里人员集合 + private List homeUserList = new ArrayList<>(); + //楼院小组下分类项目列表 + private List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + private List eventProjectList = new ArrayList<>(); + + @Data + public static class Home { + //家庭Id + private String homeId; + //居民Id + private String icUserId; + //居民姓名 + private String icUserName; + + } + + @Data + public static class Category { + //一级分类Id + private String categoryCode; + //一级分类名称 + private String categoryName; + //分类下项目列表【创建时间倒序】 + private List projectList = new ArrayList<>(); + + + } + + @Data + public static class Project { + //项目Id + private String projectId; + //项目标题 + private String title; + //状态:待处理 pending,结案closed + private String status; + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java new file mode 100644 index 0000000000..f7846c3354 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author sun + * @dscription + */ +@NoArgsConstructor +@Data +public class ProjectCategoryResultDTO implements Serializable { + + private static final long serialVersionUID = 3217246702883400582L; + /** + * 项目ID + */ + private String projectId; + /** + * 项目标题 + */ + private String title; + /** + * 项目状态 + */ + private String status; + /** + * 二级分类Code + */ + private String categoryCode; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java new file mode 100644 index 0000000000..5ae7d12cda --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 赋能平台【项目分类分析】各分类项目数图表-接口返参 + * @Auth sun + */ +@Data +public class ProjectCategoryTotalResultDTO implements Serializable { + private static final long serialVersionUID = 6188316867855643263L; + + //组织Id + private String agencyId; + //一级分类Code + private String categoryCode; + //一级分类名称 + private String categoryName; + //一级分类颜色 + private String color = ""; + //分类下项目总数 + private Integer total = 0; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java index 8947eb971b..037d54f845 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java @@ -13,8 +13,8 @@ public class ProjectMonthIncrResultDTO implements Serializable { private static final long serialVersionUID = 6188316867855643263L; //横坐标值 - private String value; + private Integer value = 0; //横坐标 - private Integer type; + private String type; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java index c8c895e549..bf74adac49 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java @@ -17,12 +17,14 @@ public class ProjectStatusListResultDTO implements Serializable { //项目Id private String projectId; //来源:议题issue 项目立项:agency 事件:resi_event - private Integer origin; + private String origin; //状态:待处理 pending,结案closed - private Integer status; + private String status; //经度 - private Integer longitude; + private String longitude; //纬度 - private Integer dimension; + private String latitude; + //项目标题 + private String title; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java index 541a742582..9afb3cb712 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java @@ -17,18 +17,18 @@ public class ProjectTotalResultDTO implements Serializable { //日期yyyymmdd private String dateId; //项目总数 - private Integer projectTotal; + private Integer projectTotal = 0; //较昨日数 - private Integer dateIncr; + private Integer dateIncr = 0; //较上月数 - private Integer monthIncr; + private Integer monthIncr = 0; //未结案项目数 - private Integer pendingTotal; + private Integer pendingTotal = 0; //为结案项目占比 xx% - private String pendingRatio; + private String pendingRatio = "0%"; //已结案项目数 - private Integer closedTotal; + private Integer closedTotal = 0; //已结案项目占比 - private String closedRatio; + private String closedRatio = "0%"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java new file mode 100644 index 0000000000..cfedd6e6d9 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.resigroup.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@Data +public class UserTopicPageFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + //@NotBlank(message = "epmetUserId不能为空" , groups = AddUserInternalGroup.class) + private List epmetUserIdList; + @NotNull(message = "pageNo不能为空",groups = AddUserInternalGroup.class) + private Integer pageNo; + @NotNull(message = "pageSize不能为空",groups = AddUserInternalGroup.class) + private Integer pageSize; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java new file mode 100644 index 0000000000..4d5fd23ca2 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dataaggre.dto.resigroup.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 个人分析,发布话题分页列表 + */ +@Data +public class UserTopicResDTO implements Serializable { + private String topicId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date releaseTime; + private String topicContent; + private Boolean shiftIssue; + private String issueId; + private Boolean shiftProject=false; + private String projectId=""; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index ad2d3bebf4..9b9c7a0ef1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -207,6 +207,15 @@ public class EpmetUserController { return new Result().ok(epmetUserService.mentionMeEvent(tokenDto.getUserId())); } + @GetMapping("export/staffpatroll") + public void export(@LoginUser TokenDto tokenDto, @RequestBody StaffListFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(formDTO, StaffListFormDTO.Staff.class); + formDTO.setUserId(tokenDto.getUserId()); + //formDTO.setUserId("73ae6280e46a6653a5605d51d5462725"); + List resultDTOS = epmetUserService.staffPatrolList(formDTO); + ExcelUtils.exportExcelToTarget(response, null, resultDTOS, StaffPatrollExcel.class); + } + /** * @Param formDTO * @Description 通讯录】姓名检索工作人员 @@ -261,14 +270,6 @@ public class EpmetUserController { return new Result().ok(epmetUserService.getStaffInfo(staffId)); } - @GetMapping("export/staffpatroll") - public void export(@LoginUser TokenDto tokenDto, @RequestBody StaffListFormDTO formDTO, HttpServletResponse response) throws Exception { - ValidatorUtils.validateEntity(formDTO, StaffListFormDTO.Staff.class); - formDTO.setUserId(tokenDto.getUserId()); - //formDTO.setUserId("73ae6280e46a6653a5605d51d5462725"); - List resultDTOS = epmetUserService.staffPatrolList(formDTO); - ExcelUtils.exportExcelToTarget(response, null, resultDTOS, StaffPatrollExcel.class); - } /** * @Param formDTO diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java index 503caedfb4..422aa74f4c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java @@ -6,17 +6,13 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum; 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.dataaggre.dto.govproject.form.AllProjectFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; -import com.epmet.dataaggre.dto.govproject.result.AllProjectResultDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectDistributionResultDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectTotalResultDTO; +import com.epmet.dataaggre.dto.govproject.form.*; +import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.service.govproject.GovProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.LinkedList; import java.util.List; /** @@ -75,9 +71,9 @@ public class GovProjectController { * @author sun */ @PostMapping("projectmonthincr") - public Result> projectMonthIncr(@RequestBody ProjectTotalFormDTO formDTO) { + public Result> projectMonthIncr(@RequestBody ProjectTotalFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, ProjectTotalFormDTO.Monthincr.class); - return new Result>().ok(govProjectService.projectMonthIncr(formDTO)); + return new Result>().ok(govProjectService.projectMonthIncr(formDTO)); } /** @@ -85,9 +81,42 @@ public class GovProjectController { * @author sun */ @PostMapping("projectstatuslist") - public Result> projectStatusList(@RequestBody ProjectTotalFormDTO formDTO) { + public Result> projectStatusList(@RequestBody ProjectTotalFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, ProjectTotalFormDTO.Statuslist.class); - return new Result>().ok(govProjectService.projectStatusList(formDTO)); + return new Result>().ok(govProjectService.projectStatusList(formDTO)); + } + + /** + * @Description 赋能平台【项目分类分析】各分类项目数图表 + * @author sun + */ + @PostMapping("projectcategorylist") + public Result> projectCategoryList(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(govProjectService.projectCategoryList(formDTO)); + } + + /** + * @Description 赋能平台【项目处理分析】分类下项目列表 + * @author sun + */ + @PostMapping("categoryprojectlist") + public Result categoryProjectList(@LoginUser TokenDto tokenDto, @RequestBody CategoryProjectFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CategoryProjectFormDTO.Category.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(govProjectService.categoryProjectList(formDTO)); + } + + /** + * @Description 赋能平台【项目处理分析】研判分析 + * @author sun + */ + @PostMapping("projectanalysis") + public Result projectAnalysis(@LoginUser TokenDto tokenDto, @RequestBody ProjectAnalysisFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ProjectAnalysisFormDTO.Analysis.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(govProjectService.projectAnalysis(formDTO)); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java index 259b22cff0..8dc1a34527 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java @@ -1,12 +1,15 @@ package com.epmet.dataaggre.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO; import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO; +import com.epmet.dataaggre.dto.resigroup.result.UserTopicResDTO; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.form.PageUserReportEventFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -39,4 +42,13 @@ public class ResiGroupController { return new Result>().ok(resiGroupService.candidateList(formDTO)); } + /** + * 数字赋能平台-个人分析,发布话题分页列表 + * @return + */ + @PostMapping("pageusertopic") + public Result> pageUserTopic(@RequestBody PageUserReportEventFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, PageUserReportEventFormDTO.AddUserInternalGroup.class); + return new Result>().ok(resiGroupService.pageUserTopic(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 8696fa47a3..237432f5c2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -24,6 +24,8 @@ import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; @@ -335,4 +337,16 @@ public interface DataStatsDao { * @author sun */ List projectList(CustomerDataManageFormDTO formDTO); + + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + List getProjectTotal(ProjectTotalFormDTO formDTO); + + /** + * @Description 查询dateId的上一月过去12个月份组织项目数据 + * @author sun + */ + List getProjectMonthIncr(ProjectTotalFormDTO formDTO); } 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 new file mode 100644 index 0000000000..1e34921a43 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.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.dataaggre.dao.epmetuser; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; +import com.epmet.dto.IcResiUserDTO; +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 2021-10-26 + */ +@Mapper +public interface IcResiUserDao extends BaseDao { + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(@Param("idCard") String idCard, @Param("customerId") String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(@Param("homeId") String homeId, @Param("icUserId") String icUserId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java index 805657fc11..e79c563c0a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java @@ -20,6 +20,7 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; import com.epmet.dataaggre.entity.epmetuser.UserBaseInfoEntity; +import com.epmet.dto.UserBaseInfoDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +51,9 @@ public interface UserBaseInfoDao extends BaseDao { */ List selectUserIdByCustomerId(@Param("userIds") List userIds); + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(@Param("userId") String userId, @Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java index 138ff3d449..5afe394900 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java @@ -21,6 +21,8 @@ import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectCategoryTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectCategoryTotalResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -103,4 +105,10 @@ public interface EvaluationIndexDao { */ String selectAgencyNameByAgencyId(@Param("agencyId")String agencyId); + /** + * @Description 按dateId查询组织下一级分类项目总数统计 + * @author sun + */ + List projectCategoryList(ProjectCategoryTotalFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java index 1e85e06366..17d16fd72d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govissue; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.form.ClosedIssueListFormDTO; import com.epmet.dataaggre.dto.govissue.form.ShiftProjectIssueListFormDTO; import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO; @@ -74,4 +75,10 @@ public interface IssueDao extends BaseDao { Integer selectIssueCount(@Param("gridIds") List gridIds,@Param("issueType")String issueType); List selectShiftProjectIssueList(@Param("customerId") String customerId, @Param("gridId") String gridId); + + /** + * @Description 查询客户下分类信息 + * @author sun + **/ + List getCategoryList(@Param("customerId") String customerId, @Param("level") String level, @Param("isDisable") String isDisable); } \ 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 4697a0f267..ee44c3cee8 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 @@ -20,10 +20,14 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; +import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; +import com.epmet.dataaggre.dto.govproject.ResiEventDTO; import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectDistributionResultDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectInfoDTO; +import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.ProjectEntity; +import com.epmet.dto.ProjectCategoryDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -70,4 +74,45 @@ public interface ProjectDao extends BaseDao { List selectList(@Param("customerId") String customerId,@Param("list")List issueIds); int countRedDot(String userId); + + /** + * @Description 查询组织下截止到dateId的某个状态的项目列表 + * @author sun + */ + List getProjectStatusList(ProjectTotalFormDTO formDTO); + + List selectProjectIssueCategory(@Param("issueIds") List issueIds); + + /** + * @Description 查询组织截止某一天的某个分类下的项目列表 + * @author sun + */ + List categoryProjectList(CategoryProjectFormDTO formDTO); + + /** + * @Description 查询项目对应的所有分类信息 + * @author sun + */ + List getCategoryList(@Param("projectIds") List projectIds); + + /** + * @Description 查询来源事件的项目居民端创建人信息 + * @author sun + */ + List getEventList(@Param("projectIds") List projectIds); + /** + * @Description 查询来源话题的项目居民端创建人信息 + * @author sun + */ + List getTopicUser(@Param("projectIds") List projectIds); + + /** + * @Description 根据项目来源查询不同分类不同创建人下的分类项目 + * @author sun + */ + List getProjectCategoryList(@Param("customerId") String customerId, + @Param("secondCodeList") List secondCodeList, + @Param("userIds") List userIds, + @Param("origin") String origin); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java index cd57936e2f..c41c85d0de 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java @@ -19,7 +19,9 @@ package com.epmet.dataaggre.dao.resigroup; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; +import com.epmet.dataaggre.dto.resigroup.result.UserTopicResDTO; import com.epmet.dataaggre.entity.resigroup.ResiTopicEntity; +import com.epmet.dto.form.PageUserReportEventFormDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -35,4 +37,12 @@ import java.util.List; public interface ResiTopicDao extends BaseDao { List selectTopicInfoByIds(@Param("list") List topicIds); + + /** + * 数据分析-个人档案-发布话题列表 + * + * @param formDTO + * @return + */ + List selectListTopic(PageUserReportEventFormDTO formDTO); } \ No newline at end of file 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 new file mode 100644 index 0000000000..e40441101d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -0,0 +1,493 @@ +/** + * 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.epmetuser; + +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-10-26 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_user") +public class IcResiUserEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * + */ + private String agencyId; + + /** + * + */ + private String pids; + + /** + * 网格ID + */ + private String gridId; + + /** + * 所属小区ID + */ + private String villageId; + + /** + * 所属楼宇Id + */ + private String buildId; + + /** + * 单元id + */ + private String unitId; + + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 是否本地户籍 + */ + private String isBdhj; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + /** + * 备注 + */ + private String remarks; + + /** + * 联系人 + */ + private String contacts; + + /** + * 联系人电话 + */ + private String contactsMobile; + + /** + * 九小场所url + */ + private String ninePlace; + + /** + * 是否党员 + */ + private String isParty; + + /** + * 是否低保户 + */ + private String isDbh; + + /** + * 是否保障房 + */ + private String isEnsureHouse; + + /** + * 是否失业 + */ + private String isUnemployed; + + /** + * 是否育龄妇女 + */ + private String isYlfn; + + /** + * 是否退役军人 + */ + private String isVeterans; + + /** + * 是否统战人员 + */ + private String isUnitedFront; + + /** + * 是否信访人员 + */ + private String isXfry; + + /** + * 是否志愿者 + */ + private String isVolunteer; + + /** + * 是否老年人 + */ + private String isOldPeople; + + /** + * 是否空巢 + */ + private String isKc; + + /** + * 是否失独 + */ + private String isSd; + + /** + * 是否失能 + */ + private String isSn; + + /** + * 是否失智 + */ + private String isSz; + + /** + * 是否残疾 + */ + private String isCj; + + /** + * 是否大病 + */ + private String isDb; + + /** + * 是否慢病 + */ + private String isMb; + + /** + * 是否特殊人群 + */ + private String isSpecial; + + /** + * 文化程度【字典表】 + */ + private String culture; + + /** + * 文化程度备注 + */ + private String cultureRemakes; + + /** + * 特长【字典表】 + */ + private String specialSkill; + + /** + * 兴趣爱好 + */ + private String hobby; + + /** + * 兴趣爱好备注 + */ + private String hobbyRemakes; + + /** + * 宗教信仰 + */ + private String faith; + + /** + * 宗教信仰备注 + */ + private String faithRemakes; + + /** + * 残疾类别【字典表】 + */ + private String cjlb; + + /** + * 残疾登记(状况)【字典表】 + */ + private String cjzk; + + /** + * 残疾证号 + */ + private String cjzh; + + /** + * 残疾说明 + */ + private String cjsm; + + /** + * 有无监护人【yes no】 + */ + private String ynJdr; + + /** + * 有无技能特长【yes no】 + */ + private String ynJntc; + + /** + * 有无劳动能力 + */ + private String ynLdnl; + + /** + * 有无非义务教育阶段助学【yes no】 + */ + private String ynFywjyjdzx; + + /** + * 所患大病 + */ + private String shdb; + + /** + * 患大病时间 + */ + private String dbsj; + + /** + * 所患慢性病 + */ + private String shmxb; + + /** + * 患慢性病时间 + */ + private String mxbsj; + + /** + * 是否参保 + */ + private String isCb; + + /** + * 自付金额 + */ + private String zfje; + + /** + * 救助金额 + */ + private String jzje; + + /** + * 救助时间[yyyy-MM-dd] + */ + private String jzsj; + + /** + * 享受救助明细序号 + */ + private String jzmxxh; + + /** + * 健康信息备注 + */ + private String healthRemakes; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 职业 + */ + private String zy; + + /** + * 离退休时间 + */ + private String ltxsj; + + /** + * 工作信息备注 + */ + private String workRemake; + + /** + * 退休金额 + */ + private String txje; + + /** + * 月收入 + */ + private String ysr; + + /** + * 籍贯 + */ + private String jg; + + /** + * 户籍所在地 + */ + private String hjszd; + + /** + * 现居住地 + */ + private String xjzd; + + /** + * 人户情况 + */ + private String rhzk; + + /** + * 居住信息备注 + */ + private String jzxxRemakes; + + /** + * 民族【字典表】 + */ + private String mz; + + /** + * 与户主关系【字典表】 + */ + private String yhzgx; + + /** + * 居住情况【字典表】 + */ + private String jzqk; + + /** + * 婚姻状况【字典表】 + */ + private String hyzk; + + /** + * 配偶情况【字典表】 + */ + private String poqk; + + /** + * 有无赡养人 + */ + private String ynSyr; + + /** + * 与赡养人关系【字典表】 + */ + private String ysyrgx; + + /** + * 赡养人电话 + */ + private String syrMobile; + + /** + * 家庭信息备注 + */ + private String jtxxRemakes; + + /** + * 预留字段1 + */ + private String field1; + + /** + * 预留字段2 + */ + private String field2; + + /** + * 预留字段3 + */ + private String field3; + + /** + * 预留字段4 + */ + private String field4; + + /** + * 预留字段5 + */ + private String field5; + + /** + * 预留字段6 + */ + private String field6; + + /** + * 预留字段7 + */ + private String field7; + + /** + * 预留字段8 + */ + private String field8; + + /** + * 预留字段9 + */ + private String field9; + + /** + * 预留字段10 + */ + private String field10; + +} 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 36fa24c7b2..de584839e2 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 @@ -6,6 +6,8 @@ import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -247,4 +249,15 @@ public interface DataStatsService { */ CustomerDataManageResultDTO operateExport(CustomerDataManageFormDTO formDTO) throws ParseException; + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + List getProjectTotal(ProjectTotalFormDTO formDTO); + + /** + * @Description 查询dateId的上一月过去12个月份组织项目数据 + * @author sun + */ + List getProjectMonthIncr(ProjectTotalFormDTO 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 d1c160080d..ac426b81d7 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 @@ -23,7 +23,9 @@ import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; -import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; + import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; + import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO; + import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; @@ -2121,5 +2123,23 @@ public class DataStatsServiceImpl implements DataStatsService { return resultDTO; } + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + @Override + public List getProjectTotal(ProjectTotalFormDTO formDTO) { + return dataStatsDao.getProjectTotal(formDTO); + } + + /** + * @Description 查询dateId的上一月过去12个月份组织项目数据 + * @author sun + */ + @Override + public List getProjectMonthIncr(ProjectTotalFormDTO formDTO) { + return dataStatsDao.getProjectMonthIncr(formDTO); + } + } 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 5f0a73ad1e..6979f5d8b4 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,12 +1,13 @@ package com.epmet.dataaggre.service.epmetuser; -import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; -import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import java.util.List; @@ -148,4 +149,22 @@ public interface EpmetUserService { * @author sun */ StaffDetailV2FormDTO selectByStaffId(String staffId); + + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(String userId, String customerId); + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(String idNum, String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(String homeId, String icUserId); } 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 df47618648..759d1f5d1c 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 @@ -26,6 +26,7 @@ import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; @@ -36,6 +37,8 @@ import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -79,6 +82,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private DataStatsService dataStatsService; @Resource private GovStaffRoleDao govStaffRoleDao; + @Resource + private IcResiUserDao icResiUserDao; /** * @Description 根据UserIds查询 @@ -703,5 +708,32 @@ public class EpmetUserServiceImpl implements EpmetUserService { return result; } + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + @Override + public List getUserBaseList(String userId, String customerId) { + return userBaseInfoDao.getUserBaseList(userId, customerId); + } + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + @Override + public IcResiUserDTO getIcResiUser(String idNum, String customerId) { + return icResiUserDao.getIcResiUser(idNum, customerId); + } + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + @Override + public List getHomeUserList(String homeId, String icUserId) { + return icResiUserDao.getHomeUserList(homeId, icUserId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java index 67468e32de..bd5cfd6886 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java @@ -6,6 +6,8 @@ import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectCategoryTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectCategoryTotalResultDTO; import java.util.List; @@ -86,4 +88,9 @@ public interface EvaluationIndexService { */ ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String agencyId); + /** + * @Description 按dateId查询组织下一级分类项目总数统计 + * @author sun + */ + List projectCategoryList(ProjectCategoryTotalFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java index abb0f137f5..e3f1b246af 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java @@ -11,6 +11,8 @@ import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectCategoryTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectCategoryTotalResultDTO; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import lombok.extern.slf4j.Slf4j; @@ -206,4 +208,13 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { return resultDTO; } + /** + * @Description 按dateId查询组织下一级分类项目总数统计 + * @author sun + */ + @Override + public List projectCategoryList(ProjectCategoryTotalFormDTO formDTO) { + return evaluationIndexDao.projectCategoryList(formDTO); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java index 5159bda48f..3e87ea18d3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java @@ -1,6 +1,7 @@ package com.epmet.dataaggre.service.govissue; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO; import com.epmet.dataaggre.dto.govissue.form.ClosedIssueListFormDTO; import com.epmet.dataaggre.dto.govissue.form.ShiftProjectIssueListFormDTO; @@ -45,4 +46,10 @@ public interface GovIssueService { List closedIssueList(ClosedIssueListFormDTO fromDTO); List selectShiftProjectIssueList(String customerId,String gridId,Integer pageNo,Integer pageSize); + + /** + * @Description 查询客户下分类信息 + * @author sun + **/ + List categoryList(String customerId, String level, String isDisable); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java index 7b68d96332..5556d2d3f0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java @@ -8,6 +8,7 @@ import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.IssueConstant; import com.epmet.dataaggre.dao.govissue.IssueApplicationDao; import com.epmet.dataaggre.dao.govissue.IssueDao; +import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO; import com.epmet.dataaggre.dto.govissue.form.ClosedIssueListFormDTO; import com.epmet.dataaggre.dto.govissue.form.ShiftProjectIssueListFormDTO; @@ -323,4 +324,13 @@ public class GovIssueServiceImpl implements GovIssueService { return issueDao.selectShiftProjectIssueList(customerId, gridId); } + /** + * @Description 查询客户下一级分类信息 + * @author sun + **/ + @Override + public List categoryList(String customerId, String level, String isDisable) { + return issueDao.getCategoryList(customerId, level, isDisable); + } + } 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 0509c9c129..77c8c33d0f 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 @@ -172,5 +172,4 @@ public interface GovOrgService { * @date 2021/11/5 2:57 下午 */ CustomerGridDTO getGridInfo(String gridId); - } 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 a09c9257db..d118a05746 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,12 +1,12 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; -import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; +import java.util.LinkedList; import java.util.List; /** @@ -61,11 +61,37 @@ public interface GovProjectService { * @Description 赋能平台【项目处理分析】进12月新增项目折线图 * @author sun */ - List projectMonthIncr(ProjectTotalFormDTO formDTO); + LinkedList projectMonthIncr(ProjectTotalFormDTO formDTO); /** * @Description 赋能平台【项目处理分析】按状态查询项目列表 * @author sun */ - List projectStatusList(ProjectTotalFormDTO formDTO); + List projectStatusList(ProjectTotalFormDTO formDTO); + + /** + * @Description 赋能平台【项目分类分析】各分类项目数图表 + * @author sun + */ + List projectCategoryList(ProjectCategoryTotalFormDTO formDTO); + + /** + * @Description 赋能平台【项目处理分析】分类下项目列表 + * @author sun + */ + CategoryProjectResultDTO categoryProjectList(CategoryProjectFormDTO formDTO); + + /** + * @Description 赋能平台【项目处理分析】研判分析 + * @author sun + */ + ProjectAnalysisResultDTO projectAnalysis(ProjectAnalysisFormDTO formDTO); + + /** + * 找出这些议题中对应的项目id,以及项目对应的一级分类编码 + * + * @param issueIds + * @return + */ + List getIssueProjectFirstCategory(List issueIds); } 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 a0401eb9b8..200054ae6d 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 @@ -5,25 +5,37 @@ import com.epmet.commons.tools.constant.NumConstant; 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.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.ProjectConstant; import com.epmet.dataaggre.dao.govproject.ProjectDao; +import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; +import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; +import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; -import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; +import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; +import com.epmet.dataaggre.dto.govproject.ResiEventDTO; +import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; +import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; +import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govissue.GovIssueService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.form.TimestampIntervalFormDTO; import com.epmet.dto.form.WorkMinuteFormDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -52,6 +64,12 @@ public class GovProjectServiceImpl implements GovProjectService { private GovIssueService govIssueService; @Autowired private ResiGroupService resiGroupService; + @Autowired + private DataStatsService dataStatsService; + @Autowired + private EvaluationIndexService evaluationIndexService; + @Autowired + private EpmetUserService epmetUserService; /** * @Description 查询项目信息 @@ -251,7 +269,40 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public ProjectTotalResultDTO projectTotal(ProjectTotalFormDTO formDTO) { - return null; + ProjectTotalResultDTO result = new ProjectTotalResultDTO(); + result.setAgencyId(formDTO.getAgencyId()); + result.setDateId(formDTO.getDateId()); + //较昨日dateId值 + formDTO.setYeDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", -1)); + //较上月monthId值 + formDTO.setMonthId(DateUtils.dateOrmonthId(formDTO.getDateId(), "month", -1)); + + //1.分别查询组织下dateId、较昨日、较上月项目统计数据 + List list = dataStatsService.getProjectTotal(formDTO); + if (CollectionUtils.isEmpty(list) || !formDTO.getDateId().equals(list.get(0).getDateId())) { + return result; + } + + //2.封装数据 + list.forEach(l -> { + if (formDTO.getDateId().equals(l.getDateId())) { + result.setProjectTotal(l.getProjectTotal()); + result.setPendingTotal(l.getPendingTotal()); + result.setPendingRatio(l.getPendingRatio()); + result.setClosedTotal(l.getClosedTotal()); + result.setClosedRatio(l.getClosedRatio()); + //默认较昨日较上个月增长值就是当前日期的数据 + result.setDateIncr(l.getProjectTotal()); + result.setMonthIncr(l.getProjectTotal()); + } + if (formDTO.getYeDateId().equals(l.getDateId())) { + result.setDateIncr(result.getProjectTotal() - l.getProjectTotal()); + } else if (formDTO.getMonthId().equals(l.getMonthId())) { + result.setMonthIncr(result.getProjectTotal() - l.getProjectTotal()); + } + }); + + return result; } /** @@ -259,8 +310,30 @@ public class GovProjectServiceImpl implements GovProjectService { * @author sun */ @Override - public List projectMonthIncr(ProjectTotalFormDTO formDTO) { - return null; + public LinkedList projectMonthIncr(ProjectTotalFormDTO formDTO) { + LinkedList resultList = new LinkedList<>(); + //1.获取起始终止月份值 + LinkedHashMap map = DateUtils.getXproSub(formDTO.getDateId()); + List monthIdList = map.keySet().stream().collect(Collectors.toList()); + formDTO.setStartMonth(monthIdList.get(NumConstant.ZERO)); + formDTO.setEndMonth(monthIdList.get(NumConstant.ELEVEN)); + + //2.查询dateId的上一月过去12个月份数据【2021-12-08 数据是202012到202111的数据】 + List list = dataStatsService.getProjectMonthIncr(formDTO); + + //3.封装数据并返回 + map.forEach((k, v) -> { + ProjectMonthIncrResultDTO dto = new ProjectMonthIncrResultDTO(); + dto.setType(v); + list.forEach(l -> { + if (k.equals(l.getMonthId())) { + dto.setValue(l.getProjectIncr()); + } + }); + resultList.add(dto); + }); + + return resultList; } /** @@ -268,8 +341,236 @@ public class GovProjectServiceImpl implements GovProjectService { * @author sun */ @Override - public List projectStatusList(ProjectTotalFormDTO formDTO) { - return null; + public List projectStatusList(ProjectTotalFormDTO formDTO) { + //所选日期后一天的dateId值 + formDTO.setToDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1)); + //1.查询组织下截止到dateId的某个状态的项目列表 + List resultList = projectDao.getProjectStatusList(formDTO); + return resultList; + } + + /** + * @Description 赋能平台【项目分类分析】各分类项目数图表 +, * @author sun + */ + @Override + public List projectCategoryList(ProjectCategoryTotalFormDTO formDTO) { + List resultList = new ArrayList<>(); + //1.查询客户下一级分类信息 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), "1", "enable"); + + //2.按dateId查询组织下一级分类项目总数 + List list = evaluationIndexService.projectCategoryList(formDTO); + + //3.封装数据并返回 + //有数据的排在前边,没数据的按分类顺序排在后边 + Map map = new HashMap<>(); + list.forEach(l -> { + ProjectCategoryTotalResultDTO dto = new ProjectCategoryTotalResultDTO(); + dto.setAgencyId(formDTO.getAgencyId()); + dto.setTotal(l.getTotal()); + categoryList.forEach(ca -> { + if (ca.getCategoryCode().equals(l.getCategoryCode())) { + dto.setCategoryCode(ca.getCategoryCode()); + dto.setCategoryName(ca.getCategoryName()); + dto.setColor(ca.getColor()); + } + }); + map.put(l.getCategoryCode(), l.getCategoryCode()); + resultList.add(dto); + }); + categoryList.forEach(ca -> { + if (!map.containsKey(ca.getCategoryCode())) { + ProjectCategoryTotalResultDTO dto = new ProjectCategoryTotalResultDTO(); + dto.setAgencyId(formDTO.getAgencyId()); + dto.setCategoryCode(ca.getCategoryCode()); + dto.setCategoryName(ca.getCategoryName()); + dto.setColor(ca.getColor()); + resultList.add(dto); + map.put(ca.getCategoryCode(), ca.getCategoryCode()); + } + }); + + return resultList; + } + + /** + * @Description 赋能平台【项目处理分析】分类下项目列表 + * @author sun + */ + @Override + public CategoryProjectResultDTO categoryProjectList(CategoryProjectFormDTO formDTO) { + CategoryProjectResultDTO resultDTO = new CategoryProjectResultDTO(); + //所选日期后一天的dateId值 + formDTO.setToDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1)); + //1.查询客户下分类信息 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null); + List categoreCodeList = categoryList.stream().filter(ca -> ca.getParentCategoryCode().equals(formDTO.getCategoryCode())).map(m -> m.getCategoryCode()).collect(Collectors.toList()); + formDTO.setCategoreCodeList(categoreCodeList); + + //2.查询组织及下级截止某一天的某个一级分类下的项目列表 + PageInfo result = + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> projectDao.categoryProjectList(formDTO)); + if (org.springframework.util.CollectionUtils.isEmpty(result.getList())) { + return resultDTO; + } + resultDTO.setTotal((int) result.getTotal()); + + //3.查询已有项目列表涉及的所有分类信息【一个项目存在多个一级分类下的二级分类】 + List projectIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getProjectId).collect(Collectors.toList()); + List list = projectDao.getCategoryList(projectIds); + + //4.查询网格信息【楼院小组类项目、上报事件且上报给网格的项目才存在网格Id】 + List gridIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getGridId).collect(Collectors.toList()); + gridIds = gridIds.stream().distinct().collect(Collectors.toList()); + List gridList = govOrgService.gridListByIds(gridIds); + + //5.查询来源议题、事件的项目居民端创建人userId + List eventUser = projectDao.getEventList(projectIds); + List topicUser = projectDao.getTopicUser(projectIds); + + //5.封装数据 + result.getList().forEach(re -> { + //项目涉及网格信息 + gridList.forEach(g -> { + if (StringUtils.isNotBlank(re.getGridId()) && re.getGridId().equals(g.getGridId())) { + re.setGridName(g.getName()); + } + }); + //项目涉及分类信息【一个项目涉及多个一级分类】 + //一级分类Id + List caId = new ArrayList<>(); + list.forEach(ca -> { + if (ca.getProjectId().equals(re.getProjectId())) { + caId.add(ca.getCategoryPids()); + } + }); + //一级分类名称、code集合 + List caName = new ArrayList<>(); + List caCode = new ArrayList<>(); + categoryList.forEach(ca -> caId.stream().filter(li -> ca.getId().equals(li)).forEach(s -> { + caName.add(ca.getCategoryName()); + caCode.add(ca.getCategoryCode()); + })); + re.setCategoryNames(caName); + re.setCategoryCodes(caCode); + //项目来源话题、事件的创建人信息 + eventUser.forEach(ev -> { + if (re.getProjectId().equals(ev.getProjectId())) { + re.setUserId(ev.getReportUserId()); + } + }); + topicUser.forEach(to -> { + if (re.getProjectId().equals(to.getProjectId())) { + re.setUserId(to.getUserId()); + } + }); + }); + + resultDTO.setList(result.getList()); + return resultDTO; + } + + /** + * @Description 赋能平台【项目处理分析】研判分析 + * @author sun + */ + @Override + public ProjectAnalysisResultDTO projectAnalysis(ProjectAnalysisFormDTO formDTO) { + ProjectAnalysisResultDTO resultDTO = new ProjectAnalysisResultDTO(); + resultDTO.setUserId(formDTO.getUserId()); + //1.查询userId的身份证号在小程序用户中存在的多个userId值 + List userList = epmetUserService.getUserBaseList(formDTO.getUserId(), formDTO.getCustomerId()); + List userIds = userList.stream().map(UserBaseInfoDTO::getUserId).collect(Collectors.toList()); + + //2.查询对应负能平台用户家庭信息 + if (!org.springframework.util.CollectionUtils.isEmpty(userList)) { + //2-1.根据身份证号查询负能平台用户信息 + IcResiUserDTO icResiUserDTO = epmetUserService.getIcResiUser(userList.get(0).getIdNum(), formDTO.getCustomerId()); + resultDTO.setIcUserId(icResiUserDTO.getId()); + resultDTO.setIcUserName(icResiUserDTO.getName()); + if (null != icResiUserDTO) { + //2-2.查询人员的家庭成员数据 + List homeList = epmetUserService.getHomeUserList(icResiUserDTO.getHomeId(), icResiUserDTO.getId()); + resultDTO.setHomeUserList(homeList); + } + } + if (org.springframework.util.CollectionUtils.isEmpty(userIds)) { + userIds = new ArrayList<>(); + userIds.add(formDTO.getUserId()); + } + + //3.查询一级分类数据 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null); + List secondCodeList = formDTO.getCategoryCodeList().stream().flatMap(code -> categoryList.stream().filter(ca -> code.equals(ca.getParentCategoryCode())).map(second -> { + return second.getCategoryCode(); + })).collect(Collectors.toList()); + + //4.根据userId集合和二级分类Code集合查询来源楼院小组的项目 + List groupList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "issue"); + + //5.根据userId集合和二级分类Code集合查询来源事件上报的项目 + List eventList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "resiEvent"); + + //6.封装数据 + //楼院小组下分类项目列表 + List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + List eventProjectList = new ArrayList<>(); + formDTO.getCategoryCodeList().forEach(code -> { + //一级分类code下的二级分类code集合 + Map secondCodeMap = new HashMap<>(); + //来源楼院小组的分类及项目列表 + ProjectAnalysisResultDTO.Category groupCa = new ProjectAnalysisResultDTO.Category(); + List groupPrList = new ArrayList<>(); + //来源事件上报的分类及项目列表 + ProjectAnalysisResultDTO.Category eventCa = new ProjectAnalysisResultDTO.Category(); + List eventPrList = new ArrayList<>(); + categoryList.forEach(ca -> { + groupCa.setCategoryCode(code); + eventCa.setCategoryCode(code); + if (code.equals(ca.getCategoryCode())) { + groupCa.setCategoryName(ca.getCategoryName()); + eventCa.setCategoryName(ca.getCategoryName()); + } + if (code.equals(ca.getParentCategoryCode())) { + secondCodeMap.put(ca.getCategoryCode(), ca.getCategoryCode()); + } + }); + //当前分类下来源楼院小组的项目 + groupList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode()) && !formDTO.getProjectId().equals(gr.getProjectId())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + groupPrList.add(project); + } + }); + groupCa.setProjectList(groupPrList); + groupProjectList.add(groupCa); + //当前分类下来源事件上报的项目 + eventList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode()) && !formDTO.getProjectId().equals(gr.getProjectId())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + eventPrList.add(project); + } + }); + eventCa.setProjectList(eventPrList); + eventProjectList.add(eventCa); + }); + + resultDTO.setGroupProjectList(groupProjectList); + resultDTO.setEventProjectList(eventProjectList); + return resultDTO; + } + + /** + * 找出这些议题中对应的项目id,以及项目对应的一级分类编码 + * + * @param issueIds + * @return + */ + @Override + public List getIssueProjectFirstCategory(List issueIds) { + return projectDao.selectProjectIssueCategory(issueIds); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java index 68f4afb4ee..2a353b0cc6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java @@ -1,9 +1,11 @@ package com.epmet.dataaggre.service.resigroup; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; import com.epmet.dataaggre.dto.resigroup.form.*; import com.epmet.dataaggre.dto.resigroup.result.*; +import com.epmet.dto.form.PageUserReportEventFormDTO; import java.util.List; @@ -61,4 +63,11 @@ public interface ResiGroupService { * @return com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO */ List querySubRankList(GroupActRankFormDTO formDTO); + + /** + * 分页查询我发布的话题 + * @param formDTO + * @return + */ + PageData pageUserTopic(PageUserReportEventFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java index 374db9eedf..d0cd285b19 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java @@ -3,12 +3,15 @@ package com.epmet.dataaggre.service.resigroup.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; 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.page.PageData; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.resigroup.ResiGroupDao; import com.epmet.dataaggre.dao.resigroup.ResiTopicDao; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; import com.epmet.dataaggre.dto.resigroup.form.*; @@ -18,7 +21,9 @@ import com.epmet.dataaggre.redis.ResiGroupRedis; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.form.PageUserReportEventFormDTO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -27,10 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +55,8 @@ public class ResiGroupServiceImpl implements ResiGroupService { private DataStatsService dataStatsService; @Autowired private GovOrgService govOrgService; + @Autowired + private GovProjectService govProjectService; @Override public List selectTopicInfoByIds(List topicIds) { @@ -358,4 +362,39 @@ public class ResiGroupServiceImpl implements ResiGroupService { } return resultDTOList; } + + /** + * 数据分析-个人档案-发布话题列表 + * + * @param formDTO + * @return + */ + @Override + public PageData pageUserTopic(PageUserReportEventFormDTO formDTO) { + if (org.apache.commons.collections4.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) { + return new PageData(new ArrayList<>(), NumConstant.ZERO); + } + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> resiTopicDao.selectListTopic(formDTO)); + List list =pageInfo.getList(); + //根据议题id查询出每个议题对应的项目id,以及项目分类编码 + List issueIds=list.stream().filter(dto -> StringUtils.isNotBlank(dto.getIssueId())).map(UserTopicResDTO::getIssueId).collect(Collectors.toList()); + if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(issueIds)){ + List categoryList= govProjectService.getIssueProjectFirstCategory(issueIds); + for(UserTopicResDTO topicResDTO :pageInfo.getList()){ + topicResDTO.setShiftProject(false); + topicResDTO.setProjectId(StrConstant.EPMETY_STR); + + for(IssueProjectCategory category:categoryList){ + if(topicResDTO.getIssueId().equals(category.getIssueId())&&StringUtils.isNotBlank(category.getProjectId())){ + topicResDTO.setShiftProject(true); + topicResDTO.setProjectId(category.getProjectId()); + break; + } + } + + } + } + return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index e94f7859c3..681c057922 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -1045,4 +1045,66 @@ GROUP BY t.orgId + + + + 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 new file mode 100644 index 0000000000..c28d81375c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml index 1ce45a28d8..6c118e2ce0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml @@ -38,4 +38,16 @@ ) + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml index afa7e56c2d..c3b45aba0d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml @@ -182,4 +182,18 @@ AND DEL_FLAG = 0 + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml index 185816c9bb..90ecda4b20 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml @@ -124,4 +124,20 @@ order by i.SHIFTED_TIME desc + + + \ No newline at end of file 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 fde243eafa..60350c7a1e 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 @@ -22,7 +22,8 @@ cg.grid_name, CONCAT(ca.organization_name,'-',cg.grid_name) ) AS 'gridName', - cg.customer_id AS 'customerId' + cg.customer_id AS 'customerId', + cg.grid_name AS 'name' FROM customer_grid cg INNER JOIN customer_agency ca ON cg.pid = ca.id 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 1e144e3420..0282677e40 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 @@ -155,4 +155,142 @@ AND rem.RED_DOT = '1' AND rem.USER_ID = #{userId} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml index bd46639c94..c2e54e14ae 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml @@ -22,4 +22,23 @@ #{topicId} + + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/heart/VolunteerDemandServiceStatsResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/heart/VolunteerDemandServiceStatsResultDTO.java new file mode 100644 index 0000000000..2dfcb5426a --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/heart/VolunteerDemandServiceStatsResultDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.result.heart; + +import lombok.Data; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/10 4:24 下午 + * @Version 1.0 + */ +@Data +public class VolunteerDemandServiceStatsResultDTO { + + private String customerId; + private String dateId; + /** + * 客户下志愿者总数 + */ + private Integer volunteerTotal; + /** + * 客户下志愿者中,党员数量 + */ + private Integer partyTotal; + /** + * 客户下志愿者中,居民数量 + */ + private Integer resiTotal; + /** + * 客户下志愿者服务总次数 + */ + private Integer serviceTotal; + /** + * 客户下党员志愿者服务次数 + */ + private Integer partyServiceTotal; + /** + * 客户下居民志愿者服务次数 + */ + private Integer resiServiceTotal; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/FineExampleResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/FineExampleResultDTO.java index d8b33c9d12..5826f74e94 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/FineExampleResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/FineExampleResultDTO.java @@ -87,4 +87,6 @@ public class FineExampleResultDTO implements Serializable { * PLAT_JOIN PARTY_RATIO 平台参与议事的党员占比 */ private String platJoinPartyRatio = "0.00%"; + + private String dataEndTime; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityRankResultDTO.java index bf6ae28829..4056d1976f 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityRankResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityRankResultDTO.java @@ -44,4 +44,6 @@ public class GovernCapacityRankResultDTO implements Serializable { * 当前agencyName的上一级组织名称 */ private String parentAgencyName; + + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityResultDTO.java index e749c0e218..be8c7d4398 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityResultDTO.java @@ -46,4 +46,6 @@ public class GovernCapacityResultDTO implements Serializable { private String parentAgencyName; private String orgId; + + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernRankResultDTO.java index ac2072d44c..624868df62 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernRankResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernRankResultDTO.java @@ -39,4 +39,9 @@ public class GrassRootsGovernRankResultDTO implements Serializable { * 组织名称 */ private String orgName; + + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernResultDTO.java index 05b2e6c382..27be4bb8ce 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsGovernResultDTO.java @@ -35,4 +35,9 @@ public class GrassRootsGovernResultDTO implements Serializable { * 办结率(当前界面是社区时显示) */ private String closedProjectRatio; + + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgRankResultDTO.java index 61b7ab9b74..e6c3ee3971 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgRankResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgRankResultDTO.java @@ -31,4 +31,6 @@ public class GrassRootsOrgRankResultDTO implements Serializable { * 组织名称 */ private String orgName; + + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgResultDTO.java index d01bf5837e..8c4f0df674 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GrassRootsOrgResultDTO.java @@ -27,4 +27,9 @@ public class GrassRootsOrgResultDTO implements Serializable { * 项目数 */ private Integer projectTotal; + + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/OrgRankDataResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/OrgRankDataResultDTO.java index fa37c1f731..3319d73fd1 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/OrgRankDataResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/OrgRankDataResultDTO.java @@ -57,4 +57,8 @@ public class OrgRankDataResultDTO implements Serializable { private String parentAgencyName; private String orgId; + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartyUserPointResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartyUserPointResultDTO.java index 3450a623a6..6e63822e65 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartyUserPointResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartyUserPointResultDTO.java @@ -28,4 +28,6 @@ public class PartyUserPointResultDTO implements Serializable { * 用户积分 * */ private Integer point; + + private String dataEndTime; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PmTotalResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PmTotalResultDTO.java index aa5dcb67b5..2024fcd9d8 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PmTotalResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PmTotalResultDTO.java @@ -31,4 +31,9 @@ public class PmTotalResultDTO implements Serializable { * 议题数 */ private Integer issueTotal; + + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectProfileResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectProfileResultDTO.java index 9e6b2d509e..a5f3f8ce4f 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectProfileResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectProfileResultDTO.java @@ -27,4 +27,6 @@ public class ProjectProfileResultDTO implements Serializable { * 级别 */ private String level; + + private String dataEndTime; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiProfileResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiProfileResultDTO.java index e95933e1c1..793306dcbc 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiProfileResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiProfileResultDTO.java @@ -49,4 +49,8 @@ public class PublicPartiProfileResultDTO implements Serializable { private String joinCompareLatestTrend = ""; + /** + * 数据所属月份 + */ + private String monthId; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TopProfileResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TopProfileResultDTO.java index 55c281db6c..5d95da3a5e 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TopProfileResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TopProfileResultDTO.java @@ -42,4 +42,6 @@ public class TopProfileResultDTO implements Serializable { * 项目总数 */ private Integer projectNum = 0; + + private String dataEndTime; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/heart/DataReportHeartDemandController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/heart/DataReportHeartDemandController.java new file mode 100644 index 0000000000..86eabe2b3c --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/heart/DataReportHeartDemandController.java @@ -0,0 +1,38 @@ +package com.epmet.datareport.controller.heart; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.datareport.service.heart.DemandService; +import com.epmet.dto.result.heart.VolunteerDemandServiceStatsResultDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/10 3:55 下午 + * @Version 1.0 + */ +@RestController +@RequestMapping("heart/demand") +public class DataReportHeartDemandController { + + @Autowired + private DemandService demandService; + + /** + * 查询志愿者需求服务统计信息 + * @param loginUser + * @return + */ + @PostMapping("volunteer/service") + public Result getVolunteerServiceStats(@LoginUser TokenDto loginUser) { + String customerId = loginUser.getCustomerId(); + VolunteerDemandServiceStatsResultDTO r = demandService.getVolunteerServiceStats(customerId); + return new Result().ok(r); + } + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java index 6f485e507e..abd9b25e92 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java @@ -11,6 +11,14 @@ import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectQuantity import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyService; import com.epmet.datareport.service.project.ProjectService; import com.epmet.dto.form.ProcessListFormDTO; +import com.epmet.dto.form.screen.EfficiencyAnalysisFormDTO; +import com.epmet.dto.form.screen.QueryQuantityMonthlyFormDTO; +import com.epmet.dto.form.screen.ScreenCommonFormDTO; +import com.epmet.dto.result.screen.EfficiencyAnalysisResultDTO; +import com.epmet.dto.result.screen.ProjectQuantityResultDTO; +import com.epmet.dto.result.screen.QueryQuantityMonthlyResultDTO; +import com.epmet.datareport.service.project.ProjectService; +import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.project.MassesDiscontentFormV2DTO; import com.epmet.dto.result.project.MassesDiscontentResultV2DTO; import com.epmet.project.constant.ProjectConstant; diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index 051a6ec3e6..5883d352e7 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -20,6 +20,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.ScreenCustomerAgencyCommonDTO; import com.epmet.dto.ScreenCustomerGridDTO; import com.epmet.dto.result.ParentListResultDTO; +import com.epmet.dto.ScreenCustomerAgencyCommonDTO; import com.epmet.dto.result.ScreenCustomerAgencyDTO; import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.dto.result.plugins.DeptNodeDTO; diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactVolunteerServiceDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactVolunteerServiceDailyDao.java new file mode 100644 index 0000000000..fd4d28afb0 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactVolunteerServiceDailyDao.java @@ -0,0 +1,43 @@ +/** + * 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.datareport.dao.fact; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.datareport.entity.heart.FactVolunteerServiceDailyEntity; +import com.epmet.dto.result.heart.VolunteerDemandServiceStatsResultDTO; +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 2021-12-08 + */ +@Mapper +public interface FactVolunteerServiceDailyDao extends BaseDao { + + /** + * 查询最新一条"志愿者需求服务统计信息" + * @param customerId + * @return + */ + VolunteerDemandServiceStatsResultDTO getLatestVolunteerDemandServiceStats(@Param("customerId") String customerId); +} \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/entity/heart/FactVolunteerServiceDailyEntity.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/entity/heart/FactVolunteerServiceDailyEntity.java new file mode 100644 index 0000000000..a668e52a63 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/entity/heart/FactVolunteerServiceDailyEntity.java @@ -0,0 +1,83 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.datareport.entity.heart; + +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-12-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("fact_volunteer_service_daily") +public class FactVolunteerServiceDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * yyyyMMdd + */ + private String dateId; + + /** + * yyyyMM + */ + private String monthId; + + /** + * 截止到当前dateId,当前客户下,共有多少个爱心互助的志愿者 + */ + private Integer volunteerTotal; + + /** + * 截止到当前dateId,当前客户下,XX个爱心互助志愿者中,党员有多少个 + */ + private Integer partyTotal; + + /** + * 截止到当前dateId,当前客户下,XX个爱心互助志愿者中,居民有多少个 + */ + private Integer resiTotal; + + /** + * 服务总次数 + */ + private Integer serviceTotal; + + /** + * 党员服务总次数 + */ + private Integer partyServiceTotal; + + /** + * 居民服务总次数 + */ + private Integer resiServiceTotal; + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java index 0c75304942..18978f6e23 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java @@ -190,6 +190,7 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService { result.setMonthIncr(convertPercentStr(latest.getMonthIncr(), NumConstant.ZERO)); result.setJoinCompareLatestMonth(convertPercentStr(latest.getJoinCompareLatestMonth().abs(), NumConstant.ZERO)); result.setIssueCompareLatestMonth(convertPercentStr(latest.getIssueCompareLatestMonth().abs(), NumConstant.ZERO)); + result.setMonthId(monthId); return result; } @@ -286,6 +287,7 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService { rank.setResponseRatio(convertPercentStr(o.getResponseRatio(),NumConstant.ONE)); rank.setSatisfactionRatio(convertPercentStr(o.getSatisfactionRatio(),NumConstant.ONE)); rank.setParentAgencyName(o.getParentAgencyName()); + rank.setMonthId(o.getMonthId()); result.add(rank); }); return result; diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/DemandService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/DemandService.java new file mode 100644 index 0000000000..ccbbb319a1 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/DemandService.java @@ -0,0 +1,13 @@ +package com.epmet.datareport.service.heart; + +import com.epmet.dto.result.heart.VolunteerDemandServiceStatsResultDTO; + +/** + * @Description 需求服务 + * @Author wangxianzhang + * @Date 2021/12/10 4:18 下午 + * @Version 1.0 + */ +public interface DemandService { + VolunteerDemandServiceStatsResultDTO getVolunteerServiceStats(String customerId); +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/impl/DemandServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/impl/DemandServiceImpl.java new file mode 100644 index 0000000000..79ba0274ea --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/heart/impl/DemandServiceImpl.java @@ -0,0 +1,29 @@ +package com.epmet.datareport.service.heart.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.datareport.dao.fact.FactVolunteerServiceDailyDao; +import com.epmet.datareport.entity.heart.FactVolunteerServiceDailyEntity; +import com.epmet.datareport.service.heart.DemandService; +import com.epmet.dto.result.heart.VolunteerDemandServiceStatsResultDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description 需求服务 + * @Author wangxianzhang + * @Date 2021/12/10 4:20 下午 + * @Version 1.0 + */ +@Service +public class DemandServiceImpl implements DemandService { + + @Autowired + private FactVolunteerServiceDailyDao factVolunteerServiceDailyDao; + + @Override + public VolunteerDemandServiceStatsResultDTO getVolunteerServiceStats(String customerId) { + return factVolunteerServiceDailyDao.getLatestVolunteerDemandServiceStats(customerId); + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java index 070fcca43a..55e0d3c7c0 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java @@ -211,7 +211,7 @@ public class ProjectServiceImpl implements ProjectService { } /** - * @Description 项目详情 + * @Description 项目详情 * @Param processListFormDTO * @author zxc * @date 2020/10/23 10:33 上午 @@ -285,9 +285,9 @@ public class ProjectServiceImpl implements ProjectService { } /** + * @return * @Description 难点赌点-获取组织下拉框 * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614 - * @return * @author jiangyy * @date 2020.10.19 16:38 **/ @@ -297,7 +297,7 @@ public class ProjectServiceImpl implements ProjectService { //1、根据token获取本级agencyId、获取userId String agencyId = getLoginUserDetails(tokenDto); - String userId=getLoginUserUserId(tokenDto); + String userId = getLoginUserUserId(tokenDto); //2、获取本级组织机构 Result customerAgencyDTO = govOrgOpenFeignClient.getAgencyById(agencyId); @@ -328,7 +328,7 @@ public class ProjectServiceImpl implements ProjectService { Result SubAgencyResultDTO = govOrgOpenFeignClient.subAgencyList(form); List subAgencyList = SubAgencyResultDTO.getData().getAgencyList(); - for(int i=0;i(); + if (null == resultList) return new ArrayList<>(); return resultList; } /** - * @Description 难点赌点-耗时最长|涉及部门最多|处理次数 - * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614 * @param param * @return + * @Description 难点赌点-耗时最长|涉及部门最多|处理次数 + * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614 * @author jiangyy * @date 2020.10.19 16:38 **/ - @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true) + @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true) @Override public List getDifficultyRank(DifficultyRankFormDTO param) { PageHelper.startPage(null == param.getPageNo() ? NumConstant.ONE:param.getPageNo(),param.getTopNum()); List result = projectDao.difficultyRank(param); - for (int i = 0; i < result.size (); i ++){ - List imgUrlList ; - imgUrlList = projectDao.getDifficultyImgList(result.get(i).getProjectId()) ; + for (int i = 0; i < result.size(); i++) { + List imgUrlList; + imgUrlList = projectDao.getDifficultyImgList(result.get(i).getProjectId()); result.get(i).setImgUrlList(imgUrlList); } - if(null == result) return new ArrayList<>(); + if (null == result) return new ArrayList<>(); return result; } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactVolunteerServiceDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactVolunteerServiceDailyDao.xml new file mode 100644 index 0000000000..fbe645deb3 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactVolunteerServiceDailyDao.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml index abbf1de8e4..1568e078b5 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml @@ -35,7 +35,8 @@ IFNULL(rankData.RESOLVED_RATIO,0) AS RESOLVED_RATIO, IFNULL(rankData.GOVERN_RATIO,0) AS GOVERN_RATIO, IFNULL(rankData.SATISFACTION_RATIO,0) AS SATISFACTION_RATIO, - pa.AGENCY_NAME AS parentAgencyName + pa.AGENCY_NAME AS parentAgencyName, + rankData.MONTH_ID as monthId FROM screen_customer_agency agency left join screen_customer_agency pa on(agency.PARENT_AREA_CODE=pa.AREA_CODE @@ -61,7 +62,8 @@ IFNULL(rankData.RESOLVED_RATIO,0) AS RESOLVED_RATIO, IFNULL(rankData.GOVERN_RATIO,0) AS GOVERN_RATIO, IFNULL(rankData.SATISFACTION_RATIO,0) AS SATISFACTION_RATIO, - ca.agency_name AS parentAgencyName + ca.agency_name AS parentAgencyName, + rankData.MONTH_ID as monthId FROM screen_customer_grid grid left join screen_customer_agency ca on (ca.agency_id = grid.parent_agency_id) diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml index 6908b80953..ac2ad698eb 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml @@ -14,7 +14,8 @@ rankData.CLOSE_PROJECT_RATIO AS closedProjectRatio, rankData.SATISFACTION_RATIO AS satisfactionRatio, agency.AGENCY_NAME AS parentAgencyName, - rankData.ORG_ID as orgId + rankData.ORG_ID as orgId, + rankData.MONTH_ID FROM screen_org_rank_data rankData LEFT JOIN screen_customer_agency agency @@ -39,7 +40,8 @@ rankData.CLOSE_PROJECT_RATIO AS closedProjectRatio, rankData.SATISFACTION_RATIO AS satisfactionRatio, agency.AGENCY_NAME AS parentAgencyName, - rankData.ORG_ID as orgId + rankData.ORG_ID as orgId, + rankData.MONTH_ID FROM screen_org_rank_data rankData left join screen_customer_grid scg on( diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml index fdde620908..4e84fe035c 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml @@ -103,7 +103,8 @@ SELECT m.USER_ID, concat( m.surname, CASE char_length( m.NAME ) WHEN 1 THEN '*' WHEN 2 THEN '**' ELSE '***' END ) AS name, - m.POINT_TOTAL AS point + m.POINT_TOTAL AS point, + m.DATA_END_TIME FROM screen_party_user_rank_data m left join screen_customer_grid scg diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml index b1f890b3a5..90e3cf0b91 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml @@ -17,7 +17,8 @@ publish_issue_total AS publishIssueTotal, IFNULL(publish_issue_ratio,0) AS publishIssueRatioA, PLAT_ISSUE_TOTAL AS platIssueTotal, - IFNULL(PLAT_JOIN_PARTY_RATIO,0) AS platJoinPartyRatio + IFNULL(PLAT_JOIN_PARTY_RATIO,0) AS platJoinPartyRatio, + DATA_END_TIME as dataEndTime FROM screen_pioneer_data WHERE @@ -44,7 +45,8 @@ CEILING(sum(data.publish_issue_total)) AS publishIssueTotal, IFNULL(avg(data.publish_issue_ratio),0) AS publishIssueRatioA, CEILING(sum(data.PLAT_ISSUE_TOTAL)) AS platIssueTotal, - IFNULL(avg(data.PLAT_JOIN_PARTY_RATIO),0) AS platJoinPartyRatio + IFNULL(avg(data.PLAT_JOIN_PARTY_RATIO),0) AS platJoinPartyRatio, + DATA_END_TIME as dataEndTime FROM screen_pioneer_data data LEFT JOIN diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml index af7f1bfc34..31e5262c75 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml @@ -38,7 +38,8 @@ group_total AS groupNum, topic_total AS topicNum, issue_total AS issueNum, - project_total AS projectNum + project_total AS projectNum, + DATA_END_TIME as dataEndTime FROM screen_user_total_data WHERE diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnCommunityProjectProfileDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnCommunityProjectProfileDao.xml index 10679f3f96..8718bfa0f2 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnCommunityProjectProfileDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnCommunityProjectProfileDao.xml @@ -5,7 +5,8 @@ SELECT GROUP_TOTAL, ISSUE_TOTAL, - PROJECT_TOTAL + PROJECT_TOTAL, + MONTH_ID FROM screen_an_grass_roots_org_monthly WHERE DEL_FLAG = 0 AND ORG_ID = #{agencyId} @@ -47,7 +48,8 @@ SELECT ORG_NAME, GROUP_TOTAL, ISSUE_TOTAL, - PROJECT_TOTAL + PROJECT_TOTAL, + MONTH_ID FROM screen_an_grass_roots_org_monthly WHERE DEL_FLAG = 0 AND PID = #{agencyId} diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml index 58b7001046..0cb482df47 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsPmTotalMonthlyDao.xml @@ -7,7 +7,8 @@ SELECT GROUP_MEMBER_TOTAL, TOPIC_TOTAL, TOPIC_PARTI_USER_TOTAL, - ISSUE_TOTAL + ISSUE_TOTAL, + MONTH_ID FROM screen_an_grass_roots_pm_total_monthly WHERE DEL_FLAG = '0' AND ORG_ID = #{agencyId} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/heart/result/DemandServiceCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/heart/result/DemandServiceCountResultDTO.java new file mode 100644 index 0000000000..16cbee4538 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/heart/result/DemandServiceCountResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.heart.result; + +import lombok.Data; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/8 4:39 下午 + * @Version 1.0 + */ +@Data +public class DemandServiceCountResultDTO { + // 服务者ID + private String serverId; + // 服务类型 + private String serviceType; + // 服务次数 + private int serveTimes; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java index c07037ee92..872dbc96a2 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java @@ -113,4 +113,9 @@ public class IssueProjectCategoryDictDTO implements Serializable { */ private Date updatedTime; + /** + * 颜色 + */ + private String color; + } \ No newline at end of file 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 047a16e87b..dab2edf301 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 @@ -25,6 +25,7 @@ import com.epmet.feign.impl.DataStatisticalOpenFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -341,4 +342,15 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping("/data/stats/datareporting/eventinfo") Result> getEventInfo(@RequestBody EventInfoFormDTO formDTO); + + /** + * wangxianzhang + * + * 计算客户下志愿者服务相关数据 + * + * @param customerId 客户ID,可以为空,为空则计算所有客户 + * @return + */ + @PostMapping("/data/stats/demand/volunteer/daily") + Result statsVolunteerDemandServicesDaily(@RequestParam(value = "customer-id", required = false) String customerId); } 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 43638c894e..56fea9c03f 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 @@ -334,4 +334,9 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp public Result> getEventInfo(EventInfoFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfo", 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/DemandController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemandController.java new file mode 100644 index 0000000000..cd77d2b25a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemandController.java @@ -0,0 +1,38 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.service.DemandService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/8 10:44 上午 + * @Version 1.0 + */ +@RestController +@RequestMapping("demand") +public class DemandController { + + @Autowired + private DemandService demandStatsService; + + /** + * wangxianzhang + * + * 计算客户下志愿者服务相关数据 + * + * @param customerId 客户ID,可以为空,为空则计算所有客户 + * @return + */ + @PostMapping("volunteer/daily") + public Result statsVolunteerDemandServicesDaily(@RequestParam(value = "customer-id", required = false) String customerId) { + + demandStatsService.statsVolunteerDemandServicesDaily(customerId); + + return new Result(); + } + + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 191c03bf7e..ef567e92f1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -158,7 +158,7 @@ public class DemoController { */ @GetMapping("testthreadpool") public void testThreadPool() { - System.out.println(LocalDateTime.now().getSecond());; + System.out.println(LocalDateTime.now().getSecond()); System.out.println("----------->>"); Future future1 = executorService.submit(() -> demoService.testThreadPool()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/IcUserDemandServiceDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/IcUserDemandServiceDao.java new file mode 100644 index 0000000000..165ae6b91c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/IcUserDemandServiceDao.java @@ -0,0 +1,44 @@ +/** + * 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.dao.heart; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.heart.result.DemandServiceCountResultDTO; +import com.epmet.entity.heart.IcUserDemandServiceEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 居民需求服务记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-19 + */ +@Mapper +public interface IcUserDemandServiceDao extends BaseDao { + + /** + * 需求服务次数查询 + * @param customerId 客户id + * @param serviceType 服务者类型 + */ + List listDemandServeTimes(@Param("customerId") String customerId, @Param("endTime") Date endTime, @Param("serviceType") String serviceType); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/VolunteerInfoDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/VolunteerInfoDao.java new file mode 100644 index 0000000000..11b5aad534 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/heart/VolunteerInfoDao.java @@ -0,0 +1,33 @@ +/** + * 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.dao.heart; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.heart.VolunteerInfoEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 志愿者信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-12-08 + */ +@Mapper +public interface VolunteerInfoDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactVolunteerServiceDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactVolunteerServiceDailyDao.java new file mode 100644 index 0000000000..605364c820 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactVolunteerServiceDailyDao.java @@ -0,0 +1,42 @@ +/** + * 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.dao.stats; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.stats.FactVolunteerServiceDailyEntity; +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 2021-12-08 + */ +@Mapper +public interface FactVolunteerServiceDailyDao extends BaseDao { + + /** + * 删除指定客户,指定dateId的志愿者服务统计记录 + * @param customerIds + * @param dateDimId + */ + void clearVolunteerDemandServiceDailyStats(@Param("customerIds") List customerIds, @Param("dateDimId") String dateDimId); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 2c8f46ea9b..584bfdf64c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -264,5 +264,7 @@ public interface UserDao { List getPatrolRecordList(MidPatrolFormDTO formDTO); List getPatrolDetailList(MidPatrolFormDTO formDTO); + + List filterUserIds(@Param("userIds") List userIds, @Param("roleKey") String roleKey); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java index 9de3701b58..cf6c373dca 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java @@ -39,7 +39,6 @@ public class ScreenCustomerGridEntity extends BaseEpmetEntity { * 客户id */ private String customerId; - private String code; /** * 网格id @@ -93,4 +92,9 @@ public class ScreenCustomerGridEntity extends BaseEpmetEntity { * desc: 是否参与上级计算yes:参与;no:不参与 add 01.14 */ private String upToCal; + + /** + * 地区码 + */ + private String code; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/IcUserDemandServiceEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/IcUserDemandServiceEntity.java new file mode 100644 index 0000000000..002b1db875 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/IcUserDemandServiceEntity.java @@ -0,0 +1,75 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

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

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

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.entity.heart; + +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 2021-11-19 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_user_demand_service") +public class IcUserDemandServiceEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 需求id + */ + private String demandRecId; + + /** + * 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + */ + private String serviceType; + + /** + * 志愿者:居民端爱心互助的志愿者userId; + */ + private String serverId; + + /** + * 实际服务开始时间 + */ + private Date serviceStartTime; + + /** + * 实际服务结束时间 + */ + private Date serviceEndTime; + + /** + * 完成情况 + */ + private String finishDesc; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/VolunteerInfoEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/VolunteerInfoEntity.java new file mode 100644 index 0000000000..60f41bd0fa --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/heart/VolunteerInfoEntity.java @@ -0,0 +1,71 @@ +/** + * 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.entity.heart; + +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 2021-12-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("volunteer_info") +public class VolunteerInfoEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + private String userId; + + /** + * 客户id + */ + private String customerId; + + /** + * 志愿者自我介绍 + */ + private String volunteerIntroduce; + + /** + * 志愿者签名 + */ + private String volunteerSignature; + + /** + * 网格id + */ + private String gridId; + + /** + * 网格名称 + */ + private String gridName; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java index 67c82fee00..1c1afbcc08 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java @@ -80,4 +80,9 @@ public class IssueProjectCategoryDictEntity extends BaseEpmetEntity { */ private String isDisable; + /** + * 颜色 + */ + private String color; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactVolunteerServiceDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactVolunteerServiceDailyEntity.java new file mode 100644 index 0000000000..f2b473bfe9 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactVolunteerServiceDailyEntity.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.entity.stats; + +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 2021-12-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("fact_volunteer_service_daily") +public class FactVolunteerServiceDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * yyyyMMdd + */ + private String dateId; + + /** + * yyyyMM + */ + private String monthId; + + /** + * 截止到当前dateId,当前客户下,共有多少个爱心互助的志愿者 + */ + private Integer volunteerTotal; + + /** + * 截止到当前dateId,当前客户下,XX个爱心互助志愿者中,党员有多少个 + */ + private Integer partyTotal; + + /** + * 截止到当前dateId,当前客户下,XX个爱心互助志愿者中,居民有多少个 + */ + private Integer resiTotal; + + /** + * 服务总次数 + */ + private Integer serviceTotal; + + /** + * 党员服务总次数 + */ + private Integer partyServiceTotal; + + /** + * 居民服务总次数 + */ + private Integer resiServiceTotal; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/healthcheck/HealthCheckController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/healthcheck/HealthCheckController.java index 7ad372c8cc..2f9a0d6d7a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/healthcheck/HealthCheckController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/healthcheck/HealthCheckController.java @@ -1,12 +1,18 @@ package com.epmet.healthcheck; import com.epmet.commons.tools.utils.Result; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.UnknownHostException; + @RestController @RequestMapping("healthcheck") +@Slf4j public class HealthCheckController { /** @@ -15,7 +21,14 @@ public class HealthCheckController { */ @PostMapping("http") public Result httpHealthCheck() { - return new Result(); + InetAddress serverIp = null; + try { + serverIp = Inet4Address.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + log.info("健康检查:serverName:{}", serverIp); + return new Result().ok(serverIp); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java index 690543f0d2..687e04e0a7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java @@ -35,7 +35,6 @@ public class IndexExcelDataListener extends AnalysisEventListener { * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收 */ private static volatile boolean isGroup = false; - ; AtomicInteger total = new AtomicInteger(0); Map indexDicMap = new HashMap<>(); Map indexGroupMap = new HashMap<>(); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DemandService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DemandService.java new file mode 100644 index 0000000000..a5baf1a613 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DemandService.java @@ -0,0 +1,20 @@ +package com.epmet.service; + +/** + * @Description 需求service + * @Author wangxianzhang + * @Date 2021/12/8 12:14 下午 + * @Version 1.0 + */ +public interface DemandService { + + /** + * wangxianzhang + * + * 按日统计 + * + * @param customerId 客户ID,可为空,为空计算所有 + */ + void statsVolunteerDemandServicesDaily(String customerId); + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerRelationServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerRelationServiceImpl.java index 06d2b580fc..e199d2f46c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerRelationServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerRelationServiceImpl.java @@ -67,10 +67,7 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl list = baseDao.selectListByPids(customerId); - if (null == list || list.isEmpty()) { - return false; - } - return true; + return null != list && !list.isEmpty(); } /** @@ -86,4 +83,4 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl StringUtils.isBlank(diff.getLatestOperateDesc())); + + screenDifficultyDataService.dataClean(param.getCustomerId(), difficulties, imgList); + log.info("【大屏数据抽取-难点赌点执行完毕】 客户Id{} 难点赌点数据{}", param.getCustomerId(), JSON.toJSONString(difficulties)); difficulties.removeIf( diff -> StringUtils.isBlank(diff.getLatestOperateDesc())); imgList.forEach(item -> { item.setCustomerId(param.getCustomerId()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ShiBeiScreenCollServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ShiBeiScreenCollServiceImpl.java index 4f0cbb1896..02e4df412b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ShiBeiScreenCollServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ShiBeiScreenCollServiceImpl.java @@ -462,7 +462,6 @@ public class ShiBeiScreenCollServiceImpl implements ShiBeiScreenCollService { int month = calendar.get(Calendar.MONTH) + NumConstant.ONE; date[NumConstant.ZERO] = String.valueOf(year); date[NumConstant.ONE] = String.valueOf(month); - ; if (NumConstant.TEN >= month) { date[NumConstant.ONE] = NumConstant.ZERO_STR + month; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartDemandService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartDemandService.java new file mode 100644 index 0000000000..baaa29c97b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartDemandService.java @@ -0,0 +1,15 @@ +package com.epmet.service.heart; + +import com.epmet.dto.heart.result.DemandServiceCountResultDTO; + +import java.util.Date; +import java.util.List; + +/** + *@Description 爱心互助,需求service + *@Author wangxianzhang + *@Date 2021/12/8 + */ +public interface HeartDemandService { + List listDemandServeTimesPage(String customerId, Date endTime, int serviceCountPageNo, int serviceCountPageSize); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartVolunteerService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartVolunteerService.java new file mode 100644 index 0000000000..b8e4414f60 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/HeartVolunteerService.java @@ -0,0 +1,15 @@ +package com.epmet.service.heart; + +import com.epmet.entity.heart.VolunteerInfoEntity; + +import java.util.Date; +import java.util.List; + +/** + *@Description heart 志愿者service + *@Author wangxianzhang + *@Date 2021/12/8 + */ +public interface HeartVolunteerService { + List listVolunteers(String customerId, Date endCreateTime); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartDemandServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartDemandServiceImpl.java new file mode 100644 index 0000000000..c33f426ad5 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartDemandServiceImpl.java @@ -0,0 +1,40 @@ +package com.epmet.service.heart.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.heart.IcUserDemandServiceDao; +import com.epmet.dto.heart.result.DemandServiceCountResultDTO; +import com.epmet.service.heart.HeartDemandService; +import com.github.pagehelper.ISelect; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Description 爱心互助,需求service + * @Author wangxianzhang + * @Date 2021/12/8 12:33 下午 + * @Version 1.0 + */ +@Service +@DataSource(DataSourceConstant.EPMET_HEART) +public class HeartDemandServiceImpl implements HeartDemandService { + + @Autowired + private IcUserDemandServiceDao demandServiceDao; + + @Override + public List listDemandServeTimesPage(String customerId, Date endTime, int serviceCountPageNo, int serviceCountPageSize) { + return PageHelper.startPage(serviceCountPageNo, serviceCountPageSize).doSelectPage(new ISelect() { + @Override + public void doSelect() { + demandServiceDao.listDemandServeTimes(customerId, endTime, "volunteer"); + } + }); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartVolunteerServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartVolunteerServiceImpl.java new file mode 100644 index 0000000000..902a6a8713 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/heart/impl/HeartVolunteerServiceImpl.java @@ -0,0 +1,38 @@ +package com.epmet.service.heart.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.heart.VolunteerInfoDao; +import com.epmet.entity.heart.VolunteerInfoEntity; +import com.epmet.service.heart.HeartVolunteerService; +import com.github.pagehelper.ISelect; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/8 1:35 下午 + * @Version 1.0 + */ +@Service +@DataSource(DataSourceConstant.EPMET_HEART) +public class HeartVolunteerServiceImpl implements HeartVolunteerService { + + @Autowired + private VolunteerInfoDao volunteerInfoDao; + + @Override + public List listVolunteers(String customerId, Date endCreateTime) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(VolunteerInfoEntity::getCustomerId, customerId); + query.lt(VolunteerInfoEntity::getCreatedTime, endCreateTime); + return volunteerInfoDao.selectList(query); + } +} 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 21a7c06860..82d1a4a0e0 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 @@ -147,8 +147,8 @@ public class DataReportingServiceImpl implements DataReportingService { if (StringUtils.isNotBlank(parentCustomer.getData())) { epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); } - Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; - //项目ID不为空时,因为只有一条,可以直接处理 + Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId()); + //项目ID不为空时,因为只有一条,可以直接处理 Map finalEpmetCodeMap = epmetCodeMap; if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { list = projectList.stream().map(project -> { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DemandServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DemandServiceImpl.java new file mode 100644 index 0000000000..66cbf1058d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DemandServiceImpl.java @@ -0,0 +1,176 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dto.heart.result.DemandServiceCountResultDTO; +import com.epmet.entity.crm.CustomerEntity; +import com.epmet.entity.heart.VolunteerInfoEntity; +import com.epmet.entity.stats.FactVolunteerServiceDailyEntity; +import com.epmet.service.DemandService; +import com.epmet.service.crm.CustomerService; +import com.epmet.service.heart.HeartDemandService; +import com.epmet.service.heart.HeartVolunteerService; +import com.epmet.service.stats.DemandStatsService; +import com.epmet.service.user.UserService; +import com.epmet.util.DimIdGenerator; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description 需求service + * @Author wangxianzhang + * @Date 2021/12/8 12:14 下午 + * @Version 1.0 + */ +@Service +public class DemandServiceImpl implements DemandService { + + @Autowired + private HeartDemandService heartDemandService; + + @Autowired + private HeartVolunteerService heartVolunteerService; + + @Autowired + private UserService userService; + + @Autowired + private DemandStatsService demandStatsService; + + @Autowired + private CustomerService customerService; + + @Override + public void statsVolunteerDemandServicesDaily(String customerId) { + + Date now = new Date(); + Date today = DateUtils.integrate(now, "yyyy-MM-dd"); + Date yestoday = DateUtils.addDateDays(today, -1); + + if (StringUtils.isNotBlank(customerId)) { + // 只计算单个客户 + clearOldDatas(Arrays.asList(customerId), yestoday); + statsVolunteerDemandServicesDaily4Customer(customerId, today, yestoday); + } else { + // 查询所有客户ID + List customerIds = customerService.listValidCustomersByCreateTime(null, null).stream().map(c -> c.getId()).collect(Collectors.toList()); + clearOldDatas(customerIds, yestoday); + customerIds.stream().forEach(cId -> { + statsVolunteerDemandServicesDaily4Customer(cId, today, yestoday); + }); + } + } + + /** + * 清理旧数据 + * @param targetDate 要清理哪天的数据 + * @param customerIds 要清理哪些客户的 + */ + private void clearOldDatas(List customerIds, Date targetDate) { + + String dateDimId = DimIdGenerator.getDateDimId(targetDate); + + demandStatsService.clearVolunteerDemandServiceDailyStats(customerIds, dateDimId); + + } + + /** + * 统计单个客户的志愿者服务情况 + * @param customerId 客户ID + * @param endTime 统计截止时间( partymemberVolunteerUserIds = new ArrayList<>(16); + + List volunteers = heartVolunteerService.listVolunteers(customerId, endTime); + + volunteerTotalCount = volunteers.size(); + + // 分片开始下标 + int shardingStartIndex = 0; + // 分片大小(条数) + int shardingSize = 100; + + // 分片去确定党员身份,防止in条件过大 + while (true) { + int realShardingSize = Math.min(shardingSize, volunteerTotalCount - shardingStartIndex); + + if (realShardingSize <= 0) { + break; + } + + int shardingEndIndex = shardingStartIndex + realShardingSize; + List volunteerUserIds = volunteers.subList(shardingStartIndex, shardingEndIndex) + .stream() + .map((volunteerInfoEntity) -> volunteerInfoEntity.getUserId()) + .collect(Collectors.toList()); + + List tempPartymemberUserIds = userService.filterUserIds(volunteerUserIds, EpmetRoleKeyConstant.PARTYMEMBER); + + partymemberVolunteerUserIds.addAll(tempPartymemberUserIds); + + shardingStartIndex = shardingEndIndex; + } + + partymemberVolunteerCount = partymemberVolunteerUserIds.size(); + resiVolunteerCount = volunteerTotalCount - partymemberVolunteerCount; + + //2. 查询志愿者服务次数 + + // 总服务次数 + int totalDemandServeTimes = 0; + // 党员服务次数 + int partymemberDemandServeTimes = 0; + // 居民服务次数 + int resiDemandServeTimes = 0; + + int serviceCountPageNo = 0; + int serviceCountPageSize = 1000; + while (true) { + + // 取出每一个服务者的服务次数 + List damendServeTimes = heartDemandService.listDemandServeTimesPage(customerId, endTime, serviceCountPageNo, serviceCountPageSize); + + for (DemandServiceCountResultDTO damendServiceTimes : damendServeTimes) { + String serverId = damendServiceTimes.getServerId(); + if (partymemberVolunteerUserIds.contains(serverId)) { + partymemberDemandServeTimes += damendServiceTimes.getServeTimes(); + } else { + resiDemandServeTimes += damendServiceTimes.getServeTimes(); + } + } + + if (damendServeTimes.size() <= serviceCountPageSize) { + break; + } + } + + totalDemandServeTimes = partymemberDemandServeTimes + resiDemandServeTimes; + + // 3.持久化 + FactVolunteerServiceDailyEntity insert = new FactVolunteerServiceDailyEntity(); + insert.setDateId(DimIdGenerator.getDateDimId(belongTime)); + insert.setCustomerId(customerId); + insert.setMonthId(DimIdGenerator.getMonthDimId(belongTime)); + insert.setPartyServiceTotal(partymemberDemandServeTimes); + insert.setServiceTotal(totalDemandServeTimes); + insert.setPartyTotal(partymemberVolunteerCount); + insert.setResiServiceTotal(resiDemandServeTimes); + insert.setResiTotal(resiVolunteerCount); + insert.setVolunteerTotal(volunteerTotalCount); + + demandStatsService.addVolunteerServiceDaily(insert); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java index bdc1999ff7..a3ccd6c5a1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java @@ -178,7 +178,7 @@ public class StatsUserServiceImpl implements StatsUserService { while (iterator.hasNext()) { GmUploadEventFormDTO.DataList m = iterator.next(); AtomicReference bl = new AtomicReference<>(false); - StringBuffer gridPids = new StringBuffer(""); + StringBuffer gridPids = new StringBuffer(); agencyList.forEach(ag -> { if (m.getAgencyId().equals(ag.getId())) { bl.set(true); @@ -239,8 +239,8 @@ public class StatsUserServiceImpl implements StatsUserService { while (iterator.hasNext()) { GmUploadDataFormDTO.DataList m = iterator.next(); AtomicReference bl = new AtomicReference<>(false); - StringBuffer pid = new StringBuffer(""); - StringBuffer pids = new StringBuffer(""); + StringBuffer pid = new StringBuffer(); + StringBuffer pids = new StringBuffer(); agencyList.forEach(ag -> { if (m.getAgencyId().equals(ag.getId())) { bl.set(true); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java index bb160098e0..156b7294a9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java @@ -51,6 +51,7 @@ public interface CustomerAgencyService { */ CustomerAgencyEntity getAgencyByDeptId(String deptId); + /** * 将孔村、榆山、锦水3个街道的组织插入到gov-org库的customer_agency * diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java index 64a5a0186d..3e06682b15 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java @@ -69,31 +69,6 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService { return customerAgencyDao.getRootAgencyInfo(customerId); } - /** - * 获取每个组织、每个网格下工作人员userId集合 - * - * @param customerId - * @return com.epmet.dto.org.result.OrgStaffResultDTO - */ - @Override - public List queryOrgStaffIds(String customerId) { - List resultList=new ArrayList<>(); - List list=customerAgencyDao.selectListByCustomerId(customerId); - for(CustomerAgencyEntity agencyEntity:list){ - List agencyStaffIds=customerAgencyDao.selectAgencyStaffIds(customerId,agencyEntity.getId()); - if(!CollectionUtils.isEmpty(agencyStaffIds)){ - OrgStaffDTO agencyStaffDTO=new OrgStaffDTO(); - agencyStaffDTO.setOrgId(agencyEntity.getId()); - agencyStaffDTO.setOrgType("agency"); - agencyStaffDTO.setStaffIds(agencyStaffIds); - resultList.add(agencyStaffDTO); - } - } - List gridStaffIds=customerAgencyDao.selectGridStaffIds(customerId); - resultList.addAll(gridStaffIds); - return resultList; - } - @Override public List queryAgencyListByCustomerId(String customerId) { return customerAgencyDao.queryAgencyListByCustomerId(customerId); @@ -121,6 +96,31 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService { return customerAgencyDao.selectByDeptId(deptId); } + /** + * 获取每个组织、每个网格下工作人员userId集合 + * + * @param customerId + * @return com.epmet.dto.org.result.OrgStaffResultDTO + */ + @Override + public List queryOrgStaffIds(String customerId) { + List resultList=new ArrayList<>(); + List list=customerAgencyDao.selectListByCustomerId(customerId); + for(CustomerAgencyEntity agencyEntity:list){ + List agencyStaffIds=customerAgencyDao.selectAgencyStaffIds(customerId,agencyEntity.getId()); + if(!CollectionUtils.isEmpty(agencyStaffIds)){ + OrgStaffDTO agencyStaffDTO=new OrgStaffDTO(); + agencyStaffDTO.setOrgId(agencyEntity.getId()); + agencyStaffDTO.setOrgType("agency"); + agencyStaffDTO.setStaffIds(agencyStaffIds); + resultList.add(agencyStaffDTO); + } + } + List gridStaffIds=customerAgencyDao.selectGridStaffIds(customerId); + resultList.addAll(gridStaffIds); + return resultList; + } + /** * 将孔村、榆山、锦水3个街道的组织插入到gov-org库的customer_agency * @@ -245,7 +245,7 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService { * @param parentCustomerEntity 在平阴客户里,网格所属组织信息 * @author yinzuomei * @description 将3个街道的网格,插入到gov-org.customer_grid库 - * @Date 2021/7/7 9:54 + * @Date 2021/7/7 9:54 **/ private void insertCustomerGrid(String customerId, String agencyId, CustomerAgencyEntity parentCustomerEntity) { List gridEntityList = screenCustomerGridService.selectEntityByAgencyId(customerId, agencyId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java index 7a8f1b3806..76376efd82 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java @@ -86,7 +86,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl getCustomerStaffGridList(String customerId) { - return customerGridDao.getCustomerStaffGridList(customerId); + return baseDao.getCustomerStaffGridList(customerId); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DemandStatsService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DemandStatsService.java new file mode 100644 index 0000000000..dec4ed26ef --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DemandStatsService.java @@ -0,0 +1,18 @@ +package com.epmet.service.stats; + +import com.epmet.entity.stats.FactVolunteerServiceDailyEntity; + +import java.util.List; + +/** + *@Description 统计客户下的志愿者需求服务数据 + *@Author wangxianzhang + *@Date 2021/12/8 + */ +public interface DemandStatsService { + + + void addVolunteerServiceDaily(FactVolunteerServiceDailyEntity entity); + + void clearVolunteerDemandServiceDailyStats(List customerIds, String dateDimId); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DemandStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DemandStatsServiceImpl.java new file mode 100644 index 0000000000..54a8525877 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DemandStatsServiceImpl.java @@ -0,0 +1,36 @@ +package com.epmet.service.stats.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.stats.FactVolunteerServiceDailyDao; +import com.epmet.entity.stats.FactVolunteerServiceDailyEntity; +import com.epmet.service.stats.DemandStatsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/12/8 10:54 上午 + * @Version 1.0 + */ +@Service +@DataSource(DataSourceConstant.STATS) +public class DemandStatsServiceImpl implements DemandStatsService { + + @Autowired + private FactVolunteerServiceDailyDao factVolunteerServiceDailyDao; + + @Override + public void addVolunteerServiceDaily(FactVolunteerServiceDailyEntity entity) { + factVolunteerServiceDailyDao.insert(entity); + } + + @Override + public void clearVolunteerDemandServiceDailyStats(List customerIds, String dateDimId) { + factVolunteerServiceDailyDao.clearVolunteerDemandServiceDailyStats(customerIds, dateDimId); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java index 5bad47d7f0..250a54f690 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java @@ -122,7 +122,7 @@ public class DimQuarterServiceImpl extends BaseServiceImpl getPatrolRecordList(MidPatrolFormDTO formDTO); List getPatrolDetailList(MidPatrolFormDTO formDTO); + + List filterUserIds(List userIds, String roleKey); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index a8bf95d7f0..a2d56125a6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -1109,4 +1109,8 @@ public class UserServiceImpl implements UserService { return userDao.getPatrolDetailList(formDTO); } + @Override + public List filterUserIds(List userIds, String roleKey) { + return userDao.filterUserIds(userIds, roleKey); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java index 08ca203821..01906d5bae 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java @@ -159,10 +159,7 @@ public abstract class ScoreCalculator { * @return */ protected boolean validSourceArray(T[] sourceArray) { - if (sourceArray == null || sourceArray.length == 0) { - return false; - } - return true; + return sourceArray != null && sourceArray.length != 0; } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.26__create_volunteer_service_daily.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.26__create_volunteer_service_daily.sql new file mode 100644 index 0000000000..7eade2a679 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.26__create_volunteer_service_daily.sql @@ -0,0 +1,21 @@ +CREATE TABLE epmet_data_statistical.`fact_volunteer_service_daily` +( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `DATE_ID` varchar(8) NOT NULL COMMENT 'yyyyMMdd', + `MONTH_ID` varchar(6) NOT NULL COMMENT 'yyyyMM', + `VOLUNTEER_TOTAL` int(11) NOT NULL COMMENT '截止到当前dateId,当前客户下,共有多少个爱心互助的志愿者', + `PARTY_TOTAL` int(11) NOT NULL COMMENT '截止到当前dateId,当前客户下,XX个爱心互助志愿者中,党员有多少个', + `RESI_TOTAL` int(11) NOT NULL COMMENT '截止到当前dateId,当前客户下,XX个爱心互助志愿者中,居民有多少个', + `SERVICE_TOTAL` int(11) NOT NULL COMMENT '服务总次数', + `PARTY_SERVICE_TOTAL` int(11) NOT NULL COMMENT '党员服务总次数', + `RESI_SERVICE_TOTAL` int(11) NOT NULL COMMENT '居民服务总次数', + `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`), + UNIQUE KEY `uni_vsd` (`CUSTOMER_ID`,`DATE_ID`,`DEL_FLAG`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='志愿者服务情况统计' \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.2__dim_ag_add_col_type.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.2__dim_ag_add_col_type.sql index 541d0d7307..701305aa6d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.2__dim_ag_add_col_type.sql +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.2__dim_ag_add_col_type.sql @@ -1,2 +1,2 @@ -/*ALTER TABLE dim_agency ADD COLUMN AGENCY_DIM_TYPE VARCHAR(10) NOT NULL COMMENT '机关维度类型。self:机关本身自己,all:机关自己+下级+网格+部门等';*/ +#ALTER TABLE dim_agency ADD COLUMN AGENCY_DIM_TYPE VARCHAR(10) NOT NULL COMMENT '机关维度类型。self:机关本身自己,all:机关自己+下级+网格+部门等'; select 1; \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index ff340e097c..f111a535eb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -1069,7 +1069,7 @@ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml index 75ec0bb250..f97f5b4946 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml @@ -429,32 +429,33 @@ (SELECT DEPT_ID AS orgId FROM screen_customer_dept WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId}) - - SELECT AGENCY_ID, - PID, - PIDS + PID FROM screen_customer_agency WHERE - DEL_FLAG = '0' - AND PID = '0' + DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} - - SELECT AGENCY_ID, - PID + PID, + PIDS FROM screen_customer_agency WHERE - DEL_FLAG = 0 + DEL_FLAG = '0' + AND PID = '0' AND CUSTOMER_ID = #{customerId} + + select service.SERVER_ID, SERVICE_TYPE, count(1) as SERVE_TIMES + from ic_user_demand_rec damend + inner join ic_user_demand_service service on (damend.ID = service.DEMAND_REC_ID and service.DEL_FLAG = 0) + where damend.DEL_FLAG = 0 + and damend.STATUS = 'finished' + and damend.CUSTOMER_ID = #{customerId} + and service.SERVICE_END_TIME #{endTime} + and service.SERVICE_TYPE = #{serviceType} + group by service.SERVER_ID, SERVICE_TYPE + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/heart/VolunteerInfoDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/heart/VolunteerInfoDao.xml new file mode 100644 index 0000000000..a426712a22 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/heart/VolunteerInfoDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactVolunteerServiceDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactVolunteerServiceDailyDao.xml new file mode 100644 index 0000000000..59dfd96c12 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactVolunteerServiceDailyDao.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + delete + from fact_volunteer_service_daily + where DATE_ID=#{dateDimId} + and CUSTOMER_ID in + + #{customerId} + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 4715f23c2a..6542440fb8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -1052,5 +1052,18 @@ order by created_time LIMIT #{offset},#{pageSize} + + + diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java index 0483a1d3dc..4afee3fa08 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java @@ -3,6 +3,16 @@ 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.CostDayFormDTO; +import com.epmet.dto.form.ExternalAppAuthFormDTO; +import com.epmet.dto.form.GetJwtAccessTokenFormDTO; +import com.epmet.dto.form.WorkDayFormDTO; +import com.epmet.dto.result.AppIdInfoResultDTO; +import com.epmet.dto.form.WorkMinuteFormDTO; +import com.epmet.dto.result.CostDayResultDTO; +import com.epmet.dto.result.AppIdInfoResultDTO; +import com.epmet.dto.result.ExternalAppAuthResultDTO; +import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java index fc0d7555e3..a8c770f8e9 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java @@ -69,7 +69,7 @@ public class IcPartyActivityDTO implements Serializable { */ @NotBlank(message = "服务事项不能为空",groups = AddGroup.class) private String serviceMatter; - + private String serviceMatterName; /** * 活动标题 */ @@ -97,7 +97,7 @@ public class IcPartyActivityDTO implements Serializable { * 活动时间 */ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date activityTime; /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java index 40ac5563ac..1f108568e1 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; @@ -16,6 +17,7 @@ import java.util.Date; @Data public class PartyActivityFormDTO implements Serializable { private static final long serialVersionUID = -2510068555703677L; + @NotBlank(message = "组织Id不能为空" ) private String agencyId; private String unitId; private String title; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/CategoryAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/CategoryAnalysisFormDTO.java new file mode 100644 index 0000000000..2e564db7cc --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/CategoryAnalysisFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form.demand; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + + +/** + * 服务措施分析-柱状图入参 + */ +@Data +public class CategoryAnalysisFormDTO implements Serializable { + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "先选择组织或网格", groups = AddUserShowGroup.class) + private String orgId; + + @NotBlank(message = "组织:agency,网格:grid", groups = AddUserShowGroup.class) + private String orgType; + @NotBlank(message = "起止日期不能为空,格式yyyy-MM-dd", groups = AddUserShowGroup.class) + private String startDateId; + @NotBlank(message = "截止日期不能为空,格式yyyy-MM-dd", groups = AddUserShowGroup.class) + private String endDateId; + + @NotBlank(message = "先选择组织或网格", groups = AddUserInternalGroup.class) + private String cusotmerId; + + + /** + * orgType=agency时pid拼接上orgId + */ + private String gridPids; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java new file mode 100644 index 0000000000..893a383708 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dto.form.demand; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + + +/** + * 需求研判分析 入参DTO + */ +@Data +public class DemandResearchAnalysisFormDTO implements Serializable { + private static final long serialVersionUID = 3528172570410679765L; + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "firstCategoryCode不能为空",groups = AddUserInternalGroup.class) + private String firstCategoryCode; + + //@NotBlank(message = "isResiUserId不能为空",groups = AddUserInternalGroup.class) + private String icResiUserId; + + private List epmetUserIdList; + + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; + + /** + * 个人档案:personal-data + * 服务措施分析:demand-analysis + */ + @NotBlank(message = "queryOrigin不能为空:个人档案:personal-data;服务措施分析:demand-analysis",groups = AddUserInternalGroup.class) + private String queryOrigin; + + /** + * 当前查看的需求详情的需求id + */ + private String demandRecId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java index f29e088293..ea0f862854 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java @@ -16,8 +16,8 @@ public class IcResiUserDemandFromDTO implements Serializable { /** * 居民信息录入的居民的id */ - @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) - private String userId; + @NotBlank(message = "icResiUserId不能为空", groups = AddUserInternalGroup.class) + private String icResiUserId; /** * icresiuser/persondata接口返参中有此值 @@ -41,4 +41,10 @@ public class IcResiUserDemandFromDTO implements Serializable { * epmetUserIdList+userId */ private List userIds; + + + /** + * 当前查看的需求详情的需求id 可空 + */ + private String demandRecId; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java new file mode 100644 index 0000000000..464d1062a8 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java @@ -0,0 +1,52 @@ +package com.epmet.dto.form.demand; + + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 数据分析-服务措施分析-分页查询接口入参 + */ +@Data +public class PageListAnalysisFormDTO implements Serializable { + private static final long serialVersionUID = 4993949289966075260L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotNull(message = "页码不能为空", groups = AddUserInternalGroup.class) + private Integer pageNo; + + @NotNull(message = "每页数量不能为空", groups = AddUserInternalGroup.class) + private Integer pageSize; + + @NotBlank(message = "先选择组织或网格不能为空", groups = AddUserShowGroup.class) + private String orgId; + + @NotBlank(message = "orgType=grid或者agency,不能为空", groups = AddUserInternalGroup.class) + private String orgType; + + @NotBlank(message = "分类编码不能为空", groups = AddUserInternalGroup.class) + private String categoryCode; + @NotBlank(message = "上报时间起始日期不能为空,格式yyyy-MM-dd", groups = AddUserInternalGroup.class) + private String startDateId; + @NotBlank(message = "上报时间截止日期不能为空,格式yyyy-MM-dd", groups = AddUserInternalGroup.class) + private String endDateId; + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; + /** + * orgType=agency时pid拼接上orgId + */ + private String gridPids; + + private Boolean pageFlag; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java new file mode 100644 index 0000000000..c8893697a8 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form.resi; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description + * @Author wangxianzhang + * @Date 2021/12/10 6:10 下午 + * @Version 1.0 + */ +@Data +public class VolunteerCommonFormDTO { + + public interface VolunteerPage { + } + + @NotBlank(message = "客户ID不能为空", groups = {VolunteerPage.class}) + private String customerId; + + private Integer pageNo = 0; + + private Integer pageSize = 20; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java new file mode 100644 index 0000000000..a941c3eb8f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/9 16:05 + */ +@Data +public class ActivityStatisticsDTO implements Serializable { + private String unitCount; + private String activityCount; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java new file mode 100644 index 0000000000..e8ef54c842 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/9 10:05 + */ +@Data +public class PartyUnitDistributionResultDTO implements Serializable { + private static final long serialVersionUID = -4066938451623510159L; + private String id; + private String name; + private String type; + private String longitude; + private String latitude; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDTO.java new file mode 100644 index 0000000000..fc7a8eaad8 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result.demand; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CategoryAnalysisDTO implements Serializable { + private static final long serialVersionUID = 3007202497989446585L; + private String categoryCode; + private String categoryName; + private Integer total; + private List detail; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDetail.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDetail.java new file mode 100644 index 0000000000..c082d11074 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisDetail.java @@ -0,0 +1,32 @@ +package com.epmet.dto.result.demand; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CategoryAnalysisDetail implements Serializable { + private static final long serialVersionUID = -4606305611297470078L; + /** + * 区域党建单位:party_unit; + * 社会组织:social_org; + * 社区自组织:community_org; + * 志愿者:volunteer; + * 未完成:unfinished + */ + private String legendCode; + + /** + * 服务方类型名称 + */ + private String legendName; + + /** + * 服务方的个数 + */ + private Integer totalService; + /** + * 需求个数 + */ + private Integer serviceDemandTotal; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisResDTO.java new file mode 100644 index 0000000000..1b39a2befd --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryAnalysisResDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.result.demand; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CategoryAnalysisResDTO implements Serializable { + private static final long serialVersionUID = -3112952115061180189L; + private List legend; + private List categoryList; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryDetailDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryDetailDTO.java new file mode 100644 index 0000000000..9e2802362a --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/CategoryDetailDTO.java @@ -0,0 +1,11 @@ +package com.epmet.dto.result.demand; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CategoryDetailDTO extends CategoryAnalysisDetail implements Serializable { + private static final long serialVersionUID = 4459219163308113201L; + private String categoryCode; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java new file mode 100644 index 0000000000..f5ca265feb --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java @@ -0,0 +1,13 @@ +package com.epmet.dto.result.demand; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class DemandDataDTO implements Serializable { + private String firstCategoryCode; + private String firstCategoryName; + private List demandList; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java new file mode 100644 index 0000000000..15f02110b4 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java @@ -0,0 +1,52 @@ +package com.epmet.dto.result.demand; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DemandRecExcelResultDTO implements Serializable { + + private static final long serialVersionUID = -1110606022410166621L; + + @Excel(name = "状态", width = 15) + private String statusName; + + @Excel(name = "所属网格", width = 40) + private String gridName; + + @Excel(name = "需求类型", width = 40) + private String categoryName; + + @Excel(name = "需求内容", width = 40) + private String content; + + @Excel(name = "上报类型", width = 40) + private String reportTypeName; + + @Excel(name = "上报人", width = 20) + private String reportUserName; + + @Excel(name = "上报时间", width = 25,format ="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date reportTime; + + @Excel(name = "需求人", width = 20) + private String demandUserName; + + /** + * 尹作梅(志愿者) + * XXX(社会组织) + * XXX(社区自组织) + * XXX(区域化党建单位) + */ + @Excel(name = "服务方", width = 15) + private String serviceShowName; + + @Excel(name = "服务时间", width = 25,format ="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wantServiceTime; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java index feb5c70b84..e7b673d22f 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java @@ -88,6 +88,10 @@ public class DemandRecResultDTO implements Serializable { * XXX(区域化党建单位) */ private String serviceShowName; + /** + * 只要有服务方就显示 + */ + private Boolean serviceShowFlag; /** * 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; */ @@ -114,4 +118,7 @@ public class DemandRecResultDTO implements Serializable { * 完成情况 */ private String finishDesc; + + private String icResiUserId; + private String epmetUserId; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java new file mode 100644 index 0000000000..4828385812 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result.demand; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-需求详情,研判分析 + */ +@Data +public class DemandResearchAnalysisResultDTO extends HouseMemResDTO implements Serializable { + private static final long serialVersionUID = -1024304149893118204L; + + private List demandData; + /** + * 入参中给的,再返回去 + */ + private List epmetUserIdList; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/HouseMemResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/HouseMemResDTO.java new file mode 100644 index 0000000000..f8126473b5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/HouseMemResDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result.demand; + +import com.epmet.dto.result.HouseUserDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-需求详情,研判分析 + * 案件居民、家属 + */ +@Data +public class HouseMemResDTO implements Serializable { + /** + * 居民信息及家属列表 + */ + private String icResiUserId; + private String icUserName; + private String houseId; + private List houseUserList; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java index e4792920b3..19757a671c 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java @@ -26,8 +26,11 @@ public class IcResiUserReportDemandRes implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") private Date wantServiceTime; - @JsonIgnore + //@JsonIgnore private String status; private String statusName; + + private String firstCategoryCode; + private String firstCategoryName; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/LegendDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/LegendDTO.java new file mode 100644 index 0000000000..e1f6c9b282 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/LegendDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result.demand; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 服务措施分析-柱状图 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LegendDTO implements Serializable { + private static final long serialVersionUID = 7205666632591639499L; + /** + * 区域党建单位:party_unit; + * 社会组织:social_org; + * 社区自组织:community_org; + * 志愿者:volunteer; + * 未完成:unfinished + */ + private String legendCode; + private String legendName; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/PageVolunteerInfoResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/PageVolunteerInfoResultDTO.java new file mode 100644 index 0000000000..d23f2023da --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/PageVolunteerInfoResultDTO.java @@ -0,0 +1,14 @@ +package com.epmet.dto.result.resi; + +import lombok.Data; + +/** + * @Description 志愿者信息分页查询结果 + * @Author wangxianzhang + * @Date 2021/12/10 6:17 下午 + * @Version 1.0 + */ +@Data +public class PageVolunteerInfoResultDTO { + private String userId; +} 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 7a4a6c8ad5..4bad8f25d7 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 @@ -6,6 +6,8 @@ import com.epmet.dto.ActInfoDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; +import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.feign.fallback.EpmetHeartOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; @@ -56,4 +58,12 @@ public interface EpmetHeartOpenFeignClient { @PostMapping("/heart/icresidemanddict/demangnames") Result queryDemandNames(@RequestBody UserDemandNameQueryFormDTO formDTO); + + /** + * 分页查询志愿者列表 + * @param input + * @return + */ + @PostMapping("/heart/resi/volunteer/page") + Result> queryVolunteerPage(@RequestBody VolunteerCommonFormDTO input); } 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 e0e140b02e..27c2c9bdc8 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 @@ -7,6 +7,8 @@ import com.epmet.dto.ActInfoDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; +import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.feign.EpmetHeartOpenFeignClient; import java.util.List; @@ -53,4 +55,9 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result queryDemandNames(UserDemandNameQueryFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "queryDemandNames", formDTO); } + + @Override + public Result> queryVolunteerPage(VolunteerCommonFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "queryVolunteerPage", input); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java index c28768b30f..85168b8a32 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java @@ -50,4 +50,12 @@ public interface UserDemandConstant { String SOCIAL_ORG="social_org"; String COMMUNITY_ORG="community_org"; String PARTY_UNIT="party_unit"; + + + /** + * 个人档案:personal-data + * 服务措施分析:demand-analysis + */ + String PERSONAL_DATA="personal-data"; + String DEMAND_ANALYSIS="demand-analysis"; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java index a17609835d..5071fd8710 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java @@ -29,6 +29,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyActivityExcel; import com.epmet.service.IcPartyActivityService; import org.apache.commons.collections4.CollectionUtils; @@ -117,4 +118,24 @@ public class IcPartyActivityController { public Result importData(@LoginUser TokenDto tokenDto, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws IOException { return icPartyActivityService.importData(tokenDto, response, file); } + + /** + * @Description 联建活动分类统计 + * @Param formDTO + * @Return {@link Result< List< OptionDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:20 + */ + @PostMapping("statistics") + public Result> statistics(@RequestBody PartyActivityFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyActivityService.statistics(formDTO)); + } + + @PostMapping("activitylist") + public Result> activityList(@LoginUser TokenDto tokenDto, @RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + PageData page = icPartyActivityService.getActivityList(tokenDto, formDTO); + return new Result>().ok(page); + } } \ No newline at end of file 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 90c500b87d..27f193b978 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 @@ -20,6 +20,7 @@ package com.epmet.controller; import com.epmet.commons.rocketmq.messages.CalPartyUnitSatisfactionFormDTO; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; @@ -29,8 +30,10 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.service.IcPartyUnitService; @@ -152,6 +155,32 @@ public class IcPartyUnitController { return icPartyUnitService.importData(tokenDto, response, file); } + /** + * @Description 按类型统计单位数量 + * @Param dto + * @Return {@link Result< List< OptionDataResultDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/8 14:52 + */ + @PostMapping("typestatistics") + public Result> typeStatistics(@RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyUnitService.typeStatistics(formDTO)); + } + + /** + * @Description 联建单位分布 + * @Param formDTO + * @Return {@link Result< List< PartyUnitDistributionResultDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/9 10:11 + */ + @PostMapping("distribution") + public Result> distribution(@RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyUnitService.distribution(formDTO)); + } + /** * 计算区域化党建单位的群众满意度 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index 0d5567ad63..06c991b31c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -21,12 +21,14 @@ import com.epmet.commons.rocketmq.messages.CalPartyUnitSatisfactionFormDTO; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.demand.*; import com.epmet.dto.result.demand.DemandRecResultDTO; import com.epmet.dto.result.demand.FinishResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; @@ -35,11 +37,13 @@ import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; 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.List; @@ -225,7 +229,64 @@ public class IcUserDemandRecController { } + /** + * 数据分析-个人档案-需求详情,研判分析 + * + * @param formDTO + * @return + */ + @PostMapping("demand-research-analysis") + public Result queryDemandResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody DemandResearchAnalysisFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, DemandResearchAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(icUserDemandRecService.queryDemandResearchAnalysis(formDTO)); + } + + /** + * 数分析-服务措施分析-分页查询 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("pagelist-analysis") + public Result> pageListAnalysis(@LoginUser TokenDto tokenDto,@RequestBody PageListAnalysisFormDTO formDTO){ + formDTO.setPageFlag(true); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,PageListAnalysisFormDTO.AddUserShowGroup.class,PageListAnalysisFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserDemandRecService.pageListAnalysis(formDTO)); + } + /** + * 数据分析-服务措施分析-导出 + * @param response + * @param tokenDto + * @param formDTO + * @throws Exception + */ + @PostMapping("analysis-export") + public Result analysisExport(HttpServletResponse response,@LoginUser TokenDto tokenDto, @RequestBody PageListAnalysisFormDTO formDTO)throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPageFlag(false); + PageData res=icUserDemandRecService.pageListAnalysis(formDTO); + if (!CollectionUtils.isEmpty(res.getList())) { + ExcelUtils.exportExcelToTarget(response, null, res.getList(), DemandRecExcelResultDTO.class); + return new Result(); + } + return new Result(); + } + + /** + * 数据分析-服务措施分析-柱状图 + * + * @return + */ + @PostMapping("category-analysis") + public Result categoryAnalysis(@LoginUser TokenDto tokenDto,@RequestBody CategoryAnalysisFormDTO formDTO){ + formDTO.setCusotmerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,CategoryAnalysisFormDTO.AddUserShowGroup.class,CategoryAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(icUserDemandRecService.categoryAnalysis(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java index e144e9c11f..e1d18e5536 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java @@ -26,7 +26,9 @@ import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; +import com.epmet.dto.form.resi.VolunteerCommonFormDTO; import com.epmet.dto.result.demand.OptionDTO; +import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO; import com.epmet.service.VolunteerInfoService; import org.springframework.beans.factory.annotation.Autowired; @@ -125,4 +127,21 @@ public class ResiVolunteerController { public Result> queryListVolunteer(@LoginUser TokenDto tokenDto,@RequestBody ServiceQueryFormDTO formDTO){ return new Result>().ok(volunteerInfoService.queryListVolunteer(tokenDto.getCustomerId(),formDTO.getServiceName())); } + + /** + * 分页查询志愿者列表 + * @param input + * @return + */ + @PostMapping("page") + public Result> queryVolunteerPage(@RequestBody VolunteerCommonFormDTO input) { + + ValidatorUtils.validateEntity(input, VolunteerCommonFormDTO.VolunteerPage.class); + + Integer pageNo = input.getPageNo(); + Integer pageSize = input.getPageSize(); + String customerId = input.getCustomerId(); + List l = volunteerInfoService.queryVolunteerPage(customerId, pageNo, pageSize); + return new Result>().ok(l); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java index c596572fee..bb7e41c2ed 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.ActivityStatisticsDTO; import com.epmet.entity.IcPartyActivityEntity; import org.apache.ibatis.annotations.Mapper; @@ -29,5 +31,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcPartyActivityDao extends BaseDao { + + /** + * @Description 联建活动统计 + * @Param formDTO + * @Return {@link ActivityStatisticsDTO} + * @Author zhaoqifeng + * @Date 2021/12/9 16:06 + */ + ActivityStatisticsDTO getStatistics(PartyActivityFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java index 4efaff7d84..faddda7644 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.apache.ibatis.annotations.Mapper; @@ -45,5 +47,23 @@ public interface IcPartyUnitDao extends BaseDao { @Param("unitName") String unitName, @Param("customerId")String customerId); + /** + * 单位分类统计 + * @Param agencyId + * @Return {@link java.util.List} + * @Author zhaoqifeng + * @Date 2021/12/8 15:25 + */ + List getTypeStatistics(@Param("agencyId")String agencyId); + + /** + * @Description 联建单位分布 + * @Param agencyId + * @Return {@link List< PartyUnitDistributionResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 14:24 + */ + List getDistribution(@Param("agencyId")String agencyId); + int updateSatisfaction(@Param("partyUnitId") String serverId, @Param("satisfaction") BigDecimal satisfaction); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index 3089b64be9..6c36e11618 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -19,7 +19,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.demand.IcResiUserDemandFromDTO; +import com.epmet.dto.form.demand.PageListAnalysisFormDTO; import com.epmet.dto.form.demand.UserDemandPageFormDTO; +import com.epmet.dto.result.demand.*; import com.epmet.dto.result.demand.DemandRecResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.dto.result.demand.ServiceStatDTO; @@ -58,5 +60,30 @@ public interface IcUserDemandRecDao extends BaseDao { */ DemandRecResultDTO selectDemandRecDetail(@Param("customerId") String customerId, @Param("demandRecId") String demandRecId); + /** + * 数分析-服务措施分析-分页查询 + * + * @param formDTO + * @return + */ + List pageListAnalysis(PageListAnalysisFormDTO formDTO); + + + List selectDetail(@Param("categoryCode") String categoryCode, + @Param("orgType") String orgType, + @Param("orgId") String orgId, + @Param("gridPids") String gridPids, + @Param("customerId") String customerId, + @Param("startDateId") String startDateId, + @Param("endDateId") String endDateId); + + List selectListCategoryAnalysisDTO(@Param("firstCategoryList") List firstCategoryList, + @Param("customerId") String customerId, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("gridPids") String gridPids, + @Param("startDateId") String startDateId, + @Param("endDateId") String endDateId); + List selectGroupByPartyUnit(@Param("customerId") String customerId, @Param("partyUnitId") String partyUnitId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java index dc0ca8b8a9..c3931bbd0b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyActivityEntity; import org.springframework.web.multipart.MultipartFile; @@ -98,4 +99,22 @@ public interface IcPartyActivityService extends BaseService} + * @Author zhaoqifeng + * @Date 2021/12/9 14:55 + */ + List statistics(PartyActivityFormDTO formDTO); + + /** + * 联建活动统计列表 + * @Param formDTO + * @Return {@link PageData< IcPartyActivityDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:24 + */ + PageData getActivityList(TokenDto tokenDto, PartyActivityFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index b303cab184..490e19bee6 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 @@ -18,13 +18,16 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.rocketmq.messages.CalPartyUnitSatisfactionFormDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -122,6 +125,24 @@ public interface IcPartyUnitService extends BaseService { */ Result importData(TokenDto tokenDto, HttpServletResponse response, MultipartFile file) throws IOException; + /** + * @Description 按类型统计单位数量 + * @Param formDTO + * @Return {@link List< OptionDataResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/8 14:56 + */ + List typeStatistics(PartyActivityFormDTO formDTO); + + /** + * 联建单位分布 + * @Param formDTO + * @Return {@link List< PartyUnitDistributionResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 10:10 + */ + List distribution(PartyActivityFormDTO formDTO); + /** * 计算区域化党建单位的群众满意度 * @param 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 87ffcaa67f..d17b6b3bfc 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 @@ -21,7 +21,9 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.demand.CategoryAnalysisResDTO; import com.epmet.dto.result.demand.DemandRecResultDTO; +import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO; import com.epmet.dto.result.demand.FinishResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.dto.result.demand.ServiceStatDTO; @@ -147,6 +149,29 @@ public interface IcUserDemandRecService extends BaseService pageListAnalysis(PageListAnalysisFormDTO formDTO); + + /** + * 数据分析-服务措施分析-柱状图 + * + * @return + */ + CategoryAnalysisResDTO categoryAnalysis(CategoryAnalysisFormDTO formDTO); + /** * 计算出服务方,评价总分,服务的需求个数 * diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java index 850c4367de..6a84fb67a1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java @@ -25,6 +25,7 @@ import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.result.demand.OptionDTO; +import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO; import com.epmet.entity.VolunteerInfoEntity; @@ -94,4 +95,6 @@ public interface VolunteerInfoService extends BaseService { * @return */ List queryListVolunteer(String customerId,String userRealName); + + List queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java index 213dacc377..4057d1ba41 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java @@ -36,6 +36,7 @@ import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.IcPartyUnitDTO; import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.demand.SubCodeFormDTO; +import com.epmet.dto.result.ActivityStatisticsDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyActivityEntity; import com.epmet.excel.IcPartyActivityImportExcel; @@ -71,6 +72,10 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl search(PartyActivityFormDTO formDTO) { @@ -149,7 +154,22 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + IcPartyActivityDTO dto = ConvertUtils.sourceToTarget(entity, IcPartyActivityDTO.class); + dto.setServiceMatterName(categoryMap.get(dto.getServiceMatter())); + //获取单位名称 + IcPartyUnitDTO unitDTO = icPartyUnitService.get(dto.getUnitId()); + if (null != unitDTO) { + dto.setUnitName(unitDTO.getUnitName()); + } + return dto; } @Override @@ -206,7 +226,7 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue)); //获取联建单位 IcPartyUnitDTO unitDTO = new IcPartyUnitDTO(); @@ -287,4 +307,93 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/12/9 14:55 + */ + @Override + public List statistics(PartyActivityFormDTO formDTO) { + List list = new ArrayList<>(); + if (null == formDTO.getStartTime() && null == formDTO.getEndTime()) { + setDate(formDTO); + } + ActivityStatisticsDTO dto = baseDao.getStatistics(formDTO); + + OptionDTO unit = new OptionDTO(); + unit.setLabel("组织单位"); + unit.setValue(dto.getUnitCount()); + list.add(unit); + OptionDTO activity = new OptionDTO(); + activity.setLabel("组织活动"); + activity.setValue(dto.getActivityCount()); + list.add(activity); + + return list; + } + + /** + * 联建活动统计列表 + * + * @param formDTO + * @Param formDTO + * @Return {@link PageData< IcPartyActivityDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:24 + */ + @Override + public PageData getActivityList(TokenDto tokenDto, PartyActivityFormDTO formDTO) { + if (null == formDTO.getStartTime() && null == formDTO.getEndTime()) { + setDate(formDTO); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + //获取活动列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.and(wp -> wp.eq(IcPartyActivityEntity::getAgencyId, formDTO.getAgencyId()).or(). + like(IcPartyActivityEntity::getPids, formDTO.getAgencyId())); + wrapper.eq(StringUtils.isNotBlank(formDTO.getServiceMatter()), IcPartyActivityEntity::getServiceMatter, formDTO.getServiceMatter()); + wrapper.ge(null != formDTO.getStartTime(),IcPartyActivityEntity::getActivityTime, formDTO.getStartTime()); + wrapper.le(null != formDTO.getEndTime(), IcPartyActivityEntity::getActivityTime, formDTO.getEndTime()); + wrapper.orderByDesc(IcPartyActivityEntity::getActivityTime); + List list = baseDao.selectList(wrapper); + List dtoList = ConvertUtils.sourceToTarget(list, IcPartyActivityDTO.class); + + IcPartyUnitDTO unitDTO = new IcPartyUnitDTO(); + unitDTO.setAgencyId(formDTO.getAgencyId()); + if (CollectionUtils.isNotEmpty(dtoList)) { + //获取联建单位 + Map option = icPartyUnitService.option(unitDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + //获取服务事项字典 + SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); + codeFormDTO.setCustomerId(tokenDto.getCustomerId()); + codeFormDTO.setParentCategoryCode(SERVICE_MATTER_CODE); + Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + //数据组装 + dtoList.forEach(dto -> { + dto.setServiceMatterName(categoryMap.get(dto.getServiceMatter())); + dto.setUnitName(option.get(dto.getUnitId())); + }); + } + PageInfo pageInfo = new PageInfo<>(dtoList); + return new PageData<>(dtoList, pageInfo.getTotal()); + } + + /** + * 近30天开始时间和结束时间 (精确到秒) + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2021/12/13 17:40 + */ + private void setDate(PartyActivityFormDTO formDTO) { + String start = DateUtils.getBeforeNDay(30); + formDTO.setStartTime(DateUtils.parse(start.concat("000000"), DateUtils.DATE_TIME_NO_SPLIT)); + String end = DateUtils.format(new Date(), DateUtils.DATE_PATTERN); + formDTO.setEndTime(DateUtils.parse(end.concat(" 23:59:59"), DateUtils.DATE_TIME_PATTERN)); + } + } \ No newline at end of file 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 5b49e3a276..ab96c7c68b 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 @@ -26,7 +26,10 @@ import com.epmet.commons.rocketmq.messages.CalPartyUnitSatisfactionFormDTO; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.dto.result.DictListResultDTO; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.PartyUnitTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -39,9 +42,11 @@ import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcPartyUnitDao; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.form.demand.SubCodeFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceStatDTO; import com.epmet.entity.IcPartyUnitEntity; @@ -379,6 +384,57 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/12/8 14:56 + */ + @Override + public List typeStatistics(PartyActivityFormDTO formDTO) { + DictListFormDTO dictFromDTO = new DictListFormDTO(); + dictFromDTO.setDictType(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFromDTO); + if (!dictResult.success()) { + throw new EpmetException(dictResult.getCode()); + } + + List list = baseDao.getTypeStatistics(formDTO.getAgencyId()); + Map map = list.stream().collect(Collectors.toMap(OptionDataResultDTO::getCode, OptionDataResultDTO::getValue)); + + return dictResult.getData().stream().map(item -> { + OptionDataResultDTO dto = new OptionDataResultDTO(); + dto.setLabel(item.getLabel()); + dto.setCode(item.getValue()); + dto.setValue(null == map.get(item.getValue())?NumConstant.ZERO_STR:map.get(item.getValue())); + return dto; + }).collect(Collectors.toList()); + } + + /** + * 联建单位分布 + * + * @param formDTO + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/12/9 10:10 + */ + @Override + public List distribution(PartyActivityFormDTO formDTO) { + Result> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + List list = baseDao.getDistribution(formDTO.getAgencyId()); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + list.forEach(item -> { + item.setType(unitTypeMap.getData().get(item.getType())); + }); + return list; + } + /** * 计算区域化党建单位的群众满意度 * 总分➗需求个数 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java index 5fe0df4eff..8dfd1599cf 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java @@ -36,11 +36,13 @@ import com.epmet.service.IcResiDemandDictService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -203,7 +205,11 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl querySubCodeList(SubCodeFormDTO formDTO) { - return baseDao.selectByPCode(formDTO.getParentCategoryCode(),formDTO.getCustomerId(),formDTO.getCategoryName()); + List list = baseDao.selectByPCode(formDTO.getParentCategoryCode(),formDTO.getCustomerId(),formDTO.getCategoryName()); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return list; } @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 447531f7fd..e66cb7cdc9 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 @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -37,16 +38,15 @@ import com.epmet.dao.IcUserDemandOperateLogDao; import com.epmet.dao.IcUserDemandRecDao; import com.epmet.dao.IcUserDemandSatisfactionDao; import com.epmet.dao.IcUserDemandServiceDao; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.CustomerGridFormDTO; +import com.epmet.dto.form.FindIcUserFormDTO; +import com.epmet.dto.form.ResiUserFormDTO; import com.epmet.dto.form.demand.*; -import com.epmet.dto.result.AllGridsByUserIdResultDTO; -import com.epmet.dto.result.UserBaseInfoResultDTO; -import com.epmet.dto.result.demand.DemandRecResultDTO; -import com.epmet.dto.result.demand.FinishResultDTO; -import com.epmet.dto.result.demand.IcResiUserReportDemandRes; -import com.epmet.dto.result.demand.ServiceStatDTO; +import com.epmet.dto.result.*; +import com.epmet.dto.result.demand.*; import com.epmet.entity.*; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -55,6 +55,7 @@ import com.epmet.service.IcResiDemandDictService; import com.epmet.service.IcUserDemandRecService; 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; @@ -72,6 +73,7 @@ import java.util.stream.Collectors; * @author generator generator@elink-cn.com * @since v1.0.0 2021-11-19 */ +@Slf4j @Service public class IcUserDemandRecServiceImpl extends BaseServiceImpl implements IcUserDemandRecService { @Autowired @@ -321,6 +323,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal()); @@ -488,10 +491,11 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl userIds=new ArrayList<>(); - userIds.add(formDTO.getUserId()); + userIds.add(formDTO.getIcResiUserId()); if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){ userIds.addAll(formDTO.getEpmetUserIdList()); } + formDTO.setUserIds(userIds); //2、小程序内自己上报+赋能平台待录入的 PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectUserDemand(formDTO)); @@ -510,6 +514,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal()); @@ -559,10 +564,338 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl demandData=new ArrayList<>(); + DemandDataDTO demandDataDTO=new DemandDataDTO(); + demandDataDTO.setFirstCategoryCode(formDTO.getFirstCategoryCode()); + demandDataDTO.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),formDTO.getFirstCategoryCode())); + demandDataDTO.setDemandList(new ArrayList<>()); + demandData.add(demandDataDTO); + + //如果是服务措施分析来的,并且是pc录入的需求,需要先去找epmetUserIdList + if (UserDemandConstant.DEMAND_ANALYSIS.equals(formDTO.getQueryOrigin()) + && StringUtils.isNotBlank(formDTO.getIcResiUserId()) + && CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) { + ResiUserFormDTO resiUserFormDTO = new ResiUserFormDTO(); + resiUserFormDTO.setCustomerId(formDTO.getCustomerId()); + resiUserFormDTO.setIcResiUserId(formDTO.getIcResiUserId()); + Result resiRes = epmetUserOpenFeignClient.findEpmetUser(resiUserFormDTO); + if (!resiRes.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询小程序用户异常"); + } + if (null != resiRes.getData() && CollectionUtils.isNotEmpty(resiRes.getData().getEpmetUserIdList())) { + formDTO.setEpmetUserIdList(resiRes.getData().getEpmetUserIdList()); + } + } + //获取当前需求人,相同分类的需求列表。不分页,直接返回所有 + List userIds=new ArrayList<>(); + if(StringUtils.isNotBlank(formDTO.getIcResiUserId())){ + userIds.add(formDTO.getIcResiUserId()); + } + if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){ + userIds.addAll(formDTO.getEpmetUserIdList()); + } + if(StringUtils.isBlank(formDTO.getIcResiUserId())&&CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ + //需求人不能为空 + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "需求人不能为空,icResiUserId与epmetUserIdList不能同时为空"); + } + + + IcResiUserDemandFromDTO icResiUserDemandFromDTO=new IcResiUserDemandFromDTO(); + icResiUserDemandFromDTO.setUserIds(userIds); + icResiUserDemandFromDTO.setFirstCategoryCode(formDTO.getFirstCategoryCode()); + icResiUserDemandFromDTO.setDemandRecId(formDTO.getDemandRecId()); + List demandList = baseDao.selectUserDemand(icResiUserDemandFromDTO); + + if(CollectionUtils.isNotEmpty(demandList)){ + // 1、状态字典 + Result> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //2、查询分类名称 + List categoryCodes = demandList.stream().map(IcResiUserReportDemandRes::getCategoryCode).collect(Collectors.toList()); + List dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + for (IcResiUserReportDemandRes resDto : demandList) { + //状态赋值 + resDto.setStatusName(statusMap.containsKey(resDto.getStatus()) ? statusMap.get(resDto.getStatus()) : StrConstant.EPMETY_STR); + if (null != dictMap && dictMap.containsKey(resDto.getCategoryCode())) { + //分类名称XXX-XX 或者XXX + resDto.setCategoryName(dictMap.get(resDto.getCategoryCode())); + } + //一级分类名称 + resDto.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),resDto.getFirstCategoryCode())); + } + demandData.get(NumConstant.ZERO).setDemandList(CollectionUtils.isNotEmpty(demandList) ? demandList : Collections.emptyList()); + } + + resultDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList()) ? formDTO.getEpmetUserIdList() : Collections.emptyList()); + resultDTO.setDemandData(demandData); + return resultDTO; + } + + /** + * 数据分析-个人档案-需求详情,研判分析 + * 获取案件居民和及家属列表 + * + * + * @param formDTO + * @return + */ + private HouseMemResDTO queryDemandUserFamily(DemandResearchAnalysisFormDTO formDTO) { + HouseMemResDTO houseMemResDTO=new HouseMemResDTO(); + if(StringUtils.isBlank(formDTO.getIcResiUserId())&&CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ + //需求人不能为空 + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "需求人不能为空,icResiUserId与epmetUserIdList不能同时为空"); + } + //服务措施分析点击了PC录入的需求,或者个人档案进来的(这两种情况肯定会有icResiUserId) + if(StringUtils.isNotBlank(formDTO.getIcResiUserId())){ + Result userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId()); + if (!userRes.success() || null == userRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常"); + } + houseMemResDTO=ConvertUtils.sourceToTarget(userRes.getData(),HouseMemResDTO.class); + } + //服务措施点击了,小程序用户上报的需求 + if (StringUtils.isBlank(formDTO.getIcResiUserId())&&CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())) { + //需要找到当前这个epmetUserIdList相同身份证号的人, + //以及这个身份证号所对应的居民的家属 + FindIcUserFormDTO findIcUserFormDTO=new FindIcUserFormDTO(); + findIcUserFormDTO.setCustomerId(formDTO.getCustomerId()); + findIcUserFormDTO.setEpmetUserId(formDTO.getEpmetUserIdList().get(NumConstant.ZERO)); + Result epmetUserFamilyDTOResult=epmetUserOpenFeignClient.findIcUser(findIcUserFormDTO); + if (!epmetUserFamilyDTOResult.success() || null == epmetUserFamilyDTOResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据小程序用户id,获取ic居民信息接口异常"); + } + houseMemResDTO=ConvertUtils.sourceToTarget(epmetUserFamilyDTOResult.getData(),HouseMemResDTO.class); + formDTO.setEpmetUserIdList(epmetUserFamilyDTOResult.getData().getEpmetUserIdList()); + } + return houseMemResDTO; + } + + /** + * 数分析-服务措施分析-分页查询 + * + * @param formDTO + * @return + */ + @Override + public PageData pageListAnalysis(PageListAnalysisFormDTO formDTO) { + if("agency".equals(formDTO.getOrgType())){ + //找到当前组织的所有上级,再拼接上自己 + Result customerAgencyDTOResult=govOrgOpenFeignClient.getAgencyById(formDTO.getOrgId()); + if(!customerAgencyDTOResult.success()||null==customerAgencyDTOResult.getData()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取组织信息异常govOrgOpenFeignClient.getAgencyById"); + } + if(NumConstant.ZERO_STR.equals(customerAgencyDTOResult.getData().getPid())){ + //当前传入的组织id=客户的根组织 + formDTO.setGridPids(formDTO.getOrgId()); + }else{ + formDTO.setGridPids(customerAgencyDTOResult.getData().getPids().concat(StrConstant.COLON).concat(formDTO.getOrgId())); + } + } + long total=NumConstant.ZERO; + List list=new ArrayList<>(); + if(formDTO.getPageFlag()){ + PageInfo pageInfo= PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.pageListAnalysis(formDTO)); + list=pageInfo.getList(); + total=pageInfo.getTotal(); + }else{ + list=baseDao.pageListAnalysis(formDTO); + } + if(CollectionUtils.isNotEmpty(list)){ + //1、查询网格信息 + List gridIds=list.stream().map(DemandRecResultDTO::getGridId).collect(Collectors.toList()); + 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())); + + //2、查询分类名称 + List categoryCodes=list.stream().map(DemandRecResultDTO::getCategoryCode).collect(Collectors.toList()); + List dictList=demandDictService.listByCodes(formDTO.getCustomerId(),categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + //3、查询志愿者 + // 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + Map userInfoMap=new HashMap<>(); + Set userIdList=list.stream().filter(item->item.getServiceType().equals(UserDemandConstant.VOLUNTEER)).map(DemandRecResultDTO::getServerId).collect(Collectors.toSet()); + if(CollectionUtils.isNotEmpty(userIdList)){ + Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(new ArrayList<>(userIdList)); + if(!userInfoRes.success()||CollectionUtils.isEmpty(userInfoRes.getData())){ + throw new RenException("查询志愿者信息异常"); + } + userInfoMap=userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, UserBaseInfoResultDTO::getRealName)); + } + + //查询字典表 + Result> reportTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_REPORT_TYPE.getCode()); + Map reportTypeMap=reportTypeRes.success()&& MapUtils.isNotEmpty(reportTypeRes.getData())?reportTypeRes.getData():new HashMap<>(); + + Result> statusRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap=statusRes.success()&& MapUtils.isNotEmpty(statusRes.getData())?statusRes.getData():new HashMap<>(); + + Result> serviceTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode()); + Map serviceTypeMap=serviceTypeRes.success()&& MapUtils.isNotEmpty(serviceTypeRes.getData())?serviceTypeRes.getData():new HashMap<>(); + + for(DemandRecResultDTO res:list){ + if (null != gridInfoMap && gridInfoMap.containsKey(res.getGridId())) { + res.setGridName(gridInfoMap.get(res.getGridId()).getGridName()); + } + + if (null != dictMap && dictMap.containsKey(res.getCategoryCode())) { + res.setCategoryName(dictMap.get(res.getCategoryCode())); + } + res.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(), res.getFirstCategoryCode())); + if (null != userInfoMap && userInfoMap.containsKey(res.getServerId())) { + res.setServiceName(userInfoMap.get(res.getServerId())); + } + //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help + res.setReportTypeName(reportTypeMap.containsKey(res.getReportType())?reportTypeMap.get(res.getReportType()):StrConstant.EPMETY_STR); + //待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished + res.setStatusName(statusMap.containsKey(res.getStatus())?statusMap.get(res.getStatus()):StrConstant.EPMETY_STR); + //服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + res.setServiceShowName(serviceTypeMap.containsKey(res.getServiceType())?res.getServiceName().concat("(").concat(serviceTypeMap.get(res.getServiceType())).concat(")"):StrConstant.EPMETY_STR); + res.setServiceShowFlag(StringUtils.isNotBlank(res.getServerId())?true:false); + } + } + return new PageData<>(list, total); + } + + /** + * 数据分析-服务措施分析-柱状图 + * + * @param formDTO + * @return + */ + @Override + public CategoryAnalysisResDTO categoryAnalysis(CategoryAnalysisFormDTO formDTO) { + //1、一级分类字典,没有分类直接退出 + SubCodeFormDTO subCodeFormDTO=new SubCodeFormDTO(); + subCodeFormDTO.setCustomerId(formDTO.getCusotmerId()); + subCodeFormDTO.setParentCategoryCode(NumConstant.ZERO_STR); + List firstCategoryList=demandDictService.querySubCodeList(subCodeFormDTO); + if(CollectionUtils.isEmpty(firstCategoryList)){ + return new CategoryAnalysisResDTO(Collections.EMPTY_LIST,Collections.EMPTY_LIST); + } + //2、没有服务类型直接退出 + Result> serviceTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode()); + if(!serviceTypeRes.success()||MapUtils.isEmpty(serviceTypeRes.getData())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"查询服务方类型异常,请检查是否已经配置字典信息"); + } + List legend=new ArrayList<>(); + serviceTypeRes.getData().forEach((code,name)->{ + LegendDTO legendDTO=new LegendDTO(code,name); + legend.add(legendDTO); + }); + LegendDTO unfinishLegend = new LegendDTO("unfinished", "未完成"); + legend.add(unfinishLegend); + + log.info("阶段性胜利1:"+ JSON.toJSONString(legend)); + // 3、传进来的是组织id的话,查询出全路径 + if("agency".equals(formDTO.getOrgType())){ + //找到当前组织的所有上级,再拼接上自己 + Result customerAgencyDTOResult=govOrgOpenFeignClient.getAgencyById(formDTO.getOrgId()); + if(!customerAgencyDTOResult.success()||null==customerAgencyDTOResult.getData()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取组织信息异常govOrgOpenFeignClient.getAgencyById"); + } + if(NumConstant.ZERO_STR.equals(customerAgencyDTOResult.getData().getPid())){ + //当前传入的组织id=客户的根组织 + formDTO.setGridPids(formDTO.getOrgId()); + }else{ + formDTO.setGridPids(customerAgencyDTOResult.getData().getPids().concat(StrConstant.COLON).concat(formDTO.getOrgId())); + } + } + + //4、构造最后的反参 + List list=new ArrayList<>(); + // firstCategoryList是所有的一级分类字典 + firstCategoryList.forEach(firstCategory->{ + CategoryAnalysisDTO categoryAnalysisDTO=new CategoryAnalysisDTO(firstCategory.getValue(),firstCategory.getLabel(),NumConstant.ZERO,Collections.EMPTY_LIST); + categoryAnalysisDTO.setDetail(constructDefaultDetail(legend)); + list.add(categoryAnalysisDTO); + }); + + log.info("阶段性胜利2:"+ JSON.toJSONString(list)); + + // 5、查询出有数据的一级分类,sql计算出detail + List haveDemandList=baseDao.selectListCategoryAnalysisDTO(firstCategoryList, + formDTO.getCusotmerId(), + formDTO.getOrgId(), + formDTO.getOrgType(), + formDTO.getGridPids(), + formDTO.getStartDateId(), + formDTO.getEndDateId()); + if(!CollectionUtils.isEmpty(haveDemandList)){ + log.info("阶段性胜利3:"+ JSON.toJSONString(haveDemandList)); + Map map = haveDemandList.stream().filter(temp -> CollectionUtils.isNotEmpty(temp.getDetail())).collect(Collectors.toMap(CategoryAnalysisDTO::getCategoryCode, dto -> dto)); + if(MapUtils.isNotEmpty(map)){ + log.info("阶段性胜利4:"+ JSON.toJSONString(map)); + for(CategoryAnalysisDTO result:list){ + if (map.containsKey(result.getCategoryCode()) && null != map.get(result.getCategoryCode())) { + //如果当前分类下有上报的需求,将原来的0改为实际的需求数量 + CategoryAnalysisDTO tempDto=map.get(result.getCategoryCode()); + result.setTotal(tempDto.getTotal()); + + //当前分类有居民的明细:未完成多少个,xxx个志愿者完成xxx个需求 + if(CollectionUtils.isNotEmpty(tempDto.getDetail())){ + List resDetailList=tempDto.getDetail(); + Map detailMap = resDetailList.stream().collect(Collectors.toMap(CategoryAnalysisDetail::getLegendCode, dto -> dto)); + + //遍历之前构造好的图例 + for(CategoryAnalysisDetail resultDetail:result.getDetail()){ + if(detailMap.containsKey(resultDetail.getLegendCode())&&null!=detailMap.get(resultDetail.getLegendCode())){ + resultDetail.setTotalService(detailMap.get(resultDetail.getLegendCode()).getTotalService()); + resultDetail.setServiceDemandTotal(detailMap.get(resultDetail.getLegendCode()).getServiceDemandTotal()); + } + } + + } + + } + + } + + } + + } + + //返回结果,也不知道对不对 + CategoryAnalysisResDTO result=new CategoryAnalysisResDTO(); + result.setLegend(legend); + result.setCategoryList(list); + return result; + } + + private List constructDefaultDetail(List legend) { + List l = new ArrayList<>(); + legend.forEach(legendDTO -> { + CategoryAnalysisDetail d = ConvertUtils.sourceToTarget(legendDTO, CategoryAnalysisDetail.class); + d.setServiceDemandTotal(NumConstant.ZERO); + d.setTotalService(NumConstant.ZERO); + l.add(d); + }); + return l; + } /** * 计算出服务方,评价总分,服务的需求个数 * diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java index a0ac541131..ac87cc6b4c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java @@ -18,6 +18,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.MqConstant; import com.epmet.commons.tools.constant.NumConstant; @@ -44,12 +45,14 @@ import com.epmet.dto.result.ResiUserBaseInfoResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.demand.OptionDTO; +import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO; import com.epmet.entity.VolunteerInfoEntity; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.HeartUserInfoService; import com.epmet.service.VolunteerInfoService; +import com.github.pagehelper.PageHelper; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; @@ -258,4 +261,21 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(VolunteerInfoEntity::getCustomerId, customerId); + + PageHelper.startPage(pageNo, pageSize); + List volunteerInfoEntities = baseDao.selectList(query); + + List list = volunteerInfoEntities.stream().map(vi -> { + PageVolunteerInfoResultDTO p = new PageVolunteerInfoResultDTO(); + p.setUserId(vi.getUserId()); + return p; + }).collect(Collectors.toList()); + + return list; + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql index dcfead8989..cb638c9c74 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql @@ -1,7 +1,7 @@ /* Navicat Premium Data Transfer - Source Server : 外网192.168.1.130 + Source Server : 外网192.168.1.140 Source Server Type : MySQL Source Server Version : 50728 Source Host : 118.190.150.119:47306 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml index aacc15fdab..df57dd24a6 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml @@ -138,10 +138,9 @@ - + - diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml index fd84685f0e..ede5b4c0e1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml @@ -26,6 +26,24 @@ + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml index 024b33adf6..d7f02b7109 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml @@ -46,6 +46,34 @@ + + + update ic_party_unit set SATISFACTION=#{satisfaction},UPDATED_TIME=NOW() diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml index be50e98601..d9d79ecaec 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml @@ -141,7 +141,7 @@ AND m.CATEGORY_CODE =#{firstCategoryCode} ORDER BY - m.CREATED_TIME DESC + m.CREATED_TIME DESC,m.sort desc @@ -163,7 +163,7 @@ AND m.CUSTOMER_ID = #{customerId} AND m.PARENT_CODE = #{parentCode} ORDER BY - m.CREATED_TIME DESC + m.CREATED_TIME DESC,m.sort desc diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index f352685356..11d3190a6c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -75,7 +75,17 @@ case when r.PARENT_CODE !='0' then r.PARENT_CODE ELSE R.CATEGORY_CODE END - ) as firstCategoryCode + ) as firstCategoryCode, + ( + CASE WHEN R.DEMAND_USER_TYPE='ic_resi_user' THEN R.DEMAND_USER_ID + ELSE '' + END + ) as icResiUserId, + ( + CASE WHEN R.DEMAND_USER_TYPE='mini_resi' THEN R.DEMAND_USER_ID + ELSE '' + END + ) as epmetUserId FROM ic_user_demand_rec r left JOIN ic_user_demand_service s ON ( r.id = s.DEMAND_REC_ID AND s.DEL_FLAG = '0' ) @@ -90,7 +100,7 @@ AND r.GRID_PIDS LIKE concat('%',#{gridPids},'%') - and r.PARENT_CODE=#{categoryCode} + and (r.PARENT_CODE=#{categoryCode} or r.CATEGORY_CODE=#{categoryCode}) and r.CATEGORY_CODE=#{categoryCode} @@ -129,7 +139,8 @@ r.PARENT_CODE as parentCode, r.CONTENT, r.`STATUS`, - r.WANT_SERVICE_TIME as wantServiceTime + r.WANT_SERVICE_TIME as wantServiceTime, + left(r.CATEGORY_CODE,4) as firstCategoryCode FROM ic_user_demand_rec r WHERE @@ -141,6 +152,9 @@ and r.CATEGORY_CODE like concat(#{firstCategoryCode},'%') + + and r.id !=#{demandRecId} + ORDER BY r.WANT_SERVICE_TIME DESC @@ -181,11 +195,17 @@ IFNULL(s.FINISH_DESC,'') as finishDesc, '' AS serviceShowName, s.id as serviceId, + left(r.CATEGORY_CODE,4) as firstCategoryCode, ( - case when r.PARENT_CODE !='0' then r.PARENT_CODE - ELSE R.CATEGORY_CODE - END - ) as firstCategoryCode + CASE WHEN R.DEMAND_USER_TYPE='ic_resi_user' THEN R.DEMAND_USER_ID + ELSE '' + END + ) as icResiUserId, + ( + CASE WHEN R.DEMAND_USER_TYPE='mini_resi' THEN R.DEMAND_USER_ID + ELSE '' + END + ) as epmetUserId FROM ic_user_demand_rec r left JOIN ic_user_demand_service s ON ( r.id = s.DEMAND_REC_ID AND s.DEL_FLAG = '0' ) @@ -197,6 +217,180 @@ + + + + + + + + + + + + + + + + + + + + SELECT + i.ID AS issueId, + i.ISSUE_TITLE AS issueTitle, + i.SUGGESTION AS suggestion, + i.CREATED_BY AS createdBy, + (CASE WHEN i.ISSUE_STATUS = 'shift_project' THEN '已转项目' + WHEN i.ISSUE_STATUS = 'voting' THEN '表决中' + WHEN i.ISSUE_STATUS = 'closed' THEN '已关闭' + ELSE '表决中' END ) AS `status`, + i.CREATED_TIME AS createdTime, + s.SUPPORT_COUNT AS supportCount, + s.OPPOSITION_COUNT AS oppositionCount, + CONCAT(s.SUPPORT_COUNT + s.OPPOSITION_COUNT,'/',s.VOTABLE_COUNT) AS voteAccount, + cd.CATEGORY_NAME as cn + FROM issue i + LEFT JOIN issue_vote_statistical s ON (s.ISSUE_ID = i.ID AND s.DEL_FLAG = '0') + LEFT JOIN issue_category ic ON (ic.ISSUE_ID = i.ID AND ic.DEL_FLAG = '0' AND ic.CUSTOMER_ID = i.CUSTOMER_ID) + LEFT JOIN issue_project_category_dict cd ON (cd.CATEGORY_CODE = LEFT(ic.CATEGORY_CODE,#{length}) AND cd.DEL_FLAG = '0' AND cd.CUSTOMER_ID = ic.CUSTOMER_ID) + WHERE i.DEL_FLAG = '0' + + AND i.ISSUE_STATUS = #{status} + + + AND i.GRID_ID = #{orgId} + + + AND i.ORG_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + ORDER BY (s.SUPPORT_COUNT + s.OPPOSITION_COUNT) DESC,i.created_time DESC LIMIT 50 + + + + + + + + + + \ No newline at end of file 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 dca01a63f5..06c1fc0000 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 @@ -245,6 +245,21 @@ + + + UPDATE issue_project_category_dict SET diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridList.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridList.java index ad2c907fd5..ce787e045d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridList.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridList.java @@ -40,5 +40,17 @@ public class AgencyGridList implements Serializable { * 机关-网格名称 */ private String agencyGridName = ""; + /** + * 网格名称 + */ + private String gridName = ""; + /** + * 网格经度【网格没有经纬度时获取客户根组织下的】 + */ + private String longitude = ""; + /** + * 网格维度【网格没有经纬度时获取客户根组织下的】 + */ + private String latitude = ""; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java index 808e25d791..a7aec4fa28 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java @@ -30,23 +30,22 @@ import java.io.Serializable; */ @Data public class AgencyResultDTO implements Serializable { - private static final long serialVersionUID = 1L; - /** - * 机关组织Id - */ + //机关组织Id private String agencyId = ""; - /** - * 机关组织名称 - */ + //机关组织名称 private String agencyName = ""; - + //上级组织id private String pid; + //组织级别 private String level; - /** - * 所有上级组织机构ID(以英文:隔开) - */ + //所有上级组织机构ID(以英文:隔开) @JsonIgnore private String pids = ""; + //经度【没值则取跟客户的值】 + private String longitude; + //维度【没值则取跟客户的值】 + private String latitude; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java index 117976dee8..08bd0683b1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java @@ -49,4 +49,16 @@ public class AgencySubResultDTO implements Serializable { * 当前组织的所有上级组织Id */ private String pids = ""; + /** + * 组织级别 + */ + private String level = ""; + /** + * 组织经度【没值取根组织的值】 + */ + private String longitude = ""; + /** + * 组织维度【没值取根组织的值】 + */ + private String latitude = ""; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyTreeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyTreeResultDTO.java index 3afae3011a..4d48b54960 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyTreeResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyTreeResultDTO.java @@ -26,6 +26,15 @@ public class AgencyTreeResultDTO implements Serializable { private String pid; private String level; + //经度【没值则取跟客户的值】 + private String longitude; + //维度【没值则取跟客户的值】 + private String latitude; + + /** + * orgId-orgLevel + */ + private String orgLevel; /** * 下级机关组织 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtGridResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtGridResultDTO.java index 90641f29d4..5040a89fde 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtGridResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtGridResultDTO.java @@ -28,4 +28,8 @@ public class ExtGridResultDTO implements Serializable { * 当前gridId所属的客户id add02.03 * */ private String customerId; + //经度【没值则取跟客户的值】 + private String longitude; + //维度【没值则取跟客户的值】 + private String latitude; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffPermissionResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffPermissionResultDTO.java index fbaf784c25..1621261359 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffPermissionResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExtStaffPermissionResultDTO.java @@ -50,4 +50,8 @@ public class ExtStaffPermissionResultDTO implements Serializable { * 当前agencyId所属的客户id add02.03 * */ private String customerId; + //经度【没值则取跟客户的值】 + private String longitude; + //维度【没值则取跟客户的值】 + private String latitude; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 6c438becaf..f09e1f6ccf 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -531,4 +531,31 @@ public interface GovOrgOpenFeignClient { @GetMapping("/gov/org/customergrid/getGridIListByAgency/{agencyId}") Result> getGridIListByAgency(@PathVariable("agencyId") String agencyId); + + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @PostMapping("/gov/org/agency/getsonagencyid") + Result> getSonAgencyId(@RequestParam("orgId")String orgId); + +// /icbuilding/{id}?id=demoData + + /** + * 根据ID查询楼栋信息 + * @param id + * @return + */ + @GetMapping("/gov/org/icbuilding/{id}") + Result getBuildingById(@PathVariable("id") String id); + + /** + * 通过ID查询小区信息 + * @param id + * @return + */ + @GetMapping("/gov/org/icneighborhood/{id}") + Result getIcNeighbordhoodById(@PathVariable("id") String id); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 58847819eb..f85e3471e6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -334,9 +334,23 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridIListByAgency", agencyId); } + @Override + public Result> getSonAgencyId(String orgId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getSonAgencyId", orgId); + } + @Override public Result selectPidsByGridId(String gridId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId); } + @Override + public Result getBuildingById(String id) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getBuildingById", id); + } + + @Override + public Result getIcNeighbordhoodById(String id) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getIcNeighbordhoodById", id); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index c2c2273036..5651110c57 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -349,4 +349,15 @@ public class AgencyController { return new Result>().ok(agencyService.baseInfoFamilyBuilding(formDTO)); } + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @PostMapping("getsonagencyid") + public Result> getSonAgencyId(@RequestParam("orgId")String orgId){ + return new Result>().ok(agencyService.getSonAgencyId(orgId)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java index a91016a5f9..183b6f81f5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java @@ -339,18 +339,6 @@ public class CustomerAgencyController { return new Result().ok(customerAgencyService.getAgencyList(formDTO)); } - /** - * @Description 获取当前登陆人的 所属组织及下级组织/网格(含直属网格)树 - * @Param tokenDTO - * @Return {@link Result< AgencyTreeResultDTO >} - * @Author zhaoqifeng - * @Date 2021/9/8 15:20 - */ - @PostMapping("agencygridtree") - public Result getOrgTreeData(@LoginUser TokenDto tokenDTO) { - return new Result().ok(customerAgencyService.getOrgTreeData(tokenDTO.getUserId())); - } - /** * @description 通过staffId查询跟组织列表 * @@ -369,4 +357,16 @@ public class CustomerAgencyController { return new Result>().ok(orgList); } -} \ No newline at end of file + /** + * @Description 获取当前登陆人的 所属组织及下级组织/网格(含直属网格)树 + * @Param tokenDTO + * @Return {@link Result< AgencyTreeResultDTO >} + * @Author zhaoqifeng + * @Date 2021/9/8 15:20 + */ + @PostMapping("agencygridtree") + public Result getOrgTreeData(@LoginUser TokenDto tokenDTO) { + return new Result().ok(customerAgencyService.getOrgTreeData(tokenDTO.getUserId())); + } + +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java index 0b58b4d6f0..8422de2c41 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java @@ -309,4 +309,14 @@ public class CustomerGridController { List resultDTOS = customerGridService.getGridIListByAgency(agencyId); return new Result>().ok(resultDTOS); } + + /** + * @Author sun + * @Description 查询组织直属网格列表 + **/ + @PostMapping("getgridilistbyagency/{agencyId}") + public Result> gridListByAgencyId(@PathVariable("agencyId") String agencyId) { + return new Result>().ok(customerGridService.gridListByAgencyId(agencyId)); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index 24a007311e..d1a49f7ba3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -273,4 +273,14 @@ public interface CustomerAgencyDao extends BaseDao { * @date 2021/10/25 2:30 下午 */ List selectSonOrg(@Param("pid")String pid,@Param("type")String type); + + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + List getSonAgencyId(@Param("orgId") String orgId); + } + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java index 9a2fd83d82..d85f2d8b68 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java @@ -148,4 +148,12 @@ public interface AgencyService { */ List baseInfoFamilyBuilding(BaseInfoFamilyBuildingFormDTO formDTO); + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + List getSonAgencyId(String orgId); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index b9292396d8..4cacf505ef 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -255,12 +255,12 @@ public interface CustomerAgencyService extends BaseService */ AgencyTreeResultDTO getAgencyList(GetAgencyListFormDTO formDTO); + List getStaffOrgListByStaffId(String staffId); + /** * desc:获取用户所属组织的组织及网格树 * @param staffId * @return */ AgencyTreeResultDTO getOrgTreeData(String staffId); - - List getStaffOrgListByStaffId(String staffId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index d6ac66d201..2b2624ac54 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -348,4 +348,10 @@ public interface CustomerGridService extends BaseService { * @Date 2021/11/29 17:00 */ List getGridIListByAgency(String agencyId); + + /** + * @Author sun + * @Description 查询组织直属网格列表 + **/ + List gridListByAgencyId(String agencyId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index eec2d13074..4bfc4487d3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -631,6 +631,21 @@ public class AgencyServiceImpl implements AgencyService { return result; } + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @Override + public List getSonAgencyId(String orgId) { + List result = customerAgencyDao.getSonAgencyId(orgId); + if (CollectionUtils.isNotEmpty(result)){ + return result; + } + return new ArrayList<>(); + } + private CustomerAgencyEntity constructInsertEntity(AddAgencyV2FormDTO formDTO, CustomerAgencyDTO parent) { CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); insertEntity.setOrganizationName(formDTO.getAgencyName()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index f1c5d28379..24fe5e520a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -88,7 +88,7 @@ public class BuildingServiceImpl implements BuildingService { IcBuildingUnitEntity icBuildingUnit= new IcBuildingUnitEntity(); icBuildingUnit.setCustomerId(customerId); icBuildingUnit.setBuildingId(entity.getId()); - icBuildingUnit.setUnitName(String.valueOf(i+1)+"单元"); + icBuildingUnit.setUnitName((i + 1) +"单元"); icBuildingUnit.setUnitNum(String.valueOf(i+1)); unitList.add(icBuildingUnit); } @@ -103,7 +103,7 @@ public class BuildingServiceImpl implements BuildingService { log.error("com.epmet.service.impl.BuildingServiceImpl.treeList,没有找到工作人员所属的机关信息,用户Id:{}",staffId); return new ArrayList<>(); } - + // agency = new CustomerStaffAgencyDTO(); // agency.setAgencyId("77f6bc7f07064bf4c09ef848139a344c"); //1.获取所在组织及下级组织 @@ -275,7 +275,7 @@ public class BuildingServiceImpl implements BuildingService { IcBuildingUnitEntity icBuildingUnit= new IcBuildingUnitEntity(); icBuildingUnit.setBuildingId(uuid); icBuildingUnit.setCustomerId(customerId); - icBuildingUnit.setUnitName(String.valueOf(i+1)+"单元"); + icBuildingUnit.setUnitName((i + 1) +"单元"); icBuildingUnit.setUnitNum(String.valueOf(i+1)); unitList.add(icBuildingUnit); } @@ -464,7 +464,7 @@ public class BuildingServiceImpl implements BuildingService { IcBuildingUnitEntity icBuildingUnit= new IcBuildingUnitEntity(); icBuildingUnit.setBuildingId(icBuilding.getId()); icBuildingUnit.setCustomerId(customerId); - icBuildingUnit.setUnitName(String.valueOf(i+1)+"单元"); + icBuildingUnit.setUnitName((i + 1) +"单元"); icBuildingUnit.setUnitNum(String.valueOf(i+1)); unitList.add(icBuildingUnit); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index de90539444..f70fdd035a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -1119,6 +1119,9 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl()); @@ -1152,7 +1158,10 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl()); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 2c0834f2d2..5c48305577 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -864,4 +864,14 @@ public class CustomerGridServiceImpl extends BaseServiceImpl gridListByAgencyId(String agencyId) { + List result = baseDao.selectAgencyGridMsgList(agencyId); + return result; + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPlacePatrolRecordServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPlacePatrolRecordServiceImpl.java index 2b205e9ae6..5535988941 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPlacePatrolRecordServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPlacePatrolRecordServiceImpl.java @@ -139,7 +139,7 @@ public class IcPlacePatrolRecordServiceImpl extends BaseServiceImpl { if (str.equals(r.getId())) { @@ -188,7 +188,7 @@ public class IcPlacePatrolRecordServiceImpl extends BaseServiceImpl { if (str.equals(r.getId())) { @@ -202,4 +202,4 @@ public class IcPlacePatrolRecordServiceImpl extends BaseServiceImpl teamDTOList = icPlacePatrolTeamStaffDao.getByTeamId(resultDTO.getPlacePatrolTeamId()); //3.封装九小场所数据 - StringBuffer inspectorsNames = new StringBuffer(""); + StringBuffer inspectorsNames = new StringBuffer(); for (String str : resultDTO.getInspectors().split(",")) { teamDTOList.forEach(r -> { if (str.equals(r.getId())) { @@ -195,7 +195,7 @@ public class IcPlacePatrolReviewRecordServiceImpl extends BaseServiceImpl { if (str.equals(r.getId())) { @@ -218,4 +218,4 @@ public class IcPlacePatrolReviewRecordServiceImpl extends BaseServiceImpl { if (str.equals(r.getId())) { @@ -200,7 +200,7 @@ public class IcPlacePatrolTeamServiceImpl extends BaseServiceImpl { if (str.equals(r.getValue())) { @@ -248,7 +248,7 @@ public class IcPlacePatrolTeamServiceImpl extends BaseServiceImpl { if (str.equals(r.getId())) { @@ -257,7 +257,7 @@ public class IcPlacePatrolTeamServiceImpl extends BaseServiceImpl { if (str.equals(r.getValue())) { @@ -272,4 +272,4 @@ public class IcPlacePatrolTeamServiceImpl extends BaseServiceImpl SELECT - id AS "agencyId", - organization_name AS "agencyName", - pids AS "pids" - FROM customer_agency - WHERE del_flag = '0' - AND pids = #{subAgencyPids} - ORDER BY created_time DESC + ca.id AS "agencyId", + ca.organization_name AS "agencyName", + ca.pids AS "pids", + ca.level level, + ( CASE WHEN ca.longitude is null THEN + ( SELECT longitude FROM customer_agency + WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id) + ORDER BY pid ASC LIMIT 1 + ) + ELSE ca.longitude + END + ) longitude, + ( CASE WHEN ca.latitude is null THEN + ( SELECT latitude FROM customer_agency + WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id) + ORDER BY pid ASC LIMIT 1 + ) + ELSE ca.latitude + END + ) latitude + FROM customer_agency ca + WHERE ca.del_flag = '0' + AND ca.pids = #{subAgencyPids} + ORDER BY ca.created_time DESC SELECT - ca.id AS "agencyId", - ca.organization_name AS "agencyName", - ca.pids AS "pids", - ca.PID AS pid, - ca.LEVEL + ca.id agencyId, + ca.organization_name agencyName, + ca.pids pids, + ca.pid pid, + ca.level level, + ( CASE WHEN ca.longitude is null THEN + ( SELECT longitude FROM customer_agency + WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id) + ORDER BY pid ASC LIMIT 1 + ) + ELSE ca.longitude + END + ) longitude, + ( CASE WHEN ca.latitude is null THEN + ( SELECT latitude FROM customer_agency + WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id) + ORDER BY pid ASC LIMIT 1 + ) + ELSE ca.latitude + END + ) latitude FROM customer_agency ca INNER JOIN customer_staff_agency csa ON ca.id = csa.agency_id @@ -638,4 +724,14 @@ order by created_time desc + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 94ca7a4587..0ddf90f008 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -389,12 +389,30 @@ + \ No newline at end of file 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 ab6c65c8a7..2e5d52b4ca 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 @@ -397,4 +397,90 @@ where p.DEL_FLAG = '0' AND p.ORIGIN_ID = #{originId} + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml index 3284be99e6..d88575dbab 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml @@ -201,4 +201,20 @@ ) ORDER BY ro.CREATED_TIME DESC + + \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java index b5d7919388..630690be40 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java @@ -8,7 +8,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; /** - * * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ @@ -18,7 +17,7 @@ import org.springframework.scheduling.annotation.EnableAsync; @EnableAsync @ServletComponentScan public class GovVoiceApplication { - public static void main(String[] args) { - SpringApplication.run(GovVoiceApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(GovVoiceApplication.class, args); + } } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/LbController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/LbController.java new file mode 100644 index 0000000000..718d10929e --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/LbController.java @@ -0,0 +1,23 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.commons.util.InetUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("lb") +public class LbController { + + @Autowired + private InetUtils inetUtils; + + @PostMapping("get-host") + public Result getHost() { + String ipAddress = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); + return new Result().ok(ipAddress); + } + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java new file mode 100644 index 0000000000..f7fa5bb1da --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description ic 表单options查询通用dto + * @Author wangxianzhang + * @Date 2021/12/12 1:07 下午 + * @Version 1.0 + */ +@Data +public class IcFormOptionsQueryFormDTO { + + public interface QueryByLabelAndCustomerIdForForm {} + + @NotBlank(message = "客户ID必填", groups = { QueryByLabelAndCustomerIdForForm.class }) + private String customerId; + + @NotBlank(message = "FormCode必填", groups = { QueryByLabelAndCustomerIdForForm.class }) + private String formCode; + + @NotBlank(message = "OptionsLabel必填", groups = { QueryByLabelAndCustomerIdForForm.class }) + private String label; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index 2882f9977f..9cda858533 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -3,6 +3,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.IcFormItemOptionsDTO; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiCategoryWarnConfigDTO; import com.epmet.dto.form.*; @@ -120,4 +121,12 @@ public interface OperCustomizeOpenFeignClient { @PostMapping("/oper/customize/icformitemoptions/volunteerlabelbyvalues") Result> volunteerLabelByValues(@RequestBody List volunteers,@RequestParam("customerId") String customerId); + /** + * 使用item相关条件查询关联的options + * @param input + * @return + */ + @PostMapping("/oper/customize/icformitemoptions/list-by-item-conditions") + Result> listOptionsByItemConditions(@RequestBody IcFormOptionsQueryFormDTO input); + } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java index a75999eb0e..da282124bb 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java @@ -4,6 +4,7 @@ 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.CustomerFootBarDTO; +import com.epmet.dto.IcFormItemOptionsDTO; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiCategoryWarnConfigDTO; import com.epmet.dto.form.*; @@ -103,4 +104,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe public Result> volunteerLabelByValues(List volunteers,String customerId) { return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "volunteerLabelByValues",volunteers,customerId); } + + @Override + public Result> listOptionsByItemConditions(IcFormOptionsQueryFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "listOptionsByItemConditions", input); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index dd07e01331..295631391f 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.64 + 0.3.70 com.epmet oper-customize diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java index 262255826a..ed22604272 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java @@ -26,14 +26,17 @@ 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.IcFormItemOptionsDTO; +import com.epmet.dto.form.IcFormOptionsQueryFormDTO; import com.epmet.excel.IcFormItemOptionsExcel; import com.epmet.service.IcFormItemOptionsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.tags.form.InputTag; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; +import java.util.function.IntUnaryOperator; /** @@ -102,4 +105,21 @@ public class IcFormItemOptionsController { return new Result>().ok(icFormItemOptionsService.volunteerLabelByValues(volunteers,customerId)); } + /** + * 使用item相关条件查询关联的options + * @param input + * @return + */ + @PostMapping("list-by-item-conditions") + public Result> listOptionsByItemConditions(@RequestBody IcFormOptionsQueryFormDTO input) { + ValidatorUtils.validateEntity(input, IcFormOptionsQueryFormDTO.QueryByLabelAndCustomerIdForForm.class); + String customerId = input.getCustomerId(); + String formCode = input.getFormCode(); + String label = input.getLabel(); + + List r = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, label); + return new Result>().ok(r); + } + + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java index 387cc05412..7423f85289 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java @@ -100,4 +100,13 @@ public interface IcFormItemOptionsService extends BaseService volunteerLabelByValues(List volunteers, String customerId); + + /** + * 使用item相关条件查询options + * @param customerId + * @param formCode + * @param label + * @return + */ + List getOptionsByItemConditions(String customerId, String formCode, String label); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java index 144e56e568..970845cbee 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java @@ -17,23 +17,30 @@ package com.epmet.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcFormItemDao; import com.epmet.dao.IcFormItemOptionsDao; import com.epmet.dto.IcFormItemOptionsDTO; +import com.epmet.entity.IcFormItemEntity; import com.epmet.entity.IcFormItemOptionsEntity; import com.epmet.service.IcFormItemOptionsService; 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; +import java.util.stream.Collectors; /** * 表单项的选项 @@ -44,7 +51,9 @@ import java.util.Map; @Service public class IcFormItemOptionsServiceImpl extends BaseServiceImpl implements IcFormItemOptionsService { - + @Autowired + private IcFormItemDao icFormItemDao; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -61,8 +70,8 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -98,14 +107,40 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl volunteerLabelByValues(List volunteers,String customerId) { - return baseDao.volunteerLabelByValues(volunteers,customerId); + public List volunteerLabelByValues(List volunteers, String customerId) { + return baseDao.volunteerLabelByValues(volunteers, customerId); } + @Override + public List getOptionsByItemConditions(String customerId, String formCode, String label) { + + // 查询item + LambdaQueryWrapper formItemQuery = new LambdaQueryWrapper<>(); + formItemQuery.eq(IcFormItemEntity::getCustomerId, customerId); + formItemQuery.eq(IcFormItemEntity::getFormCode, formCode); + formItemQuery.eq(IcFormItemEntity::getLabel, label); + IcFormItemEntity item = icFormItemDao.selectOne(formItemQuery); + + if (item == null) { + return new ArrayList<>(); + } + + // 通过item查询options + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcFormItemOptionsEntity::getItemId, item.getId()); + query.orderByAsc(IcFormItemOptionsEntity::getSort); + + // 属性拷贝 + return baseDao.selectList(query).stream().map(o -> { + IcFormItemOptionsDTO oDTO = new IcFormItemOptionsDTO(); + BeanUtil.copyProperties(o, oDTO); + return oDTO; + }).collect(Collectors.toList()); + } } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java index 9ed8c34510..7994bf7d8d 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java @@ -126,7 +126,7 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审 * 更新时间 */ private Date updatedTime; - + private List memberList; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java index 2bce88383f..9af69706cd 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicIncludeIssueDetailResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.resi.group.dto.topic.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -90,4 +91,6 @@ public class ResiTopicIncludeIssueDetailResultDTO implements Serializable { * 话题被屏蔽详情 */ private TopicHiddenDetailDTO hiddenDetail; + + private String gridName; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 1762b35d97..c95abb1044 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -271,15 +271,6 @@ public interface ResiGroupOpenFeignClient { @PostMapping("/resi/group/topic/topiccreateduserbatch") Result> topicCreatedUserBatch(@RequestParam("topicIds")List topicIds); - /** - * @Description 通过话题id批量查询话题详情列表 - * @return - * @author wxz - * @date 2021.05.18 16:24 - */ - @PostMapping("/resi/group/topic/get-topicdetail-byid/batch") - Result> listTopicDetailsByIds(TopicDetailBatchFormDTO input); - /** * @Description 查询话题信息 * @Param issueIds @@ -289,6 +280,15 @@ public interface ResiGroupOpenFeignClient { @PostMapping("resi/group/topic/gettopicinfos") Result> getTopicInfos(@RequestBody List issueIds); + + /** + * @Description 通过话题id批量查询话题详情列表 + * @return + * @author wxz + * @date 2021.05.18 16:24 + */ + @PostMapping("/resi/group/topic/get-topicdetail-byid/batch") + Result> listTopicDetailsByIds(TopicDetailBatchFormDTO input); /** * @description 根据组id列表批量查询组信息列表 * diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 8c2f5303ee..11d0514d5e 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -3,13 +3,24 @@ package com.epmet.resi.group.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.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; +import com.epmet.resi.group.dto.group.ResiGroupDTO; +import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; +import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.*; +import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; +import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; +import com.epmet.resi.group.dto.group.form.CreateGroupCodeFormDTO; +import com.epmet.resi.group.dto.topic.result.TopicBelongGroupResultDTO; import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -131,6 +142,7 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "sendEvent",param); } + @Override public Result queryTopicInfoByIssueId(String issueId) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "queryTopicInfoByIssueId", issueId); @@ -157,11 +169,6 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicAttachmentList", formDTO); } - @Override - public Result> allMessages(AllMessagesFormDTO formDTO) { - return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "allMessages", formDTO); - } - /** * 获取小组详情 * @@ -201,6 +208,11 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", formDTO); } + @Override + public Result> allMessages(AllMessagesFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "allMessages", formDTO); + } + @Override public Result topicCreatedUser(String topicId) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicCreatedUser", topicId); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index e90adf8c14..6195fbf2e9 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -455,7 +455,6 @@ public class ResiGroupController { return new Result(); } - /** * @param formDTO * @author yinzuomei diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 0b6ecd84b0..194c927f37 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -47,6 +47,7 @@ import com.epmet.dto.result.UserInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.group.constant.GroupConstant; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetMessageFeignClient; diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java index 08b62c9d1c..daf4e23248 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java @@ -169,16 +169,16 @@ public interface ResiGroupMemberDao extends BaseDao { */ String selectUserRole(@Param("groupId")String groupId, @Param("userId")String userId); - int exitGroupById(@Param("id") String id, @Param("updatedBy") String updatedBy); - - /** - * desc: 仅统计除组长之外的成员数 - * - * @param customerId - * @param groupId - * @return int - * @author LiuJanJun - * @date 2021/4/23 3:14 下午 - */ + /** + * desc: 仅统计除组长之外的成员数 + * + * @param customerId + * @param groupId + * @return int + * @author LiuJanJun + * @date 2021/4/23 3:14 下午 + */ int countAllMembers(@Param("customerId") String customerId, @Param("groupId") String groupId); + + int exitGroupById(@Param("id") String id, @Param("updatedBy") String updatedBy); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/test/TestController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/test/TestController.java index c86286bfc5..d57eba9d90 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/test/TestController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/test/TestController.java @@ -2,6 +2,8 @@ package com.epmet.modules.test; import com.epmet.commons.tools.utils.HttpContextUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.OssFeignClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,6 +14,9 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("test") public class TestController { + @Autowired + private OssFeignClient ossFeignClient; + @PostMapping("get-req-info") public Result testDomain(HttpServletRequest request) { String requestServerNameAndPort = HttpContextUtils.getRequestServerNameAndPort(); @@ -27,4 +32,5 @@ public class TestController { return new Result(); } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 9353e6549f..1695aaba09 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -510,6 +510,17 @@ public class ResiTopicController { return new Result>().ok(topicService.topicCreatedUserBatch(topicIds)); } + + /** + * @Description 查询话题信息 + * @Param issueIds + * @author zxc + * @date 2021/5/17 4:19 下午 + */ + @PostMapping("gettopicinfos") + public Result> getTopicInfos(@RequestBody List issueIds){ + return new Result>().ok(topicService.getTopicInfos(issueIds)); + } /** * @Description 根据话题id,批量查询话题详情 * @return @@ -523,16 +534,4 @@ public class ResiTopicController { return new Result>().ok(topicDetails); } - - - /** - * @Description 查询话题信息 - * @Param issueIds - * @author zxc - * @date 2021/5/17 4:19 下午 - */ - @PostMapping("gettopicinfos") - public Result> getTopicInfos(@RequestBody List issueIds){ - return new Result>().ok(topicService.getTopicInfos(issueIds)); - } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 9a552f2baa..9960add54e 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -332,6 +332,16 @@ public interface ResiTopicService extends BaseService { * @Description 获取话题附件信息 **/ TopicAttachmentResultDTO topicAttachmentList(TopicAttachmentFormDTO formDTO); + + /** + * @Description 根据事件枚举发送积分事件 + * @param param + * @return void + * @author wangc + * @date 2021.01.04 16:41 + */ + void sendTopicPointEventByEventType(TopicEventFormDTO param); + /** /** * @Description 向关注话题的人发送微信订阅 * @param tokenDto @@ -343,14 +353,6 @@ public interface ResiTopicService extends BaseService { */ void sendWxmpUpdateSubscribe(TokenDto tokenDto, String id, String type); - /** - * @Description 根据事件枚举发送积分事件 - * @param param - * @return void - * @author wangc - * @date 2021.01.04 16:41 - */ - void sendTopicPointEventByEventType(TopicEventFormDTO param); ResiTopicDTO queryTopicInfoByIssueId(String issueId); @@ -406,14 +408,6 @@ public interface ResiTopicService extends BaseService { */ List topicCreatedUserBatch(List topicIds); - /** - * @Description 根据话题id批量查询话题详情 - * @return - * @author wxz - * @date 2021.05.18 15:42 - */ - List listTopicDetailsByIds(List topicIdList); - /** * @Description 查询话题信息 * @Param issueIds @@ -421,4 +415,12 @@ public interface ResiTopicService extends BaseService { * @date 2021/5/17 4:19 下午 */ List getTopicInfos(List issueIds); + + /** + * @Description 根据话题id批量查询话题详情 + * @return + * @author wxz + * @date 2021.05.18 15:42 + */ + List listTopicDetailsByIds(List topicIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java index 523f81dc49..018e491409 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java @@ -310,7 +310,7 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl content.length() ? "\"" : "…\"")) + - "已被解决"); + "已被解决"); pointEventMsgList.add(pointEventMsg); mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); - if(!SendMqMsgUtils.sendMsg(mqBaseMsgDTO).success()){ - log.error("组长解决话题事件发送失败,参数:{}",JSON.toJSONString(closeFormDTO)); + if (!SendMqMsgUtils.sendMsg(mqBaseMsgDTO).success()) { + log.error("组长解决话题事件发送失败,参数:{}", JSON.toJSONString(closeFormDTO)); } } + //2021.4.22 start sun 因业务调整,新增组内消息记录表,话题状态变化时相应的修改数据状态 + GroupMessageEntity groupMessage = groupMessageDao.selectByMessageId(closeFormDTO.getTopicId()); + if (null != groupMessage) { + groupMessage.setStatus(TopicConstant.CLOSED); + groupMessageDao.updateById(groupMessage); + } + //2021.4.22 end sun //发送小组成就消息 boolean flag = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient) .sendGroupAchievementMqMsg(new GroupAchievementMQMsg(topic.getCustomerId(), topic.getGroupId(), AchievementTypeEnum.RESOVLE_TOPIC.getCode())); @@ -886,6 +885,15 @@ public class ResiTopicServiceImpl extends BaseServiceImpl gridInfoRes=govOrgOpenFeignClient.getGridBaseInfoByGridId(customerGridFormDTO); + if(gridInfoRes.success()&&null!=gridInfoRes.getData()){ + resultDTO.setGridName(gridInfoRes.getData().getGridNamePath()); + } + } //2.查询话题附件 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(FieldConstant.DEL_FLAG,NumConstant.ZERO_STR); @@ -1011,7 +1019,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl().ok(resultDTO); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java index 022a9cfcae..9a60f060b2 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java @@ -43,11 +43,13 @@ import com.epmet.dto.result.AllGridsByUserIdResultDTO; import com.epmet.dto.result.UserInfoResultDTO; import com.epmet.dto.result.CommonDataFilterResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.dto.result.UserInfoResultDTO; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.commons.tools.enums.AchievementTypeEnum; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.group.dao.GroupMessageDao; import com.epmet.modules.feign.GovOrgFeignClient; +import com.epmet.modules.group.dao.GroupMessageDao; import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.dao.ResiGroupStatisticalDao; import com.epmet.modules.group.entity.GroupMessageEntity; @@ -811,6 +813,16 @@ public class TopicDraftServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); + if (!dataFilterResult.success() || null == dataFilterResult.getData()) { + throw new RenException(dataFilterResult.getMsg()); + } + + sendMqMsg(draft.getCreatedBy(), draft.getCustomerId(), draft.getCreatedTime(),resiGroupRedis.get(draft.getGroupId()).getGroupName(), + breviary.toString(), dataFilterResult.getData().getAgencyId(), draft.getGridId(), draft.getGroupId(), resiTopic.getId()); //2021.4.22 start sun 因业务调整,新增组内消息记录表,新增话题时相应的初始数据 GroupMessageEntity messageEntity = new GroupMessageEntity(); @@ -824,16 +836,7 @@ public class TopicDraftServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); - if (!dataFilterResult.success() || null == dataFilterResult.getData()) { - throw new RenException(dataFilterResult.getMsg()); - } - sendMqMsg(draft.getCreatedBy(), draft.getCustomerId(), draft.getCreatedTime(),resiGroupRedis.get(draft.getGroupId()).getGroupName(), - breviary.toString(), dataFilterResult.getData().getAgencyId(), draft.getGridId(), draft.getGroupId(), resiTopic.getId()); } //记录操作记录 entity = baseDao.selectById(formDTO.getTopicDraftId()); @@ -962,6 +965,15 @@ public class TopicDraftServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); + if (!dataFilterResult.success() || null == dataFilterResult.getData()) { + throw new RenException(dataFilterResult.getMsg()); + } + sendMqMsg(tokenDto.getUserId(), formDTO.getCustomerId(), draft.getCreatedTime(), resiGroupRedis.get(draft.getGroupId()).getGroupName(), + breviary.toString(), dataFilterResult.getData().getAgencyId(), formDTO.getGridId(), formDTO.getGroupId(), topic.getId()); //2021.4.22 start sun 因业务调整,新增组内消息记录表,新增话题时相应的初始数据 GroupMessageEntity messageEntity = new GroupMessageEntity(); @@ -976,17 +988,6 @@ public class TopicDraftServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); - if (!dataFilterResult.success() || null == dataFilterResult.getData()) { - throw new RenException(dataFilterResult.getMsg()); - } - sendMqMsg(tokenDto.getUserId(), formDTO.getCustomerId(), draft.getCreatedTime(), resiGroupRedis.get(draft.getGroupId()).getGroupName(), - breviary.toString(), dataFilterResult.getData().getAgencyId(), formDTO.getGridId(), formDTO.getGroupId(), topic.getId()); - - } /** diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkRecordServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkRecordServiceImpl.java index d686cfc825..41164d925f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkRecordServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicShareLinkRecordServiceImpl.java @@ -234,7 +234,7 @@ public class TopicShareLinkRecordServiceImpl extends BaseServiceImpl - + - + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml index 6d82e4c200..605350bde2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml @@ -82,4 +82,26 @@ u.DEL_FLAG = '0' AND u.id = #{userId} + + + +