diff --git a/epmet-admin/epmet-admin-server/pom.xml b/epmet-admin/epmet-admin-server/pom.xml index cc3884aa4e..3661fc8c37 100644 --- a/epmet-admin/epmet-admin-server/pom.xml +++ b/epmet-admin/epmet-admin-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.15 + 0.3.17 com.epmet epmet-admin diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 496d5901fb..5f67b41712 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.70 + 0.3.72 com.epmet epmet-cloud 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-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 38a70d6582..1df41d92ae 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 (RenException e) { @@ -91,6 +98,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 @@ -225,7 +249,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/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 423ac83966..d5645f214d 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 @@ -348,6 +348,13 @@ public class RedisKeys { return rootPrefix.concat("stats:calflag"); } + /** + * 插入大屏指标数据分布式锁 key + */ + public static String getScreenIndexDataLockKey() { + return rootPrefix.concat("stats:indexcal:lock"); + } + /** * footbar缓存key * @param customerId @@ -358,12 +365,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 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/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-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/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 5f0a73ad1e..9718ae57b2 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,7 +1,5 @@ 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; @@ -148,4 +146,5 @@ public interface EpmetUserService { * @author sun */ StaffDetailV2FormDTO selectByStaffId(String staffId); + } 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-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-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java index d182572061..3da140aa04 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java @@ -11,12 +11,13 @@ import java.io.Serializable; * @DESC */ @Data -public class CategoryProjectListFormDTO implements Serializable { +public class CategoryProjectListFormDTO extends ProjectCategoryFormDTO implements Serializable { private static final long serialVersionUID = -5448734274886241594L; public interface CategoryProjectListForm{} + @NotNull(message = "pageSize不能为空",groups = CategoryProjectListForm.class) private Integer pageSize; @@ -26,22 +27,21 @@ public class CategoryProjectListFormDTO implements Serializable { /** * 项目状态:closed:已结案,all:全部 */ - @NotNull(message = "status不能为空",groups = CategoryProjectListForm.class) + @NotNull(message = "status不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class}) private String status; - @NotNull(message = "categoryCode不能为空",groups = CategoryProjectListForm.class) + @NotNull(message = "categoryCode不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class}) private String categoryCode; + @NotNull(message = "categoryName不能为空",groups = CategoryProjectExportForm.class) + private String categoryName; + private String parentCategoryName; + /** * 组织ID */ private String orgId; - /** - * 组织类型:agency:组织,grid:网格 - */ - private String orgType; - /** * 是否分页,默认true,false的时候 给导出用 */ diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java index 34043933bc..8cd3a4f083 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java @@ -16,6 +16,7 @@ public class ProjectCategoryFormDTO implements Serializable { private static final long serialVersionUID = 5047143743629810527L; public interface ProjectCategoryForm{} + public interface CategoryProjectExportForm {} /** * 组织ID @@ -27,7 +28,7 @@ public class ProjectCategoryFormDTO implements Serializable { */ private String orgType; - @NotBlank(message = "结束时间不能为空",groups = ProjectCategoryForm.class) + @NotBlank(message = "结束时间不能为空",groups = {ProjectCategoryForm.class,CategoryProjectExportForm.class}) private String endTime; /** diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java index c1e191b8bb..5250826a3c 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java @@ -45,6 +45,21 @@ public class CategoryProjectListResultDTO implements Serializable { */ private String projectId; + /** + * 上报人 + */ + private String linkName; + + /** + * 上报人电话 + */ + private String linkMobile; + + /** + * 事件地址 + */ + private String projectAddress; + @JsonIgnore private String orgId; diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java index f94fe8cb40..d51825c27b 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java @@ -23,11 +23,21 @@ public class ProjectCategoryResultDTO implements Serializable { */ private String categoryCode; + /** + * 分类code父级 + */ + private String parentCategoryCode; + /** * 分类名字 */ private String categoryName; + /** + * 分类名字父级 + */ + private String parentCategoryName; + /** * 项目总数 */ @@ -38,6 +48,11 @@ public class ProjectCategoryResultDTO implements Serializable { */ private Integer closedProjectTotal; + /** + * 所有项目总数 + */ + private Integer allProjectTotal; + /** * 总数占比 */ @@ -57,8 +72,9 @@ public class ProjectCategoryResultDTO implements Serializable { this.categoryName = ""; this.projectTotal = NumConstant.ZERO; this.closedProjectTotal = NumConstant.ZERO; - this.totalRatio = ""; - this.closedRatio = ""; + this.totalRatio = "0.00%"; + this.closedRatio = "0.00%"; this.children = new ArrayList<>(); + this.allProjectTotal = NumConstant.ZERO; } } 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/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java index afc882a39d..87aa340fac 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java @@ -29,6 +29,7 @@ import com.epmet.project.dto.result.ProjectCategoryResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -195,20 +196,13 @@ public class ScreenProjectController { * @date 2021/11/4 3:38 下午 */ @PostMapping("selectprojectcategory/export") - public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, /*@LoginUser*/ TokenDto tokenDto, HttpServletResponse response) throws Exception { - tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); - tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); - ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.ProjectCategoryForm.class); + public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class); List data = screenProjectService.selectProjectCategory(formDTO, tokenDto); String templatePath = "excel/project_category_temp.xlsx"; - StringBuilder dateBuilder = new StringBuilder(); - if (StringUtils.isNotBlank(formDTO.getStartTime())){ - dateBuilder.append(formDTO.getStartTime()).append(StrConstant.HYPHEN); - } - if (StringUtils.isNotBlank(formDTO.getEndTime())){ - dateBuilder.append(formDTO.getEndTime()); - } List resultDTOList = new ArrayList<>(); data.forEach(e->{ resultDTOList.add(e); @@ -219,7 +213,7 @@ public class ScreenProjectController { Map mapData = new HashMap<>(); mapData.put("list",resultDTOList); mapData.put("orgName",staffInfo.getAgencyName()); - mapData.put("exportDate",dateBuilder.toString()); + mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime())); Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); response.setHeader("content-Type", "application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目分类统计.xls", "UTF-8")); @@ -239,4 +233,50 @@ public class ScreenProjectController { return new Result().ok(screenProjectService.selectCategoryProjectList(formDTO,tokenDto)); } + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @PostMapping("selectcategoryprojectlist/export") + public void selectProjectCategoryExport(@RequestBody CategoryProjectListFormDTO formDTO,@LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + formDTO.setIsPage(false); + //formDTO.setStatus("all"); + //formDTO.setCategoryCode("0102"); + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class); + PageCategoryProjectListResultDTO data = screenProjectService.selectCategoryProjectList(formDTO,tokenDto); + String templatePath = "excel/project_temp.xlsx"; + + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + Map mapData = new HashMap<>(); + mapData.put("list",data.getList()); + mapData.put("orgName",staffInfo.getAgencyName()); + mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime())); + mapData.put("categoryName", formDTO.getCategoryName()); + if (StringUtils.isNotBlank(formDTO.getParentCategoryName())){ + mapData.put("categoryName", formDTO.getParentCategoryName().concat(StrConstant.HYPHEN).concat(formDTO.getCategoryName())); + } + + Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目统计.xls", "UTF-8")); + workbook.write(response.getOutputStream()); + } + + @NotNull + private String getExportDateStr(String startTime,String endTime) { + StringBuilder dateBuilder = new StringBuilder(); + if (StringUtils.isNotBlank(startTime)) { + dateBuilder.append(startTime).append(StrConstant.HYPHEN); + } + if (StringUtils.isNotBlank(endTime)) { + dateBuilder.append(endTime); + } + return dateBuilder.toString(); + } + } 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/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 45eeb51736..ecae6064a9 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; } @@ -279,6 +280,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/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java index 3a3fe87591..4c0833ba3e 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java @@ -284,6 +284,7 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { endCategoryList.forEach(e -> { e.setTotalRatio(ratio(e.getProjectTotal(), finalTotal)); e.setClosedRatio(ratio(e.getClosedProjectTotal(),e.getProjectTotal())); + e.setAllProjectTotal(finalTotal); }); }else { Integer endTotal = screenProjectOrgDailyDao.selectProjectTotalByAgency(customerId, endTime, orgId); @@ -302,15 +303,21 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { endCategoryList.forEach(e -> { e.setTotalRatio(ratio(e.getProjectTotal(), finalTotal)); e.setClosedRatio(ratio(e.getClosedProjectTotal(),e.getProjectTotal())); + e.setAllProjectTotal(finalTotal); }); } List finalEndCategoryList = endCategoryList; result.forEach(r -> { finalEndCategoryList.stream().filter(e -> r.getCategoryCode().equals(e.getCategoryCode())).forEach(e -> { r.setTotalRatio(e.getTotalRatio());r.setClosedRatio(e.getClosedRatio()); + r.setProjectTotal(e.getProjectTotal()); + r.setClosedProjectTotal(e.getClosedProjectTotal()); + r.setAllProjectTotal(e.getAllProjectTotal()); }); r.getChildren().forEach(son -> finalEndCategoryList.stream().filter(e -> son.getCategoryCode().equals(e.getCategoryCode())).forEach(e -> { son.setTotalRatio(e.getTotalRatio());son.setClosedRatio(e.getClosedRatio()); + son.setProjectTotal(e.getProjectTotal());son.setClosedProjectTotal(e.getClosedProjectTotal()); + son.setAllProjectTotal(e.getAllProjectTotal()); })); }); // 排序 @@ -343,10 +350,10 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { if (denominator == NumConstant.ZERO){ return "0.00%"; } - BigDecimal bigDecimalMolecule = new BigDecimal(molecule); + BigDecimal bigDecimalMolecule = new BigDecimal(molecule * NumConstant.ONE_HUNDRED); BigDecimal bigDecimalDenominator = new BigDecimal(denominator); BigDecimal divide = bigDecimalMolecule.divide(bigDecimalDenominator, NumConstant.TWO, BigDecimal.ROUND_HALF_UP); - return divide.multiply(NumConstant.ONE_HUNDRED_DECIMAL)+"%"; + return divide+"%"; } /** 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/excel/project_category_temp.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx index f12e92967d..6054a88289 100644 Binary files a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx differ diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx new file mode 100644 index 0000000000..743bd60ecc Binary files /dev/null and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx differ 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 26d9ac136c..babe8835c5 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/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml index 96d06f7f93..b9dfb3faaa 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -94,9 +94,12 @@ + + + SELECT ORG_ID, PROJECT_TOTAL, - LEVEL + LEVEL, + DATA_END_TIME as dataEndTime FROM screen_an_community_project_profile WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsGovernMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsGovernMonthlyDao.xml index 4f4e7e96c5..f9c4917cdc 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsGovernMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsGovernMonthlyDao.xml @@ -9,7 +9,8 @@ CLOSED_PROJECT_TOTAL, CONCAT( 0 + cast( TRUNCATE ( PROJECT_RESPONSE_RATIO, 1 ) AS CHAR ), '%' ) AS "projectResponseRatio", CONCAT( 0 + cast( TRUNCATE ( PROJECT_SATIS_RATIO, 1 ) AS CHAR ), '%' ) AS "projectSatisRatio", - CONCAT( 0 + cast( TRUNCATE ( CLOSED_PROJECT_RATIO, 1 ) AS CHAR ), '%' ) AS "closedProjectRatio" + CONCAT( 0 + cast( TRUNCATE ( CLOSED_PROJECT_RATIO, 1 ) AS CHAR ), '%' ) AS "closedProjectRatio", + MONTH_ID FROM screen_an_grass_roots_govern_monthly WHERE DEL_FLAG = 0 AND ORG_ID = #{agencyId} @@ -55,7 +56,8 @@ CLOSED_PROJECT_TOTAL, CONCAT( 0 + cast( TRUNCATE ( PROJECT_RESPONSE_RATIO, 1 ) AS CHAR ), '%' ) AS "projectResponseRatio", CONCAT( 0 + cast( TRUNCATE ( PROJECT_SATIS_RATIO, 1 ) AS CHAR ), '%' ) AS "projectSatisRatio", - CONCAT( 0 + cast( TRUNCATE ( CLOSED_PROJECT_RATIO, 1 ) AS CHAR ), '%' ) AS "closedProjectRatio" + CONCAT( 0 + cast( TRUNCATE ( CLOSED_PROJECT_RATIO, 1 ) AS CHAR ), '%' ) AS "closedProjectRatio", + MONTH_ID FROM screen_an_grass_roots_govern_monthly WHERE DEL_FLAG = 0 AND PID = #{agencyId} diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsOrgMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsOrgMonthlyDao.xml index 9bf5d9a061..2b5be8dfcf 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsOrgMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenan/ScreenAnGrassRootsOrgMonthlyDao.xml @@ -7,7 +7,8 @@ + + - - 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 - rgas.GROUP_ID, - rg.GROUP_NAME, - rgas.ACHIEVEMENT_NAME - FROM - resi_group_achievement_stats rgas - INNER JOIN resi_group rg ON rgas.GROUP_ID = rg.ID AND rg.GRID_ID = #{gridId} - INNER JOIN resi_group_member rgm ON rgas.GROUP_ID = rgm.RESI_GROUP_ID - AND rgm.CUSTOMER_USER_ID = #{userId} AND rgm.DEL_FLAG = '0' - - WHERE - rgas.IS_ARRIVE = 1 - AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(rgas.ARRIVE_TIME) - ORDER BY - rgas.ARRIVE_TIME DESC - + -