result = commonServiceOpenFeignClient.externalAppAuth(form);
if (result == null) {
throw new RenException("调用服务进行外部应用认证,返回null");
@@ -84,7 +95,7 @@ public class ExternalAppRequestAuthAspect {
if (parameters[i].getType() == ExternalAppRequestParam.class) {
ExternalAppRequestParam requestParam = (ExternalAppRequestParam) point.getArgs()[i];
requestParam.setAppId(appId);
- requestParam.setCustomerId(authResult.getCustomerId());
+ requestParam.setCustomerId(authResult.getCustomerId() == null ? customerId : authResult.getCustomerId());
}
}
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/CustomerApplicationRunner.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/CustomerApplicationRunner.java
new file mode 100644
index 0000000000..8e065c792a
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/CustomerApplicationRunner.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.commons.tools.aspect;
+
+import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
+import com.epmet.commons.tools.enums.EnvEnum;
+import com.epmet.commons.tools.utils.HttpClientManager;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.utils.SpringContextUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.cloud.commons.util.InetUtils;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * 应用 启动健康检查 通知类
+ * CustomerApplicationRunner
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Component
+@Order(value = 99)
+public class CustomerApplicationRunner implements ApplicationRunner {
+ private static Logger logger = LogManager.getLogger(CustomerApplicationRunner.class);
+ @Value("${spring.application.name}")
+ private String appName;
+
+ @Override
+ public void run(ApplicationArguments args) {
+ //发送启动成功消息
+ EnvEnum currentEnv = EnvEnum.getCurrentEnv();
+ logger.info(currentEnv);
+ if (!EnvEnum.DEV.getCode().equals(currentEnv.getCode())) {
+ InetUtils inetUtils = SpringContextUtils.getBean(InetUtils.class);
+ String serverIp = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+
+ //开发小组 群机器人地址
+ String url = "https://oapi.dingtalk.com/robot/send?access_token=ffd7c972b0525e249283df1a16b65a8b9d0012601f3a458dfc588c2eac497bb5";
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(EnvEnum.getCurrentEnv().getName())
+ .append("【")
+ .append(appName)
+ .append("】")
+ .append("ip地址: ")
+ .append(serverIp)
+ .append("部署完毕!");
+ DingTalkTextMsg msg = new DingTalkTextMsg();
+ msg.setWebHook(url);
+ msg.setAtAll(true);
+ msg.setContent(stringBuilder.toString());
+ Result stringResult = HttpClientManager.getInstance().sendPostByJSON(url, msg.getMsgContent());
+ logger.info(stringResult);
+ }
+ }
+
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
index 92af86d3a9..e906535166 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
@@ -1,5 +1,7 @@
package com.epmet.commons.tools.constant;
+import java.math.BigDecimal;
+
/**
* 常用数字常量
*
@@ -35,6 +37,10 @@ public interface NumConstant {
int ONE_HUNDRED = 100;
int ONE_THOUSAND = 1000;
int MAX = 99999999;
+ int EIGHTY_EIGHT = 88;
+
+ double ZERO_DOT_ZERO = 0.0;
+
long ZERO_L = 0L;
long ONE_L = 1L;
@@ -52,4 +58,6 @@ public interface NumConstant {
String POSITIVE_EIGHT_STR = "+8";
String EMPTY_STR = "";
String ONE_NEG_STR = "-1";
+
+ String FIFTY_STR="50";
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
index 655635e6d7..03233b7c47 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
@@ -77,4 +77,8 @@ public interface StrConstant {
String NULL_STR="null";
String NOT_FILLED = "无";
+
+ String MIN="MIN";
+
+ String MAX="MAX";
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java
index ed265248e6..0c3f798318 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java
@@ -1,5 +1,8 @@
package com.epmet.commons.tools.enums;
+import com.epmet.commons.tools.utils.SpringContextUtils;
+import org.springframework.core.env.Environment;
+
/**
* 系统环境变量枚举类
* dev|test|prod
@@ -34,6 +37,20 @@ public enum EnvEnum {
return EnvEnum.UN_KNOWN;
}
+ public static EnvEnum getCurrentEnv(){
+ try {
+ Environment environment = SpringContextUtils.getBean(Environment.class);
+ String[] activeProfiles = environment.getActiveProfiles();
+ if (activeProfiles != null && activeProfiles.length > 0) {
+ return getEnum(activeProfiles[0]);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return EnvEnum.UN_KNOWN;
+ }
+
+
public String getCode() {
return code;
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
index bc4358bd93..284ef67e74 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
@@ -51,6 +51,7 @@ public enum RequirePermissionEnum {
ORG_STAFF_CREATE("org_staff_create", "组织:工作人员:新增", "组织:工作人员:新增"),
ORG_STAFF_UPDATE("org_staff_update", "组织:工作人员:编辑", "组织:工作人员:编辑"),
ORG_STAFF_FORBIDDEN("org_staff_forbidden", "组织:工作人员:禁用", "组织:工作人员:禁用"),
+ ORG_STAFF_TRANSFER("org_staff_transfer", "组织:工作人员:调动", "组织:工作人员:调动"),
/**
* 组织-部门
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
index d3d2b8ccd1..29816d9e30 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
@@ -77,6 +77,8 @@ public enum EpmetErrorCode {
CANNOT_DISABLE_YOURSELF(8405,"您不能禁用自己"),
NO_SET_GRID_COUNT(8406,"您还未设置创建网格数量上限,请联系管理员设置"),
GRID_COUNT_UP(8407,"您的创建网格数量已到达上限,请联系管理员设置"),
+ EXIT_PEND_PROJECT(8408,"该工作人员有项目尚在处理,处理完毕方可操作"),
+ EXIT_PUBLISHED_ACTIVITY(8409,"该工作人员有活动尚在进行,等活动完成方可操作"),
ALREADY_EVALUATE(8501,"您已评价"),
ALREADY_VOTE(8502,"您已表态"),
@@ -104,6 +106,7 @@ public enum EpmetErrorCode {
OPER_EXTERNAL_APP_AUTH_ERROR(8709, "外部应用认证失败"),
OPER_EXTERNAL_CUSTOMER_NOT_EXISTS(8710, "该客户不存在"),
OPER_EXTERNAL_APP_EXISTS(8711, "应用已存在"),
+ OPER_EXT_APP_SECRET_RESET_FAIL(8713, "秘钥更新失败"),
// 党建声音 前端提示 88段
DRAFT_CONTENT_IS_NULL(8801, "至少需要添加一个段落"),
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 a5be29eb58..0d623e2010 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
@@ -297,4 +297,12 @@ public class RedisKeys {
public static String getExternalAppSecretKey(String appId) {
return String.format(rootPrefix+"externalapp:secret:%s",appId);
}
+
+ /**
+ * 计算指标时获取指标code和fields关系缓存Key
+ * @return
+ */
+ public static String getIndexCodeFieldReKey() {
+ return rootPrefix.concat("data:index:indexcode:field");
+ }
}
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 0a45a6b290..75174f4216 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
@@ -9,6 +9,7 @@
package com.epmet.commons.tools.utils;
import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.StrConstant;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
@@ -33,6 +34,11 @@ public class DateUtils {
public static final List Q3Months = Arrays.asList(7, 8, 9);
public static final List Q4Months = Arrays.asList(10, 11, 12);
+ public static final List Q1MonthsStrList = Arrays.asList("1", "2", "3","01","02","03");
+ public static final List Q2MonthsStrList = Arrays.asList("4", "5", "6","04", "05", "06");
+ public static final List Q3MonthsStrList = Arrays.asList("7", "8", "9","07", "08", "09");
+ public static final List Q4MonthsStrList = Arrays.asList("10", "11", "12");
+
/** 时间格式(yyyy-MM-dd) */
public final static String DATE_PATTERN = "yyyy-MM-dd";
/** 时间格式(yyyy-MM-dd HH:mm:ss) */
@@ -298,6 +304,29 @@ public class DateUtils {
return 4;
}
+ /**
+ * 获取季度
+ * @param monthId yyyyMM
+ * @return yyyyQ1、yyyyQ2、yyyyQ3、yyyyQ4
+ */
+ public static String getQuarterId(String monthId) {
+ String year = monthId.substring(0, 4);
+ String month = monthId.substring(4, 6);
+ if (Q1MonthsStrList.contains(month)) {
+ return year.concat("Q1");
+ }
+ if (Q2MonthsStrList.contains(month)) {
+ return year.concat("Q2");
+ }
+ if (Q3MonthsStrList.contains(month)) {
+ return year.concat("Q3");
+ }
+ if(Q4MonthsStrList.contains(month)){
+ return year.concat("Q4");
+ }
+ return StrConstant.EPMETY_STR;
+ }
+
/**
* 根据季度查询季度的月份列表
* @param quarterIndex
@@ -557,4 +586,11 @@ public class DateUtils {
System.out.println(comparteDate(yesterDay,today));
System.out.println(comparteDate(tomorrow,today));
}
+
+ public static String getYearId(String monthId) {
+ if (StringUtils.isNotBlank(monthId) && monthId.length() > 4) {
+ return monthId.substring(NumConstant.ZERO, NumConstant.FOUR);
+ }
+ return StrConstant.EPMETY_STR;
+ }
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java
index 6a01fa6c0f..d27da23ab7 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java
@@ -61,8 +61,9 @@ public class HttpContextUtils {
}
//请求语言
- defaultLanguage = request.getHeader(HttpHeaders.ACCEPT_LANGUAGE);
-
+ if(StringUtils.isNotBlank(request.getHeader(HttpHeaders.ACCEPT_LANGUAGE))){
+ defaultLanguage = request.getHeader(HttpHeaders.ACCEPT_LANGUAGE);
+ }
return defaultLanguage;
}
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/UniqueIdGenerator.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/UniqueIdGenerator.java
new file mode 100644
index 0000000000..fcefbdf2ca
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/UniqueIdGenerator.java
@@ -0,0 +1,81 @@
+package com.epmet.commons.tools.utils;
+
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Date;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * 唯一ID生成器
+ */
+public class UniqueIdGenerator {
+
+ private static UniqueValue uniqueValue = new UniqueValue();
+ private static String middle;
+ static {
+ String threadCode = StringUtils.right(String.valueOf(Math.abs(System.nanoTime()+"".hashCode())), 2);
+ middle = StringUtils.leftPad(threadCode, 2, "0");
+ }
+
+ /**
+ * 唯一时间值
+ */
+ private static class UniqueValue {
+
+ private AtomicLong uniqueValue = new AtomicLong(0L);
+ private volatile String currentTime = DateUtils.format(new Date(), DateUtils.DATE_TIME_NO_SPLIT);
+ private volatile String lastTime = currentTime;
+
+ /**
+ * 获取当前时间:yyyyMMddHHmmSS
+ * 如果到了下一秒,则唯一值从0开始
+ *
+ * @return
+ */
+ public String getCurrentTime() {
+ currentTime = DateUtils.format(new Date(), DateUtils.DATE_TIME_NO_SPLIT);
+ if (!currentTime.equals(lastTime)) {
+ lastTime = currentTime;
+ Random random = new Random();
+ uniqueValue.set(Long.valueOf(random.nextInt(10)));
+ }
+ return currentTime;
+ }
+
+ public String getCurrentValue() {
+ return StringUtils.leftPad(String.valueOf(uniqueValue.incrementAndGet()), 5, "0");
+ }
+ }
+
+ /**
+ * 生成一个24位唯一ID
+ * 15位时间+2位中间值(防止多服务冲突)+2个线程code+5位秒级递增值
+ *
+ * @return
+ */
+ public static String generate() {
+ StringBuilder builder = new StringBuilder(32);
+ builder.append(uniqueValue.getCurrentTime())
+ .append(middle)
+ .append(getUniqueThreadCode())
+ .append(uniqueValue.getCurrentValue());
+
+ return builder.toString();
+ }
+
+ public static String getUniqueThreadCode() {
+ String threadCode = StringUtils.left(String.valueOf(Thread.currentThread().hashCode()), 2);
+ return StringUtils.leftPad(threadCode, 2, "0");
+ }
+
+ public static void main(String[] args) throws InterruptedException {
+
+ System.out.println(UniqueIdGenerator.uniqueValue.currentTime);
+ System.out.println(UniqueIdGenerator.middle);
+ System.out.println(UniqueIdGenerator.getUniqueThreadCode());
+ System.out.println(uniqueValue.getCurrentValue());
+
+ }
+}
diff --git a/epmet-gateway/deploy/docker-compose-dev.yml b/epmet-gateway/deploy/docker-compose-dev.yml
index 82a1bb2c15..3329f89b6d 100644
--- a/epmet-gateway/deploy/docker-compose-dev.yml
+++ b/epmet-gateway/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-gateway-server:
container_name: epmet-gateway-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.32
+ image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.35
ports:
- "8080:8080"
network_mode: host # 使用现有网络
diff --git a/epmet-gateway/deploy/docker-compose-prod.yml b/epmet-gateway/deploy/docker-compose-prod.yml
index 6b8419721d..c5c27e870b 100644
--- a/epmet-gateway/deploy/docker-compose-prod.yml
+++ b/epmet-gateway/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-gateway-server:
container_name: epmet-gateway-server-prod
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-gateway:0.3.30
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-gateway:0.3.33
ports:
- "8080:8080"
network_mode: host # 使用现有网络
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index d595ba019c..66279bb8ad 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -2,7 +2,7 @@
4.0.0
- 0.3.32
+ 0.3.35
com.epmet
epmet-cloud
@@ -100,8 +100,8 @@
123456
true
- 122.152.200.70:8848
- fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b
+ 192.168.1.130:8848
+ 6ceab336-d004-4acf-89c6-e121d06f4988
false
diff --git a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
index 43fbf6d0cb..7c74fa6763 100644
--- a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
+++ b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
@@ -135,7 +135,9 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory organizeData;
+
+ /**
+ * 组织名称数组
+ * */
+ private List xAxis;
+
+ /**
+ * 参与人数
+ * */
+ private List joinData;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchBuildTrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchBuildTrendResultDTO.java
new file mode 100644
index 0000000000..fc3fc3958d
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchBuildTrendResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 3、支部建设情况|联建共建情况-折线图 返参DTO
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @ClassName BranchBuildTrendResultDTO
+ * @Auth wangc
+ * @Date 2020-08-19 10:06
+ */
+@Data
+public class BranchBuildTrendResultDTO implements Serializable {
+ private static final long serialVersionUID = 2453727230656371207L;
+
+ /**
+ * 分类数组 ["三会党课","主体党日","三述专题","志愿服务","党内关怀"]
+ * */
+ private List legend;
+
+ /**
+ * 横坐标,近12个月的结合 ["8月","9月"]
+ * */
+ private List xAxis;
+
+ private List seriesData;
+
+ /**
+ * 总组织次数
+ * */
+ private Integer totalOrganizationCount = NumConstant.ZERO;
+
+ /**
+ * 总参与人数
+ * */
+ private Integer totalJoinUserCount = NumConstant.ZERO;
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchIssueDataResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchIssueDataResultDTO.java
new file mode 100644
index 0000000000..7708001e26
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchIssueDataResultDTO.java
@@ -0,0 +1,22 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @ClassName BranchIssueDataResultDTO
+ * @Auth wangc
+ * @Date 2020-08-19 10:50
+ */
+@Data
+public class BranchIssueDataResultDTO implements Serializable {
+ private static final long serialVersionUID = 2417543749267496482L;
+
+ private String issue;
+
+ private String monthId;
+
+ private Integer data;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchResultDTO.java
new file mode 100644
index 0000000000..431859c7d3
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchResultDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 10:52 上午
+ */
+@Data
+public class BranchResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -8001714892170166320L;
+
+ /**
+ * 网格ID
+ */
+ private String gridId = "";
+
+ /**
+ * 网格名称
+ */
+ private String gridName = "";
+
+ /**
+ * 党支部(网格)位置
+ */
+ private String partyMark = "";
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchTrendSeriesDataResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchTrendSeriesDataResultDTO.java
new file mode 100644
index 0000000000..c1a921508f
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/BranchTrendSeriesDataResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 3、支部建设情况|联建共建情况-折线图 返参中的系列数组
+ * @ClassName BranchTrendSeriesDataResultDTO
+ * @Auth wangc
+ * @Date 2020-08-19 10:22
+ */
+@Data
+public class BranchTrendSeriesDataResultDTO implements Serializable {
+ private static final long serialVersionUID = -2288264050517402039L;
+
+ /**
+ * 和legend集合值一致
+ * */
+ private String name;
+
+ /**
+ * 对应每个月的数值
+ * */
+ private List data;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java
new file mode 100644
index 0000000000..b959cf8ea7
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/CompartmentResultDTO.java
@@ -0,0 +1,49 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 14:18
+ */
+@Data
+public class CompartmentResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 7963177476365327829L;
+
+ /**
+ * 当前所选组织
+ */
+ private String agencyId = "";
+
+ /**
+ * 当前所选组织名称
+ */
+ private String name = "";
+
+ /**
+ * 当前所选组织的坐标区域
+ */
+ private String areaMarks = "";
+
+ /**
+ * 机关级别
+ * 社区级:community,
+ * 乡(镇、街道)级:street,
+ * 区县级: district,
+ * 市级: city
+ * 省级:province
+ */
+ @JsonIgnore
+ private String level;
+
+ /**
+ * 子级用户分布
+ */
+ private List agencyDistribution = new ArrayList<>();
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResult.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResult.java
new file mode 100644
index 0000000000..2cac006003
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResult.java
@@ -0,0 +1,30 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 2:45 下午
+ */
+@Data
+public class ContactMassLineChartResult implements Serializable {
+
+ private static final long serialVersionUID = 5668549816473850787L;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 党员建群数
+ */
+ private Integer groupTotal;
+
+ /**
+ * 群成员数
+ */
+ private Integer userTotal;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResultDTO.java
new file mode 100644
index 0000000000..69b5244ae0
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ContactMassLineChartResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 2:31 下午
+ */
+@Data
+public class ContactMassLineChartResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 192666933158635787L;
+
+ /**
+ * 横坐标集合
+ */
+ private List xAxis;
+
+ /**
+ * 党员建群数
+ */
+ private List groupData;
+
+ /**
+ * 群成员数
+ */
+ private List groupMemberData;
+
+ /**
+ * 党员建群数
+ **/
+ private Integer groupTotal = NumConstant.ZERO;
+
+ /**
+ * 党成员数
+ * */
+ private Integer groupMemberTotal = NumConstant.ZERO;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/DifficultProjectResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/DifficultProjectResultDTO.java
new file mode 100644
index 0000000000..fb37328232
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/DifficultProjectResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数 返参DTO
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @ClassName DifficultProjectResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 13:43
+ */
+@Data
+public class DifficultProjectResultDTO implements Serializable {
+ private static final long serialVersionUID = -7338625142484943434L;
+
+ private String projectId;
+
+ private String title;
+
+ /**
+ * 状态: 待处理: pending; 结案closed
+ * */
+ private String status;
+
+ private Integer totalHours;
+
+ /**
+ * yyyy-MM-dd HH:mm
+ * */
+ private String createDateTime;
+
+ private String gridName;
+
+ private String imgUrl;
+
+ private String categoryName;
+
+ private Integer handleDepts;
+
+ private Integer handleCount;
+
+}
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
new file mode 100644
index 0000000000..b522e3166c
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/FineExampleResultDTO.java
@@ -0,0 +1,81 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 1:48 下午
+ */
+@Data
+public class FineExampleResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -2754696449087950719L;
+
+ /**
+ * 党员参与议事
+ */
+ private Integer issueTotal = 0;
+
+ @JsonIgnore
+ private Double issueRatioA;
+
+ /**
+ * 党员参与议事占比
+ */
+ private String issueRatio = "0.00%";
+
+ /**
+ * 党员发布话题总数
+ */
+ private Integer topicTotal = 0;
+
+ @JsonIgnore
+ private Double topicRatioA;
+
+ /**
+ * 党员发布话题占比
+ */
+ private String topicRatio = "0.00%";
+
+ /**
+ * 议题转项目
+ */
+ private Integer shiftProjectTotal = 0;
+
+ @JsonIgnore
+ private Double shiftProjectRatioA;
+
+ /**
+ * 议题转项目占比
+ */
+ private String shiftProjectRatio = "0.00%";
+
+ /**
+ * 解决项目
+ */
+ private Integer resolvedProjectTotal = 0;
+
+ @JsonIgnore
+ private Double resolvedProjectRatioA;
+
+ /**
+ * 解决项目占比
+ */
+ private String resolvedProjectRatio = "0.00%";
+
+ /**
+ * 党员发布议题数
+ */
+ private Integer publishIssueTotal = 0;
+
+ @JsonIgnore
+ private Double publishIssueRatioA;
+
+ /**
+ * 党员发布议题数占比
+ */
+ private String publishIssueRatio = "0.00%";
+}
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
new file mode 100644
index 0000000000..0f6b481e1c
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityRankResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 治理能力榜单返参dto
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @ClassName GovernCapacityRankResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 17:30
+ */
+@Data
+public class GovernCapacityRankResultDTO implements Serializable {
+ private static final long serialVersionUID = -3891870459284304022L;
+
+ /**
+ * 名称
+ * */
+ private String agencyName;
+
+ /**
+ * 响应率
+ * */
+ private String responseRatio;
+
+ /**
+ * 解决率
+ * */
+ private String resolvedRatio;
+
+ /**
+ * 自治率
+ * */
+ private String governRatio;
+
+ /**
+ * 满意率
+ * */
+ private String satisfactionRatio;
+}
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
new file mode 100644
index 0000000000..f51fe26255
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GovernCapacityResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description 治理能力查询结果dto
+ * @ClassName GovernCapacityResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 17:24
+ */
+@Data
+public class GovernCapacityResultDTO implements Serializable {
+ private static final long serialVersionUID = -2834039644611050304L;
+
+ /**
+ * 名称
+ * */
+ private String agencyName;
+
+ /**
+ * 响应率
+ * */
+ private BigDecimal responseRatio;
+
+ /**
+ * 解决率
+ * */
+ private BigDecimal resolvedRatio;
+
+ /**
+ * 自治率
+ * */
+ private BigDecimal governRatio;
+
+ /**
+ * 满意率
+ * */
+ private BigDecimal satisfactionRatio;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResult.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResult.java
new file mode 100644
index 0000000000..ef79775673
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResult.java
@@ -0,0 +1,25 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 9:12 上午
+ */
+@Data
+public class MonthBarchartResult implements Serializable {
+
+ private static final long serialVersionUID = 3777652772902180088L;
+
+ private String monthId;
+
+ private Double serviceAbility;
+
+ private Double partyDevAbility;
+
+ private Double governAbility;
+
+ private Double indexTotal;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResultDTO.java
new file mode 100644
index 0000000000..ad21904ba2
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthBarchartResultDTO.java
@@ -0,0 +1,41 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 5:23 下午
+ */
+@Data
+public class MonthBarchartResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 561457498288576566L;
+
+ /**
+ * 服务能力
+ */
+ private List serviceAbilityData;
+
+ /**
+ * 党建能力
+ */
+ private List partyDevAbilityData;
+
+ /**
+ * 治理能力
+ */
+ private List governAbilityData;
+
+ /**
+ * 横坐标月份集合
+ */
+ private List xAxis;
+
+ /**
+ * 总指数集合
+ */
+ private List totalIndexData;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthPieChartResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthPieChartResultDTO.java
new file mode 100644
index 0000000000..89ca2fd383
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/MonthPieChartResultDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 3:12 下午
+ */
+@Data
+public class MonthPieChartResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 8399158251970739021L;
+
+ /**
+ * 服务能力
+ */
+ private Double serviceAbility = 0.0;
+
+ /**
+ * 党建能力
+ */
+ private Double partyDevAbility = 0.0;
+
+ /**
+ * 治理能力
+ */
+ private Double governAbility = 0.0;
+}
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
new file mode 100644
index 0000000000..9aff92593f
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/OrgRankDataResultDTO.java
@@ -0,0 +1,54 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description 党建引领-组织先进排行榜 查询结果dto
+ * @ClassName OrgRankDataResultDTO
+ * @Auth wangc
+ * @Date 2020-08-21 11:16
+ */
+@Data
+public class OrgRankDataResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -2980098512184391207L;
+
+ /**
+ * 名称 XXXX社区党委
+ * */
+ private String name;
+
+ /**
+ * 满意度 90.64% 返回字符串,前端直接显示
+ * */
+ private BigDecimal satisfactionRatio;
+
+ /**
+ * 结案率 94.3% 返回字符串,前端直接显示
+ * */
+ private BigDecimal closedProjectRatio;
+
+ /**
+ * 党员数
+ * */
+ private Integer partyMemberNum;
+
+ /**
+ * 支部建设 GROUP_TOTAL
+ * */
+ private Integer branchNum;
+
+ /**
+ * 议题数
+ * */
+ private Integer issueNum;
+
+ /**
+ * 项目数
+ * */
+ private Integer projectNum;
+
+}
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
new file mode 100644
index 0000000000..3450a623a6
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartyUserPointResultDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 党员积分查询结果 dto 作为接口【5、先进排行榜单-先进党员排行】的返参对象 NEI地址: https://nei.netease.com/interface/detail/res/?pid=57068&id=321624
+ * @ClassName PartyUserPointResultDTO
+ * @Auth wangc
+ * @Date 2020-08-21 14:18
+ */
+@Data
+public class PartyUserPointResultDTO implements Serializable {
+ private static final long serialVersionUID = -288523161283142460L;
+
+ /**
+ * 用户Id
+ * */
+ private String userId;
+
+ /**
+ * 用户姓名
+ * */
+ private String name;
+
+ /**
+ * 用户积分
+ * */
+ private Integer point;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgeDistributionResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgeDistributionResultDTO.java
new file mode 100644
index 0000000000..4f9785b6b4
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgeDistributionResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @ClassName PartymemberAgeDistributionResultDTO
+ * @Auth wangc
+ * @Date 2020-08-18 17:04
+ */
+@Data
+public class PartymemberAgeDistributionResultDTO implements Serializable {
+ private static final long serialVersionUID = -3477512511475784330L;
+
+ /**
+ * 30岁以下 的党员
+ * */
+ private Integer under30Count = NumConstant.ZERO;
+
+ /**
+ * 31-50岁 的党员
+ * */
+ private Integer between31And50Count = NumConstant.ZERO;
+
+ /**
+ * 51-60岁 的党员
+ * */
+ private Integer between51And60Count = NumConstant.ZERO;
+
+ /**
+ * 61岁以上 的党员
+ * */
+ private Integer above61Count = NumConstant.ZERO;
+
+ /**
+ * 党员总数
+ * */
+ private Integer partyTotal = NumConstant.ZERO;
+
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgePercentResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgePercentResultDTO.java
new file mode 100644
index 0000000000..4a301f0ca0
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberAgePercentResultDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description
+ * @ClassName PartymemberAgePercentResultDTO
+ * @Auth wangc
+ * @Date 2020-08-19 09:13
+ */
+@Data
+public class PartymemberAgePercentResultDTO implements Serializable {
+ private static final long serialVersionUID = 2228109850328978771L;
+
+ /**
+ * 30岁以下 的党员占 注册党员总数的百分比 (返回数字,小数点后保留两位)
+ * */
+ private BigDecimal under30Ratio;
+
+ /**
+ * 31-50岁 的党员占 注册党员总数的百分比(返回数字,小数点后保留两位)
+ * */
+ private BigDecimal between31And50Ratio;
+
+ /**
+ * 51-60岁 的党员占 注册党员总数的百分比(返回数字,小数点后保留两位)
+ * */
+ private BigDecimal between51And60Ratio;
+
+ /**
+ * 61岁以上 的党员占 注册党员总数的百分比(返回数字,小数点后保留两位)
+ * */
+ private BigDecimal above61;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberPercentResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberPercentResultDTO.java
new file mode 100644
index 0000000000..a8ea84d711
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PartymemberPercentResultDTO.java
@@ -0,0 +1,34 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321324
+ * @ClassName PartymemberPercentResultDTO
+ * @Auth wangc
+ * @Date 2020-08-18 14:54
+ */
+@Data
+public class PartymemberPercentResultDTO implements Serializable {
+ private static final long serialVersionUID = -2864099044581782674L;
+
+ /**
+ * 注册党员总数
+ * */
+ private Integer partyMemberTotal = NumConstant.ZERO;
+
+ /**
+ * 注册党员占比
+ * */
+ private String percentInPlatForm;
+
+ /**
+ * 注册用户总数
+ * */
+ private Integer platFormTotal = NumConstant.ZERO;
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberDistributionResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberDistributionResultDTO.java
new file mode 100644
index 0000000000..71efdac8ff
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberDistributionResultDTO.java
@@ -0,0 +1,48 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 11:06 上午
+ */
+@Data
+public class ParymemberDistributionResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 9180892033529262049L;
+
+ /**
+ * 可能是gridId,可能是agencyId
+ */
+ private String subId = "";
+
+ /**
+ * 中心点位
+ */
+ private String centerMark = "";
+
+ /**
+ * 党员总人数
+ */
+ private Integer totalNum = 0;
+
+ /**
+ * 坐标区域
+ */
+ @JsonIgnore
+ private String areaMarks = "";
+
+ /**
+ * 可以是网格的名称,可以是组织的名称
+ */
+ private String subName= "";
+
+ /**
+ * 组织:agency, 网格 : grid;
+ */
+ private String type = "";
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberResultDTO.java
new file mode 100644
index 0000000000..a435dea3d3
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ParymemberResultDTO.java
@@ -0,0 +1,50 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 11:03 上午
+ */
+@Data
+public class ParymemberResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -7230556020628357047L;
+
+ /**
+ * 当前所选组织
+ */
+ private String agencyId = "";
+
+ /**
+ * 当前所选组织名称
+ */
+ private String name = "";
+
+ /**
+ * 当前所选组织的坐标区域
+ */
+ @JsonIgnore
+ private String areaMarks = "";
+
+ /**
+ * 机关级别
+ * 社区级:community,
+ * 乡(镇、街道)级:street,
+ * 区县级: district,
+ * 市级: city
+ * 省级:province
+ */
+ @JsonIgnore
+ private String level;
+
+ /**
+ * 子级用户分布
+ */
+ private List userDistribution = new ArrayList<>();
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectDetailResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectDetailResultDTO.java
new file mode 100644
index 0000000000..6ad86b371f
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectDetailResultDTO.java
@@ -0,0 +1,47 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 4:37 下午
+ */
+@Data
+public class ProjectDetailResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 2884179183725459493L;
+
+ /**
+ * 项目内容
+ */
+ private String projectContent = "";
+
+ /**
+ * 当前状态
+ */
+ private String status = "";
+
+ /**
+ * 最后一次处理的部门
+ */
+ private String latestHandleDept = "";
+
+ /**
+ * 最后一次处理的时间yyyy-MM-dd HH:mm
+ */
+ private String latestHandleTime = "";
+
+ /**
+ * 操作描述
+ */
+ private String operDesc = "";
+
+ /**
+ * 图片列表
+ */
+ private List imgList = new ArrayList<>();
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectResultDTO.java
new file mode 100644
index 0000000000..5eb58d4f4f
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ProjectResultDTO.java
@@ -0,0 +1,45 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 1:27 下午
+ */
+@Data
+public class ProjectResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 7130615407473171093L;
+
+ /**
+ * 项目标题
+ */
+ private String projectTitle = "";
+
+ /**
+ * red, green,yellow
+ */
+ private String color = "";
+
+ /**
+ * 项目id
+ */
+ private String projectId = "";
+
+ /**
+ * 网格名称
+ */
+ private String orgName = "";
+
+ /**
+ * 经度
+ */
+ private Double longitude = 0.0;
+
+ /**
+ * 纬度
+ */
+ private Double latitude = 0.0;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiChartResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiChartResultDTO.java
new file mode 100644
index 0000000000..8f9ab22851
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiChartResultDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description
+ * @ClassName PublicPartiChartResultDTO
+ * @Auth wangc
+ * @Date 2020-08-21 09:16
+ */
+@Data
+public class PublicPartiChartResultDTO implements Serializable {
+ private static final long serialVersionUID = 8366701017042226713L;
+
+ /**
+ * 横坐标:近一年(不包含当前月)
+ * */
+ private List xAxis;
+
+ /**
+ * 组织次数
+ * */
+ private List organizeNumList;
+
+ /**
+ * 参与人数
+ * */
+ private List joinUserNumList;
+
+ /**
+ * 平均参与人次
+ * */
+ private List averageJoinNumList;
+
+}
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
new file mode 100644
index 0000000000..c5744d0cdd
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiProfileResultDTO.java
@@ -0,0 +1,48 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 3、公众参与概况返参DTO
+ * @ClassName PublicPartiProfileResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 14:33
+ */
+@Data
+public class PublicPartiProfileResultDTO implements Serializable {
+ private static final long serialVersionUID = 2520835419152912027L;
+
+ private Integer total = NumConstant.ZERO;
+
+ private String monthIncr = "";
+
+ /**
+ * incr上升, decr下降
+ * */
+ private String monthTrend = "";
+
+ private Integer averageIssue = NumConstant.ZERO;
+
+ /**
+ * 较上月百分比
+ * */
+ private String issueCompareLatestMonth = "";
+
+ /**
+ * 较上月趋势:incr上升,decr下降
+ * */
+ private String issueCompareLatestTrend = "";
+
+ /**
+ * 平均参与度
+ * */
+ private Integer averageJoin = NumConstant.ZERO;
+
+ private String joinCompareLatestMonth = "";
+
+ private String joinCompareLatestTrend = "";
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiRankResultDTO.java
new file mode 100644
index 0000000000..6d4eba5f4b
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/PublicPartiRankResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 公众参与-排行榜 传参dto
+ * @ClassName PublicPartiRankResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 15:29
+ */
+@Data
+public class PublicPartiRankResultDTO implements Serializable {
+ private static final long serialVersionUID = -2958188980327497507L;
+
+ private String name;
+
+ private Integer regNum;
+
+ private Integer joinNum;
+
+ private Integer topicNum;
+
+ private Integer issueNum;
+
+ private Integer projectNum;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/SubAgencyIndexRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/SubAgencyIndexRankResultDTO.java
new file mode 100644
index 0000000000..246b374752
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/SubAgencyIndexRankResultDTO.java
@@ -0,0 +1,40 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 9:58 上午
+ */
+@Data
+public class SubAgencyIndexRankResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -2767000156092731932L;
+
+ /**
+ * 名称(组织或者网格名称,部门名称)
+ */
+ private String name = "";
+
+ /**
+ * 总指数
+ */
+ private Double totalIndex = 0.0;
+
+ /**
+ * 党建能力
+ */
+ private Double governAbility = 0.0;
+
+ /**
+ * 治理能力
+ */
+ private Double partyDevAbility = 0.0;
+
+ /**
+ * 服务能力
+ */
+ private Double serviceAbility = 0.0;
+}
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
new file mode 100644
index 0000000000..55c281db6c
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TopProfileResultDTO.java
@@ -0,0 +1,45 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 1:46 下午
+ */
+@Data
+public class TopProfileResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -5081563117620857359L;
+
+ /**
+ * 用户总数
+ */
+ private Integer userNum = 0;
+
+ /**
+ * 党员总数
+ */
+ private Integer partyMemberNum = 0;
+
+ /**
+ * 党群总数
+ */
+ private Integer groupNum = 0;
+
+ /**
+ * 话题总数
+ */
+ private Integer topicNum = 0;
+
+ /**
+ * 议题总数
+ */
+ private Integer issueNum = 0;
+
+ /**
+ * 项目总数
+ */
+ private Integer projectNum = 0;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TreeResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TreeResultDTO.java
new file mode 100644
index 0000000000..8de1c1d377
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/TreeResultDTO.java
@@ -0,0 +1,51 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 2:00 下午
+ */
+@Data
+public class TreeResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 3860268744336541373L;
+
+ /**
+ * 显示名称
+ */
+ private String label = "";
+
+ /**
+ * agencyId下拉框value
+ */
+ private String value = "";
+
+ @JsonIgnore
+ private String pids;
+
+ /**
+ * 中心点位
+ */
+ private List centerMark;
+
+ /**
+ * 机关级别
+ */
+ @JsonIgnore
+ private String level;
+
+ @JsonIgnore
+ private String centerMarkA;
+
+ /**
+ * 子目录
+ */
+ private List children = new ArrayList<>();
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserDistributionResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserDistributionResultDTO.java
new file mode 100644
index 0000000000..2476f0497b
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserDistributionResultDTO.java
@@ -0,0 +1,48 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 11:06 上午
+ */
+@Data
+public class UserDistributionResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -7679590088019724244L;
+
+ /**
+ * 可能是gridId,可能是agencyId
+ */
+ private String subId;
+
+ /**
+ * 中心点位
+ */
+ private String centerMark;
+
+ /**
+ * 用户总人数
+ */
+ private Integer totalNum;
+
+ /**
+ * 坐标区域
+ */
+ @JsonIgnore
+ private String areaMarks;
+
+ /**
+ * 可以是网格的名称,可以是组织的名称
+ */
+ private String subName;
+
+ /**
+ * 组织:agency, 网格 : grid;
+ */
+ private String type;
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinIndicatorGrowthRateResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinIndicatorGrowthRateResultDTO.java
new file mode 100644
index 0000000000..a64f02a279
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinIndicatorGrowthRateResultDTO.java
@@ -0,0 +1,47 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description 用户参与各项指标以及增长查询结果dto
+ * @ClassName UserJoinIndicatorGrowthRateResultDTO
+ * @Auth wangc
+ * @Date 2020-08-21 16:07
+ */
+@Data
+public class UserJoinIndicatorGrowthRateResultDTO implements Serializable {
+ private static final long serialVersionUID = -8830240350298414599L;
+
+ private Integer total;
+
+ private BigDecimal monthIncr;
+
+ /**
+ * incr上升, decr下降
+ * */
+ private String monthTrend;
+
+ private Integer averageIssue;
+
+ /**
+ * 较上月百分比
+ * */
+ private BigDecimal issueCompareLatestMonth;
+
+ /**
+ * 较上月趋势:incr上升,decr下降
+ * */
+ private String issueCompareLatestTrend;
+
+ /**
+ * 平均参与度
+ * */
+ private Integer averageJoin;
+
+ private BigDecimal joinCompareLatestMonth;
+
+ private String joinCompareLatestTrend;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinMonthlyResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinMonthlyResultDTO.java
new file mode 100644
index 0000000000..3b91a42d4e
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinMonthlyResultDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * @Description 阅读用户参与查询返参dto screen_user_join
+ * @ClassName UserJoinMonthlyResultDTO
+ * @Auth wangc
+ * @Date 2020-08-21 09:20
+ */
+@Data
+public class UserJoinMonthlyResultDTO implements Serializable {
+ private static final long serialVersionUID = 4078219053108425375L;
+
+ private String monthId;
+
+ private Integer organizeNum;
+
+ private Integer joinUserNum;
+
+ private Integer averageJoinNum;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointRankResultDTO.java
new file mode 100644
index 0000000000..3a1330fa46
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointRankResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @Description
+ * @ClassName UserPointRankResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 10:46
+ */
+@Data
+public class UserPointRankResultDTO implements Serializable {
+ private static final long serialVersionUID = 2829557017489626022L;
+
+ /**
+ * 横坐标:姓名
+ * */
+ private List nameData = new LinkedList<>();
+
+ /**
+ * 纵坐标:积分
+ * */
+ private List pointsData = new LinkedList<>();
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointResultDTO.java
new file mode 100644
index 0000000000..b58be28ff1
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserPointResultDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 用户积分DTO - 查询结果
+ * @ClassName UserPointResultDTO
+ * @Auth wangc
+ * @Date 2020-08-20 10:50
+ */
+@Data
+public class UserPointResultDTO implements Serializable {
+ private static final long serialVersionUID = -5174248184514429116L;
+
+ private String name;
+
+ private Integer point;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserResultDTO.java
new file mode 100644
index 0000000000..f46da9b45e
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserResultDTO.java
@@ -0,0 +1,50 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/18 11:03 上午
+ */
+@Data
+public class UserResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -6633682494274511121L;
+
+ /**
+ * 当前所选组织
+ */
+ private String agencyId = "";
+
+ /**
+ * 当前所选组织名称
+ */
+ private String name = "";
+
+ /**
+ * 当前所选组织的坐标区域
+ */
+ @JsonIgnore
+ private String areaMarks;
+
+ /**
+ * 机关级别
+ * 社区级:community,
+ * 乡(镇、街道)级:street,
+ * 区县级: district,
+ * 市级: city
+ * 省级:province
+ */
+ @JsonIgnore
+ private String level;
+
+ /**
+ * 子级用户分布
+ */
+ private List userDistribution = new ArrayList<>();
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResult.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResult.java
new file mode 100644
index 0000000000..4ef1fd076a
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResult.java
@@ -0,0 +1,35 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 3:16 下午
+ */
+@Data
+public class VolunteerServiceResult implements Serializable {
+
+ private static final long serialVersionUID = 959536759114517195L;
+
+ /**
+ * 月份ID
+ */
+ private String monthId;
+
+ /**
+ * 组织次数
+ */
+ private Integer organizeData;
+
+ /**
+ * 参与次数
+ */
+ private Integer joinData;
+
+ /**
+ * 平均参与人次
+ */
+ private Integer averageJoinUserData;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResultDTO.java
new file mode 100644
index 0000000000..e0df20afee
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/VolunteerServiceResultDTO.java
@@ -0,0 +1,47 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/20 3:14 下午
+ */
+@Data
+public class VolunteerServiceResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -6227889392267793005L;
+
+ /**
+ * x轴,返回近12个月,不包含当前月
+ */
+ private List xAxis;
+
+ /**
+ * 组织次数
+ */
+ private List organizeData;
+
+ /**
+ * 参与次数
+ */
+ private List joinData;
+
+ /**
+ * 平均参与人次
+ */
+ private List averageJoinUserData;
+
+ /**
+ * 总组织次数
+ * */
+ private Integer totalOrganizationCount = NumConstant.ZERO;
+
+ /**
+ * 总参与人数
+ * */
+ private Integer totalJoinUserCount = NumConstant.ZERO;
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/YearAverageIndexResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/YearAverageIndexResultDTO.java
new file mode 100644
index 0000000000..21c82e2e66
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/YearAverageIndexResultDTO.java
@@ -0,0 +1,35 @@
+package com.epmet.evaluationindex.screen.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/19 2:45 下午
+ */
+@Data
+public class YearAverageIndexResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 6453379153616899440L;
+
+ /**
+ * 年度平均指数
+ */
+ private Double yearAverageIndex = 0.0;
+
+ /**
+ * 服务能力
+ */
+ private Double serviceAbility = 0.0;
+
+ /**
+ * 党建能力
+ */
+ private Double partyDevAbility = 0.0;
+
+ /**
+ * 治理能力
+ */
+ private Double governAbility = 0.0;
+}
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
index 116fd812c5..2d85c451a1 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.27
+ image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.36
ports:
- "8109:8109"
network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
index ad6ed50dc2..8fdb335fda 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-prod
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.27
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.36
ports:
- "8108:8108"
network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
index 9a3f62f01c..78d38da205 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-test
- image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.27
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.36
ports:
- "8108:8108"
network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index a859f98664..497f38df57 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- 0.3.27
+ 0.3.36
data-report-server
@@ -67,6 +67,12 @@
epmet-commons-extapp-auth
2.0.0
+
+
+ com.epmet
+ epmet-commons-dynamic-datasource
+ 2.0.0
+
@@ -104,11 +110,24 @@
dev
-
+
-
- epmet_data_statistical_user
- EpmEt-db-UsEr
+
+ epmet_data_statistical_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_data_stats_display_user
+ EpmEt-db-UsEr
+
+
+
+
+ epmet_evaluation_index_user
+ EpmEt-db-UsEr
0
@@ -118,8 +137,8 @@
true
- 122.152.200.70:8848
- fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b
+ 192.168.1.130:8848
+ 6ceab336-d004-4acf-89c6-e121d06f4988
false
@@ -127,6 +146,10 @@
false
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
+ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19
@@ -139,11 +162,24 @@
test
-
+
-
- epmet
- elink@833066
+
+ epmet
+ elink@833066
+
+
+
+
+ epmet
+ elink@833066
+
+
+
+
+ epmet
+ elink@833066
+
0
@@ -162,6 +198,10 @@
true
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
+ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19
@@ -174,11 +214,23 @@
prod
-
+
-
- epmet_data_statistical
- EpmEt-db-UsEr
+
+ epmet_data_statistical
+ EpmEt-db-UsEr
+
+
+
+
+ epmet_data_stats_display_user
+ EpmEt-db-UsEr
+
+
+
+
+ epmet_evaluation_index_user
+ EpmEt-db-UsEr
0
@@ -197,6 +249,10 @@
true
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c
+ SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java
index cee0ed9096..989bf71965 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java
@@ -1,5 +1,7 @@
package com.epmet;
+import com.epmet.commons.tools.enums.EnvEnum;
+import com.epmet.commons.tools.utils.HttpClientManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@@ -13,5 +15,6 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class DataReportApplication {
public static void main(String[] args) {
SpringApplication.run(DataReportApplication.class, args);
+ HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() +" DataStatsApplication started!");
}
}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/aspect/RequestLogAspect.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/aspect/RequestLogAspect.java
similarity index 90%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/aspect/RequestLogAspect.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/aspect/RequestLogAspect.java
index 7d4ff2d7d4..d57b2833e5 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/aspect/RequestLogAspect.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/aspect/RequestLogAspect.java
@@ -1,4 +1,4 @@
-package com.epmet.aspect;
+package com.epmet.datareport.aspect;
import com.epmet.commons.tools.aspect.BaseRequestLogAspect;
import org.aspectj.lang.ProceedingJoinPoint;
@@ -21,7 +21,7 @@ import javax.servlet.http.HttpServletRequest;
public class RequestLogAspect extends BaseRequestLogAspect {
@Override
- @Around(value = "execution(* com.epmet.controller.*.*Controller*.*(..)) ")
+ @Around(value = "execution(* com.epmet.datareport.controller.*.*Controller*.*(..)) ")
public Object proceed(ProceedingJoinPoint point) throws Throwable {
return super.proceed(point, getRequest());
}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/config/ModuleConfigImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/ModuleConfigImpl.java
similarity index 92%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/ModuleConfigImpl.java
index c52ec15b50..10a4cdd6d7 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/ModuleConfigImpl.java
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
*/
-package com.epmet.config;
+package com.epmet.datareport.config;
import com.epmet.commons.tools.config.ModuleConfig;
import org.springframework.stereotype.Service;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/group/GroupController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/group/GroupController.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/group/GroupController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/group/GroupController.java
index 88dd3bb376..1d269eddbd 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/group/GroupController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/group/GroupController.java
@@ -9,7 +9,7 @@ import com.epmet.group.dto.result.GroupIncrTrendResultDTO;
import com.epmet.group.dto.result.GroupSubAgencyResultDTO;
import com.epmet.group.dto.result.GroupSubGridResultDTO;
import com.epmet.group.dto.result.GroupSummaryInfoResultDTO;
-import com.epmet.service.group.GroupService;
+import com.epmet.datareport.service.group.GroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/issue/IssueController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/issue/IssueController.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/issue/IssueController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/issue/IssueController.java
index c9fad20ce2..afc732802d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/issue/IssueController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/issue/IssueController.java
@@ -1,11 +1,11 @@
-package com.epmet.controller.issue;
+package com.epmet.datareport.controller.issue;
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.issue.dto.form.IssueIncrtrendFormDTO;
import com.epmet.issue.dto.result.*;
-import com.epmet.service.issue.IssueService;
+import com.epmet.datareport.service.issue.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/project/ProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/project/ProjectController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/publicity/PublicityController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/publicity/PublicityController.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/publicity/PublicityController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/publicity/PublicityController.java
index 8612d82002..f01540758c 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/publicity/PublicityController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/publicity/PublicityController.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.controller.publicity;
+package com.epmet.datareport.controller.publicity;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.NumConstant;
@@ -24,7 +24,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.publicity.dto.form.TagFormDTO;
import com.epmet.publicity.dto.result.*;
-import com.epmet.service.publicity.PublicityService;
+import com.epmet.datareport.service.publicity.PublicityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java
new file mode 100644
index 0000000000..1b063dd470
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java
@@ -0,0 +1,54 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.AgencyService;
+import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:15
+ */
+@RestController
+@RequestMapping("/screen/agency")
+public class AgencyController {
+
+ @Autowired
+ private AgencyService agencyService;
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("tree")
+ public Result tree(ExternalAppRequestParam externalAppRequestParam){
+ return new Result().ok(agencyService.tree(externalAppRequestParam));
+ }
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("compartment")
+ public Result compartment(@RequestBody CompartmentFormDTO compartmentFormDTO){
+ ValidatorUtils.validateEntity(compartmentFormDTO, CompartmentFormDTO.Compartment.class);
+ return new Result().ok(agencyService.compartment(compartmentFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/DistributionController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/DistributionController.java
new file mode 100644
index 0000000000..248547cc4c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/DistributionController.java
@@ -0,0 +1,94 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.DistributionService;
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:14
+ */
+@RestController
+@RequestMapping("/screen/distribution")
+public class DistributionController {
+
+ @Autowired
+ private DistributionService distributionService;
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("branch")
+ public Result> branch(@RequestBody BranchFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, BranchFormDTO.Branch.class);
+ return new Result>().ok(distributionService.branch(formDTO));
+ }
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("user")
+ public Result user(@RequestBody UserFormDTO userFormDTO){
+ ValidatorUtils.validateEntity(userFormDTO, UserFormDTO.User.class);
+ return new Result().ok(distributionService.user(userFormDTO));
+ }
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("parymember")
+ public Result parymember(@RequestBody ParymemberFormDTO parymemberFormDTO){
+ ValidatorUtils.validateEntity(parymemberFormDTO, ParymemberFormDTO.Parymember.class);
+ return new Result().ok(distributionService.parymember(parymemberFormDTO));
+ }
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("project")
+ public Result> project(@RequestBody ProjectFormDTO projectFormDTO){
+ ValidatorUtils.validateEntity(projectFormDTO, ProjectFormDTO.Project.class);
+ return new Result>().ok(distributionService.project(projectFormDTO));
+ }
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("topprofile")
+ public Result topProfile(@RequestBody TopProfileFormDTO topProfileFormDTO){
+ ValidatorUtils.validateEntity(topProfileFormDTO, TopProfileFormDTO.TopProfile.class);
+ return new Result().ok(distributionService.topProfile(topProfileFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java
new file mode 100644
index 0000000000..220fb0ca4a
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java
@@ -0,0 +1,108 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.GrassRootsGovernService;
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:12
+ */
+@RestController
+@RequestMapping("/screen/grassrootsgovern")
+public class GrassRootsGovernController {
+
+ @Autowired
+ private GrassRootsGovernService grassRootsGovernService;
+
+
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("userpointrank")
+ public Result userPointRank(@RequestBody AgencyAndNumFormDTO param){
+ ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result().ok(grassRootsGovernService.userPointRank(param));
+ }
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("difficultprojects")
+ public Result> difficultProject(@RequestBody AgencyNumTypeParamFormDTO param){
+ ValidatorUtils.validateEntity(param, AgencyNumTypeParamFormDTO.AgencyNumTypeParamGroup.class);
+ return new Result>().ok(grassRootsGovernService.difficultProject(param));
+ }
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("publicpartiprofile")
+ public Result publicPartiProfile(@RequestBody AgencyFormDTO param){
+ ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result().ok(grassRootsGovernService.publicPartiProfile(param));
+ }
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("publicpartirank")
+ public Result> publicPartiRank(@RequestBody AgencyAndNumFormDTO param){
+ ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result>().ok(grassRootsGovernService.publicPartiRank(param));
+ }
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("governcapacityrank")
+ public Result> governCapacityRank(@RequestBody AgencyAndNumFormDTO param){
+ ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result>().ok(grassRootsGovernService.governCapacityRank(param));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassrootsPartyDevController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassrootsPartyDevController.java
new file mode 100644
index 0000000000..66b7555ac8
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassrootsPartyDevController.java
@@ -0,0 +1,92 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.GrassrootsPartyDevService;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ParymemberFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildTrendResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:11
+ */
+@RestController
+@RequestMapping("/screen/grassrootspartydev")
+public class GrassrootsPartyDevController {
+
+ @Autowired
+ private GrassrootsPartyDevService grassrootsPartyDevService;
+
+ /**
+ * @Description 党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 16:59
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("basicinfo")
+ public Result baseInfo(@RequestBody ParymemberFormDTO param){
+ ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class);
+ return new Result().ok(grassrootsPartyDevService.partymemberBaseInfo(param));
+ }
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("ageinfo")
+ public Result ageInfo(@RequestBody ParymemberFormDTO param){
+ ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class);
+ return new Result().ok(grassrootsPartyDevService.partymemberAgeDistribution(param));
+ }
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("branchbuildtrend")
+ public Result branchBuildTrend(@RequestBody BranchBuildTrendFormDTO param){
+ ValidatorUtils.validateEntity(param, BranchBuildTrendFormDTO.branchBuildTrendGroup.class);
+ return new Result().ok(grassrootsPartyDevService.branchBuildTrend(param));
+ }
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("branchbuildrank")
+ public Result branchBuildRank(@RequestBody BranchBuildRankFormDTO param){
+ ValidatorUtils.validateEntity(param, BranchBuildRankFormDTO.BranchBuildRankGroup.class);
+ return new Result().ok(grassrootsPartyDevService.branchBuildRank(param));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java
new file mode 100644
index 0000000000..d670c65b1c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java
@@ -0,0 +1,87 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.IndexService;
+import com.epmet.evaluationindex.screen.dto.form.MonthBarchartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.MonthPieChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.YearAverageIndexFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthBarchartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.YearAverageIndexResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:13
+ */
+@RestController
+@RequestMapping("/screen/index")
+public class IndexController {
+
+ @Autowired
+ private IndexService indexService;
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("yearaverageindex")
+ public Result yearAverageIndex(@RequestBody YearAverageIndexFormDTO yearAverageIndexFormDTO){
+ ValidatorUtils.validateEntity(yearAverageIndexFormDTO, YearAverageIndexFormDTO.YearAverageIndex.class);
+ return new Result().ok(indexService.yearAverageIndex(yearAverageIndexFormDTO));
+ }
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("monthindexanalysis/piechart")
+ public Result monthPieChart(@RequestBody MonthPieChartFormDTO monthPieChartFormDTO){
+ ValidatorUtils.validateEntity(monthPieChartFormDTO, MonthPieChartFormDTO.MonthPieChart.class);
+ return new Result().ok(indexService.monthPieChart(monthPieChartFormDTO));
+ }
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("monthindexanalysis/barchart")
+ public Result monthBarchart(@RequestBody MonthBarchartFormDTO monthBarchartFormDTO){
+ ValidatorUtils.validateEntity(monthBarchartFormDTO, MonthBarchartFormDTO.MonthBarchart.class);
+ return new Result().ok(indexService.monthBarchart(monthBarchartFormDTO));
+ }
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:02 上午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("subagencyindexrank")
+ public Result> subAgencyIndexRank(@RequestBody SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO){
+ ValidatorUtils.validateEntity(subAgencyIndexRankFormDTO, SubAgencyIndexRankFormDTO.SubAgencyIndexRank.class);
+ return new Result>().ok(indexService.subAgencyIndexRank(subAgencyIndexRankFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PartyMemberLeadController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PartyMemberLeadController.java
new file mode 100644
index 0000000000..d3f4242013
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PartyMemberLeadController.java
@@ -0,0 +1,98 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.PartyMemberLeadService;
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:10
+ */
+@RestController
+@RequestMapping("/screen/partymemberlead")
+public class PartyMemberLeadController {
+
+ @Autowired
+ private PartyMemberLeadService partyMemberLeadService;
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("fineexample")
+ public Result fineExample(@RequestBody FineExampleFormDTO fineExampleFormDTO){
+ ValidatorUtils.validateEntity(fineExampleFormDTO, FineExampleFormDTO.FineExample.class);
+ return new Result().ok(partyMemberLeadService.fineExample(fineExampleFormDTO));
+ }
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("contactmasslinechart")
+ public Result contactMassLineChart(@RequestBody ContactMassLineChartFormDTO contactMassLineChartFormDTO){
+ ValidatorUtils.validateEntity(contactMassLineChartFormDTO, ContactMassLineChartFormDTO.ContactMassLineChart.class);
+ return new Result().ok(partyMemberLeadService.contactMassLineChart(contactMassLineChartFormDTO));
+ }
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("volunteerservice")
+ public Result volunteerService(@RequestBody VolunteerServiceFormDTO volunteerServiceFormDTO){
+ ValidatorUtils.validateEntity(volunteerServiceFormDTO, VolunteerServiceFormDTO.VolunteerService.class);
+ return new Result().ok(partyMemberLeadService.volunteerService(volunteerServiceFormDTO));
+ }
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("advancedbranchrank")
+ Result> advancedBranchRank(@RequestBody AgencyAndNumFormDTO param){
+ ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result>().ok(partyMemberLeadService.advancedBranchRank(param));
+ }
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ //@ExternalAppRequestAuth
+ @PostMapping("advancedpartymemberrank")
+ Result> advancedPartymemberRank(@RequestBody AgencyAndNumFormDTO param){
+ ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);
+ return new Result>().ok(partyMemberLeadService.advancedPartymemberRank(param));
+ }
+
+}
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
new file mode 100644
index 0000000000..dc80b5178e
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
@@ -0,0 +1,40 @@
+package com.epmet.datareport.controller.screen;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService;
+import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:16
+ */
+@RestController
+@RequestMapping("/screen/project")
+public class ScreenProjectController {
+
+ @Autowired
+ private ScreenProjectService screenProjectService;
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ //@ExternalAppRequestAuth
+ @PostMapping("detail")
+ public Result projectDetail(@RequestBody ProjectDetailFormDTO projectDetailFormDTO){
+ ValidatorUtils.validateEntity(projectDetailFormDTO, ProjectDetailFormDTO.ProjectDetail.class);
+ return new Result().ok(screenProjectService.projectDetail(projectDetailFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
index 233f31dc27..91edf636dd 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
@@ -1,10 +1,10 @@
-package com.epmet.controller.topic;
+package com.epmet.datareport.controller.topic;
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.commons.tools.validator.ValidatorUtils;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
index cceebbef37..dda6b177cf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
@@ -1,4 +1,4 @@
-package com.epmet.controller.user;
+package com.epmet.datareport.controller.user;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@@ -7,7 +7,7 @@ import com.epmet.dto.form.user.UserSubAgencyFormDTO;
import com.epmet.dto.form.user.UserSubGridFormDTO;
import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.user.*;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.java
new file mode 100644
index 0000000000..e752fe40dd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 基层党建-党员基本情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCpcBaseDataDao{
+
+ /**
+ * @Description 查询党员年龄分布情况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:47
+ **/
+ PartymemberAgeDistributionResultDTO selectPartymemberAgeDistribution(@Param("agencyId") String agencyId);
+
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000000..17c48ae989
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.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.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.*;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerAgencyDao {
+
+ /**
+ * @Description 查询客户根组织ID
+ * @param customerId
+ * @author zxc
+ * @date 2020/8/18 2:44 下午
+ */
+ TreeResultDTO selectRootAgencyId(@Param("customerId")String customerId);
+
+ /**
+ * @Description 查询下级机关的 名称和id
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:48 下午
+ */
+ List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids);
+
+ /**
+ * @Description 查询当前机关的区域信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 4:51 下午
+ */
+ CompartmentResultDTO getAgencyAreaInfo(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级区域分布信息【机关级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistributionAgency(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java
new file mode 100644
index 0000000000..15ed670395
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 部门信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerDeptDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.java
new file mode 100644
index 0000000000..b6196411f8
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.*;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerGridDao {
+
+ /**
+ * @Description 查询子级区域分布信息【网格级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询党支部信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 9:13 上午
+ */
+ List selectBranch(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistribution(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询机关下的网格
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/26 5:29 下午
+ */
+ List selectGridInfo(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.java
new file mode 100644
index 0000000000..8697ba9adf
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.DifficultProjectResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenDifficultyDataDao {
+
+ /**
+ * @Description 查询难点赌点-耗时最长|涉及部门最多|处理次数
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:26
+ **/
+ List selectDifficulty(@Param("agencyId")String agencyId,@Param("type")String type);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java
new file mode 100644
index 0000000000..16e023adff
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java
@@ -0,0 +1,52 @@
+/**
+ * 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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenEventDataDao{
+
+ /**
+ * @Description 查询事件
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 2:09 下午
+ */
+ List selectEvent(@Param("parentId")String parentId);
+
+ /**
+ * @Description 3、项目详情
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO selectEventDetail(@Param("projectId")String projectId,@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.java
new file mode 100644
index 0000000000..f0da56ccd9
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.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.datareport.dao.evaluationindex.screen;
+
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenEventImgDataDao {
+
+ /**
+ * @Description 查询事件imgUrl集合
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 5:11 下午
+ */
+ List selectEventImgList(@Param("projectId")String projectId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java
new file mode 100644
index 0000000000..e973aa85f3
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.GovernCapacityResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenGovernRankDataDao{
+
+ /**
+ * @Description 查询政府治理能力各项指标
+ * @param monthId
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:34
+ **/
+ List selectGovernCapacityRatio(@Param("monthId") String monthId,@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java
new file mode 100644
index 0000000000..372dacf9dd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java
@@ -0,0 +1,62 @@
+/**
+ * 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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthBarchartResult;
+import com.epmet.evaluationindex.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenIndexDataMonthlyDao{
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ MonthPieChartResultDTO selectMonthPieChart(@Param("agencyId")String agencyId,@Param("monthId")String monthId);
+
+ /**
+ * @Description 查询近一年的指数值【不包括本月】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 9:02 上午
+ */
+ List selectMonthBarchart(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List selectSubAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java
new file mode 100644
index 0000000000..c63c17fa57
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.YearAverageIndexResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 指数-指数数据(按年统计)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-19
+ */
+@Mapper
+public interface ScreenIndexDataYearlyDao{
+
+ /**
+ * @Description 1、年度平均指数
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ YearAverageIndexResultDTO selectYearAverageIndex(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.java
new file mode 100644
index 0000000000..2b9bdba497
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.OrgRankDataResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenOrgRankDataDao{
+
+ /**
+ * @Description 查询指定机关的直属网格月度数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 13:58
+ **/
+ List selectGridDataMonthly(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.java
new file mode 100644
index 0000000000..fa2836e4fb
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.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.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildOrderByCountResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchIssueDataResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.VolunteerServiceResult;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyBranchDataDao {
+
+ /**
+ * @Description 根据agencyTd、type(数据类别 party:支部建设;union:联合建设)查出共有多少议题主题
+ * @param agencyId
+ * @param type
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:44
+ **/
+ List selectIssueGroup(@Param("agencyId") String agencyId , @Param("type") String type);
+
+ /**
+ * @Description 根据议题名称查找近12个月的数据
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:59
+ **/
+ List selectBranchDataByTypeAndTimeZone(@Param("agencyId") String agencyId , @Param("type") String type, @Param("category") String category, @Param("bottomMonthId") String bottomMonthId);
+
+ /**
+ * @Description 查询党员志愿服务
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 3:30 下午
+ */
+ List selectVolunteerServiceResult(@Param("agencyId")String agencyId);
+ /**
+ * @Description 查找指定组织的下一级组织的数据排行
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.20 09:46
+ **/
+ List selectBranchDataByTypeOrder(@Param("agencyId")String agencyId,@Param("category")String category,@Param("monthId")String monthId,@Param("bottomMonthId")String bottomMonthId);
+
+ /**
+ * @Description 查询组织总数或者总参与人数
+ * @param category
+ * @param type
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.28 17:56
+ **/
+ Integer selectTotalOrganizationCount(@Param("category") String category,@Param("type") String type, @Param("agencyId") String agencyId,@Param("monthId") String monthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.java
new file mode 100644
index 0000000000..1ca974982f
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.ContactMassLineChartResult;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyLinkMassesDataDao {
+
+ /**
+ * @Description 查询党员联系群众
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 2:48 下午
+ */
+ List selectContactMassLineChart(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java
new file mode 100644
index 0000000000..2c4358ce15
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java
@@ -0,0 +1,54 @@
+/**
+ * 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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartyUserPointResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.UserPointResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyUserRankDataDao{
+
+ /**
+ * @Description 查询指定机关下的用户积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:11
+ **/
+ List selectUserPointOrder(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询指定机关所属网格的党员积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 14:32
+ **/
+ List selectPartymemberPointOrder(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java
new file mode 100644
index 0000000000..92177ec52c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.FineExampleResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 党建引领-先锋模范数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPioneerDataDao{
+
+ /**
+ * @Description 查询先锋模范
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 5:22 下午
+ */
+ FineExampleResultDTO selectFineExample(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.java
new file mode 100644
index 0000000000..88c2aa0e77
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.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.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PublicPartiRankResultDTO;
+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 2020-08-24
+ */
+@Mapper
+public interface ScreenPublicPartiTotalDataDao{
+ /**
+ * @Description 查询公众参与各类总数
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 16:00
+ **/
+ List selectPublicPartiTotal(@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java
new file mode 100644
index 0000000000..962691f625
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java
@@ -0,0 +1,54 @@
+/**
+ * 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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.UserJoinIndicatorGrowthRateResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.UserJoinMonthlyResultDTO;
+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 2020-08-18
+ */
+@Mapper
+public interface ScreenUserJoinDao {
+
+ /**
+ * @Description 查询用户参与数据
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:07
+ **/
+ UserJoinIndicatorGrowthRateResultDTO selectUserJoinData(@Param("agencyId") String agencyId, @Param("monthId")String monthId);
+
+ /**
+ * @Description 查询月度用户参与数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:54
+ **/
+ List selectUserJoinDataMonthly(@Param("agencyId")String agencyId,@Param("monthId") String monthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java
new file mode 100644
index 0000000000..653cf3f606
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java
@@ -0,0 +1,60 @@
+/**
+ * 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.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TopProfileResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 中央区-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenUserTotalDataDao {
+
+ /**
+ * @Description 党员基本情况-饼状图概况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 15:17
+ **/
+ PartymemberPercentResultDTO selectAgencyPartymemberPercent(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询top区概况
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 2:13 下午
+ */
+ TopProfileResultDTO selectTopProfile(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 求出人均议题
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:54
+ **/
+ int selectAvgIssue(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
index e2a8410272..975b49ba5a 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.group;
+package com.epmet.datareport.dao.group;
import com.epmet.group.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
index abf2c4d350..53cab40c92 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.issue;
+package com.epmet.datareport.dao.issue;
import com.epmet.issue.dto.result.IssueDataDTO;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
index 3ae53720f7..b8920580bf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.project;
+package com.epmet.datareport.dao.project;
import com.epmet.project.dto.FactAgencyProjectDailyDTO;
import com.epmet.project.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
index a4babe6039..b65c16b9a1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.dao.publicity;
+package com.epmet.datareport.dao.publicity;
import com.epmet.publicity.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
index 2ab863ab78..4c0fb9d377 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
@@ -1,6 +1,5 @@
-package com.epmet.dao.topic;
+package com.epmet.datareport.dao.topic;
-import com.epmet.group.dto.result.GroupIncrTrendResultDTO;
import com.epmet.topic.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
index 2df268feb2..c0a69f82fc 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.user;
+package com.epmet.datareport.dao.user;
import com.epmet.dto.DimAgencyDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java
new file mode 100644
index 0000000000..d633b94ea2
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java
@@ -0,0 +1,32 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+public interface AgencyService {
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam);
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java
new file mode 100644
index 0000000000..a73d1ccfcd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java
@@ -0,0 +1,56 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+public interface DistributionService {
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ List branch(BranchFormDTO formDTO);
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ UserResultDTO user(UserFormDTO userFormDTO);
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO);
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ List project(ProjectFormDTO projectFormDTO);
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java
new file mode 100644
index 0000000000..fecde12a9f
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java
@@ -0,0 +1,77 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+public interface GrassRootsGovernService {
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ List difficultProject(AgencyNumTypeParamFormDTO param);
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param);
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ List publicPartiRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ List governCapacityRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java
new file mode 100644
index 0000000000..41c8fafc28
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java
@@ -0,0 +1,58 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ParymemberFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildTrendResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface GrassrootsPartyDevService {
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param);
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param);
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param);
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java
new file mode 100644
index 0000000000..266898530d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java
@@ -0,0 +1,54 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.MonthBarchartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.MonthPieChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.YearAverageIndexFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthBarchartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.YearAverageIndexResultDTO;
+
+import java.util.List;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface IndexService {
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO);
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO);
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java
new file mode 100644
index 0000000000..5e75a3946c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java
@@ -0,0 +1,63 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.FineExampleFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface PartyMemberLeadService {
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO);
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO);
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO);
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ List advancedBranchRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ List advancedPartymemberRank(AgencyAndNumFormDTO param);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java
new file mode 100644
index 0000000000..aea908ff15
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java
@@ -0,0 +1,22 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface ScreenProjectService {
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java
new file mode 100644
index 0000000000..6eef8b2387
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java
@@ -0,0 +1,139 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerGridDao;
+import com.epmet.datareport.service.evaluationindex.screen.AgencyService;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.AgencyDistributionResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class AgencyServiceImpl implements AgencyService {
+
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) {
+ // 1. 查询客户根组织ID
+// String customerId = externalAppRequestParam.getCustomerId();
+
+
+ // 验签关闭,customerId无法获取,暂时写死
+ String customerId = "b09527201c4409e19d1dbc5e3c3429a1";
+
+
+ TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId);
+ if (null == rootAgency){
+ return new TreeResultDTO();
+ }
+ List centerMark = this.getCenterMark(rootAgency.getCenterMarkA());
+ rootAgency.setCenterMark(centerMark.size() == NumConstant.ZERO ? new ArrayList<>() : centerMark);
+ if (rootAgency.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List treeResultDTOS = screenCustomerGridDao.selectGridInfo(rootAgency.getValue());
+ rootAgency.setChildren(treeResultDTOS);
+ }else {
+ List departmentList = this.getDepartmentList(("".equals(rootAgency.getPids()) || rootAgency.getPids().equals(NumConstant.ZERO_STR)) ? rootAgency.getValue() : rootAgency.getPids().concat(",").concat(rootAgency.getValue()));
+ rootAgency.setChildren(departmentList);
+ }
+ return rootAgency;
+ }
+
+ /**
+ * @Description 处理centerMark
+ * @param centerMark
+ * @author zxc
+ * @date 2020/8/26 5:18 下午
+ */
+ public List getCenterMark(String centerMark){
+ if (centerMark.length() == NumConstant.ZERO || centerMark.equals(ScreenConstant.SQUARE_BRACKETS)) {
+ return new ArrayList<>();
+ }
+ List result = new ArrayList<>();
+ String substring = centerMark.substring(NumConstant.TWO, centerMark.length() - NumConstant.TWO);
+ String[] split = substring.split(ScreenConstant.COMMA);
+ for (String s : split) {
+ result.add(Double.valueOf(s));
+ }
+ return result;
+ }
+
+ /**
+ * @Description 递归查询填充下级
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:42 下午
+ */
+ private List getDepartmentList(String subAgencyPids) {
+ List subAgencyList = screenCustomerAgencyDao.selectSubAgencyList(subAgencyPids);
+ if (subAgencyList.size() > NumConstant.ZERO) {
+ subAgencyList.forEach(sub -> {
+ List centerMark = this.getCenterMark(sub.getCenterMarkA());
+ sub.setCenterMark(centerMark.size() == NumConstant.ZERO ? new ArrayList<>() : centerMark);
+ if (sub.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List treeResultDTOS = screenCustomerGridDao.selectGridInfo(sub.getValue());
+ treeResultDTOS.forEach(tree -> {
+ List centerMarkTree = this.getCenterMark(tree.getCenterMarkA());
+ tree.setCenterMark(centerMarkTree.size() == NumConstant.ZERO ? new ArrayList<>() : centerMarkTree);
+ });
+ sub.setChildren(treeResultDTOS);
+ }else {
+ List subAgency = getDepartmentList(sub.getPids() + "," + sub.getValue());
+ sub.setChildren(subAgency);
+ }
+ });
+ }
+ return subAgencyList;
+ }
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO) {
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(compartmentFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return new CompartmentResultDTO();
+ }
+ if (agencyAreaInfo.getLevel().equals(ScreenConstant.COMMUNITY)){
+ // 当level为"community"时,查询screen_customer_grid表
+ List agencyDistributionResultDTOS = screenCustomerGridDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }else {
+ List agencyDistributionResultDTOS = screenCustomerAgencyDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }
+ return agencyAreaInfo;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java
new file mode 100644
index 0000000000..b65c0fe059
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java
@@ -0,0 +1,134 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerGridDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.DistributionService;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class DistributionServiceImpl implements DistributionService {
+
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List branch(BranchFormDTO formDTO) {
+ List branchResultDTOS = screenCustomerGridDao.selectBranch(formDTO.getAgencyId());
+ return branchResultDTOS;
+ }
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public UserResultDTO user(UserFormDTO userFormDTO) {
+ UserResultDTO userResult = new UserResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(userFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return userResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,userResult);
+ if (userResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List userDistributionResultDTOS = screenCustomerGridDao.selectUserDistribution(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }else {
+ List userDistributionResultDTOS = screenCustomerAgencyDao.selectUserDistributionAgency(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }
+ return userResult;
+ }
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO) {
+ ParymemberResultDTO parymemberResult = new ParymemberResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(parymemberFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return parymemberResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,parymemberResult);
+ if (parymemberResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List parymemberDistributionResultDTOS = screenCustomerGridDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }else {
+ List parymemberDistributionResultDTOS = screenCustomerAgencyDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }
+ return parymemberResult;
+ }
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List project(ProjectFormDTO projectFormDTO) {
+ List projectResultDTOS = screenEventDataDao.selectEvent(projectFormDTO.getAgencyId());
+ if (projectResultDTOS.size() == NumConstant.ZERO){
+ return new ArrayList<>();
+ }
+ return projectResultDTOS;
+ }
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO) {
+ TopProfileResultDTO topProfileResultDTO = screenUserTotalDataDao.selectTopProfile(topProfileFormDTO.getAgencyId());
+ if (null == topProfileResultDTO){
+ return new TopProfileResultDTO();
+ }
+ return topProfileResultDTO;
+ }
+}
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
new file mode 100644
index 0000000000..d750c1ee03
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java
@@ -0,0 +1,252 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.*;
+import com.epmet.datareport.service.evaluationindex.screen.GrassRootsGovernService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
+
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+ @Autowired
+ private ScreenDifficultyDataDao screenDifficultyDataDao;
+ @Autowired
+ private ScreenUserJoinDao screenUserJoinDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenGovernRankDataDao screenGovernRankDataDao;
+ @Autowired
+ private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param) {
+ //默认5
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List userPointList = screenPartyUserRankDataDao.selectUserPointOrder(param.getAgencyId());
+ UserPointRankResultDTO result = new UserPointRankResultDTO();
+ result.setNameData(userPointList.stream().map(UserPointResultDTO::getName).collect(Collectors.toList()));
+ result.setPointsData(userPointList.stream().map(UserPointResultDTO::getPoint).collect(Collectors.toList()));
+ return result;
+ }
+
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List difficultProject(AgencyNumTypeParamFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.TWO);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenDifficultyDataDao.selectDifficulty(param.getAgencyId(),param.getType());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param) {
+
+ String monthId = dateUtils.getCurrentMonthId();
+ UserJoinIndicatorGrowthRateResultDTO latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
+ //保证获取公众参与概率数据的最大可能性
+ int time = NumConstant.TWELVE;
+ while(null == latest && time > NumConstant.ONE)
+ {
+ time --;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
+ }
+
+ if(null == latest) return new PublicPartiProfileResultDTO();
+ PublicPartiProfileResultDTO result = ConvertUtils.sourceToTarget(latest,PublicPartiProfileResultDTO.class);
+ result.setMonthIncr(convertPercentStr(latest.getMonthIncr(),NumConstant.ZERO));
+ result.setJoinCompareLatestMonth(convertPercentStr(latest.getJoinCompareLatestMonth(),NumConstant.ZERO));
+ result.setIssueCompareLatestMonth(convertPercentStr(latest.getIssueCompareLatestMonth(),NumConstant.ZERO));
+ return result;
+ }
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List publicPartiRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.TWO);
+ }
+ if(NumConstant.ZERO == param.getTopNum()){
+ param.setTopNum(NumConstant.MAX);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenPublicPartiTotalDataDao.selectPublicPartiTotal(param.getAgencyId());
+ if(null == result) {
+ return new ArrayList<>();
+ }
+ return result;
+ }
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List governCapacityRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.FIVE);
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ String monthId = dateUtils.getCurrentMonthId();
+ List orderList =
+ screenGovernRankDataDao.selectGovernCapacityRatio(monthId,param.getAgencyId());
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null ,monthId);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ orderList =
+ screenGovernRankDataDao.selectGovernCapacityRatio(monthId,param.getAgencyId());
+ }
+ if(null == orderList || orderList.isEmpty()) return new ArrayList<>();
+ List result = new LinkedList<>();
+ orderList.forEach(o -> {
+ GovernCapacityRankResultDTO rank = new GovernCapacityRankResultDTO();
+ rank.setAgencyName(o.getAgencyName());
+ rank.setGovernRatio(convertPercentStr(o.getGovernRatio(),NumConstant.ONE));
+ rank.setResolvedRatio(convertPercentStr(o.getResolvedRatio(),NumConstant.ONE));
+ rank.setResponseRatio(convertPercentStr(o.getResponseRatio(),NumConstant.ONE));
+ rank.setSatisfactionRatio(convertPercentStr(o.getSatisfactionRatio(),NumConstant.ONE));
+ result.add(rank);
+ });
+ return result;
+ }
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ @Override
+ public PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param) {
+ Map Xaxis = dateUtils.getXpro();
+ List monthlyData = screenUserJoinDao.selectUserJoinDataMonthly(param.getAgencyId(),Xaxis.keySet().iterator().next());
+ PublicPartiChartResultDTO result = new PublicPartiChartResultDTO();
+ result.setXAxis(Xaxis.values().stream().collect(Collectors.toList()));
+ List defaultData = new LinkedList<>();
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ defaultData.add(NumConstant.ZERO);
+ }
+ if(null == monthlyData || monthlyData.isEmpty()){
+ result.setAverageJoinNumList(defaultData);
+ result.setJoinUserNumList(defaultData);
+ result.setOrganizeNumList(defaultData);
+ return result;
+ }
+ result.setOrganizeNumList(new ArrayList<>());
+ result.setJoinUserNumList(new ArrayList<>());
+ result.setAverageJoinNumList(new ArrayList<>());
+ Map> dataMap = monthlyData.stream().collect(Collectors.groupingBy(UserJoinMonthlyResultDTO :: getMonthId));
+ Xaxis.keySet().stream().forEach(monthId -> {
+ List data = dataMap.get(monthId);
+ if(null == data || data.isEmpty()){
+ result.getOrganizeNumList().add(NumConstant.ZERO);
+ result.getJoinUserNumList().add(NumConstant.ZERO);
+ result.getAverageJoinNumList().add(NumConstant.ZERO);
+ }else{
+ Integer o = NumConstant.ZERO;
+ Integer j = NumConstant.ZERO;
+ Integer a = NumConstant.ZERO;
+ for(UserJoinMonthlyResultDTO unit : data){
+ o = null == unit.getOrganizeNum() ? NumConstant.ZERO : o + unit.getOrganizeNum();
+ j = null == unit.getJoinUserNum() ? NumConstant.ZERO : o + unit.getJoinUserNum();
+ a = null == unit.getAverageJoinNum() ? NumConstant.ZERO : o + unit.getAverageJoinNum();
+ }
+ result.getOrganizeNumList().add(o);
+ result.getJoinUserNumList().add(j);
+ result.getAverageJoinNumList().add(a);
+ }
+ });
+
+ return result;
+ }
+
+
+
+ private String convertPercentStr(BigDecimal percent,Integer digits){
+ if(null == percent) percent = BigDecimal.ZERO;
+ String percentStr = percent.setScale(digits, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java
new file mode 100644
index 0000000000..619eba4625
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java
@@ -0,0 +1,237 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCpcBaseDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenPartyBranchDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.GrassrootsPartyDevService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ParymemberFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService {
+
+ private static final Logger logger = LoggerFactory.getLogger(GrassrootsPartyDevServiceImpl.class);
+
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+ @Autowired
+ private ScreenCpcBaseDataDao screenCpcBaseDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ @Autowired
+ private DateUtils dateUtils;
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param) {
+
+ PartymemberPercentResultDTO result = screenUserTotalDataDao.selectAgencyPartymemberPercent(param.getAgencyId());
+ if(null == result){
+ result = new PartymemberPercentResultDTO();
+ logger.warn("com.epmet.datareport.service.screen.impl.GrassrootsPartyDevServiceImpl.partymemberBaseInfo:未查询出指定agencyId下的党员基础信息数据,agencyId :: {}",param.getAgencyId());
+ result = new PartymemberPercentResultDTO();
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ return result;
+ }
+ //partymember / platform
+ if(null == result.getPlatFormTotal() || NumConstant.ZERO == result.getPlatFormTotal()){
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ }else{
+ result.setPercentInPlatForm(convertPercentStr(new BigDecimal((result.getPartyMemberTotal().doubleValue()/result.getPlatFormTotal().doubleValue()))));
+ }
+ return result;
+ }
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param) {
+ return screenCpcBaseDataDao.selectPartymemberAgeDistribution(param.getAgencyId());
+ }
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ BranchBuildTrendResultDTO result = new BranchBuildTrendResultDTO();
+ //生成近十二个月的横坐标数组
+ Map monthMap = dateUtils.getXpro();
+ result.setXAxis(monthMap.values().stream().collect(Collectors.toList()));
+
+ List dataArray = new LinkedList<>();
+ List yearlyDataList =
+ screenPartyBranchDataDao.selectBranchDataByTypeAndTimeZone(param.getAgencyId(),param.getType(),param.getCategory(),monthMap.keySet().iterator().next());
+
+
+ if(null != yearlyDataList && !yearlyDataList.isEmpty()){
+
+ Map> dataMapByIssue =
+ yearlyDataList.stream().collect(Collectors.groupingBy(BranchIssueDataResultDTO::getIssue));
+
+
+ result.setLegend(new LinkedList<>(dataMapByIssue.keySet()));
+
+ dataMapByIssue.forEach((issue,val) ->{
+ List issueYearlyDataList = val;
+ List numArray = new LinkedList<>();
+ BranchTrendSeriesDataResultDTO data = new BranchTrendSeriesDataResultDTO();
+ data.setName(issue);
+ if(null != issueYearlyDataList && !issueYearlyDataList.isEmpty()){
+ monthMap.keySet().forEach( monthId ->{
+ Optional optional
+ = issueYearlyDataList.stream().filter(yearly -> StringUtils.equals(monthId,yearly.getMonthId())).findAny();
+ if(optional.isPresent()){
+ numArray.add(optional.get().getData());
+ }else{
+ numArray.add(NumConstant.ZERO);
+ }
+ });
+ }else{
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ numArray.add(NumConstant.ZERO);
+ }
+ }
+ data.setData(numArray);
+ dataArray.add(data);
+ });
+ }
+
+ result.setSeriesData(dataArray);
+ result.setLegend(null == result.getLegend() ? new ArrayList<>() : result.getLegend());
+ List _ymList = monthMap.keySet().stream().collect(Collectors.toList());
+ //总组织次数
+ Integer totalOrganizationCount = screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,param.getAgencyId(),monthMap.keySet().iterator().next());
+ //自旋一次
+ totalOrganizationCount = Optional.ofNullable(totalOrganizationCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,param.getAgencyId(),_ymList.get(NumConstant.ONE))
+ );
+ //总参与人数
+ Integer totalJoinUserCount = screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,param.getAgencyId(),monthMap.keySet().iterator().next());
+ //自旋一次
+ totalJoinUserCount = Optional.ofNullable(totalJoinUserCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,param.getAgencyId(),_ymList.get(NumConstant.ONE))
+ );
+
+ result.setTotalOrganizationCount(Optional.ofNullable(totalOrganizationCount).orElse(NumConstant.ZERO));
+ result.setTotalJoinUserCount(Optional.ofNullable(totalJoinUserCount).orElse(NumConstant.ZERO));
+ return result;
+ }
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return BranchBuildRankResultDTO
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ if(StringUtils.isBlank(param.getMonthId())){
+ param.setMonthId(dateUtils.getCurrentMonthId());
+ }
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List orderList =
+ screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
+
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE){
+ time --;
+ param.setMonthId(dateUtils.getPreviousMonthIdByDest(null,param.getMonthId()));
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ orderList =
+ screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
+ }
+
+
+ BranchBuildRankResultDTO result = new BranchBuildRankResultDTO();
+ result.setJoinData(new LinkedList<>());
+ result.setOrganizeData(new LinkedList<>());
+ result.setXAxis(new LinkedList<>());
+ for(BranchBuildOrderByCountResultDTO data : orderList){
+ result.getXAxis().add(data.getOrgName());
+ result.getOrganizeData().add(data.getOrganizeData());
+ result.getJoinData().add(data.getJoinData());
+ }
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
+ String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
new file mode 100644
index 0000000000..22f6aa376b
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
@@ -0,0 +1,185 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenIndexDataMonthlyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenIndexDataYearlyDao;
+import com.epmet.datareport.service.evaluationindex.screen.IndexService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.evaluationindex.screen.dto.form.MonthBarchartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.MonthPieChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.YearAverageIndexFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class IndexServiceImpl implements IndexService {
+
+ @Autowired
+ private ScreenIndexDataYearlyDao screenIndexDataYearlyDao;
+ @Autowired
+ private ScreenIndexDataMonthlyDao screenIndexDataMonthlyDao;
+ @Autowired
+ private PartyMemberLeadServiceImpl partyMemberLeadServiceImpl;
+ @Autowired
+ private DateUtils dateUtils;
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO) {
+ YearAverageIndexResultDTO yearAverageIndexResultDTO = screenIndexDataYearlyDao.selectYearAverageIndex(yearAverageIndexFormDTO.getAgencyId());
+ if (null == yearAverageIndexResultDTO){
+ return new YearAverageIndexResultDTO();
+ }
+ return yearAverageIndexResultDTO;
+ }
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO) {
+
+ MonthPieChartResultDTO monthPieChartResultDTO = screenIndexDataMonthlyDao.selectMonthPieChart(monthPieChartFormDTO.getAgencyId(),null);
+ String monthId = dateUtils.getCurrentMonthId();
+ int time = NumConstant.TWELVE;
+ //保证获取月度指数数据的最大可能性
+ while(null == monthPieChartResultDTO && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ monthPieChartResultDTO = screenIndexDataMonthlyDao.selectMonthPieChart(monthPieChartFormDTO.getAgencyId(),monthId);
+ }
+ if (null == monthPieChartResultDTO){
+ return new MonthPieChartResultDTO();
+ }
+ return monthPieChartResultDTO;
+ }
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO) {
+ MonthBarchartResultDTO result = new MonthBarchartResultDTO();
+ List serviceAbilityData = new ArrayList<>();
+ List partyDevAbilityData = new ArrayList<>();
+ List governAbilityData = new ArrayList<>();
+ List totalIndexData = new ArrayList<>();
+ // 1. x轴
+ result.setXAxis(partyMemberLeadServiceImpl.getXPro());
+ // 2. 查询近一年的指数值【包括本月】
+ List monthBarchartResults = screenIndexDataMonthlyDao.selectMonthBarchart(monthBarchartFormDTO.getAgencyId());
+ if (monthBarchartResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ serviceAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ partyDevAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ governAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ totalIndexData.add(NumConstant.ZERO_DOT_ZERO);
+ }
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+ List collect = monthBarchartResults.stream().sorted(Comparator.comparing(MonthBarchartResult::getMonthId)).collect(Collectors.toList());
+ //升序 当前月份在队尾
+ List _ymList = dateUtils.getXpro().keySet().stream().collect(Collectors.toList());
+ //针对集合collect的游标
+ int cursor = NumConstant.ZERO;
+ //针对X轴,数据集合不全则进行数据填充
+ a:for(int i = NumConstant.ZERO; i < _ymList.size(); i++){
+ //这里的collect必须是有序且升序的
+ if(cursor >= collect.size()) break a;
+ //如果存在过期数据,即从数据库中查询出超出横坐标左边界的月份值
+ if(Integer.parseInt(collect.get(cursor).getMonthId()) < Integer.parseInt(_ymList.get(NumConstant.ZERO))) {
+ //控制当前循环重复进行
+ i--;
+ //忽略过期数据
+ cursor++;
+ continue ;
+ }
+ if(!StringUtils.equals(collect.get(cursor).getMonthId(),_ymList.get(i))){
+ //SET DEFAULT
+ serviceAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ partyDevAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ governAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ totalIndexData.add(NumConstant.ZERO_DOT_ZERO);
+ //保持cursor不变
+ }else{
+ MonthBarchartResult data = collect.get(cursor);
+ //SET DATA
+ serviceAbilityData.add(null == data.getServiceAbility() ? NumConstant.ZERO_DOT_ZERO : data.getServiceAbility());
+ partyDevAbilityData.add(null == data.getPartyDevAbility() ? NumConstant.ZERO_DOT_ZERO : data.getPartyDevAbility());
+ governAbilityData.add(null == data.getGovernAbility() ? NumConstant.ZERO_DOT_ZERO : data.getGovernAbility());
+ totalIndexData.add(null == data.getIndexTotal() ? NumConstant.ZERO_DOT_ZERO : data.getIndexTotal());
+ //统计日期一致后移动游标
+ cursor++;
+ }
+
+ }
+
+ /*collect.forEach(month -> {
+ serviceAbilityData.add(null == month.getServiceAbility() ? NumConstant.ZERO_DOT_ZERO : month.getServiceAbility());
+ partyDevAbilityData.add(null == month.getPartyDevAbility() ? NumConstant.ZERO_DOT_ZERO : month.getPartyDevAbility());
+ governAbilityData.add(null == month.getGovernAbility() ? NumConstant.ZERO_DOT_ZERO : month.getGovernAbility());
+ totalIndexData.add(null == month.getIndexTotal() ? NumConstant.ZERO_DOT_ZERO : month.getIndexTotal());
+ });*/
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO) {
+ LocalDate now = LocalDate.now().minusMonths(NumConstant.ONE);
+ int yearId = now.getYear();
+ subAgencyIndexRankFormDTO.setYearId(String.valueOf(yearId));
+ List subAgencyIndexRankResultDTOS = screenIndexDataMonthlyDao.selectSubAgencyIndexRank(subAgencyIndexRankFormDTO);
+ if (CollectionUtils.isEmpty(subAgencyIndexRankResultDTOS)){
+ return new ArrayList<>();
+ }
+ return subAgencyIndexRankResultDTOS;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java
new file mode 100644
index 0000000000..203b5cb456
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java
@@ -0,0 +1,261 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.*;
+import com.epmet.datareport.service.evaluationindex.screen.PartyMemberLeadService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.FineExampleFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class PartyMemberLeadServiceImpl implements PartyMemberLeadService {
+
+ @Autowired
+ private ScreenPartyLinkMassesDataDao screenPartyLinkMassesDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ @Autowired
+ private ScreenPioneerDataDao screenPioneerDataDao;
+ @Autowired
+ private ScreenOrgRankDataDao screenOrgRankDataDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO) {
+ FineExampleResultDTO fineExampleResultDTO = screenPioneerDataDao.selectFineExample(fineExampleFormDTO.getAgencyId());
+ if (null == fineExampleResultDTO){
+ return new FineExampleResultDTO();
+ }
+ fineExampleResultDTO.setIssueRatio(this.getRatio(fineExampleResultDTO.getIssueRatioA()));
+ fineExampleResultDTO.setPublishIssueRatio(this.getRatio(fineExampleResultDTO.getPublishIssueRatioA()));
+ fineExampleResultDTO.setResolvedProjectRatio(this.getRatio(fineExampleResultDTO.getResolvedProjectRatioA()));
+ fineExampleResultDTO.setTopicRatio(this.getRatio(fineExampleResultDTO.getTopicRatioA()));
+ fineExampleResultDTO.setShiftProjectRatio(this.getRatio(fineExampleResultDTO.getShiftProjectRatioA()));
+ return fineExampleResultDTO;
+ }
+
+ /**
+ * @Description 小数转换百分比
+ * @param d
+ * @author zxc
+ * @date 2020/8/20 6:06 下午
+ */
+ public String getRatio(Double d){
+ BigDecimal bigDecimal = new BigDecimal(d);
+ return bigDecimal.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).toPlainString().concat(ScreenConstant.RATIO);
+ }
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO) {
+ ContactMassLineChartResultDTO result = new ContactMassLineChartResultDTO();
+ List contactMassLineChartResults = screenPartyLinkMassesDataDao.selectContactMassLineChart(contactMassLineChartFormDTO.getAgencyId());
+ if (contactMassLineChartResults.size() == NumConstant.ZERO){
+ result.setXAxis(new ArrayList<>());
+ result.setGroupMemberData(new ArrayList<>());
+ result.setGroupData(new ArrayList<>());
+ return result;
+ }
+ List xAxis = new ArrayList<>();
+ List groupData = new ArrayList<>();
+ List groupMemberData = new ArrayList<>();
+ contactMassLineChartResults.forEach(contact -> {
+ xAxis.add(contact.getOrgName());
+ groupData.add(contact.getGroupTotal());
+ groupMemberData.add(contact.getUserTotal());
+ });
+ result.setXAxis(xAxis);
+ result.setGroupData(groupData);
+ result.setGroupMemberData(groupMemberData);
+ result.setGroupTotal(groupData.stream().mapToInt(Integer :: intValue).sum());
+ result.setGroupMemberTotal(groupMemberData.stream().mapToInt(Integer :: intValue).sum());
+ return result;
+ }
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO) {
+ VolunteerServiceResultDTO result = new VolunteerServiceResultDTO();
+ List organizeData = new ArrayList<>();
+ List joinData = new ArrayList<>();
+ List averageJoinUserData = new ArrayList<>();
+ result.setXAxis(this.getXPro());
+ //创建缺省值对象
+ VolunteerServiceResult defaultObj = new VolunteerServiceResult();
+ defaultObj.setAverageJoinUserData(NumConstant.ZERO);
+ defaultObj.setJoinData(NumConstant.ZERO);
+ defaultObj.setOrganizeData(NumConstant.ZERO);
+
+ //倒叙取十二个月的数据,从本月开始,有可能取不到十二条,要对X轴空白的缺口进行填补
+ List volunteerServiceResults = screenPartyBranchDataDao.selectVolunteerServiceResult(volunteerServiceFormDTO.getAgencyId());
+ if (volunteerServiceResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ organizeData.add(NumConstant.ZERO);
+ joinData.add(NumConstant.ZERO);
+ averageJoinUserData.add(NumConstant.ZERO);
+ }
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ return result;
+ }
+
+ Set yyyyMMList = dateUtils.getXpro().keySet();
+ yyyyMMList.forEach(mm -> {
+ Optional opt = volunteerServiceResults.stream()
+ .filter(obj -> StringUtils.equals(mm,obj.getMonthId())).findAny();
+ VolunteerServiceResult find = opt.isPresent() ? opt.get() : defaultObj;
+ organizeData.add(find.getOrganizeData());
+ joinData.add(find.getJoinData());
+ averageJoinUserData.add(find.getAverageJoinUserData());
+ });
+
+
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ String bottomMonthId = yyyyMMList.iterator().next();
+ //总组织次数
+ Integer totalOrganizationCount = screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,volunteerServiceFormDTO.getAgencyId(),bottomMonthId);
+ //自旋一次
+ totalOrganizationCount = Optional.ofNullable(totalOrganizationCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,volunteerServiceFormDTO.getAgencyId(),dateUtils.getPreviousMonthIdByDest(null,bottomMonthId))
+ );
+ //总参与人数
+ Integer totalJoinUserCount = screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,volunteerServiceFormDTO.getAgencyId(),bottomMonthId);
+ //自旋一次
+ totalJoinUserCount = Optional.ofNullable(totalJoinUserCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,volunteerServiceFormDTO.getAgencyId(),dateUtils.getPreviousMonthIdByDest(null,bottomMonthId))
+ );
+ result.setTotalOrganizationCount(null == totalOrganizationCount ? NumConstant.ZERO : totalOrganizationCount);
+ result.setTotalJoinUserCount(null == totalJoinUserCount ? NumConstant.ZERO : totalJoinUserCount);
+ return result;
+ }
+
+ /**
+ * @Description 获取之前的12个月份【包括当前月】
+ * @author zxc
+ * @date 2020/8/21 10:19 上午
+ */
+ public List getXPro(){
+ List xAxis = new ArrayList<>();
+ LocalDate today = LocalDate.now();
+ for(int i = NumConstant.ELEVEN;i >= NumConstant.ZERO; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + ScreenConstant.MONTH;
+ xAxis.add(s);
+ }
+ return xAxis;
+ }
+
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List advancedBranchRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }else if(NumConstant.ZERO == param.getTopNum()){
+ param.setTopNum(NumConstant.MAX);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ String monthId = dateUtils.getCurrentMonthId();
+ List gridData =
+ screenOrgRankDataDao.selectGridDataMonthly(param.getAgencyId(),monthId);
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(gridData) && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ gridData = screenOrgRankDataDao.selectGridDataMonthly(param.getAgencyId(),monthId);
+ }
+ List result = new LinkedList<>();
+ if(null == gridData || gridData.isEmpty()) return result;
+ gridData.forEach( data -> {
+ AdvanceBranchRankResultDTO o = ConvertUtils.sourceToTarget(data,AdvanceBranchRankResultDTO.class);
+ o.setClosedProjectRatio(convertPercentStr(data.getClosedProjectRatio()));
+ o.setSatisfactionRatio(convertPercentStr(data.getSatisfactionRatio()));
+ result.add(o);
+ });
+
+ return result;
+ }
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List advancedPartymemberRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.TEN);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenPartyUserRankDataDao.selectPartymemberPointOrder(param.getAgencyId());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.0%";
+ String percentStr = percent.setScale(NumConstant.ONE, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+}
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
new file mode 100644
index 0000000000..2cf288cae9
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
@@ -0,0 +1,47 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventImgDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService;
+import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:23
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class ScreenProjectServiceImpl implements ScreenProjectService {
+
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenEventImgDataDao screenEventImgDataDao;
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true)
+ @Override
+ public ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO) {
+ ProjectDetailResultDTO projectDetailResultDTO = screenEventDataDao.selectEventDetail(projectDetailFormDTO.getProjectId(),projectDetailFormDTO.getAgencyId());
+ if (null == projectDetailResultDTO){
+ return new ProjectDetailResultDTO();
+ }
+ List imgList = screenEventImgDataDao.selectEventImgList(projectDetailFormDTO.getProjectId());
+ projectDetailResultDTO.setImgList(imgList);
+ return projectDetailResultDTO;
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
index d644029bcf..66d57fc92c 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.group;
+package com.epmet.datareport.service.group;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
index d1be53ee85..be4faf115d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
@@ -1,15 +1,15 @@
-package com.epmet.service.group.impl;
+package com.epmet.datareport.service.group.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.group.GroupDao;
+import com.epmet.datareport.dao.group.GroupDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.group.constant.GroupConstant;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
import com.epmet.group.dto.result.*;
-import com.epmet.service.group.GroupService;
+import com.epmet.datareport.service.group.GroupService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
index c0d33b2a3b..d0b3b6156d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.issue;
+package com.epmet.datareport.service.issue;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
index d44576202e..86953616b1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
@@ -1,22 +1,20 @@
-package com.epmet.service.issue.impl;
+package com.epmet.datareport.service.issue.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.issue.IssueDao;
+import com.epmet.datareport.dao.issue.IssueDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.issue.constant.IssueConstant;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
import com.epmet.issue.dto.result.*;
-import com.epmet.service.issue.IssueService;
+import com.epmet.datareport.service.issue.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
index 6e5366827f..41af9351ac 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
@@ -1,10 +1,10 @@
-package com.epmet.service.project.impl;
+package com.epmet.datareport.service.project.impl;
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.DateUtils;
-import com.epmet.dao.project.ProjectDao;
+import com.epmet.datareport.dao.project.ProjectDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
index bec823066c..35b6fff93b 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity;
+package com.epmet.datareport.service.publicity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.publicity.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
index b01f9339bc..9a8ceaca2f 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
@@ -15,16 +15,16 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity.impl;
+package com.epmet.datareport.service.publicity.impl;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.publicity.PublicityDao;
+import com.epmet.datareport.dao.publicity.PublicityDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.publicity.dto.result.*;
-import com.epmet.service.publicity.PublicityService;
+import com.epmet.datareport.service.publicity.PublicityService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
index 584ac1b1dc..f0dd505cb4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.topic;
+package com.epmet.datareport.service.topic;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
index 298dcae7a3..12889caaae 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
@@ -1,13 +1,12 @@
-package com.epmet.service.topic.impl;
+package com.epmet.datareport.service.topic.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.topic.TopicDao;
+import com.epmet.datareport.dao.topic.TopicDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.group.constant.GroupConstant;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.constant.TopicConstant;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
@@ -16,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
index 2c658fc1da..47c304f1b2 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user;
+package com.epmet.datareport.service.user;
import com.epmet.dto.form.user.UserIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
index 3244076896..88e39067b4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user.impl;
+package com.epmet.datareport.service.user.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
@@ -7,7 +7,7 @@ import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserAnalysisConstant;
-import com.epmet.dao.user.UserAnalysisDao;
+import com.epmet.datareport.dao.user.UserAnalysisDao;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
@@ -19,7 +19,7 @@ import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.user.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
new file mode 100644
index 0000000000..b2d99c00f1
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
@@ -0,0 +1,141 @@
+package com.epmet.datareport.utils;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Description
+ * @ClassName DateUtils
+ * @Auth wangc
+ * @Date 2020-08-20 10:56
+ */
+@Component
+public class DateUtils {
+ private static SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyyMM");
+ private static DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMM");
+ /**
+ * @Description 返回当前月以及前十一个月,升序
+ * @param
+ * @return Map key:202001 value:1月
+ * @author wangc
+ * @date 2020.08.19 12:46
+ **/
+ public Map getX(){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ //calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ String currentMonth = defaultFormat.format(calendar.getTime());
+ Integer monthCounter = Integer.parseInt(currentMonth);
+ Map monthMap = new HashMap<>();
+ int i = NumConstant.ONE;
+ while(i <= NumConstant.TWELVE){
+
+ if(monthCounter.toString().endsWith("00")){
+ monthCounter -= NumConstant.EIGHTY_EIGHT;
+ }
+
+ String abscissa = monthCounter.toString().substring(monthCounter.toString().length() - NumConstant.TWO);
+ if(abscissa.startsWith("0")) {
+ abscissa = abscissa.replace("0","").concat("月");
+ }else{
+ abscissa = abscissa.concat("月");
+ }
+ monthMap.put(monthCounter.toString(),abscissa);
+ monthCounter-- ;
+ i++;
+ }
+
+ Map result = Maps.newLinkedHashMap();
+ monthMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+
+ return result;
+ }
+
+ public Map getXpro(){
+ Map xAxis = new HashMap<>();
+ LocalDate today = LocalDate.now();
+
+ for(int i = NumConstant.ELEVEN;i >= NumConstant.ZERO; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + "月";
+ xAxis.put(localDate.format(fmt),s);
+ }
+ Map result = Maps.newLinkedHashMap();
+ xAxis.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+ return result;
+ }
+
+ /**
+ * @Description 得到上个月的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 10:19
+ **/
+ public String getPreviousMonthId(){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ return format.format(calendar.getTime());
+ }
+
+ public String getPreviousMonthIdByDest(Date date,String dateStr){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar c = Calendar.getInstance();
+ if(null == date && StringUtils.isNotBlank(dateStr)){
+ try{
+ date = format.parse(dateStr);
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }else{
+ return null;
+ }
+ c.setTime(date);
+ c.add(Calendar.MONTH, NumConstant.ONE_NEG);
+ return format.format(c.getTime());
+ }
+
+ /**
+ * @Description 得到当前月份的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.27 13:43
+ **/
+ public String getCurrentMonthId(){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ return defaultFormat.format(calendar.getTime());
+ }
+
+ public static void main(String[] args) {
+ DateUtils util = new DateUtils();
+ Map result = util.getXpro();
+ result.forEach((k,v) -> {
+ System.out.print(k);
+ System.out.print(" -> ");
+ System.out.print(v);
+ System.out.println();
+ });
+
+ List xLine = result.values().stream().collect(Collectors.toList());
+ xLine.forEach(x -> {
+ System.out.println(x);
+ });
+
+ result.keySet().forEach(key -> System.out.println(key));
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
new file mode 100644
index 0000000000..7e3af9f112
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
@@ -0,0 +1,34 @@
+package com.epmet.datareport.utils;
+
+public interface ModuleConstant {
+
+ String PARAM_BRANCH_CATEGORY_UNION = "ljgj";
+
+ String PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "ljdyzy";
+
+ String PARAM_BRANCH_CATEGORY_PARTY = "zbjs";
+
+ String KEY_BRANCH_CATEGORY_UNION = "union";
+
+ String KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "voluntaryservice";
+
+ String KEY_BRANCH_CATEGORY_PARTY = "party";
+
+ String SYMBOL_PERCENT = "%";
+
+ String PARAM_DIFFICULTY_TYPE_TIME_LONGEST = "timelongest";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_DEPTS = "mostdepts";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_HANDLED = "mosthandled";
+
+ /**
+ * 支部建设情况折线图 查询数据类型 组织次数
+ * */
+ String PARAM_BRANCH_DATA_TYPE_ORGAN = "organize";
+
+ /**
+ * 支部建设情况折线图 查询数据类型 参与人数
+ * */
+ String PARAM_BRANCH_DATA_TYPE_JOIN = "joinuser";
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
index 19e6e4b584..5899ead6dd 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
@@ -24,9 +24,9 @@ spring:
druid:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
- url: @datasource.druid.url@
- username: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
cloud:
nacos:
discovery:
@@ -53,11 +53,11 @@ spring:
# 数据迁移工具flyway
flyway:
- enabled: false
+ enabled: @spring.flyway.enabled@
locations: classpath:db/migration
- url: @datasource.druid.url@
- user: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ user: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
baseline-on-migrate: true
baseline-version: 0
@@ -91,6 +91,25 @@ mybatis-plus:
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
+#动态数据源
+dynamic:
+ datasource:
+ stats:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
+ statsDisplay:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.statsdisplay.url@
+ username: @datasource.druid.statsdisplay.username@
+ password: @datasource.druid.statsdisplay.password@
+ evaluationIndex:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.evaluationIndex.url@
+ username: @datasource.druid.evaluationIndex.username@
+ password: @datasource.druid.evaluationIndex.password@
+
feign:
hystrix:
enabled: true
@@ -116,4 +135,9 @@ ribbon:
#pageHelper分页插件
pagehelper:
helper-dialect: mysql
- reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
\ No newline at end of file
+ reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
+
+dingTalk:
+ robot:
+ webHook: @dingTalk.robot.webHook@
+ secret: @dingTalk.robot.secret@
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql b/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql
new file mode 100644
index 0000000000..7a51a3f595
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql
@@ -0,0 +1 @@
+select 0;
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
index ad10364cb5..793be083a1 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
@@ -5,6 +5,8 @@
+
+
${appname}
@@ -125,11 +127,14 @@
15
-
-
+
+
ERROR
ACCEPT
DENY
+ ${webHook}
+ ${secret}
+ ${appname}
@@ -137,13 +142,14 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -156,13 +162,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
index b3b1faecd7..159a814a61 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
index 49333cc3e4..02266e7884 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
@@ -1,7 +1,7 @@
-
+
SELECT AGENCY_ID,
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
index 9ea5c548d6..21b472e4de 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
index 165aab88fa..1c0c5700d4 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
@@ -1,7 +1,7 @@
-