diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationFailedEventListener.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationFailedEventListener.java
new file mode 100644
index 0000000000..5c219ab095
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationFailedEventListener.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.commons.tools.aspect;
+
+import com.alibaba.fastjson.JSON;
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
+import com.epmet.commons.tools.enums.EnvEnum;
+import com.epmet.commons.tools.utils.SpringContextUtils;
+import com.taobao.api.ApiException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.event.ApplicationFailedEvent;
+import org.springframework.cloud.commons.util.InetUtils;
+import org.springframework.context.ApplicationListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 应用 启动健康检查 通知类
+ * CustomerApplicationRunner
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Component
+public class ApplicationFailedEventListener implements ApplicationListener {
+ private static Logger logger = LogManager.getLogger(ApplicationFailedEventListener.class);
+ @Value("${spring.application.name}")
+ private String appName;
+ @Value("${server.version}")
+ private String version;
+
+ @Override
+ public void onApplicationEvent(ApplicationFailedEvent applicationFailedEvent) {
+ Throwable exception = applicationFailedEvent.getException();
+ EnvEnum currentEnv = EnvEnum.getCurrentEnv();
+ logger.info(currentEnv);
+ if (!EnvEnum.DEV.getCode().equals(currentEnv.getCode()) && !EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())) {
+ sendDingMarkDownMsg(exception);
+ }
+ }
+
+
+ private String getServerIp() {
+ InetUtils inetUtils = SpringContextUtils.getBean(InetUtils.class);
+ return inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ }
+
+ private void sendDingMarkDownMsg(Throwable exception) {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=ffd7c972b0525e249283df1a16b65a8b9d0012601f3a458dfc588c2eac497bb5");
+ OapiRobotSendRequest request = new OapiRobotSendRequest();
+ request.setMsgtype("markdown");
+ OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
+ markdown.setTitle("部署失败通知");
+
+ markdown.setText("部署失败通知 \n" +
+ "> 服务:" + appName + "\n\n" +
+ "> 版本:" + version + "\n\n" +
+ "> 环境:" + EnvEnum.getCurrentEnv().getName() + "\n\n" +
+ "> IP: " + getServerIp() + "\n\n" +
+ "> 异常:" + exception.getMessage() + "\n\n"
+ );
+ request.setMarkdown(markdown);
+ OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
+ at.setIsAtAll(true);
+ request.setAt(at);
+ try {
+ OapiRobotSendResponse execute = client.execute(request);
+ logger.info("=====通知结果===>" + JSON.toJSONString(execute));
+ } catch (ApiException e) {
+ logger.error("sendDingMarkDownMsg exception", e);
+ }
+ }
+
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationReadyEventListener.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationReadyEventListener.java
new file mode 100644
index 0000000000..901163e7ac
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationReadyEventListener.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.commons.tools.aspect;
+
+import com.alibaba.fastjson.JSON;
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
+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 com.taobao.api.ApiException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.cloud.commons.util.InetUtils;
+import org.springframework.context.ApplicationListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 应用 启动健康检查 通知类
+ * CustomerApplicationRunner
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Component
+public class ApplicationReadyEventListener implements ApplicationListener {
+ private static Logger logger = LogManager.getLogger(ApplicationReadyEventListener.class);
+ @Value("${spring.application.name}")
+ private String appName;
+ @Value("${server.version}")
+ private String version;
+
+ @Override
+ public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
+ EnvEnum currentEnv = EnvEnum.getCurrentEnv();
+ logger.info(currentEnv);
+ if (!EnvEnum.DEV.getCode().equals(currentEnv.getCode()) && !EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())) {
+ //sendDingTextMsg();
+ sendDingMarkDownMsg();
+ }
+ }
+
+ private void sendDingTextMsg() {
+ //发送启动成功消息
+ 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);
+ }
+
+ private String getServerIp() {
+ InetUtils inetUtils = SpringContextUtils.getBean(InetUtils.class);
+ return inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ }
+
+ private void sendDingMarkDownMsg() {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=ffd7c972b0525e249283df1a16b65a8b9d0012601f3a458dfc588c2eac497bb5");
+ OapiRobotSendRequest request = new OapiRobotSendRequest();
+ request.setMsgtype("markdown");
+ OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
+ markdown.setTitle("部署成功通知");
+
+ markdown.setText("部署成功通知 \n" +
+ "> 服务:" + appName + "\n\n" +
+ "> 版本:" + version + "\n\n" +
+ "> 环境:" + EnvEnum.getCurrentEnv().getName() + "\n\n" +
+ "> IP: " + getServerIp() + "\n\n"
+ );
+ request.setMarkdown(markdown);
+ OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
+ at.setIsAtAll(true);
+ request.setAt(at);
+ try {
+ OapiRobotSendResponse execute = client.execute(request);
+ logger.info("=====通知结果===>" + JSON.toJSONString(execute));
+ } catch (ApiException e) {
+ logger.error("sendDingMarkDownMsg exception", e);
+ }
+ }
+
+
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
index 8dd819e4b7..4b3496ee36 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
@@ -1,6 +1,7 @@
package com.epmet.commons.tools.aspect;
import com.epmet.commons.tools.constant.AppClientConstant;
+import com.epmet.commons.tools.constant.ThreadLocalConstant;
import com.epmet.commons.tools.exception.*;
import com.epmet.commons.tools.utils.Result;
import org.apache.commons.lang3.StringUtils;
@@ -12,6 +13,7 @@ import org.springframework.dao.DuplicateKeyException;
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
import java.time.LocalDateTime;
+import java.util.Arrays;
/**
* 日志切面
@@ -61,12 +63,18 @@ public abstract class BaseRequestLogAspect {
try {
Object[] args = point.getArgs();
+ ThreadLocalConstant.requestParam.set(Arrays.toString(point.getArgs()));
log.info(">>>>>>>>请求信息>>>>>>>>:事务流水号:{},url:{} ,method:{},请求参数:{}", transactionSerial, requestURI, method, objectsToString(args));
result = point.proceed();
resultInfoLog(transactionSerial, getExecPeriod(startTime), result);
} catch (RenException e) {
result = handleRenException(e);
- resultErrorLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
+ if (e.getCode() > 8000) {
+ resultWarnLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
+ } else {
+ resultErrorLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
+ }
+ return result;
} catch (ValidateException e) {
result = handleValidateException(e);
resultErrorLog(transactionSerial, getExecPeriod(startTime), result, e.getMsg(), ExceptionUtils.getErrorStackTrace(e));
@@ -95,7 +103,7 @@ public abstract class BaseRequestLogAspect {
}
/**
- * 异常信息
+ * 异常错误级别日志
* @param transactionSerial
* @param execTimeMillis
* @param result
@@ -107,6 +115,19 @@ public abstract class BaseRequestLogAspect {
transactionSerial, execTimeMillis, result == null ? result : result.toString(), exceptionMsg, exceptionDetail);
}
+ /**
+ * 异常警告级别日志
+ * @param transactionSerial
+ * @param execTimeMillis
+ * @param result
+ * @param exceptionMsg
+ * @param exceptionDetail
+ */
+ private void resultWarnLog(String transactionSerial, Long execTimeMillis, Object result, String exceptionMsg, String exceptionDetail) {
+ log.warn("<<<<<<<<异常响应<<<<<<<<:事务流水号:{}, 执行时长:{}ms, 响应数据:{}, 异常信息:{}, 堆栈信息:{}",
+ transactionSerial, execTimeMillis, result == null ? result : result.toString(), exceptionMsg, exceptionDetail);
+ }
+
/**
* 计算执行周期
* @param startTime
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
deleted file mode 100644
index 4500453213..0000000000
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/CustomerApplicationRunner.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * 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()) && !EnvEnum.LOCAL.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/aspect/RequirePermissionAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/RequirePermissionAspect.java
index 3b5858b805..da3cab475e 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/RequirePermissionAspect.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/RequirePermissionAspect.java
@@ -11,9 +11,6 @@ package com.epmet.commons.tools.aspect;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.constant.ThreadLocalConstant;
import com.epmet.commons.tools.dto.form.HasSpecifiedPermissionFormDTO;
-import com.epmet.commons.tools.dto.form.LoginUserInfoFormDTO;
-import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO;
-import com.epmet.commons.tools.dto.form.RoleOpeScopeResultDTO;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
@@ -30,11 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
/**
* 每次请求,过滤Api中配置的权限key出来,并且判断是否具有该功能权限
* @Author wxz
@@ -89,8 +81,9 @@ public class RequirePermissionAspect {
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
}
Boolean data = result.getData();
+
if (data == null || !data) {
- log.error("操作权限不足");
+ log.warn("操作权限不足,key:{}", requirePermission);
throw new RenException(EpmetErrorCode.REQUIRE_PERMISSION.getCode());
}
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java
new file mode 100644
index 0000000000..143fce4f7f
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java
@@ -0,0 +1,24 @@
+package com.epmet.commons.tools.config.shutdown;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 优雅停机配置
+ * matchIfMissing:当缺少shutdown.graceful.enable配置的时候,是否加载该配置类。true:缺少也加载,false:默认的,缺少配置不加载,即不生效
+ */
+@Configuration
+@ConditionalOnProperty(prefix = "shutdown.graceful", name = "enable", havingValue = "true", matchIfMissing = false)
+public class GracefulShutdownConfig {
+
+ @Bean
+ public ServletWebServerFactory servletContainer(GracefulShutdownTomcat gracefulShutdownTomcat) {
+ TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
+ tomcat.addConnectorCustomizers(gracefulShutdownTomcat);
+ return tomcat;
+ }
+
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java
new file mode 100644
index 0000000000..58ac781efe
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java
@@ -0,0 +1,52 @@
+package com.epmet.commons.tools.config.shutdown;
+
+import org.apache.catalina.connector.Connector;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+@EnableConfigurationProperties(ShutdownProperties.class)
+@Component
+@ConditionalOnProperty(prefix = "shutdown.graceful", name = "enable", havingValue = "true", matchIfMissing = false)
+public class GracefulShutdownTomcat implements TomcatConnectorCustomizer, ApplicationListener {
+
+ private static final Logger logger = LoggerFactory.getLogger(GracefulShutdownTomcat.class);
+
+ @Autowired
+ private ShutdownProperties shutdownProperties;
+
+ private volatile Connector connector;
+
+ @Override
+ public void customize(Connector connector) {
+ this.connector = connector;
+ }
+ @Override
+ public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
+ this.connector.pause();
+ Executor executor = this.connector.getProtocolHandler().getExecutor();
+ long waitTimeSecs = shutdownProperties.getGraceful().getWaitTimeSecs();
+ if (executor instanceof ThreadPoolExecutor) {
+ try {
+ ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;
+ threadPoolExecutor.shutdown();
+ if (!threadPoolExecutor.awaitTermination(waitTimeSecs, TimeUnit.SECONDS)) {
+ String msg = String.format("Tomcat在【%s】秒内优雅停机失败,请手动处理", waitTimeSecs);
+ logger.error(msg);
+ }
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/ShutdownProperties.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/ShutdownProperties.java
new file mode 100644
index 0000000000..1561f197be
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/ShutdownProperties.java
@@ -0,0 +1,17 @@
+package com.epmet.commons.tools.config.shutdown;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@ConfigurationProperties(prefix = "shutdown")
+@Data
+public class ShutdownProperties {
+
+ private GracefulShutdownProperties graceful;
+
+ @Data
+ public static class GracefulShutdownProperties {
+ private long waitTimeSecs = 30;
+ }
+
+}
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 59e3ce4bdc..a9cc07d7a4 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
@@ -26,6 +26,7 @@ public interface NumConstant {
int TEN = 10;
int ELEVEN = 11;
int TWELVE = 12;
+ int THIRTEEN = 13;
int SEVENTEEN = 17;
int FIFTEEN = 15;
int FOURTEEN=14;
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
index b66c3c33d2..e104c83e54 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
@@ -119,6 +119,11 @@ public interface ServiceConstant {
*/
String DATA_STATISTICAL_SERVER = "data-statistical-server";
+ /**
+ * 数据统计结果查询
+ */
+ String DATA_REPORT_SERVER="data-report-server";
+
/**
* 微信第三方平台
*/
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
index 03233b7c47..41302f5e32 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
@@ -81,4 +81,6 @@ public interface StrConstant {
String MIN="MIN";
String MAX="MAX";
+
+ String SPECIAL_CUSTOMER = "150282ed25c14ff0785e7e06283b6283";
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
index 2dad0d6dba..6a2b304cfa 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
@@ -1,7 +1,5 @@
package com.epmet.commons.tools.constant;
-import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO;
-
/**
* ThreadLocal常亮
*/
@@ -16,4 +14,9 @@ public class ThreadLocalConstant {
* 用于向DataFilterInterceptor传递权限过滤的sql片段(需要在Controller相关的AOP中进行清理,防止变量残留)
*/
public static final ThreadLocal sqlFilter = new ThreadLocal();
+
+ /**
+ * 用于本次的获取请求参数
+ */
+ public static final ThreadLocal requestParam = new ThreadLocal();
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java
index 6bfb25fe48..85a2e61c84 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java
@@ -37,21 +37,21 @@ public class DistributedLock {
}
/**
- * @Description
- * @Param name 锁名
- * @Param leaseTime 持锁时间 单位:min
- * @Param waitTime 获取锁最长等待时间 单位:min
- * @author zxc
- * @date 2020/10/29 9:04 上午
+ * 取锁
+ * @param name 锁key
+ * @param leaseTime 持有锁的时长
+ * @param waitTime 取锁等待时长
+ * @param timeUnit 持锁时长的时间单位
+ * @return
*/
- public RLock getLock(String name,Long leaseTime,Long waitTime){
+ public RLock getLock(String name, Long leaseTime, Long waitTime, TimeUnit timeUnit) {
RLock lock = null;
- if (StringUtils.isNotBlank(name) && leaseTime > 0 && waitTime > 0 ){
+ if (StringUtils.isNotBlank(name) && leaseTime > 0 && waitTime > 0) {
lock = redissonClient.getLock(name);
Boolean lockStatus;
try {
- lockStatus = lock.tryLock(waitTime,leaseTime,TimeUnit.MINUTES);
- if (!lockStatus){
+ lockStatus = lock.tryLock(waitTime, leaseTime, timeUnit);
+ if (!lockStatus) {
throw new RenException("获取锁🔒失败了......");
}
} catch (InterruptedException e) {
@@ -62,14 +62,14 @@ public class DistributedLock {
}
/**
- * @Description 释放锁🔒
+ * @Description 释放锁🔒
* @Param rLock
* @author zxc
* @date 2020/10/28 2:52 下午
*/
- public void unLock(RLock rLock){
- if (null != rLock){
- if (rLock.isHeldByCurrentThread()){
+ public void unLock(RLock rLock) {
+ if (null != rLock) {
+ if (rLock.isHeldByCurrentThread()) {
rLock.unlock();
}
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java
index ec14e7c812..6f371a1e09 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java
@@ -3,6 +3,7 @@ package com.epmet.commons.tools.dto.form.mq.eventmsg;
import lombok.Data;
import java.io.Serializable;
+import java.util.Date;
/**
* desc:积分相关事件消息体
@@ -57,4 +58,15 @@ public class BasePointEventMsg implements Serializable {
* 业务id eg:活动id
*/
private String sourceId;
-}
+
+ /**
+ * 计算积分上限时的计算日期,可以为空
+ * 场景: 通过分享链接申请入组,在组长审核完成后要给邀请人添加积分,若被邀请人是已注册居民,
+ * 给邀请人添加积分有上限,计算上限的日期不能是组长审核的日期,而是被邀请人发送入组审核的日期
+ * 对应的事件编码为:invite_resident_into_group
+ * 只针对[邀请已注册的用户入组]事件生效
+ */
+ private Date targetDate;
+
+ private String eventTag;
+ }
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 d0df724665..31d5faaa34 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
@@ -11,11 +11,14 @@ import org.springframework.core.env.Environment;
* @date 2020-07-03 11:14
**/
public enum EnvEnum {
- LOCAL("local", "本地环境","http://localhost:8080/api/"),
- DEV("dev", "开发环境","http://192.168.1.130:8080/api/"),
- TEST("test", "体验环境","https://epmet-dev.elinkservice.cn/api/"),
- PROD("prod", "生产环境","https://epmet-cloud.elinkservice.cn/api/"),
- UN_KNOWN("un_known", "未知","https://epmet-dev.elinkservice.cn/api/"),
+ /**
+ * 环境变量枚举
+ */
+ LOCAL("local", "本地环境", "http://localhost:8080/api/"),
+ DEV("dev", "开发环境", "http://192.168.1.130:8080/api/"),
+ TEST("test", "体验环境", "https://epmet-dev.elinkservice.cn/api/"),
+ PROD("prod", "生产环境", "https://epmet-cloud.elinkservice.cn/api/"),
+ UN_KNOWN("un_known", "未知", "https://epmet-dev.elinkservice.cn/api/"),
;
private String code;
@@ -33,7 +36,7 @@ public enum EnvEnum {
public static EnvEnum getEnum(String code) {
EnvEnum[] values = EnvEnum.values();
for (EnvEnum value : values) {
- if (code != null && value.getCode().equals(code)) {
+ if (value.getCode().equals(code)) {
return value;
}
}
@@ -44,7 +47,7 @@ public enum EnvEnum {
try {
Environment environment = SpringContextUtils.getBean(Environment.class);
String[] activeProfiles = environment.getActiveProfiles();
- if (activeProfiles != null && activeProfiles.length > 0) {
+ if (activeProfiles.length > 0) {
return getEnum(activeProfiles[0]);
}
} catch (Exception e) {
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java
index 68347c29f9..c1409342d6 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EventEnum.java
@@ -10,6 +10,13 @@ public enum EventEnum {
ACTIVE_SEND_POINT("active_send_point", "epmet_heart", "活动发放积分"),
REGISTER_VOLUNTEER("register_volunteer", "epmet_heart", "认证志愿者"),
ACTIVE_INSERT_LIVE("active_insert_live", "epmet_heart", "添加活动实况"),
+ INVITE_NEW_RESIDENT_INTO_GROUP("invite_new_into_group","resi_group","拉新用户入组"),
+ INVITE_RESIDENT_INTO_GROUP("invite_resi_into_group","resi_group","邀请已注册的用户入组"),
+ PUBLISH_ONE_TOPIC("publish_one_topic","resi_group","发布话题"),
+ PARTICIPATE_ONE_TOPIC("participate_one_topic","resi_group","对小组内话题进行15字以上评论"),
+ TOPIC_SHIFTED_TO_ISSUE("topic_to_issue","resi_group","话题被转为议题(小组中发布的话题被组长转为议题)"),
+ SHIFT_TOPIC_TO_ISSUE("shift_topic_to_issue","resi_group","转话题为议题(将自建小组中话题转为议题)"),
+ TOPIC_SHIFTED_TO_PROJECT("topic_to_project","resi_group","话题被转为项目"),
;
private String eventClass;
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 d48669325b..60c16f0c01 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
@@ -107,7 +107,12 @@ public enum RequirePermissionEnum {
WORK_PROJECT_TRACE_CLOSE("work_project_trace_close","项目跟踪:结案","结案"),
WORK_PROJECT_TRACE_TRANSFER("work_project_trace_transfer","项目跟踪:转其他部门","转其他部门(选择处理部门api也需要添加此校验)"),
WORK_PROJECT_TRACE_RETURN("work_project_trace_return","项目跟踪:退回","退回"),
+ WORK_PROJECT_TRACE_ALL("work_project_trace_all","项目跟踪:全部","只有各级组织的【管理员】和【单位领导】角色才可见该tab页,其他角色不可见"),
+ /**
+ * 工作-居民热议
+ */
+ WORK_HOT_ISSUE_ALL("work_hot_issue_all","居民热议:全部","居民热议:全部"),
/**
* 党务工作-党建声音
*/
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 102be5a3b7..d771565080 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
@@ -20,6 +20,7 @@ public enum EpmetErrorCode {
ERR10006(10006, "登录超时,请重新登录"),
ERR10007(10007, "当前帐号已在别处登录"),
ERR10019(10019, "验证码不正确"),
+ SYSTEM_MQ_MSG_SEND_FAIL(10020, "MQ消息发送失败"),
ERR401(401, "未授权"),
INTERNAL_VALIDATE_ERROR(7000, "内部数据校验异常"),
SERVER_ERROR(8000, "服务器开小差了..."),
@@ -71,6 +72,7 @@ public enum EpmetErrorCode {
NOT_DEL_AGENCY_GRID(8207, "该机关存在网格,不允许删除"),
REQUIRE_PERMISSION(8301, "您没有足够的操作权限"),
+ THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"),
NOT_ADD_GRID(8401,"您当前的网格名称已存在,请重新修改"),
MOBILE_USED(8402,"该手机号已注册"),
@@ -144,7 +146,6 @@ public enum EpmetErrorCode {
TOPIC_IS_HIDDEN(9006,"该话题已被屏蔽,请先解除屏蔽"),
TOPIC_IS_CLOSED(9008,"该话题已关闭,无法转为议题");
-
private int code;
private String msg;
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
index 4e2f0d16ab..942e4a6570 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
@@ -6,6 +6,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.StackTraceElementProxy;
import ch.qos.logback.core.spi.FilterReply;
+import com.epmet.commons.tools.constant.ThreadLocalConstant;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.DingdingMsgSender;
@@ -15,9 +16,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.commons.util.InetUtils;
import org.springframework.core.env.Environment;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
-import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -64,14 +68,26 @@ public class LogMsgSendFilter extends LevelFilter {
stringBuilder.append("IP地址:" + serverIp);
stringBuilder.append("\n");
}
+
stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp()));
stringBuilder.append("\n");
stringBuilder.append("TraceId:" + Thread.currentThread().getName());
stringBuilder.append("\n");
+
+ HttpServletRequest request = getRequest();
+ if (request != null) {
+ String requestURI = request.getRequestURI();
+ stringBuilder.append("请求路径:" + requestURI);
+ stringBuilder.append("\n");
+
+ stringBuilder.append("请求参数:" + ThreadLocalConstant.requestParam.get());
+ stringBuilder.append("\n");
+ }
+
String formattedMessage = event.getFormattedMessage();
IThrowableProxy throwableProxy = event.getThrowableProxy();
if (throwableProxy == null && formattedMessage.length() > 1000) {
- formattedMessage = formattedMessage.substring(0, getCharacterPosition(formattedMessage, baseProjectPackage, 5));
+ formattedMessage = formattedMessage.substring(0, getCharacterPosition(formattedMessage, baseProjectPackage, 5));
}
stringBuilder.append("告警信息:" + formattedMessage);
stringBuilder.append("\n");
@@ -159,105 +175,19 @@ public class LogMsgSendFilter extends LevelFilter {
}
}
- public static void main(String[] args) {
- String msg = "<<<<<<<<异常响应<<<<<<<<:事务流水号:na1597027822634, 执行时长:59ms, 响应数据:{\"code\":8102,\"internalMsg\":\"验证码错误\",\"msg\":\"验证码错误\"}, 异常信息:验证码错误, 堆栈信息:com.epmet.commons.tools.exception.RenException: \n" +
- " at com.epmet.service.impl.VolunteerInfoServiceImpl.authenticate(VolunteerInfoServiceImpl.java:91)\n" +
- " at com.epmet.service.impl.VolunteerInfoServiceImpl$$FastClassBySpringCGLIB$$7babb2e8.invoke()\n" +
- " at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n" +
- " at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n" +
- " at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)\n" +
- " at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n" +
- " at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n" +
- " at com.epmet.service.impl.VolunteerInfoServiceImpl$$EnhancerBySpringCGLIB$$f78b4778.authenticate()\n" +
- " at com.epmet.controller.ResiVolunteerController.authenticate(ResiVolunteerController.java:59)\n" +
- " at com.epmet.controller.ResiVolunteerController$$FastClassBySpringCGLIB$$e023fb55.invoke()\n" +
- " at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n" +
- " at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n" +
- " at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n" +
- " at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\n" +
- " at com.epmet.commons.tools.aspect.BaseRequestLogAspect.proceed(BaseRequestLogAspect.java:66)\n" +
- " at com.epmet.aspect.RequestLogAspect.proceed(RequestLogAspect.java:26)\n" +
- " at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source)\n" +
- " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n" +
- " at java.lang.reflect.Method.invoke(Method.java:498)\n" +
- " at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n" +
- " at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n" +
- " at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n" +
- " at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\n" +
- " at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n" +
- " at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n" +
- " at com.epmet.controller.ResiVolunteerController$$EnhancerBySpringCGLIB$$1c0751c0.authenticate()\n" +
- " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
- " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n" +
- " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n" +
- " at java.lang.reflect.Method.invoke(Method.java:498)\n" +
- " at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)\n" +
- " at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)\n" +
- " at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)\n" +
- " at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893)\n" +
- " at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:798)\n" +
- " at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n" +
- " at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)\n" +
- " at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)\n" +
- " at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n" +
- " at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n" +
- " at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)\n" +
- " at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n" +
- " at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:94)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)\n" +
- " at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n" +
- " at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n" +
- " at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n" +
- " at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\n" +
- " at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n" +
- " at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)\n" +
- " at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\n" +
- " at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n" +
- " at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\n" +
- " at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\n" +
- " at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)\n" +
- " at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n" +
- " at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)\n" +
- " at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)\n" +
- " at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n" +
- " at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n" +
- " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n" +
- " at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n" +
- " at java.lang.Thread.run(Thread.java:745)";
+ /**
+ * 获取Request对象
+ *
+ * @return
+ */
+ private HttpServletRequest getRequest() {
+ RequestAttributes ra = RequestContextHolder.getRequestAttributes();
+ ServletRequestAttributes sra = (ServletRequestAttributes) ra;
+ if (sra == null){
+ return null;
+ }
+ return sra.getRequest();
- String substring = msg.substring(0, getCharacterPosition(msg, "com.epme1t", 5));
- System.out.println(substring);
}
@@ -274,7 +204,7 @@ public class LogMsgSendFilter extends LevelFilter {
}
return slashMatcher.start();
} catch (Exception e) {
- logger.warn("getCharacterPosition no matche");
+ logger.warn("getCharacterPosition no matche", e);
return 0;
}
}
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 444077098f..098dd1c14d 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
@@ -360,4 +360,14 @@ public class RedisKeys {
public static String getResiUserKey(String userId){
return rootPrefix.concat("resi:user:").concat(userId);
}
+
+ /**
+ * @Description 客户的ApiService
+ * @return
+ * @author wxz
+ * @date 2021.01.20 16:56
+ */
+ public static String getCustomerApiServiceKey(String customerId) {
+ return rootPrefix.concat("customer:thirdplat:apiservice:").concat(customerId);
+ }
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
index de481f10fd..2fcabf5d57 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
@@ -50,6 +50,10 @@ public class RedisUtils {
* 过期时长为1小时,单位:秒
*/
public final static long HOUR_ONE_EXPIRE = 60 * 60 * 1L;
+ /**
+ * 过期时长为4小时,单位:秒
+ */
+ public final static long HOUR_FOUR_EXPIRE = 60 * 60 * 4L;
/**
* 过期时长为6小时,单位:秒
*/
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoScanParamDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoScanParamDTO.java
new file mode 100644
index 0000000000..07f0962a89
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoScanParamDTO.java
@@ -0,0 +1,35 @@
+package com.epmet.commons.tools.scan.param;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (异步检测)请求参数
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/1/10 21:05
+ */
+@Data
+public class VideoScanParamDTO implements Serializable {
+ private static final long serialVersionUID = -7261993744367287072L;
+ /**
+ * 是否开启回调
+ */
+ @NotNull(message = "openCallBack必填,true开启;false不开启")
+ private Boolean openCallBack;
+
+ /**
+ * 异步检测结果回调地址,执行异步审查内容时 必填
+ * openCallBack=true时,callback必填
+ */
+ private String callback;
+
+ @Valid
+ @NotEmpty(message = "任务列表不能为空")
+ private List tasks;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoTaskDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoTaskDTO.java
new file mode 100644
index 0000000000..6a71d5daf4
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VideoTaskDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.commons.tools.scan.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * (异步检测)请求参数
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/1/10 21:06
+ */
+@Data
+public class VideoTaskDTO implements Serializable {
+ private static final long serialVersionUID = -5268462578193403270L;
+ /**
+ * 不必填
+ * 要检测的数据id 非必填
+ * 检测对象对应的数据ID。
+ * 由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过128个字符,可以用于唯一标识您的业务数据。
+ * */
+ @NotBlank(message = "dataId不能为空")
+ private String dataId;
+
+ /**
+ * 必填
+ * 待检测视频的URL。该字段不能和frames同时为空,也不能和frames同时有值。
+ */
+ @NotBlank(message = "音频URL不能为空")
+ private String url;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceScanParamDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceScanParamDTO.java
new file mode 100644
index 0000000000..e315848ec1
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceScanParamDTO.java
@@ -0,0 +1,35 @@
+package com.epmet.commons.tools.scan.param;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 语音检测入参DTO
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/18 10:15
+ */
+@Data
+public class VoiceScanParamDTO implements Serializable {
+
+ /**
+ * 是否开启回调
+ */
+ @NotNull(message = "openCallBack必填,true开启;false不开启")
+ private Boolean openCallBack;
+
+ /**
+ * 异步检测结果回调地址,执行异步审查内容时 必填
+ * openCallBack=true时,callback必填
+ */
+ private String callback;
+
+ @Valid
+ @NotEmpty(message = "任务列表不能为空")
+ private List tasks;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceTaskDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceTaskDTO.java
new file mode 100644
index 0000000000..a0abe2303a
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/param/VoiceTaskDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.commons.tools.scan.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 语音异步检测对象
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/18 10:21
+ */
+@Data
+public class VoiceTaskDTO implements Serializable {
+ /**
+ * 不必填
+ * 要检测的数据id 非必填
+ * 检测对象对应的数据ID。
+ * 由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过128个字符,可以用于唯一标识您的业务数据。
+ * */
+ @NotBlank(message = "dataId不能为空")
+ private String dataId;
+
+ /**
+ * 必填
+ * 需要检测的音频文件或语音流的下载地址。
+ */
+ @NotBlank(message = "音频URL不能为空")
+ private String url;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanResult.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanResult.java
new file mode 100644
index 0000000000..6f8c33aa5c
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanResult.java
@@ -0,0 +1,49 @@
+package com.epmet.commons.tools.scan.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 语音异步检测 返参
+ * 视频异步检测 返参通用
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/18 10:09
+ */
+@Data
+public class AsyncScanResult implements Serializable {
+ private static final long serialVersionUID = -939433332419948118L;
+
+ /**
+ * 随机字符串,该值用于回调通知请求中的签名。
+ */
+ private String seed;
+
+ /**
+ * 提交成功的失败对象
+ */
+ private List successTasks=new ArrayList<>();
+
+ /**
+ * 提交失败的检测对象
+ */
+ private List failTasks=new ArrayList<>();
+
+ /**
+ * 是否全部提交成功
+ */
+ private boolean isAllSuccess;
+
+ public boolean isAllSuccess() {
+ if (failTasks.isEmpty() && !successTasks.isEmpty()) {
+ return true;
+ }
+ return isAllSuccess;
+ }
+
+ public void setAllSuccess(boolean allSuccess) {
+ isAllSuccess = allSuccess;
+ }
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanTaskDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanTaskDTO.java
new file mode 100644
index 0000000000..e09ed9ae5d
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/AsyncScanTaskDTO.java
@@ -0,0 +1,25 @@
+package com.epmet.commons.tools.scan.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 语音异步检测 -返回的task集合
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/18 10:31
+ */
+@Data
+public class AsyncScanTaskDTO implements Serializable {
+ /**
+ * 检测对象对应的数据ID。
+ * 由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过128个字符,可以用于唯一标识您的业务数据。
+ */
+ private String dataId;
+
+ /**
+ * 任务id
+ */
+ private String taskId;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoAsyncScanResultDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoAsyncScanResultDTO.java
new file mode 100644
index 0000000000..86445a83e5
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoAsyncScanResultDTO.java
@@ -0,0 +1,47 @@
+package com.epmet.commons.tools.scan.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视频异步检测结果查询接口返参
+ * 正在检测中的不返回,调用方继续轮询查询结果
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/29 15:37
+ */
+@Data
+public class VideoAsyncScanResultDTO implements Serializable {
+ private static final long serialVersionUID = -7302168989456734818L;
+ /**
+ * 执行成功的任务Id集合
+ * code=200,且所有语音+视频所有场景返回结果都为pass时则为成功
+ */
+ private List passDataIds = new ArrayList<>();
+ /**
+ * 执行失败的任务Id集合
+ */
+ private List noPassDataIds = new ArrayList<>();
+
+ private List passTaskIds = new ArrayList<>();
+ private List noPassTaskIds = new ArrayList<>();
+
+ /**
+ * desc:阿里内容审核API返回结果详情
+ */
+ private List details = new ArrayList<>();
+
+ /**
+ * 本地是否全部通过
+ */
+ private Boolean isAllPass;
+
+ public boolean isAllPass() {
+ if (noPassTaskIds.isEmpty() && !passTaskIds.isEmpty()) {
+ return true;
+ }
+ return isAllPass;
+ }
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoScanDetailDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoScanDetailDTO.java
new file mode 100644
index 0000000000..59b047a73b
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VideoScanDetailDTO.java
@@ -0,0 +1,56 @@
+package com.epmet.commons.tools.scan.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/1/10 21:24
+ */
+@Data
+public class VideoScanDetailDTO implements Serializable {
+ /**
+ * 错误码,和HTTP状态码一致。
+ * 更多信息,请参见公共错误码。
+ */
+ private Integer code;
+
+ private String codeDesc;
+
+ /**
+ * 错误描述信息。
+ */
+ private String msg;
+ /**
+ * 检测对象对应的数据ID。
+ */
+ private String dataId;
+
+ /**
+ * 检测任务的ID
+ */
+ private String taskId;
+
+ /**
+ * 返回结果,调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述,请参见result。
+ * 说明 视频流检测场景中,code返回280表示在检测中,返回200表示检测完成。在检测中状态时,检测结果中包含从开始检测到当前时间的检测到结果。
+ */
+ private List results;
+
+ /**
+ * 视频语音检测结果。具体结构描述,请参见audioScanResult。
+ */
+ private List audioScanResults;
+
+
+ @Data
+ public static class ResultDetail {
+ private String scene;
+ private String label;
+ private String suggestion;
+ private Float rate;
+ }
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VoiceResultDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VoiceResultDTO.java
new file mode 100644
index 0000000000..a826f5b66d
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/scan/result/VoiceResultDTO.java
@@ -0,0 +1,56 @@
+package com.epmet.commons.tools.scan.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 检测成功(检测成功+检测失败的)的任务详情
+ * 处理中的该接口不返回,继续轮询即可
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/12/18 13:10
+ */
+@Data
+public class VoiceResultDTO implements Serializable {
+ private static final long serialVersionUID = 8006827312407034344L;
+ /**
+ * 检测对象对应的数据ID。
+ */
+ private String dataId;
+
+ /**
+ * 检测任务的ID
+ */
+ private String taskId;
+
+ /**
+ * 建议您执行的后续操作。取值:
+ * pass:结果正常,无需进行其余操作。
+ * review:结果不确定,需要进行人工审核。
+ * block:结果违规,建议直接删除或者限制公开。
+ */
+ private String suggestion;
+
+ /**
+ * 检测结果的分类。取值:
+ * normal:正常文本
+ * spam:含垃圾信息
+ * ad:广告
+ * politics:涉政
+ * terrorism:暴恐
+ * abuse:辱骂
+ * porn:色情
+ * flood:灌水
+ * contraband:违禁
+ * meaningless:无意义
+ * customized:自定义(例如命中自定义关键词)
+ */
+ private String label;
+
+ /**
+ * labelDesc是对label的说明,包含两种特殊说明:
+ * (1)如果检测任务失败labelDesc:智能检测任务失败,结果已失效,需要人工审核
+ * (2)如果检测结果失效labelDesc:智能检测任务失败,需要人工审核
+ */
+ private String labelDesc;
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/BaseTokenDto.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/BaseTokenDto.java
index c3065c7200..f50f2f1d2d 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/BaseTokenDto.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/BaseTokenDto.java
@@ -24,6 +24,8 @@ public class BaseTokenDto {
*/
private String token;
+ private String customerId;
+
public BaseTokenDto() {
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java
new file mode 100644
index 0000000000..e6346d7e50
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java
@@ -0,0 +1,26 @@
+package com.epmet.commons.tools.utils;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 描述一下
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/2/4 20:49
+ */
+@Data
+public class AgencyNode implements Serializable {
+
+ private String areaCode;
+
+ private String parentAreaCode;
+
+ /**
+ * 子节点列表
+ */
+ private List subAgencyList = new ArrayList<>();
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java
new file mode 100644
index 0000000000..80ad231f47
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java
@@ -0,0 +1,73 @@
+package com.epmet.commons.tools.utils;
+
+
+import com.epmet.commons.tools.validator.AssertUtils;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 描述一下
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/2/4 20:49
+ */
+public class AgencyTreeUtils {
+
+ /**
+ * 根据pid,构建树节点
+ */
+ public static List build(List agencyNodes, String parentAreaCode) {
+ //pid不能为空
+ AssertUtils.isNull(parentAreaCode, "parentAreaCode");
+
+ List treeList = new ArrayList<>();
+ for (T agencyNode : agencyNodes) {
+ if (parentAreaCode.equals(agencyNode.getParentAreaCode())) {
+ treeList.add(findChildren(agencyNodes, agencyNode));
+ }
+ }
+
+ return treeList;
+ }
+
+ /**
+ * 查找子节点
+ */
+ private static T findChildren(List agencyNodes, T rootNode) {
+ for (T agencyNode : agencyNodes) {
+ if (rootNode.getAreaCode().equals(agencyNode.getParentAreaCode())) {
+ rootNode.getSubAgencyList().add(findChildren(agencyNodes, agencyNode));
+ }
+ }
+ return rootNode;
+ }
+
+ /**
+ * 构建树节点
+ */
+ public static List build(List agencyNodes) {
+ List result = new ArrayList<>();
+
+ //list转map
+ Map nodeMap = new LinkedHashMap<>(agencyNodes.size());
+ for (T agencyNode : agencyNodes) {
+ nodeMap.put(agencyNode.getAreaCode(), agencyNode);
+ }
+
+ for (T node : nodeMap.values()) {
+ T parent = nodeMap.get(node.getParentAreaCode());
+ if (parent != null && !(node.getAreaCode().equals(parent.getAreaCode()))) {
+ parent.getSubAgencyList().add(node);
+ continue;
+ }
+
+ result.add(node);
+ }
+
+ return result;
+ }
+
+}
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 e4a6cf94cb..8c6432aadd 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
@@ -729,4 +729,38 @@ public class DateUtils {
LocalDate ldn = new LocalDate(date);
return ldn.dayOfMonth().withMaximumValue().toDate();
}
+
+ /**
+ * @return ["202002","202003","202004","202005","202006","202007","202008","202009","202010","202011","202012","202101"]
+ * @param monthId 202101
+ * @param num 11
+ * @description 截止到当前monthId,近12个月的坐标
+ * @Date 2021/2/1 17:20
+ **/
+ public static List getMonthIdList(String monthId,int num) {
+ List monthIdList = new ArrayList<>();
+ for (int i = num; i >= NumConstant.ZERO; i--) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(com.epmet.commons.tools.utils.DateUtils.stringToDate(monthId.concat("01"), com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN_YYYYMMDD));
+ c.add(Calendar.MONTH, -i);
+ Date date = c.getTime();
+ String month = com.epmet.commons.tools.utils.DateUtils.format(date, com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN_YYYYMM);
+ // monthIdList.add(month.substring(4, 6).concat("月"));
+ monthIdList.add(month);
+ }
+ return monthIdList;
+ }
+
+ /**
+ * @author yinzuomei
+ * @description 获取当前时间的山个月monthId
+ * @Date 2021/2/1 17:41
+ **/
+ public static String getCurrentTimeBeforeMonthId(){
+ Calendar c = Calendar.getInstance();
+ c.setTime(new Date());
+ c.add(Calendar.MONTH, -1);
+ Date nowDate = c.getTime();
+ return com.epmet.commons.tools.utils.DateUtils.format(nowDate, com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN_YYYYMM);
+ }
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
index 8b5a691891..2481664829 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
@@ -188,6 +188,30 @@ public class HttpClientManager {
}
+ public Result sendPost(String url, boolean isHttps, String jsonStrParam, Map headerMap) {
+
+ try {
+ HttpPost httppost = new HttpPost(url);
+ httppost.setConfig(requestConfig);
+ httppost.addHeader(HEADER_CONTENT_TYPE, HEADER_APPLICATION_JSON);
+ if (null != headerMap) {
+ headerMap.forEach((k, v) -> {
+ if (v != null)
+ httppost.addHeader(k, v.toString());
+ });
+ }
+ if (StringUtils.isNotEmpty(jsonStrParam)) {
+ StringEntity se = new StringEntity(jsonStrParam, UTF8);
+ httppost.setEntity(se);
+ }
+ return execute(httppost, isHttps);
+ } catch (Exception e) {
+ log.error("send exception", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+
+ }
+
/**
* 上传临时素材
* @author zhaoqifeng
@@ -227,7 +251,8 @@ public class HttpClientManager {
try {
HttpPost httppost = new HttpPost(url);
httppost.setConfig(requestConfig);
- httppost.addHeader(HEADER_CONTENT_TYPE, HEADER_APPLICATION_JSON);
+ httppost.addHeader(HEADER_CONTENT_TYPE, "application/json");
+ //httppost.addHeader(HEADER_CONTENT_TYPE, HEADER_APPLICATION_JSON);
if (StringUtils.isNotEmpty(jsonStrParam)) {
StringEntity se = new StringEntity(jsonStrParam, UTF8);
httppost.setEntity(se);
@@ -249,8 +274,8 @@ public class HttpClientManager {
*/
public Result sendAlarmMsg(String content) {
Long timestamp = System.currentTimeMillis();
- String url = "https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c";
- String secret = "SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19";
+ String url = "https://oapi.dingtalk.com/robot/send?access_token=c40055ed85e45fdaafea00f3218928794262ff15163e09ad5c89764433b69806";
+ String secret = "SEC220eafdcb39ab5dd6cffa9f11b0e5de7178ddac9812d40fdceb6b1dda2963186";
try {
String stringToSign = timestamp + "\n" + secret;
@@ -324,6 +349,33 @@ public class HttpClientManager {
}
}
+ public Result sendGet(String url, boolean isHttps, Map params, Map headerMap) {
+
+ try {
+ URIBuilder builder = new URIBuilder(url);
+ if (!CollectionUtils.isEmpty(params)) {
+ Set set = params.keySet();
+ for (String key : set) {
+ builder.setParameter(key, params.get(key) == null ? "" : String.valueOf(params.get(key)));
+ }
+ }
+
+ HttpGet httpGet = new HttpGet(builder.build());
+ httpGet.setConfig(requestConfig);
+ if (null != headerMap){
+ headerMap.forEach((k,v) -> {
+ if (StringUtils.isNotBlank(k)) {
+ httpGet.addHeader(k, v == null ? null : v.toString());
+ }
+ });
+ }
+ return execute(httpGet, isHttps);
+ } catch (Exception e) {
+ log.error("sendGet exception", e);
+ return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+ }
+
private Result execute(HttpRequestBase httpMethod, boolean isHttps) {
CloseableHttpResponse response = null;
try {
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/RSASignature.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/RSASignature.java
new file mode 100644
index 0000000000..6de665f7eb
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/RSASignature.java
@@ -0,0 +1,251 @@
+package com.epmet.commons.tools.utils;
+
+import javax.crypto.Cipher;
+import java.security.*;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.Base64;
+
+/**
+ * @author jianjun liu
+ * @date 2020-06-05 16:48
+ **/
+
+public class RSASignature {
+
+
+ //非对称密钥算法
+ private static final String KEY_ALGORITHM = "RSA";
+ //密钥长度,在512到65536位之间,建议不要太长,否则速度很慢,生成的加密数据很长
+ private static final int KEY_SIZE = 512;
+ //字符编码
+ private static final String CHARSET = "UTF-8";
+
+ /**
+ * 生成密钥对
+ *
+ * @return KeyPair 密钥对
+ */
+ public static KeyPair getKeyPair() throws Exception {
+ return getKeyPair(null);
+ }
+
+ /**
+ * 生成密钥对
+ *
+ * @param password 生成密钥对的密码
+ * @return
+ * @throws Exception
+ */
+ public static KeyPair getKeyPair(String password) throws Exception {
+ //实例化密钥生成器
+ KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KEY_ALGORITHM);
+ //初始化密钥生成器
+ if (password == null) {
+ keyPairGenerator.initialize(KEY_SIZE);
+ } else {
+ SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+ secureRandom.setSeed(password.getBytes(CHARSET));
+ keyPairGenerator.initialize(KEY_SIZE, secureRandom);
+ }
+ //生成密钥对
+ return keyPairGenerator.generateKeyPair();
+ }
+
+ /**
+ * 取得私钥
+ *
+ * @param keyPair 密钥对
+ * @return byte[] 私钥
+ */
+ public static byte[] getPrivateKeyBytes(KeyPair keyPair) {
+ return keyPair.getPrivate().getEncoded();
+ }
+
+ /**
+ * 取得Base64编码的私钥
+ *
+ * @param keyPair 密钥对
+ * @return String Base64编码的私钥
+ */
+ public static String getPrivateKey(KeyPair keyPair) {
+ return Base64.getEncoder().encodeToString(getPrivateKeyBytes(keyPair));
+ }
+
+ /**
+ * 取得公钥
+ *
+ * @param keyPair 密钥对
+ * @return byte[] 公钥
+ */
+ public static byte[] getPublicKeyBytes(KeyPair keyPair) {
+ return keyPair.getPublic().getEncoded();
+ }
+
+ /**
+ * 取得Base64编码的公钥
+ *
+ * @param keyPair 密钥对
+ * @return String Base64编码的公钥
+ */
+ public static String getPublicKey(KeyPair keyPair) {
+ return Base64.getEncoder().encodeToString(getPublicKeyBytes(keyPair));
+ }
+
+ /**
+ * 私钥加密
+ *
+ * @param data 待加密数据
+ * @param privateKey 私钥字节数组
+ * @return byte[] 加密数据
+ */
+ public static byte[] encryptByPrivateKey(byte[] data, byte[] privateKey) throws Exception {
+ //实例化密钥工厂
+ KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
+ //生成私钥
+ PrivateKey key = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKey));
+ //数据加密
+ Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
+ cipher.init(Cipher.ENCRYPT_MODE, key);
+ return cipher.doFinal(data);
+ }
+
+ /**
+ * 私钥加密
+ *
+ * @param data 待加密数据
+ * @param privateKey Base64编码的私钥
+ * @return String Base64编码的加密数据
+ */
+ public static String encryptByPrivateKey(String data, String privateKey) throws Exception {
+ byte[] key = Base64.getDecoder().decode(privateKey);
+ return Base64.getEncoder().encodeToString(encryptByPrivateKey(data.getBytes(CHARSET), key));
+ }
+
+ /**
+ * 公钥加密
+ *
+ * @param data 待加密数据
+ * @param publicKey 公钥字节数组
+ * @return byte[] 加密数据
+ */
+ public static byte[] encryptByPublicKey(byte[] data, byte[] publicKey) throws Exception {
+ //实例化密钥工厂
+ KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
+ //生成公钥
+ PublicKey key = keyFactory.generatePublic(new X509EncodedKeySpec(publicKey));
+ //数据加密
+ Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
+ cipher.init(Cipher.ENCRYPT_MODE, key);
+ return cipher.doFinal(data);
+ }
+
+ /**
+ * 公钥加密
+ *
+ * @param data 待加密数据
+ * @param publicKey Base64编码的公钥
+ * @return String Base64编码的加密数据
+ */
+ public static String encryptByPublicKey(String data, String publicKey) throws Exception {
+ byte[] key = Base64.getDecoder().decode(publicKey);
+ return Base64.getEncoder().encodeToString(encryptByPublicKey(data.getBytes(CHARSET), key));
+ }
+
+ /**
+ * 私钥解密
+ *
+ * @param data 待解密数据
+ * @param privateKey 私钥字节数组
+ * @return byte[] 解密数据
+ */
+ public static byte[] decryptByPrivateKey(byte[] data, byte[] privateKey) throws Exception {
+ //实例化密钥工厂
+ KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
+ //生成私钥
+ PrivateKey key = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKey));
+ //数据解密
+ Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
+ cipher.init(Cipher.DECRYPT_MODE, key);
+ return cipher.doFinal(data);
+ }
+
+ /**
+ * 私钥解密
+ *
+ * @param data Base64编码的待解密数据
+ * @param privateKey Base64编码的私钥
+ * @return String 解密数据
+ */
+ public static String decryptByPrivateKey(String data, String privateKey) throws Exception {
+ byte[] key = Base64.getDecoder().decode(privateKey);
+ return new String(decryptByPrivateKey(Base64.getDecoder().decode(data), key), CHARSET);
+ }
+
+ /**
+ * 公钥解密
+ *
+ * @param data 待解密数据
+ * @param publicKey 公钥字节数组
+ * @return byte[] 解密数据
+ */
+ public static byte[] decryptByPublicKey(byte[] data, byte[] publicKey) throws Exception {
+ //实例化密钥工厂
+ KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
+ //产生公钥
+ PublicKey key = keyFactory.generatePublic(new X509EncodedKeySpec(publicKey));
+ //数据解密
+ Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
+ cipher.init(Cipher.DECRYPT_MODE, key);
+ return cipher.doFinal(data);
+ }
+
+ /**
+ * 公钥解密
+ *
+ * @param data Base64编码的待解密数据
+ * @param publicKey Base64编码的公钥
+ * @return String 解密数据
+ */
+ public static String decryptByPublicKey(String data, String publicKey) throws Exception {
+ byte[] key = Base64.getDecoder().decode(publicKey);
+ return new String(decryptByPublicKey(Base64.getDecoder().decode(data), key), CHARSET);
+ }
+
+ /**
+ * 测试加解密方法
+ *
+ * @param args
+ * @throws Exception
+ */
+ public static void main(String[] args) throws Exception {
+ //生成密钥对,一般生成之后可以放到配置文件中
+ KeyPair keyPair = RSASignature.getKeyPair();
+ //公钥
+ String publicKey = RSASignature.getPublicKey(keyPair);
+ //私钥
+ String privateKey = RSASignature.getPrivateKey(keyPair);
+
+ System.out.println("公钥:\n" + publicKey);
+ System.out.println("私钥:\n" + privateKey);
+
+ String data = "RSA 加解密测试!";
+ {
+ System.out.println("\n===========私钥加密,公钥解密==============");
+ String s1 = RSASignature.encryptByPrivateKey(data, privateKey);
+ System.out.println("加密后的数据:" + s1);
+ String s2 = RSASignature.decryptByPublicKey(s1, publicKey);
+ System.out.println("解密后的数据:" + s2 + "\n\n");
+ }
+ //=====
+ {
+ System.out.println("\n===========公钥加密,私钥解密==============");
+ String s1 = RSASignature.encryptByPublicKey(data, publicKey);
+ System.out.println("加密后的数据:" + s1);
+ String s2 = RSASignature.decryptByPrivateKey(s1, privateKey);
+ System.out.println("解密后的数据:" + s2 + "\n\n");
+ }
+
+ }
+
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java
index ef7a3257a6..6427301a18 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java
@@ -2,14 +2,17 @@ package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
+import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
-import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
-import com.epmet.commons.tools.scan.param.TextScanParamDTO;
-import com.epmet.commons.tools.scan.param.TextTaskDTO;
+import com.epmet.commons.tools.scan.param.*;
+import com.epmet.commons.tools.scan.result.AsyncScanResult;
import com.epmet.commons.tools.scan.result.SyncScanResult;
+import com.epmet.commons.tools.scan.result.VideoAsyncScanResultDTO;
+import com.epmet.commons.tools.scan.result.VoiceResultDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@@ -75,7 +78,139 @@ public class ScanContentUtils {
}
}
+ /**
+ * desc:语音异步检测任务提交
+ *
+ * @return 返回检测对象对应的任务id
+ */
+ public static Result voiceAsyncScan(String url, VoiceScanParamDTO param){
+ log.debug("voiceAsyncScan param:{}", JSON.toJSONString(param));
+ if (StringUtils.isBlank(url) || param == null) {
+ throw new RenException("参数错误");
+ }
+ if (param.getOpenCallBack() && StringUtils.isBlank(param.getCallback())) {
+ throw new RenException("参数错误,开启回调,callback必填");
+ }
+ try {
+ Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(param));
+ log.debug("voiceAsyncScan result:{}", JSON.toJSONString(result));
+ if (result.success()) {
+ return JSON.parseObject(result.getData(),new TypeReference>(){});
+ }
+ Result resultResult = new Result<>();
+ resultResult.error(result.getCode(),result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("voiceAsyncScan exception:", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
+ }
+ }
+
+ /**
+ * desc:语音异步检测结果查询
+ *
+ * @param taskIds 数组中的元素个数不超过100个。
+ * @return 注意该接口只返回检测任务完成的(即检测成功或失败的);任务正在处理中的不返回,继续轮询即可。
+ */
+ public static Result> voiceResults(String url, List taskIds) {
+ if (StringUtils.isBlank(url) || CollectionUtils.isEmpty(taskIds)) {
+ throw new RenException("参数错误");
+ }
+ if (taskIds.size() > NumConstant.ONE_HUNDRED) {
+ throw new RenException("参数错误,查询检测任务最大不能超过100");
+ }
+ try {
+ Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(taskIds));
+ log.debug("voiceResults result:{}", JSON.toJSONString(result));
+ if (result.success()) {
+ return JSON.parseObject(result.getData(), new TypeReference>>() {
+ });
+ }
+ Result> resultResult = new Result<>();
+ resultResult.error(result.getCode(), result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("voiceResults exception:", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
+ }
+ }
+
+ /**
+ * @param url 视频地址
+ * @param param
+ * @author yinzuomei
+ * @description 异步检测-提交检测任务
+ **/
+ public static Result videoAsyncScan(String url, VideoScanParamDTO param){
+ log.debug("videoAsyncScan param:{}", JSON.toJSONString(param));
+ if (StringUtils.isBlank(url) || param == null) {
+ throw new RenException("参数错误");
+ }
+ if (param.getOpenCallBack() && StringUtils.isBlank(param.getCallback())) {
+ throw new RenException("参数错误,开启回调,callback必填");
+ }
+ try {
+ Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(param));
+ log.debug("videoAsyncScan result:{}", JSON.toJSONString(result));
+ if (result.success()) {
+ return JSON.parseObject(result.getData(),new TypeReference>(){});
+ }
+ Result resultResult = new Result<>();
+ resultResult.error(result.getCode(),result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("videoAsyncScan exception:", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
+ }
+ }
+
+ /**
+ * @param url
+ * @param taskIds
+ * @author yinzuomei
+ * @description 查询视频检测结果
+ **/
+ public static Result videoResults(String url, List taskIds) {
+ if (StringUtils.isBlank(url) || CollectionUtils.isEmpty(taskIds)) {
+ throw new RenException("参数错误");
+ }
+ if (taskIds.size() > NumConstant.ONE_HUNDRED) {
+ throw new RenException("参数错误,查询检测任务最大不能超过100");
+ }
+ try {
+ Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(taskIds));
+ log.debug("videoResults result:{}", JSON.toJSONString(result));
+ if (result.success()) {
+ return JSON.parseObject(result.getData(), new TypeReference>() {
+ });
+ }
+ Result resultResult = new Result<>();
+ resultResult.error(result.getCode(), result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("voiceResults exception:", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
+ }
+ }
+
public static void main(String[] args) {
+ //测试文本检测
+ // testTextSyncScan();
+ //测试语音检测
+ // testVoiceAsyncScan();
+ //语音检测结果
+ // testVoiceResults();
+ //视频检测任务提交
+ // testVideoAsyncScan();
+ //查询视频检测结果
+ testVideoResults();
+ }
+
+ public static void testTextSyncScan(){
String url = "http://localhost:8107/epmetscan/api/textSyncScan";
TextTaskDTO p = new TextTaskDTO();
p.setDataId("1");
@@ -95,6 +230,60 @@ public class ScanContentUtils {
result.getFailDataIds().addAll(imgSyncScanResultData.getFailDataIds());
System.out.println("================"+JSON.toJSONString(result));
}
+ }
+ }
+
+ public static void testVoiceAsyncScan(){
+ String url = "http://localhost:8107/epmetscan/api/voiceAsyncScan";
+ VoiceTaskDTO p = new VoiceTaskDTO();
+ p.setDataId("1");
+ p.setUrl("https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20201208/6480bd6be9f14a458162218cea84dfa5.aac");
+ List list = new ArrayList<>();
+ list.add(p);
+ VoiceScanParamDTO param = new VoiceScanParamDTO();
+ param.setTasks(list);
+ param.setOpenCallBack(false);
+ Result asyncScanResultResult = ScanContentUtils.voiceAsyncScan(url, param);
+ System.out.println(JSON.toJSONString(asyncScanResultResult));
+ AsyncScanResult result = new AsyncScanResult();
+ if (asyncScanResultResult != null) {
+ AsyncScanResult asyncScanResult = asyncScanResultResult.getData();
+ if (asyncScanResultResult.success()) {
+ result.setAllSuccess(asyncScanResult.isAllSuccess());
+ result.getSuccessTasks().addAll(asyncScanResult.getSuccessTasks());
+ result.getFailTasks().addAll(asyncScanResult.getFailTasks());
+ System.out.println("================" + JSON.toJSONString(result));
}
}
+ }
+
+ public static void testVoiceResults(){
+ String url = "http://localhost:8107/epmetscan/api/voiceResults";
+ List taskIds=new ArrayList<>();
+ taskIds.add("vc_f_6CXRk1VcAwM6u0FMA@CfoW-1tDgIp");
+ Result> asyncScanResultResult = ScanContentUtils.voiceResults(url, taskIds);
+ System.out.println("================" + JSON.toJSONString(asyncScanResultResult));
+ }
+
+ public static void testVideoAsyncScan(){
+ String url = "http://localhost:8107/epmetscan/api/videoAsyncScan";
+ VideoTaskDTO p = new VideoTaskDTO();
+ p.setDataId("1");
+ p.setUrl("https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20210111/e996a68b9f0144a3843666c430f73086.mp4");
+ List list = new ArrayList<>();
+ list.add(p);
+ VideoScanParamDTO param = new VideoScanParamDTO();
+ param.setTasks(list);
+ param.setOpenCallBack(false);
+ Result asyncScanResultResult = ScanContentUtils.videoAsyncScan(url, param);
+ System.out.println(JSON.toJSONString(asyncScanResultResult));
+ }
+
+ public static void testVideoResults(){
+ String url = "http://localhost:8107/epmetscan/api/videoResults";
+ List taskIds=new ArrayList<>();
+ taskIds.add("vi6ZatqnJEkqf5m@FZ7Ka0AU-1tKYdk");
+ Result result = ScanContentUtils.videoResults(url, taskIds);
+ System.out.println("================" + JSON.toJSONString(result));
+ }
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/SendMqMsgUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/SendMqMsgUtils.java
index dede8d5706..7d9889d77b 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/SendMqMsgUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/SendMqMsgUtils.java
@@ -28,87 +28,91 @@ import java.util.Map;
@Slf4j
@Component
public class SendMqMsgUtils {
- private static MqConfig mqConfig;
+ private static MqConfig mqConfig;
- /**
- * desc:发送mq消息
- *
- * @return
- */
- public static Result sendMsg(MqBaseMsgDTO msg) {
- if (mqConfig == null) {
- mqConfig = SpringContextUtils.getBean(MqConfig.class);
- }
- log.debug("sendMsg param:{}", JSON.toJSONString(msg));
- try {
- // TODO
- ValidatorUtils.validateEntity(msg, DefaultGroup.class);
- } catch (ValidateException e) {
- return new Result().error(e.getMsg());
- }
- msg.setAppId(mqConfig.getAppId());
- msg.setRequestUrl(mqConfig.getHost().concat(MqMethodPathEnum.SEND_MSG.getCode()));
- msg.setToken(mqConfig.getToken());
- try {
- Result result = HttpClientManager.getInstance().sendPostByHttps(msg.getRequestUrl(), JSON.toJSONString(msg));
- log.debug("sendMsg result:{}", JSON.toJSONString(result));
- if (result.success()) {
- MqReturnBaseResult resultResult = JSON.parseObject(result.getData(), MqReturnBaseResult.class);
- if (resultResult.getErrCode().equals(NumConstant.ZERO)) {
- JSONObject jsonObject = JSON.parseObject(resultResult.getData());
- return new Result().ok(jsonObject.getString("msgId"));
- } else {
- log.error("sendMsg fail,resultData:{}", JSON.toJSONString(resultResult));
- return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), resultResult.getErrMsg());
- }
- }
- Result resultResult = new Result<>();
- resultResult.error(result.getCode(), result.getMsg());
- resultResult.setInternalMsg(result.getInternalMsg());
- return resultResult;
- } catch (Exception e) {
- log.debug("sendMsg exception", e);
- return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
- }
- }
+ /**
+ * desc:发送mq消息(如果失败重试1次)
+ *
+ * @return
+ */
+ public static Result sendMsg(MqBaseMsgDTO msg) {
+ if (mqConfig == null) {
+ mqConfig = SpringContextUtils.getBean(MqConfig.class);
+ }
+ log.info("sendMsg param:{}", JSON.toJSONString(msg));
+ try {
+ // TODO
+ ValidatorUtils.validateEntity(msg, DefaultGroup.class);
+ } catch (ValidateException e) {
+ return new Result().error(e.getMsg());
+ }
+ msg.setAppId(mqConfig.getAppId());
+ msg.setRequestUrl(mqConfig.getHost().concat(MqMethodPathEnum.SEND_MSG.getCode()));
+ msg.setToken(mqConfig.getToken());
+ try {
+ int retryTime = 0;
+ Result result = null;
+ do {
+ retryTime++;
+ result = HttpClientManager.getInstance().sendPostByHttps(msg.getRequestUrl(), JSON.toJSONString(msg));
+ log.info("sendMsg retryTime:{},result:{}", retryTime, JSON.toJSONString(result));
+ } while ((!result.success()) && retryTime < 2);
+ if (result.success()) {
+ MqReturnBaseResult resultResult = JSON.parseObject(result.getData(), MqReturnBaseResult.class);
+ if (resultResult.getErrCode().equals(NumConstant.ZERO)) {
+ JSONObject jsonObject = JSON.parseObject(resultResult.getData());
+ return new Result().ok(jsonObject.getString("msgId"));
+ } else {
+ log.error("sendMsg fail,resultData:{}", JSON.toJSONString(resultResult));
+ return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), resultResult.getErrMsg());
+ }
+ }
+ Result resultResult = new Result<>();
+ resultResult.error(result.getCode(), result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("sendMsg exception", e);
+ return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+ }
- /**
- * desc:发送mq消息
- *
- * @return
- */
- public static Result> getEventClassList() {
- if (mqConfig == null) {
- mqConfig = SpringContextUtils.getBean(MqConfig.class);
- }
- Map param = new HashMap<>();
- param.put("appId", mqConfig.getAppId());
- param.put("token", mqConfig.getToken());
- String requestUrl = mqConfig.getHost().concat(MqMethodPathEnum.GET_EVENT_LIST.getCode());
-
- try {
- Result result = HttpClientManager.getInstance().sendPostByHttps(requestUrl, JSON.toJSONString(param));
- log.debug("getEventClassList result:{}", JSON.toJSONString(result));
- if (result.success()) {
- MqReturnBaseResult resultResult = JSON.parseObject(result.getData(), MqReturnBaseResult.class);
- if (resultResult.getErrCode().equals(NumConstant.ZERO)) {
- List eventClassDto = JSON.parseArray(resultResult.getData(), EventClassDto.class);
- return new Result>().ok(eventClassDto);
- } else {
- log.error("sendMsg fail,resultData:{}", JSON.toJSONString(resultResult));
- return new Result>().error(EpmetErrorCode.SERVER_ERROR.getCode(), resultResult.getErrMsg());
- }
- }
- Result> resultResult = new Result<>();
- resultResult.error(result.getCode(), result.getMsg());
- resultResult.setInternalMsg(result.getInternalMsg());
- return resultResult;
- } catch (Exception e) {
- log.debug("sendMsg exception", e);
- return new Result>().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
- }
- }
+ /**
+ * desc:发送mq消息
+ *
+ * @return
+ */
+ public static Result> getEventClassList() {
+ if (mqConfig == null) {
+ mqConfig = SpringContextUtils.getBean(MqConfig.class);
+ }
+ Map param = new HashMap<>();
+ param.put("appId", mqConfig.getAppId());
+ param.put("token", mqConfig.getToken());
+ String requestUrl = mqConfig.getHost().concat(MqMethodPathEnum.GET_EVENT_LIST.getCode());
+ try {
+ Result result = HttpClientManager.getInstance().sendPostByHttps(requestUrl, JSON.toJSONString(param));
+ log.info("getEventClassList result:{}", JSON.toJSONString(result));
+ if (result.success()) {
+ MqReturnBaseResult resultResult = JSON.parseObject(result.getData(), MqReturnBaseResult.class);
+ if (resultResult.getErrCode().equals(NumConstant.ZERO)) {
+ List eventClassDto = JSON.parseArray(resultResult.getData(), EventClassDto.class);
+ return new Result>().ok(eventClassDto);
+ } else {
+ log.error("sendMsg fail,resultData:{}", JSON.toJSONString(resultResult));
+ return new Result>().error(EpmetErrorCode.SERVER_ERROR.getCode(), resultResult.getErrMsg());
+ }
+ }
+ Result> resultResult = new Result<>();
+ resultResult.error(result.getCode(), result.getMsg());
+ resultResult.setInternalMsg(result.getInternalMsg());
+ return resultResult;
+ } catch (Exception e) {
+ log.error("sendMsg exception", e);
+ return new Result>().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+ }
}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java
index 08a96295ac..1f44eb4333 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java
@@ -35,14 +35,14 @@ public class IdCardNoValidatorUtils {
try {
//判断号码的长度 15位或18位
if (idCardNo.length() != 15 && idCardNo.length() != 18) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证号码长度应该为15位或18位"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证号码长度应该为15位或18位"));
return false;
}
if (idCardNo.length() == 18) {
String lastStr = idCardNo.substring(idCardNo.length() - 1);
if (!Character.isDigit(lastStr.charAt(0))) {
if (Character.isLowerCase(lastStr.charAt(0))) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "18身份证号最后一位字母需要大写"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "18身份证号最后一位字母需要大写"));
return false;
}
} else {
@@ -55,7 +55,7 @@ public class IdCardNoValidatorUtils {
iDCardNo = idCardNo.substring(0, 6) + "19" + idCardNo.substring(6, 15);
}
if (isStrNum(iDCardNo) == false) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证15位号码都应为数字;18位号码除最后一位外,都应为数字"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证15位号码都应为数字;18位号码除最后一位外,都应为数字"));
return false;
}
//判断出生年月
@@ -63,27 +63,27 @@ public class IdCardNoValidatorUtils {
String strMonth = iDCardNo.substring(10, 12);// 月份
String strDay = iDCardNo.substring(12, 14);// 月份
if (isStrDate(strYear + "-" + strMonth + "-" + strDay) == false) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日无效"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日无效"));
return false;
}
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150 || (gc.getTime().getTime() - s.parse(strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日不在有效范围"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日不在有效范围"));
return false;
}
if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证月份无效"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证月份无效"));
return false;
}
if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证日期无效"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证日期无效"));
return false;
}
//判断地区码
Hashtable h = GetAreaCode();
if (h.get(iDCardNo.substring(0, 2)) == null) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证地区编码错误"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证地区编码错误"));
return false;
}
//判断最后一位
@@ -96,12 +96,12 @@ public class IdCardNoValidatorUtils {
iDCardNo = iDCardNo + strVerifyCode;
if (idCardNo.length() == 18 && !iDCardNo.equals(idCardNo)) {
- logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证无效,不是合法的身份证号码"));
+ logger.warn(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证无效,不是合法的身份证号码"));
return false;
}
} catch (Exception e) {
- logger.error(String.format("校验身份证号方法异常"));
+ logger.warn(String.format("校验身份证号方法异常"));
e.printStackTrace();
}
return true;
diff --git a/epmet-commons/pom.xml b/epmet-commons/pom.xml
index d4b8e270b4..636480c48f 100644
--- a/epmet-commons/pom.xml
+++ b/epmet-commons/pom.xml
@@ -23,6 +23,8 @@
epmet-commons-tools-wx-mp
epmet-commons-service-call
epmet-commons-extapp-auth
+ epmet-commons-thirdplat
+ epmet-commons-rocketmq
diff --git a/epmet-gateway/Dockerfile b/epmet-gateway/Dockerfile
index fad72ba2ca..bb6890eefc 100644
--- a/epmet-gateway/Dockerfile
+++ b/epmet-gateway/Dockerfile
@@ -8,4 +8,4 @@ COPY ./target/*.jar ./epmet-gateway.jar
EXPOSE 8080
-ENTRYPOINT ["sh", "-c", "$RUN_INSTRUCT"]
\ No newline at end of file
+ENTRYPOINT ["sh", "-c", "exec $RUN_INSTRUCT"]
\ No newline at end of file
diff --git a/epmet-gateway/deploy/docker-compose-prod.yml b/epmet-gateway/deploy/docker-compose-prod.yml
index ed023d3b8c..ebcdc7eafc 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.39
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-gateway:0.3.43
ports:
- "8080:8080"
network_mode: host # 使用现有网络
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index f67d250648..08eda7167e 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -2,7 +2,7 @@
4.0.0
- 0.3.39
+ 0.3.43
com.epmet
epmet-cloud
@@ -205,6 +205,13 @@
lb://epmet-ext-server
+
+ lb://data-aggregator-server
+
+
+
+ lb://epmet-openapi-adv-server
+
@@ -324,6 +331,14 @@
lb://epmet-ext-server
+
+
+ lb://data-aggregator-server
+
+
+
+ lb://epmet-openapi-adv-server
+
@@ -416,6 +431,11 @@
lb://epmet-point-server
lb://epmet-ext-server
+
+ lb://data-aggregator-server
+
+
+ lb://epmet-openapi-adv-server
@@ -505,6 +525,11 @@
lb://epmet-point-server
lb://epmet-ext-server
+
+ lb://data-aggregator-server
+
+
+ lb://epmet-openapi-adv-server
diff --git a/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java b/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java
index 2ee22426f6..15406173b2 100644
--- a/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java
+++ b/epmet-gateway/src/main/java/com/epmet/auth/InternalAuthProcessor.java
@@ -105,19 +105,30 @@ public class InternalAuthProcessor extends AuthProcessor {
if (baseTokenDto != null) {
String redisKey = baseTokenDto.getApp() + "-" + baseTokenDto.getClient() + "-" + baseTokenDto.getUserId();
logger.info("redisKey=" + redisKey);
- exchange.getRequest().mutate()
- .header(Constant.APP_USER_KEY, redisKey)
- .header(AppClientConstant.APP,baseTokenDto.getApp())
- .header(AppClientConstant.CLIENT,baseTokenDto.getClient())
- .header(AppClientConstant.USER_ID,baseTokenDto.getUserId());
-
- if (StringUtils.equals(baseTokenDto.getApp(), "gov")) {//工作端
- if(StringUtils.isNotBlank(customerId)){
- exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
+
+ ServerHttpRequest.Builder builder = exchange.getRequest().mutate();
+ builder.header(Constant.APP_USER_KEY, redisKey);
+ builder.header(AppClientConstant.APP,baseTokenDto.getApp());
+ builder.header(AppClientConstant.CLIENT,baseTokenDto.getClient());
+ builder.header(AppClientConstant.USER_ID,baseTokenDto.getUserId());
+
+ if(StringUtils.isNotBlank(customerId)){
+ if (StringUtils.equalsAny(baseTokenDto.getApp(), AppClientConstant.APP_GOV, AppClientConstant.APP_RESI, "public")) {//工作端/居民端
+ builder.header(AppClientConstant.CUSTOMER_ID, customerId);
}
- } else if (StringUtils.equals(baseTokenDto.getApp(), "public")) {//公众号端
- exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
}
+
+ //if (StringUtils.isNotBlank(baseTokenDto.getCustomerId())) {
+ // builder.header(AppClientConstant.CUSTOMER_ID,baseTokenDto.getCustomerId());
+ //}
+ //
+ //if (StringUtils.equalsAny(baseTokenDto.getApp(), AppClientConstant.APP_GOV, AppClientConstant.APP_RESI)) {//工作端/居民端
+ // if(StringUtils.isNotBlank(customerId)){
+ // exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
+ // }
+ //} else if (StringUtils.equals(baseTokenDto.getApp(), "public")) {//公众号端
+ // exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
+ //}
ServerHttpRequest build = exchange.getRequest().mutate().build();
return exchange.mutate().request(build).build();
}
diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml
index 53ec286911..7a6c236128 100644
--- a/epmet-gateway/src/main/resources/bootstrap.yml
+++ b/epmet-gateway/src/main/resources/bootstrap.yml
@@ -2,6 +2,7 @@ server:
tomcat:
max-swallow-size: 100MB
port: @server.port@
+ version: @version@
servlet:
context-path: /api
spring:
@@ -323,6 +324,24 @@ spring:
filters:
- StripPrefix=1
- CpAuth=true
+ # 多数据源服务
+ - id: data-aggregator-server
+ uri: @gateway.routes.data-aggregator-server.url@
+ order: 35
+ predicates:
+ - Path=${server.servlet.context-path}/data/aggregator/**
+ filters:
+ - StripPrefix=1
+ - CpAuth=true
+ # 宣传服务
+ - id: epmet-openapi-adv-server
+ uri: @gateway.routes.epmet-openapi-adv-server.url@
+ order: 35
+ predicates:
+ - Path=${server.servlet.context-path}/adv/**
+ filters:
+ - StripPrefix=1
+ - CpAuth=true
nacos:
discovery:
server-addr: @nacos.server-addr@
@@ -450,7 +469,7 @@ epmet:
- /epmet/ext/**
- /epmetuser/customerstaff/customerlist
- /message/template/**
-
+ - /data/aggregator/project/projectdistribution
swaggerUrls:
jwt:
diff --git a/epmet-module/data-aggregator/data-aggregator-client/pom.xml b/epmet-module/data-aggregator/data-aggregator-client/pom.xml
new file mode 100644
index 0000000000..4e8beca881
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ data-aggregator
+ com.epmet
+ 2.0.0
+
+ 4.0.0
+
+ data-aggregator-client
+
+
+
+ com.epmet
+ epmet-commons-tools
+ 2.0.0
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
new file mode 100644
index 0000000000..70f42dc1e2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
@@ -0,0 +1,26 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * 数据源常量
+ */
+public interface DataSourceConstant {
+
+ String GOV_ORG = "govorg";
+ String GOV_ISSUE = "govissue";
+
+ /**
+ * 项目
+ */
+ String GOV_PROJECT = "govproject";
+
+ /**
+ * 小组
+ */
+ String RESI_GROUP = "resigroup";
+
+ /**
+ * 用户
+ */
+ String EPMET_USER = "epmetuser";
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/GroupConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/GroupConstant.java
new file mode 100644
index 0000000000..ba879a3fee
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/GroupConstant.java
@@ -0,0 +1,8 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午10:55
+ */
+public interface GroupConstant {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java
new file mode 100644
index 0000000000..644b680ea5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java
@@ -0,0 +1,27 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午10:54
+ */
+public interface IssueConstant {
+
+ /**
+ * 议题状态(表决中:voting 已转项目:shift_project 已关闭:closed 待处理:auditing 已驳回:rejected)
+ */
+ String ISSUE_STATUS_VOTING = "voting";
+ String ISSUE_STATUS_SHIFT_PROJECT = "shift_project";
+ String ISSUE_STATUS_CLOSED = "closed";
+ String ISSUE_STATUS_AUDITING = "auditing";
+ String ISSUE_STATUS_UNDER_AUDITING = "under_auditing";
+ String ISSUE_STATUS_REJECTED = "rejected";
+
+ String NOT_EXISTS_ISSUE_TYPE = "议题类型不能为空......";
+
+ String GET_AGENCY_FAILURE = "根据userId查询组织ID失败......";
+
+ String GET_GRID_LIST_FAILURE = "获取网格ID列表失败......";
+
+ String NOT_EXISTS_PROJECT_INFO = "未查询到项目信息......";
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java
new file mode 100644
index 0000000000..987c2a2697
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java
@@ -0,0 +1,8 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午10:55
+ */
+public interface OrgConstant {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/ProjectConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/ProjectConstant.java
new file mode 100644
index 0000000000..ea55a2ccc2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/ProjectConstant.java
@@ -0,0 +1,24 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午10:47
+ */
+public interface ProjectConstant {
+
+ /**
+ * 排序类型(创建时间:create 更新时间:update 涉及部门最多:department 耗时最长:date 处理次数最多:count)
+ */
+ String CREATE_TIME = "create";
+ String UPDATE_TIME = "update";
+ String REFER_DEPT = "department";
+ String ELAPSED_TIME = "date";
+ String DISPOSE_COUNT = "count";
+
+ /**
+ * 项目状态(处理中:pending 已结案:closed)
+ */
+ String PROJECT_STATUS_PENDING = "pending";
+ String PROJECT_STATUS_CLOSED = "closed";
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/UserConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/UserConstant.java
new file mode 100644
index 0000000000..337f084031
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/UserConstant.java
@@ -0,0 +1,8 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午10:54
+ */
+public interface UserConstant {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigDTO.java
new file mode 100644
index 0000000000..30179678c3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigDTO.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 徽章认证配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class BadgeCertificationConfigDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id 默认配置id:default
+ */
+ private String customerId;
+
+ /**
+ * 徽章ID
+ */
+ private String badgeId;
+
+ /**
+ * 认证信息类型 手机号:mobile;全名:fullname;身份证:idcard;认证证件: certificate;认证说明(备注):remark
+ */
+ private String certificationType;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigFieldDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigFieldDTO.java
new file mode 100644
index 0000000000..7252e445b0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeCertificationConfigFieldDTO.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 徽章认证配置字段表
+
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class BadgeCertificationConfigFieldDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 中文名
+ */
+ private String cnName;
+
+ /**
+ * 英文名(字段名)
+ */
+ private String enName;
+
+ /**
+ * 字段类型 img:图片,text:文本
+ */
+ private String fieldType;
+
+ /**
+ * 是否必填
+ */
+ private Integer isRequired;
+
+ /**
+ * 认证信息类型 手机号:mobile;全名:fullname;身份证:idcard;认证证件: certificate;认证说明(备注):remark
+ */
+ private String certificationType;
+
+ /**
+ * 字段排序
+ */
+ private Integer sort;
+
+ /**
+ * 删除标识 1删除0未删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeDTO.java
new file mode 100644
index 0000000000..d1fc1d1a43
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/BadgeDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 徽章
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class BadgeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id 默认配置id:default
+ */
+ private String customerId;
+
+ /**
+ * 徽章名称
+ */
+ private String badgeName;
+
+ /**
+ * 徽章图标url
+ */
+ private String badgeIcon;
+
+ /**
+ * 固有徽章类型 前端页面跳转标识,党员徽章:party;无:none
+ */
+ private String fixationBadgeType;
+
+ /**
+ * 徽章排序
+ */
+ private Integer sort;
+
+ /**
+ * 状态 上线:online;下线:offline;
+ */
+ private String badgeStatus;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerStaffDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerStaffDTO.java
new file mode 100644
index 0000000000..c4b24217e3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerStaffDTO.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 政府工作人员表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class CustomerStaffDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户Id CUSTOMER.id
+ */
+ private String customerId;
+
+ /**
+ * 关联User表的主键Id
+ */
+ private String userId;
+
+ /**
+ * 真实姓名
+ */
+ private String realName;
+
+ /**
+ * 性别0.未知,1男,2.女
+ */
+ private Integer gender;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 手机号-唯一键
+ */
+ private String mobile;
+
+ /**
+ * 地址
+ */
+ private String address;
+
+ /**
+ * 删除标识
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * fulltime专职parttime兼职
+ */
+ private String workType;
+
+ /**
+ * 头像
+ */
+ private String headPhoto;
+
+ /**
+ * inactive未激活,active已激活
+ */
+ private String activeFlag;
+
+ /**
+ * 激活时间
+ */
+ private Date activeTime;
+
+ /**
+ * 未禁用enable,已禁用disabled
+ */
+ private String enableFlag;
+
+ /**
+ * 登录密码
+ */
+ private String password;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerUserDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerUserDTO.java
new file mode 100644
index 0000000000..66f1c257b3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/CustomerUserDTO.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 居民用户信息,此表已作废
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class CustomerUserDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id CUSTOMER.id
+ */
+ private String customerId;
+
+ /**
+ * 微信openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 微信unionId
+ */
+ private String wxUnionId;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 性别:0.未知 1.男性2女性
+ */
+ private Integer sex;
+
+ /**
+ * 头像
+ */
+ private String headImgUrl;
+
+ /**
+ * 国家
+ */
+ private String country;
+
+ /**
+ * 省份
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 语言
+ */
+ private String language;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleDTO.java
new file mode 100644
index 0000000000..9e569488d2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 政府端角色表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GovStaffRoleDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID。如果该角色由客户定制,其下的机关和部门都不再各自定制自己的角色,这个字段会比较有用。包括通用角色以及客户定制角色。
+ */
+ private String customerId;
+
+ /**
+ * 角色key
+ */
+ private String roleKey;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 角色所属体系类型:agency,department,grid
+ */
+ private String orgType;
+
+ /**
+ *
+ */
+ private Integer delFlag;
+
+ /**
+ *
+ */
+ private Integer revision;
+
+ /**
+ *
+ */
+ private String createdBy;
+
+ /**
+ *
+ */
+ private Date createdTime;
+
+ /**
+ *
+ */
+ private String updatedBy;
+
+ /**
+ *
+ */
+ private Date updatedTime;
+
+ /**
+ * 是否只有全职 1对应true 0对应false
+ */
+ private Integer fullTimeOnly;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleTemplateDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleTemplateDTO.java
new file mode 100644
index 0000000000..5c38ca8a2c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleTemplateDTO.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 政府端角色模板表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GovStaffRoleTemplateDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 角色key
+ */
+ private String roleKey;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 角色所属体系类型:org,dept,grid
+ */
+ private String orgType;
+
+ /**
+ * 是否只有全职 1对应true 0对应false
+ */
+ private Integer fullTimeOnly;
+
+ /**
+ *
+ */
+ private Integer delFlag;
+
+ /**
+ *
+ */
+ private Integer revision;
+
+ /**
+ *
+ */
+ private String createdBy;
+
+ /**
+ *
+ */
+ private Date createdTime;
+
+ /**
+ *
+ */
+ private String updatedBy;
+
+ /**
+ *
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridLatestDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridLatestDTO.java
new file mode 100644
index 0000000000..c0ddfade87
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridLatestDTO.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 最近访问网格表
+记录用户访问网格的最近一次记录,对同一网格只记录一条记录,同一网格每次只更新最近一次访问的时间
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GridLatestDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id CUSTOMER.id
+ */
+ private String customerId;
+
+ /**
+ * 网格表Id(CUSTOMER_GRID.id)
+ */
+ private String gridId;
+
+ /**
+ * 用户Id(CUSTOMER_USER.id)
+ */
+ private String customerUserId;
+
+ /**
+ * 所属地区码 (数据统计字段)
+ */
+ private String areaCode;
+
+ /**
+ * 上级组织ID (数据统计字段)
+ */
+ private String pid;
+
+ /**
+ * 最近访问时间
+ */
+ private Date latestTime;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridVisitedDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridVisitedDTO.java
new file mode 100644
index 0000000000..c7fa297cd9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GridVisitedDTO.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 网格访问记录表 用户对网格访问的一个记录,只有在访问网格首页时才存储数据,一个用户一天对一个网格的访问只有一条记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GridVisitedDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 是否注册(0:否 1:是)
+ */
+ private Integer isRegister;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格表Id (CUSTOMER_GRID.id)
+ */
+ private String gridId;
+
+ /**
+ * 用户Id
+ */
+ private String customerUserId;
+
+ /**
+ * 访问时间 一个用户一天访问一个网格只有一条记录
+ */
+ private Date visitTime;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/OperUserDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/OperUserDTO.java
new file mode 100644
index 0000000000..f3eb7ebc02
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/OperUserDTO.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 运营人员表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class OperUserDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ private String id;
+
+ /**
+ * 关联User表主键
+ */
+ private String userId;
+
+ /**
+ * 姓名
+ */
+ private String realName;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 头像
+ */
+ private String headUrl;
+
+ /**
+ * 性别 0:男 1:女 2:保密
+ */
+ private Integer gender;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 手机号-唯一键
+ */
+ private String phone;
+
+ /**
+ * 微信openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 部门ID
+ */
+ private Long deptId;
+
+ /**
+ * 超级管理员 0:否 1:是
+ */
+ private Integer superAdmin;
+
+ /**
+ * 状态 0:停用 1:正常
+ */
+ private Integer status;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 删除标识
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java
new file mode 100644
index 0000000000..245636ced7
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 注册关系表 用于统计客户网格的注册居民数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class RegisterRelationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id (customer.id)
+ */
+ private String customerId;
+
+ /**
+ * 网格Id (customer_grid.id)
+ */
+ private String gridId;
+
+ /**
+ * 用户Id (user.id)
+ */
+ private String userId;
+
+ /**
+ * 首次注册用户 0表示不参与计数 1表示参与计数
+ */
+ private String firstRegister;
+
+ /**
+ * 注册用户 0表示不参与计数 1表示参与计数
+ */
+ private String register;
+
+ /**
+ * 参与用户 0表示不参与计数 1表示参与计数
+ */
+ private String participation;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/ResiUserBadgeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/ResiUserBadgeDTO.java
new file mode 100644
index 0000000000..e6290b9637
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/ResiUserBadgeDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户徽章关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiUserBadgeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id 默认配置id:default
+ */
+ private String customerId;
+
+ /**
+ * 用户注册网格ID
+ */
+ private String gridId;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 徽章ID
+ */
+ private String badgeId;
+
+ /**
+ * 是否开启(点亮) 1:点亮;0:未点亮
+ */
+ private Integer isOpened;
+
+ /**
+ * 认证(审核)状态 待审核:auditing;审核通过: approved;驳回:rejected;
+ */
+ private String certificationAutidStatus;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RoleDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RoleDTO.java
new file mode 100644
index 0000000000..03ca62bcad
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RoleDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 角色表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class RoleDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 所属APP
+ */
+ private String app;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 角色Key值
+ */
+ private String roleKey;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffAgencyVisitedDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffAgencyVisitedDTO.java
new file mode 100644
index 0000000000..e0dd85fb43
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffAgencyVisitedDTO.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 工作人员进入组织日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class StaffAgencyVisitedDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * customer_staff.userId
+ */
+ private String staffId;
+
+ /**
+ * 微信openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 机关单位id来源于customer_agency.id
+ */
+ private String agencyId;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间,登录时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffGridVisitedDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffGridVisitedDTO.java
new file mode 100644
index 0000000000..e8f6761945
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffGridVisitedDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 工作人员进入网格日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class StaffGridVisitedDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * customer_staff.userId
+ */
+ private String staffId;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间,登录时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffRoleDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffRoleDTO.java
new file mode 100644
index 0000000000..472615f6b1
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffRoleDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 工作人员-角色关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class StaffRoleDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 用户ID
+ */
+ private String staffId;
+
+ /**
+ * 角色ID
+ */
+ private String roleId;
+
+ /**
+ * 角色所属类型的ID。例如,机关的角色,那该字段就是所属机关的ID;部门的角色,该字段就是所属部门的ID;网格的角色,该字段就是所属网格ID
+ */
+ private String orgId;
+
+ /**
+ *
+ */
+ private Integer delFlag;
+
+ /**
+ *
+ */
+ private Integer revision;
+
+ /**
+ *
+ */
+ private String createdBy;
+
+ /**
+ *
+ */
+ private Date createdTime;
+
+ /**
+ *
+ */
+ private String updatedBy;
+
+ /**
+ *
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffWechatDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffWechatDTO.java
new file mode 100644
index 0000000000..b129857f74
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/StaffWechatDTO.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 工作人员微信关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class StaffWechatDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 用户Id user.id
+ */
+ private String userId;
+
+ /**
+ * openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 微信unionId
+ */
+ private String wxUnionId;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 性别
+ */
+ private Integer sex;
+
+ /**
+ * 头像
+ */
+ private String headImgUrl;
+
+ /**
+ * 国家
+ */
+ private String country;
+
+ /**
+ * 省份
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 语言
+ */
+ private String language;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceDTO.java
new file mode 100644
index 0000000000..a1f9449b90
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceDTO.java
@@ -0,0 +1,171 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * user_advice
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserAdviceDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 客户名
+ */
+ private String customerName;
+
+ /**
+ * 组织ID
+ */
+ private String agencyId;
+
+ /**
+ *
+ */
+ private String agencyPids;
+
+ /**
+ *
+ */
+ private String agencyAllParentName;
+
+ /**
+ * 组织名
+ */
+ private String agencyName;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 网格名
+ */
+ private String gridName;
+
+ /**
+ * userid
+ */
+ private String userId;
+
+ /**
+ * 用户姓名
+ */
+ private String userName;
+
+ /**
+ * 用户注册手机号
+ */
+ private String regPhone;
+
+ /**
+ * 1
+ */
+ private String adviceContent;
+
+ /**
+ * 填写手机号
+ */
+ private String phone;
+
+ /**
+ * 建议时间
+ */
+ private Date adviceTime;
+
+ /**
+ * 问题分类(gov政府software软件,逗号分隔)
+ */
+ private String adviceType;
+
+ /**
+ * 回复内容
+ */
+ private String replyContent;
+
+ /**
+ * 回复人id
+ */
+ private String replyUserId;
+
+ /**
+ * 回复人姓名
+ */
+ private String replyUserName;
+
+ /**
+ * 回复时间
+ */
+ private Date replyTime;
+
+ /**
+ * 建议回复内容
+ */
+ private String govContent;
+
+ /**
+ * 删除标志
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceImgDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceImgDTO.java
new file mode 100644
index 0000000000..029dbac2ee
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserAdviceImgDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户建议图片
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserAdviceImgDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 建议id
+ */
+ private String adviceId;
+
+ /**
+ * 图片类型,resi是用户上传的建议图片,oper是运营上传的代替政府回复的存证
+ */
+ private String type;
+
+ /**
+ * 图片url
+ */
+ private String imgUrl;
+
+ /**
+ * 删除标志
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBadgeCertificateRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBadgeCertificateRecordDTO.java
new file mode 100644
index 0000000000..5969d6d34b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBadgeCertificateRecordDTO.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户认证徽章记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserBadgeCertificateRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 用户注册网格ID
+ */
+ private String gridId;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 徽章ID
+ */
+ private String badgeId;
+
+ /**
+ * 姓
+ */
+ private String surname;
+
+ /**
+ * 名
+ */
+ private String name;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 身份证号 网格内去重
+ */
+ private String idNum;
+
+ /**
+ * 认证证件图片
+ */
+ private String certificationImg;
+
+ /**
+ * 认证说明(备注)
+ */
+ private String remaek;
+
+ /**
+ * 审核状态 approved:审核通过,rejected:审核驳回;auditing:审核中
+ */
+ private String auditStatus;
+
+ /**
+ * 审核意见
+ */
+ private String auditRemark;
+
+ /**
+ * 审核人 审核人Id
+ */
+ private String staffId;
+
+ /**
+ * 审核时间
+ */
+ private Date auditTime;
+
+ /**
+ * 是否是最新纪录:yes:最新纪录,no:非最新纪录
+ */
+ private String isLast;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBaseInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBaseInfoDTO.java
new file mode 100644
index 0000000000..d610234056
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserBaseInfoDTO.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户基础信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserBaseInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 用户id
+ */
+ private String userId;
+
+ /**
+ * 手机号(注册手机号)
+ */
+ private String mobile;
+
+ /**
+ * 姓氏
+ */
+ private String surname;
+
+ /**
+ * 名
+ */
+ private String name;
+
+ /**
+ * 姓+名
+ */
+ private String realName;
+
+ /**
+ * 身份证号
+ */
+ private String idNum;
+
+ /**
+ * 性别(1男2女0未知)
+ */
+ private String gender;
+
+ /**
+ * 街道
+ */
+ private String street;
+
+ /**
+ * 小区名称
+ */
+ private String district;
+
+ /**
+ * 楼栋单元
+ */
+ private String buildingAddress;
+
+ /**
+ * 昵称(目前来源于微信昵称,后续系统可支持用户有昵称)
+ */
+ private String nickname;
+
+ /**
+ * 头像(目前来源于微信,后续系统顾客支持上传头像)
+ */
+ private String headImgUrl;
+
+ /**
+ * 删除标识 0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserCustomerDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserCustomerDTO.java
new file mode 100644
index 0000000000..9922266f3a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserCustomerDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户客户关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserCustomerDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 用户Id user.id
+ */
+ private String userId;
+
+ /**
+ * 是否注册 1注册; 0未注册
+ */
+ private String isRegister;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserDTO.java
new file mode 100644
index 0000000000..6d79de576b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserDTO.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 来源app(政府端:gov、居民端:resi、运营端:oper)
+ */
+ private String fromApp;
+
+ /**
+ * 来源client(PC端:web、微信小程序:wxmp)
+ */
+ private String fromClient;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserInvitationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserInvitationDTO.java
new file mode 100644
index 0000000000..5a048747b7
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserInvitationDTO.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 人员邀请关系表 记录user之间的邀请关系
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserInvitationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id (customer.id)
+ */
+ private String customerId;
+
+ /**
+ * 网格Id (customer_grid.id)
+ */
+ private String gridId;
+
+ /**
+ * 邀请人Id
+ */
+ private String inviterUserId;
+
+ /**
+ * 被邀请人Id
+ */
+ private String inviteeUserId;
+
+ /**
+ * 邀请场景 (value:feature+action)
+ */
+ private String inviteSource;
+
+ /**
+ * 邀请记录Id
+ */
+ private String inviteSourceId;
+
+ /**
+ * 邀请时间
+ */
+ private Date invitationTime;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiInfoDTO.java
new file mode 100644
index 0000000000..48474f547f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiInfoDTO.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户居民端注册信息表 用户在居民端完善的个人信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserResiInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 用户Id(主键) user.id
+ */
+ private String userId;
+
+ /**
+ * 手机号(注册手机号)
+ */
+ private String regMobile;
+
+ /**
+ * 姓氏
+ */
+ private String surname;
+
+ /**
+ * 名称
+ */
+ private String name;
+
+ /**
+ * 街道
+ */
+ private String street;
+
+ /**
+ * 小区名称
+ */
+ private String district;
+
+ /**
+ * 楼栋单元
+ */
+ private String buildingAddress;
+
+ /**
+ * 居民注册行为记录表Id resi_visit.id
+ */
+ private String resiVisitId;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiRegisterVisitDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiRegisterVisitDTO.java
new file mode 100644
index 0000000000..43e72c1ada
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserResiRegisterVisitDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户居民端注册访问记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserResiRegisterVisitDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id (customer.id)
+ */
+ private String customerId;
+
+ /**
+ * 用户Id (user.id)
+ */
+ private String userId;
+
+ /**
+ * 网格Id (customer_grid.id)
+ */
+ private String gridId;
+
+ /**
+ * 访问来源 【指的是用户点的那个功能进入到的注册页面,就是一个功能模块的Id(value:feature+action)】
+ */
+ private String visitFrom;
+
+ /**
+ * 最后一次操作行为 key:operate_visit value:(initialize:初始化 sms_Code:获取验证码 success:提交成功 faild:提交失败)
+ */
+ private String lastOperateVisit;
+
+ /**
+ * 访问时间
+ */
+ private Date visitTime;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserRoleDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserRoleDTO.java
new file mode 100644
index 0000000000..3e369e1099
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserRoleDTO.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户角色关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserRoleDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 网格表Id(CUSTOMER_GRID.id)【居民党员角色值为all,热心居民角色对应的网格Id】
+ */
+ private String gridId;
+
+ /**
+ * 用户Id user.id
+ */
+ private String userId;
+
+ /**
+ * 角色Id 【角色表Id】
+ */
+ private String roleId;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserWechatDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserWechatDTO.java
new file mode 100644
index 0000000000..6ddad76885
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/UserWechatDTO.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.epmetuser;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户微信端关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class UserWechatDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 用户Id user.id
+ */
+ private String userId;
+
+ /**
+ * openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 微信unionId
+ */
+ private String wxUnionId;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 性别
+ */
+ private Integer sex;
+
+ /**
+ * 头像
+ */
+ private String headImgUrl;
+
+ /**
+ * 国家
+ */
+ private String country;
+
+ /**
+ * 省份
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 语言
+ */
+ private String language;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/EvaluateInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/EvaluateInfoDTO.java
new file mode 100644
index 0000000000..4933a0a00c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/EvaluateInfoDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 评价信息
+ */
+@Data
+public class EvaluateInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 评价内容
+ */
+ private String evaluateContent;
+
+ /**
+ * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+ */
+ private String satisfaction;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationDTO.java
new file mode 100644
index 0000000000..4565baf59c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationDTO.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 话题转议题申请表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-11-17
+ */
+@Data
+public class IssueApplicationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 议题名称
+ */
+ private String issueTitle;
+
+ /**
+ * 建议
+ */
+ private String suggestion;
+
+ /**
+ * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed
+ */
+ private String applyStatus;
+
+ /**
+ * 话题id
+ */
+ private String topicId;
+
+ /**
+ * 小组id
+ */
+ private String groupId;
+
+ /**
+ * 网格ID 居民端议题对应一个网格Id
+ */
+ private String gridId;
+
+ /**
+ * 审核通过后对应的 议题id
+ */
+ private String issueId;
+
+ /**
+ * 审核通过时填写的理由
+ */
+ private String passedReason;
+
+ /**
+ * 审批通过时工作人员id,自动通过此列不存储
+ */
+ private String approveStaffId;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ //拓展属性
+ /**
+ * 申请id
+ */
+ private String issueApplicationId;
+
+ /**
+ * 对应issue_application.UPDATED_TIME 对应的秒级时间戳
+ */
+ private Long latestTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationHistoryDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationHistoryDTO.java
new file mode 100644
index 0000000000..65376d7dd9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueApplicationHistoryDTO.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 话题转议题审核历史表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-11-17
+ */
+@Data
+public class IssueApplicationHistoryDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 话题转议题申请表 issue_application.id
+ */
+ private String issueApplicationId;
+
+ /**
+ * under_auditing:待审核;
+ * approved:审核通过;
+ * rejected:驳回;
+ * auto_passed:自动通过
+ */
+ private String actionType;
+
+ /**
+ * 审核时的说明
+ */
+ private String reason;
+
+ /**
+ * 工作端人员姓名
+ */
+ private String staffName;
+
+ /**
+ * 删除标识:0 未删除 1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人 提交人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 修改人ID
+ */
+ private String updatedBy;
+
+ /**
+ * 修改时间
+ */
+ private Date updatedTime;
+
+ //扩展属性
+ /**
+ * =id
+ */
+ private String historyId;
+
+ /**
+ * createdTime 对应时间戳
+ */
+ private Long operateTime;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueCustomerParameterDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueCustomerParameterDTO.java
new file mode 100644
index 0000000000..c1290190eb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueCustomerParameterDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题客户参数定制表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueCustomerParameterDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 参数键 eg:voting_time_limit
+ */
+ private String parameterKey;
+
+ /**
+ * 参数名 eg:表决期限
+ */
+ private String parameterName;
+
+ /**
+ * 参数值 eg:10(天)
+ */
+ private String parameterValue;
+
+ /**
+ * 参数说明 eg:这个客户下所有的网格议题表决期限都是10天
+ */
+ private String description;
+
+ /**
+ * 删除标志 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueDTO.java
new file mode 100644
index 0000000000..b3b36dba2d
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueDTO.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题详情表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 议题ID
+ */
+ private String id;
+
+ /**
+ * 议题状态 表决中:voting 已转项目:shift_project 已关闭:closed
+ */
+ private String issueStatus;
+
+ /**
+ * 来源类型 eg:resi_topic
+ */
+ private String sourceType;
+
+ /**
+ * 来源ID eg:2223232(当SOURCE_TYPE为"resi_topic"时,这里指话题的ID)
+ */
+ private String sourceId;
+
+ /**
+ * 关闭理由 【未关闭时可以为空】关闭议题时必填的理由,转项目后而且已经结案,这个字段不回写
+ */
+ private String closeReason;
+
+ /**
+ * 解决类型 【未关闭时可以为空】已解决resolved、未解决unresolved,对应在关闭议题时所选的checkbox,转项目后而且已经结案,这个字段不回写
+ */
+ private String resolveType;
+
+ /**
+ * 议题名称 最多20字
+ */
+ private String issueTitle;
+
+ /**
+ * 建议 最多1000字
+ */
+ private String suggestion;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格ID 居民端议题对应一个网格Id
+ */
+ private String gridId;
+
+ /**
+ * 所属机关 【数据权限-非必填】11:22:33(agencyId)数据权限控制
+ */
+ private String orgIdPath;
+
+ /**
+ * 组织ID 【数据权限-非必填】agencyId
+ */
+ private String orgId;
+
+ /**
+ * 表决截止日期
+ */
+ private Date votingDeadline;
+
+ /**
+ * 表决发起日期(转议题日期)
+ */
+ private Date decidedTime;
+
+ /**
+ * 转项目日期 (服务间调用日期一致性)
+ */
+ private Date shiftedTime;
+
+ /**
+ * 关闭日期
+ */
+ private Date closedTime;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 转项目日期 (服务间调用日期一致性) 戳
+ */
+ private Long shiftedTimeStamp;
+
+ /**
+ * 关闭日期 戳
+ */
+ private Long closedTimeStamp;
+
+ /**
+ * 议题转项目后-对应的项目id
+ */
+ private String projectId;
+
+ private String issueId;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProcessDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProcessDTO.java
new file mode 100644
index 0000000000..268b2b673c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProcessDTO.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题进展记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueProcessDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 操作状态 - 表决中:voting 已转项目:shift_project 已关闭:closed
+ */
+ private String issueStatus;
+
+ /**
+ * 组织类型 操作人所属机构类型(机构:agency | 部门:dept | 网格:grid)操作人可能来源于居民端和政府段,但是只有在“转议题”的时候才是居民端拥有组长权限的人操作,所以当这条记录是转议题时,该记录为grid,ORD_ID相应的也为GRID_ID
+ */
+ private String orgType;
+
+ /**
+ * 组织ID 操作人所属机构ID(对应的有网格ID、部门ID、机构ID)
+ */
+ private String orgId;
+
+ /**
+ * 操作说明 (节点的说明文案,包含三个节点的文案说明【转议题】、【已关闭】、【转项目】)
+ */
+ private String operationExplain;
+
+ /**
+ * 组织名称
+ * */
+ private String orgName;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectRelationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectRelationDTO.java
new file mode 100644
index 0000000000..3e3d53ee6e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueProjectRelationDTO.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题项目关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueProjectRelationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 项目ID 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 删除标识 0:未删除1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间 议题转项目时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionDetailDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionDetailDTO.java
new file mode 100644
index 0000000000..626afb8f37
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionDetailDTO.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题满意度调查记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueSatisfactionDetailDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 评论 - 最多300字
+ */
+ private String comment;
+
+ /**
+ * 满意度 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+ */
+ private String satisfaction;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionStatisticalDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionStatisticalDTO.java
new file mode 100644
index 0000000000..f80a037561
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSatisfactionStatisticalDTO.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题满意度调查统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueSatisfactionStatisticalDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 一般满意数
+ */
+ private Integer goodCount;
+
+ /**
+ * 非常满意数
+ */
+ private Integer perfectCount;
+
+ /**
+ * 不满意数
+ */
+ private Integer badCount;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSuggestionDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSuggestionDTO.java
new file mode 100644
index 0000000000..5f3dd43f10
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueSuggestionDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 居民端用户对议题建议或意见表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-11-18
+ */
+@Data
+public class IssueSuggestionDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户Id customer.id
+ */
+ private String customerId;
+
+ /**
+ * 议题id
+ */
+ private String issueId;
+
+ /**
+ * 议题所属网格id
+ */
+ private String gridId;
+
+ /**
+ * 对议题的想法
+ */
+ private String suggestion;
+
+ /**
+ * 1公开; 0匿名
+ */
+ private Integer publicFlag;
+
+ /**
+ * 删除标识:0 未删除 1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 提建议的人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 修改人ID
+ */
+ private String updatedBy;
+
+ /**
+ * 修改时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteDetailDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteDetailDTO.java
new file mode 100644
index 0000000000..47e582c324
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteDetailDTO.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题表决记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueVoteDetailDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 态度 - opposition(反对)support(赞成)
+ */
+ private String attitude;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDTO.java
new file mode 100644
index 0000000000..fdf0e660f3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDTO.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题表决统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueVoteStatisticalDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 支持数
+ */
+ private Integer supportCount;
+
+ /**
+ * 反对数
+ */
+ private Integer oppositionCount;
+
+ /**
+ * 应表决数
+ */
+ private Integer votableCount;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDailyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDailyDTO.java
new file mode 100644
index 0000000000..0575ed5585
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/IssueVoteStatisticalDailyDTO.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 议题表决按天统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-12
+ */
+@Data
+public class IssueVoteStatisticalDailyDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 统计日期 yyyy-MM-dd
+ */
+ private Date statisticalDate;
+
+ /**
+ * 到该日的总赞成数
+ */
+ private Integer supportCount;
+
+ /**
+ * 到该日的总反对数
+ */
+ private Integer oppositionCount;
+
+ /**
+ * 到该日的总票数
+ */
+ private Integer totalCount;
+
+ /**
+ * 该日增量
+ */
+ private Integer todayIncrement;
+
+ /**
+ * 该日赞成增量
+ */
+ private Integer supportIncrement;
+
+ /**
+ * 该日反对增量
+ */
+ private Integer oppositionIncrement;
+
+ /**
+ * 到该日的应表决数
+ */
+ private Integer votableCount;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/PolyLineDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/PolyLineDTO.java
new file mode 100644
index 0000000000..00c03bdd2f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/PolyLineDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 投票折线数据
+ * @CreateTime 2020/5/11 9:36
+ */
+@Data
+public class PolyLineDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 投票日期
+ */
+ private Long voteDate;
+
+ /**
+ * 当日赞成票数量
+ */
+ private Integer supportIncrement;
+
+ /**
+ * 当日反对票数量
+ */
+ private Integer oppositionIncrement;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/TopicInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/TopicInfoDTO.java
new file mode 100644
index 0000000000..6cd9256c17
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/TopicInfoDTO.java
@@ -0,0 +1,43 @@
+package com.epmet.dataaggre.dto.govissue;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * 话题详情(议题详情中的)
+ * @CreateTime 2020/5/11 9:36
+ */
+@Data
+public class TopicInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 话题id
+ */
+ private String topicId;
+
+ /**
+ * 话题内容
+ */
+ private String topicContent;
+
+ /**
+ * 图片列表
+ */
+ private List topicImgs;
+
+ /**
+ * 话题发表人(山东路168-尹女士)
+ */
+ private String publishedUser;
+
+ /**
+ * 话题发表时间 (时间戳 毫秒级)
+ */
+ private Long publishedTime;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/AllIssueFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/AllIssueFormDTO.java
new file mode 100644
index 0000000000..73822375f0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/AllIssueFormDTO.java
@@ -0,0 +1,34 @@
+package com.epmet.dataaggre.dto.govissue.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 下午1:26
+ */
+@Data
+public class AllIssueFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -7857792672812118217L;
+
+ public interface AllIssueForm{}
+
+ @NotNull(message = "页码不能为空",groups = {AllIssueForm.class})
+ private Integer pageNo;
+
+ @NotNull(message = "每页数量不能为空",groups = {AllIssueForm.class})
+ private Integer pageSize;
+
+ @NotNull(message = "议题类型不能为空",groups = {AllIssueForm.class})
+ private String issueType;
+
+ /**
+ * 网格Id集合
+ */
+ private List gridIdList;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ClosedIssueListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ClosedIssueListFormDTO.java
new file mode 100644
index 0000000000..2fe2404bd9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ClosedIssueListFormDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dataaggre.dto.govissue.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 议题-已关闭列表-接口入参
+ * @Auth sun
+ */
+@Data
+public class ClosedIssueListFormDTO implements Serializable {
+ private static final long serialVersionUID = -436147374473316845L;
+ /**
+ * 机关组织Id
+ * */
+ @NotBlank(message = "组织Id不能为空", groups = {ClosedIssueListFormDTO.ClosedForm.class})
+ private String agencyId;
+ /**
+ * 页码
+ * */
+ @Min(1)
+ private Integer pageNo;
+ /**
+ * 每页多少条
+ * */
+ private Integer pageSize = 20;
+ /**
+ * 组织下网格Id集合
+ * */
+ private List gridIdList;
+
+ public interface ClosedForm{}
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ShiftProjectIssueListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ShiftProjectIssueListFormDTO.java
new file mode 100644
index 0000000000..34f3d13326
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/ShiftProjectIssueListFormDTO.java
@@ -0,0 +1,33 @@
+package com.epmet.dataaggre.dto.govissue.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 议题-已转项目列表-接口入参
+ * @Auth sun
+ */
+@Data
+public class ShiftProjectIssueListFormDTO implements Serializable {
+ private static final long serialVersionUID = -436147374473316845L;
+ /**
+ * 机关组织Id
+ * */
+ @NotBlank(message = "组织Id不能为空", groups = {ShiftProjectIssueListFormDTO.ShiftForm.class})
+ private String agencyId;
+ /**
+ * 页码
+ * */
+ @Min(1)
+ private Integer pageNo;
+ /**
+ * 每页多少条
+ * */
+ private Integer pageSize = 20;
+
+ public interface ShiftForm{}
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/VotingIssueListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/VotingIssueListFormDTO.java
new file mode 100644
index 0000000000..9b5a1ad4d8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/VotingIssueListFormDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dataaggre.dto.govissue.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 议题-表决中列表-接口入参
+ * @Auth sun
+ */
+@Data
+public class VotingIssueListFormDTO implements Serializable {
+ private static final long serialVersionUID = -436147374473316845L;
+ /**
+ * 机关组织Id
+ * */
+ @NotBlank(message = "组织Id不能为空", groups = {VotingIssueListFormDTO.VotingForm.class})
+ private String agencyId;
+ /**
+ * 页码
+ * */
+ @Min(1)
+ private Integer pageNo;
+ /**
+ * 每页多少条
+ * */
+ private Integer pageSize = 20;
+ /**
+ * 组织下网格Id集合
+ * */
+ private List gridIdList;
+
+ public interface VotingForm{}
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/AllIssueResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/AllIssueResultDTO.java
new file mode 100644
index 0000000000..ec9e6a2526
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/AllIssueResultDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 下午1:32
+ */
+@Data
+public class AllIssueResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -2729009012650779109L;
+
+ /**
+ * 议题总数
+ */
+ private Integer total;
+
+ /**
+ * 议题列表
+ */
+ private List issueList;
+
+ public AllIssueResultDTO() {
+ this.total = 0;
+ this.issueList = new ArrayList<>();
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ClosedIssueListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ClosedIssueListResultDTO.java
new file mode 100644
index 0000000000..cad51d4517
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ClosedIssueListResultDTO.java
@@ -0,0 +1,46 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 议题-已关闭列表-接口返参
+ * @Auth sun
+ */
+@Data
+public class ClosedIssueListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 3809252070982486401L;
+
+ /**
+ * 网格Id(方便查操作权限)
+ * */
+ @JsonIgnore
+ private String gridId;
+ /**
+ * 议题id
+ * */
+ private String issueId;
+ /**
+ * 议题标题
+ * */
+ private String issueTitle;
+ /**
+ * 所属网格(网格所属组织名称-网格名称)
+ * */
+ private String belongsGridName;
+ /**
+ * 关闭说明(关闭时的答复)
+ * */
+ private String closeReason;
+ /**
+ * 议题关闭时间 时间戳
+ * */
+ private Long closedTime;
+ /**
+ * 实际总表决数
+ * */
+ private Integer count;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueInfoDTO.java
new file mode 100644
index 0000000000..4fc0e2e224
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueInfoDTO.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import lombok.Data;
+
+/**
+ * 描述一下
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/2/24 12:12
+ */
+@Data
+public class IssueInfoDTO {
+ private String issueId;
+ private String gridId;
+ private String topicId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java
new file mode 100644
index 0000000000..f1561c2a1b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java
@@ -0,0 +1,133 @@
+package com.epmet.dataaggre.dto.govissue.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/12/25 下午1:34
+ */
+@Data
+public class IssueListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -2926735144624342550L;
+
+ /**
+ * 议题ID
+ */
+ private String issueId;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 议题标题
+ */
+ private String issueTitle;
+
+ /**
+ * 所属网格(网格所属组织名称-网格名称)
+ */
+ private String belongsGridName;
+
+ /**
+ * 议题建议
+ */
+ private String suggestion;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 议题创建时间
+ */
+ private Long createTime;
+
+ /**
+ * 议题关闭说明(关闭时的答复)
+ */
+ private String issueCloseReason;
+
+ /**
+ * 议题关闭时间
+ */
+ private Long issueClosedTime;
+
+ /**
+ * 议题状态
+ */
+ private String status;
+
+ /**
+ * 结案说明
+ */
+ private String closedReason;
+
+ /**
+ * 驳回理由
+ */
+ private String rejectedReason;
+
+ /**
+ * 驳回时间
+ */
+ private Long rejectedTime;
+
+ /**
+ * 话题ID
+ */
+ private String topicId;
+
+ /**
+ * 审核中的创建时间
+ */
+ private Long auditingTime;
+
+ /**
+ * 转项目时间
+ */
+ private Long shiftProjectTime;
+
+ /**
+ * 当前处理部门
+ */
+ private List currentDepartment;
+
+ private String issueApplicationId;
+
+ @JsonIgnore
+ private Long operationTime;
+
+ @JsonIgnore
+ private String applyStatus;
+
+ public IssueListResultDTO() {
+ this.issueId = "";
+ this.issueTitle = "";
+ this.belongsGridName = "";
+ this.suggestion = "";
+ this.gridId = "";
+ this.createTime = 0L;
+ this.issueCloseReason = "";
+ this.issueClosedTime = 0L;
+ this.status = "";
+ this.closedReason = "";
+ this.rejectedReason = "";
+ this.rejectedTime = 0L;
+ this.topicId = "";
+ this.auditingTime = 0L;
+ this.shiftProjectTime = 0L;
+ this.currentDepartment = new ArrayList<>();
+ this.projectId = "";
+ this.issueClosedTime = 0L;
+ this.issueApplicationId = "";
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueShiftProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueShiftProjectResultDTO.java
new file mode 100644
index 0000000000..559b26a328
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueShiftProjectResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 议题-已转项目列表-接口返参
+ * @Auth sun
+ */
+@Data
+public class IssueShiftProjectResultDTO implements Serializable {
+ private static final long serialVersionUID = -7134055957167447949L;
+
+ /**
+ * 议题Id
+ * */
+ private String issueId;
+ /**
+ * 议题标题
+ * */
+ private String issueTitle;
+ /**
+ * 实际总表决数
+ * */
+ private Integer count;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ShiftProjectIssueListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ShiftProjectIssueListResultDTO.java
new file mode 100644
index 0000000000..4c55d2e9bf
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/ShiftProjectIssueListResultDTO.java
@@ -0,0 +1,45 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 议题-已转项目列表-接口入参
+ * @Auth sun
+ */
+@Data
+public class ShiftProjectIssueListResultDTO implements Serializable {
+ private static final long serialVersionUID = -8616067919204282328L;
+ /**
+ * 议题Id
+ */
+ private String issueId;
+ /**
+ * 议题标题
+ */
+ private String issueTitle;
+ /**
+ * 当前处理部门
+ */
+ private List departmentNameList;
+ /**
+ * 转成项目时间
+ */
+ private Long shiftedTime;
+ /**
+ * 项目状态
+ */
+ private String status;
+ /**
+ * 结案说明
+ */
+ private String closedReason;
+ /**
+ * 实际总表决数
+ */
+ private Integer count;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/VotingIssueListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/VotingIssueListResultDTO.java
new file mode 100644
index 0000000000..e514dc21c8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/VotingIssueListResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.dataaggre.dto.govissue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 议题-表决中列表-接口返参
+ * @Auth sun
+ */
+@Data
+public class VotingIssueListResultDTO implements Serializable {
+ private static final long serialVersionUID = -7134055957167447949L;
+
+ /**
+ * 网格Id(方便查操作权限)
+ * */
+ private String gridId;
+ /**
+ * 议题Id
+ * */
+ private String issueId;
+ /**
+ * 议题标题
+ * */
+ private String issueTitle;
+ /**
+ * 所属网格(网格所属组织名称-网格名称)
+ * */
+ private String belongsGridName;
+ /**
+ * 议题建议
+ * */
+ private String suggestion;
+ /**
+ * 议题创建时间
+ * */
+ private Long createTime;
+ /**
+ * 实际总表决数
+ * */
+ private Integer count;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java
new file mode 100644
index 0000000000..4b98fb899f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 机关单位信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class CustomerAgencyDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 上级组织机构ID
+ */
+ private String pid;
+
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+
+ /**
+ * 组织名称
+ */
+ private String organizationName;
+
+ /**
+ * 机关级别(社区级:community,
+乡(镇、街道)级:street,
+区县级: district,
+市级: city
+省级:province) 机关级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province)
+ */
+ private String level;
+
+ /**
+ * 地区编码
+ */
+ private String areaCode;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 总人数
+ */
+ private Integer totalUser;
+
+ /**
+ * 省份
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 区县
+ */
+ private String district;
+
+ /**
+ * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701
+ */
+ private String parentAreaCode;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerDepartmentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerDepartmentDTO.java
new file mode 100644
index 0000000000..ca02fda8bf
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerDepartmentDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 客户部门表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class CustomerDepartmentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 所属组织机构ID(customer_organization.id)AGENCY_ID
+ */
+ private String agencyId;
+
+ /**
+ * 部门名称
+ */
+ private String departmentName;
+
+ /**
+ * 部门职责
+ */
+ private String departmentDuty;
+
+ /**
+ * 总人数
+ */
+ private Integer totalUser;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java
new file mode 100644
index 0000000000..10620c89d2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 客户网格表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-03-16
+ */
+@Data
+public class CustomerGridDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格名称
+ */
+ private String gridName;
+
+ /**
+ * 中心位置经度
+ */
+ private String longitude;
+
+ /**
+ * 中心位置纬度
+ */
+ private String latitude;
+
+ /**
+ * 所属地区码(所属组织地区码)
+ */
+ private String areaCode;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 管辖区域
+ */
+ private String manageDistrict;
+
+ /**
+ * 当前网格总人数
+ */
+ private Integer totalUser;
+
+ /**
+ * 所属组织机构ID(customer_organization.id)
+ */
+ private String pid;
+
+ /**
+ * 所有上级组织ID
+ */
+ private String pids;
+
+ /**
+ * 所属组织机构名
+ */
+ private String agencyName;
+
+ /**
+ * 所有上级组织名
+ */
+ private String allParentName;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerIdDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerIdDTO.java
new file mode 100644
index 0000000000..5d0eaf4f42
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerIdDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 根据userId查询customerId 的DTO
+ * @Auther zxc
+ * @Create 2020-04-24 15:57
+ */
+@Data
+public class CustomerIdDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * userId 用户id
+ */
+ private String userId;
+
+ /**
+ * customerId 客户id
+ */
+ private String customerId;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerPartyBranchDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerPartyBranchDTO.java
new file mode 100644
index 0000000000..328d06074f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerPartyBranchDTO.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 党支部信息
+ *
+ * @author yinzuomei yinzuomei@elink-cn.com
+ * @since v1.0.0 2020-06-17
+ */
+@Data
+public class CustomerPartyBranchDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 支部名称
+ */
+ private String partyBranchName;
+
+ /**
+ * 概要
+ */
+ private String profile;
+
+ /**
+ * 党支部所属网格id
+ */
+ private String gridId;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 党员总数
+ */
+ private Integer totalPartyMember;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 网格名称
+ */
+ private String gridName;
+
+ /**
+ * 网格所属机关id
+ */
+ private String agencyId;
+
+ /**
+ * 网格所属机关名字
+ */
+ private String agencyName;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffAgencyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffAgencyDTO.java
new file mode 100644
index 0000000000..b161af7cb4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffAgencyDTO.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 人员-机关单位关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class CustomerStaffAgencyDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 组织机构ID customer_agency.id
+ */
+ private String agencyId;
+
+ /**
+ * 删除标识
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffDepartmentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffDepartmentDTO.java
new file mode 100644
index 0000000000..08bab4309f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffDepartmentDTO.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 部门人员关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class CustomerStaffDepartmentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 部门ID customer_department.id
+ */
+ private String departmentId;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffGridDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffGridDTO.java
new file mode 100644
index 0000000000..61fabd36c0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerStaffGridDTO.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 网格人员关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class CustomerStaffGridDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 用户id, user.id
+ */
+ private String userId;
+
+ /**
+ * 网格ID customer_grid.id
+ */
+ private String gridId;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 删除标识
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/GridStaffCountDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/GridStaffCountDTO.java
new file mode 100644
index 0000000000..82f42cae99
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/GridStaffCountDTO.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Auther zxc
+ * @Create 2020-04-24 9:13
+ */
+@Data
+public class GridStaffCountDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 网格下未被禁用的工作人员数量
+ */
+ private Integer enableCount;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/OrgTreeNode.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/OrgTreeNode.java
new file mode 100644
index 0000000000..0612a7eaf9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/OrgTreeNode.java
@@ -0,0 +1,13 @@
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class OrgTreeNode {
+ private String orgId;
+ private String orgName;
+ private String orgType;
+ private List subOrgs;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffGridListDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffGridListDTO.java
new file mode 100644
index 0000000000..9d5f3b263d
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffGridListDTO.java
@@ -0,0 +1,41 @@
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Auther zxc
+ * @Create 2020-04-23 10:38
+ */
+@Data
+public class StaffGridListDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户id
+ */
+ private String staffId;
+
+ /**
+ * 用户姓名
+ */
+ private String staffName;
+
+ /**
+ * 用户头像
+ */
+ private String staffHeadPhoto;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 性别
+ */
+ private String gender;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffTransferRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffTransferRecordDTO.java
new file mode 100644
index 0000000000..2c8b88cea4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/StaffTransferRecordDTO.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 工作人员调动记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-27
+ */
+@Data
+public class StaffTransferRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 调动人员Id(操作人)
+ */
+ private String operateStaffId;
+
+ /**
+ * 被调动人员Id
+ */
+ private String operatedStaffId;
+
+ /**
+ * 调动前组织Id
+ */
+ private String oldAgencyId;
+
+ /**
+ * 调动后组织Id
+ */
+ private String agencyId;
+
+ /**
+ * 备注说明
+ */
+ private String remarks;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdAndPidDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdAndPidDTO.java
new file mode 100644
index 0000000000..0fc0abf32c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdAndPidDTO.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 网格人员关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Data
+public class UserIdAndPidDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * 用户id, user.id
+ */
+ private String userId;
+
+ /**
+ * pid 所属机关id
+ */
+ private String pid;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdDTO.java
new file mode 100644
index 0000000000..bb9a694d53
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/UserIdDTO.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dto.govorg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Auther zxc
+ * @Create 2020-04-24 9:06
+ */
+@Data
+public class UserIdDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * userId
+ */
+ private String userId;
+
+}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/excel/.gitkeep b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/.gitkeep
similarity index 100%
rename from epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/excel/.gitkeep
rename to epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/.gitkeep
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridListResultDTO.java
new file mode 100644
index 0000000000..11511bedf4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridListResultDTO.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govorg.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 组织、网格树结构
+ *
+ * @author sun
+ */
+@Data
+public class AgencyGridListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 树结构对象
+ */
+ private AgencyGridResultDTO agencyGridList;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridResultDTO.java
new file mode 100644
index 0000000000..8066a7cc16
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/AgencyGridResultDTO.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.dataaggre.dto.govorg.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 获取工作人员所属组织及下级组织和网格树结构-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class AgencyGridResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关组织Id
+ */
+ private String agencyId = "";
+ /**
+ * 机关组织名称
+ */
+ private String agencyName = "";
+ /**
+ * 当前机关的下属网格列表
+ */
+ private List gridList = new ArrayList<>();
+ /**
+ * 当前组织的所有下级组织信息(递归)
+ */
+ private List subAgencyGridList = new ArrayList<>();
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ @JsonIgnore
+ private String pids = "";
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.java
new file mode 100644
index 0000000000..45618fbff5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridInfoResultDTO.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.dataaggre.dto.govorg.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 获取工作人员所属组织及下级组织和网格树结构-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class GridInfoResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关组织Id
+ */
+ private String gridId = "";
+ private String gridName = "";
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java
new file mode 100644
index 0000000000..f25721539f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dataaggre.dto.govorg.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Auther sun
+ * 获取用户访问过的所有网格列表-接口返参
+ */
+@Data
+public class GridsInfoListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -1L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 网格Id
+ */
+ private String gridId;
+
+ /**
+ * 网格名称
+ */
+ private String gridName;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/CustomerProjectParameterDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/CustomerProjectParameterDTO.java
new file mode 100644
index 0000000000..f9ef23d1d8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/CustomerProjectParameterDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目客户参数订制表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class CustomerProjectParameterDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 参数KEY值
+ */
+ private String parameterKey;
+
+ /**
+ * 参数名称
+ */
+ private String parameterName;
+
+ /**
+ * 参数VALUE值
+ */
+ private String parameterValue;
+
+ /**
+ * 说明
+ */
+ private String description;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java
new file mode 100644
index 0000000000..cbda7d52f6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目所属分类表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectCategoryDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 来源网格id
+ */
+ private String gridId;
+
+ /**
+ * 项目id
+ */
+ private String projectId;
+
+ /**
+ * 分类id
+ */
+ private String categoryId;
+
+ /**
+ * 分类对应的所有上级,英文逗号隔开
+ */
+ private String categoryPids;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java
new file mode 100644
index 0000000000..c73cc7ecd3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Data
+public class ProjectDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 机关ID
+ */
+ private String agencyId;
+
+ /**
+ * 来源:议题issue
+ */
+ private String origin;
+
+ /**
+ * 来源ID
+ */
+ private String originId;
+
+ /**
+ * 项目标题
+ */
+ private String title;
+
+ /**
+ * 状态:待处理 pending,结案closed
+ */
+ private String status;
+
+ /**
+ * 结案说明
+ */
+ private String publicReply;
+
+ /**
+ * 结案状态:已解决 resolved,未解决 unresolved
+ */
+ private String closedStatus;
+
+ /**
+ * 所属机关 11:22:33(本机关以及上级所有机关ID)
+ */
+ private String orgIdPath;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 当前处理部门名称列表
+ */
+ private List currentDepartmentNameList;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectOrgRelationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectOrgRelationDTO.java
new file mode 100644
index 0000000000..917aee0760
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectOrgRelationDTO.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目机关历时关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectOrgRelationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 关联PROJECT_STAFF,由此ID可以关联出PROJECT_ID、CUSTOMER_ID、PROCESS_ID
+ */
+ private String projectStaffId;
+
+ /**
+ * 流转到的日期 同CREATED_TIME
+ */
+ private Date informedDate;
+
+ /**
+ * 流转走或结案的日期
+ */
+ private Date handledDate;
+
+ /**
+ * 节点耗时,从流转到自己到流转走共耗时,单位:分钟,如果项目还没有结案且该项目在这个组织下一直滞留,这一项为空
+8*60的倍数
+ */
+ private Integer totalPeriod;
+
+ /**
+ * 第一次响应时间
+ */
+ private Date firstDealtDate;
+
+ /**
+ * 首次响应时长,单位:分钟
+8*60的倍数
+ */
+ private Integer firstReplyPeriod;
+
+ /**
+ * 来源动作,return(回退)、transfer(流转)、closed(结案)、response(响应)、created(立项时第一个流转到的)
+ */
+ private String sourceOperation;
+
+ /**
+ * 处理动作,return(回退)、transfer(流转)、closed(结案)、response(响应)
+ */
+ private String operation;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ *
+ */
+ private Date createdTime;
+
+ /**
+ *
+ */
+ private String createdBy;
+
+ /**
+ *
+ */
+ private Date updatedTime;
+
+ /**
+ *
+ */
+ private String updatedBy;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessAttachmentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessAttachmentDTO.java
new file mode 100644
index 0000000000..5e8a24fec4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessAttachmentDTO.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目节点附件表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectProcessAttachmentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 项目进展表ID
+ */
+ private String processId;
+
+ /**
+ * 文件所属位置(内部备注: internal 公开答复:public)
+ */
+ private String filePlace;
+
+ /**
+ * 文件名
+ */
+ private String fileName;
+
+ /**
+ * 附件名(uuid随机生成)
+ */
+ private String attachmentName;
+
+ /**
+ * 文件大小,单位b
+ */
+ private Integer attachmentSize;
+
+ /**
+ * 文件格式(JPG、PNG、JPEG、BMP、GIF、PDF、PPT、PPTX、DOC、DOCX、XLS、XLSX、MP3、WMA、M4A、MP4、AVI、MOV、RMVB、RM、WMV)
+ */
+ private String attachmentFormat;
+
+ /**
+ * 文件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * url地址
+ */
+ private String attachmentUrl;
+
+ /**
+ * 排序(需求确定,按上传顺序排序)
+ */
+ private Integer sort;
+
+ /**
+ * 语音或视频时长,秒
+ */
+ private Integer duration;
+
+ /**
+ * 是否强制发布(0:否 1:是)
+ */
+ private Integer isRelease;
+
+ /**
+ * 附件审核状态(审核中:auditing;
+auto_passed: 自动通过;
+review:结果不确定,需要人工审核;
+block: 结果违规;
+rejected:人工审核驳回;
+approved:人工审核通过)
+现在图片是同步审核的,所以图片只有auto_passed一种状态
+ */
+ private String status;
+
+ /**
+ * 附件审核结果描述
+ */
+ private String reason;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessDTO.java
new file mode 100644
index 0000000000..8d566b72ef
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessDTO.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目处理进展表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectProcessDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 处理部门
+ */
+ private String departmentName;
+
+ /**
+ * 组织ID
+ */
+ private String agencyId;
+
+ /**
+ * 部门ID
+ */
+ private String departmentId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 所属机关(11:22:33)
+ */
+ private String orgIdPath;
+
+ /**
+ * 负负责人ID
+ */
+ private String staffId;
+
+ /**
+ * 处理:结案close,退回return,部门流转transfer,创建项目created
+ */
+ private String operation;
+
+ /**
+ * 处理进展名称
+ */
+ private String operationName;
+
+ /**
+ * 公开答复
+ */
+ private String publicReply;
+
+ /**
+ * 内部备注
+ */
+ private String internalRemark;
+
+ /**
+ * 结束时间
+ */
+ private Date endTime;
+
+ /**
+ * 耗费天数
+ */
+ private String costWorkdays;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessScanTaskDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessScanTaskDTO.java
new file mode 100644
index 0000000000..4200614e72
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessScanTaskDTO.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目节点附件安全校验任务表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectProcessScanTaskDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 项目进展表(project_process)ID
+ */
+ private String processId;
+
+ /**
+ * 项目附件表主键,对应dataId
+ */
+ private String projectProcessAttachmentId;
+
+ /**
+ * 阿里云审核任务Id
+ */
+ private String taskId;
+
+ /**
+ * 审核状态【auditing: 审核中;
+auto_passed: 自动通过;
+review:结果不确定,需要人工审核;
+block: 结果违规;】
+ */
+ private String status;
+
+ /**
+ * 附件类型(视频 - video、 语音 - voice 文件 - doc)
+ */
+ private String attachmentType;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectRelatedPersonnelDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectRelatedPersonnelDTO.java
new file mode 100644
index 0000000000..87ed6f6173
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectRelatedPersonnelDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目相关人员表(存放话题人、议题人数据)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectRelatedPersonnelDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键 唯一标识
+ */
+ private String id;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 所属端 居民端用户resi、政府端工作人员gov、运营端工作人员oper
+ */
+ private String app;
+
+ /**
+ * 网格ID app=resi时,此列为gridId,其他情况暂定 *
+ */
+ private String gridId;
+
+ /**
+ * 来源类型(话题:topic 议题:issue)
+ */
+ private String sourceType;
+
+ /**
+ * 来源Id(话题或议题Id)
+ */
+ private String sourceId;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionDetailDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionDetailDTO.java
new file mode 100644
index 0000000000..96498ad3ca
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionDetailDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目满意度调查记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectSatisfactionDetailDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 评论 - 最多300字
+ */
+ private String comment;
+
+ /**
+ * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+ */
+ private String satisfaction;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionStatisticsDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionStatisticsDTO.java
new file mode 100644
index 0000000000..4498a44038
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectSatisfactionStatisticsDTO.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目满意度调查统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectSatisfactionStatisticsDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 一般满意数
+ */
+ private Integer goodCount;
+
+ /**
+ * 非常满意数
+ */
+ private Integer perfectCount;
+
+ /**
+ * 不满意数
+ */
+ private Integer badCount;
+
+ /**
+ * 删除标识 0未删除、1已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectStaffDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectStaffDTO.java
new file mode 100644
index 0000000000..1140b0bbb6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectStaffDTO.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目人员关联表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectStaffDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 处理进展ID
+ */
+ private String processId;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 机关ID
+ */
+ private String orgId;
+
+ /**
+ * 部门ID
+ */
+ private String departmentId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 所属机关(11:22:33)
+ */
+ private String orgIdPath;
+
+ /**
+ * 人员ID
+ */
+ private String staffId;
+
+ /**
+ * 处理部门
+ */
+ private String departmentName;
+
+ /**
+ * 是否处理:未处理unhandled,已处理handle
+ */
+ private String isHandle;
+
+ /**
+ * 删除标识:0.未删除 1.已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java
new file mode 100644
index 0000000000..60f01c7299
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目关联标签表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ProjectTagsDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 项目ID
+ */
+ private String projectId;
+
+ /**
+ * 标签ID
+ */
+ private String tagId;
+
+ /**
+ * 标签名称
+ */
+ private String tagName;
+
+ /**
+ * 删除标识 0.未删除 1.已删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java
new file mode 100644
index 0000000000..7ddd901d11
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java
@@ -0,0 +1,41 @@
+package com.epmet.dataaggre.dto.govproject.form;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/25 14:46
+ */
+@NoArgsConstructor
+@Data
+public class AllProjectFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -8515172319313536407L;
+ /**
+ * 排序方式
+ */
+ private String sortType;
+ /**
+ * 项目状态(处理中:pending 已结案:closed)
+ */
+ private String projectStatus;
+ /**
+ * 排序方式
+ */
+ private Integer pageNo = 1;
+ /**
+ * 排序方式
+ */
+ private Integer pageSize = 20;
+ /**
+ * 网格ID集合
+ */
+ private List gridIdList;
+
+ private String agencyId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectDistributionFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectDistributionFormDTO.java
new file mode 100644
index 0000000000..f1f25aeb05
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectDistributionFormDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.dataaggre.dto.govproject.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 项目分布(实时只适用于e事通客户)入参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/2/24 11:04
+ */
+@Data
+public class ProjectDistributionFormDTO implements Serializable {
+ private String gridId;
+ @NotBlank(message = "customerId不能为空")
+ private String customerId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/AllProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/AllProjectResultDTO.java
new file mode 100644
index 0000000000..3df14e2e75
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/AllProjectResultDTO.java
@@ -0,0 +1,18 @@
+package com.epmet.dataaggre.dto.govproject.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/25 15:38
+ */
+@Data
+public class AllProjectResultDTO implements Serializable {
+ private static final long serialVersionUID = 6188316867855643263L;
+ private Integer projectCount;
+ private List projectList;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectDistributionResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectDistributionResultDTO.java
new file mode 100644
index 0000000000..ba0340c66e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectDistributionResultDTO.java
@@ -0,0 +1,25 @@
+package com.epmet.dataaggre.dto.govproject.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 项目分布(实时只适用于e事通客户)返参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/2/24 11:05
+ */
+@Data
+public class ProjectDistributionResultDTO implements Serializable {
+ private String projectId;
+ private String projectTitle;
+ private String statusDesc;
+ private String longitude;
+ private String latitude;
+ // @JsonIgnore
+ private String issueId;
+ // @JsonIgnore
+ private String statusCode;
+ private String gridId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectInfoDTO.java
new file mode 100644
index 0000000000..e38cbf7bb4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectInfoDTO.java
@@ -0,0 +1,66 @@
+package com.epmet.dataaggre.dto.govproject.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/25 15:03
+ */
+@NoArgsConstructor
+@Data
+public class ProjectInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = 3217246702883400582L;
+ /**
+ * 项目ID
+ */
+ private String projectId;
+ /**
+ * 项目标题
+ */
+ private String projectTitle;
+ /**
+ * 项目创建时间
+ */
+ private Long projectTime;
+ /**
+ * 结案说明
+ */
+ private String publicReply;
+ /**
+ * 项目状态
+ */
+ private String projectStatus;
+ /**
+ * 项目更新时间
+ */
+ private Long updateTime;
+ /**
+ * 涉及部门数
+ */
+ private Integer departmentCount;
+ /**
+ * 消耗时长
+ */
+ private Integer timeSpent;
+ /**
+ * 处理次数
+ */
+ private Integer processCount;
+ /**
+ * 当前处理部门
+ */
+ private List currentDisposeDept;
+
+ @JsonIgnore
+ private Date startTime;
+ @JsonIgnore
+ private Date endTime;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ShiftProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ShiftProjectResultDTO.java
new file mode 100644
index 0000000000..01fe2533d2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ShiftProjectResultDTO.java
@@ -0,0 +1,53 @@
+package com.epmet.dataaggre.dto.govproject.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/14 13:45
+ */
+@Data
+public class ShiftProjectResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 4807330131467747264L;
+ /**
+ * 唯一标识
+ */
+ private String id;
+
+ /**
+ * 来源ID
+ */
+ private String originId;
+
+ /**
+ * 项目标题
+ */
+ private String title;
+
+ /**
+ * 状态:待处理 pending,结案closed
+ */
+ private String status;
+
+ /**
+ * 结案说明
+ */
+ private String publicReply;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 当前处理部门
+ */
+ private List departmentNameList;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/EnterGroupSwitchDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/EnterGroupSwitchDTO.java
new file mode 100644
index 0000000000..3cd065cf39
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/EnterGroupSwitchDTO.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ *
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class EnterGroupSwitchDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 小组所属网格id
+ */
+ private String gridId;
+
+ /**
+ * 小组id
+ */
+ private String groupId;
+
+ /**
+ * open开启; close关闭
+ */
+ private String auditSwitch;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(customer_user.id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(邀请时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupEditSubmitRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupEditSubmitRecordDTO.java
new file mode 100644
index 0000000000..977d02f9c4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupEditSubmitRecordDTO.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 组编辑提交记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GroupEditSubmitRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 小组ID
+ */
+ private String groupId;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 头像
+ */
+ private String groupHeadPhoto;
+
+ /**
+ * 小组名称
+ */
+ private String groupName;
+
+ /**
+ * 小组介绍
+ */
+ private String groupIntroduction;
+
+ /**
+ * 审核状态。under_auditting:审核中,approved:通过,rejected:驳回
+ */
+ private String auditStatus;
+
+ /**
+ * 审核人ID
+ */
+ private String staffId;
+
+ /**
+ * 回复
+ */
+ private String remark;
+
+ /**
+ * 审核时间
+ */
+ private Date auditTime;
+
+ /**
+ * 删除标识
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人 提交人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 修改人ID
+ */
+ private String updatedBy;
+
+ /**
+ * 修改时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 已读read 未读unread
+ */
+ private String readFlag;
+
+ /**
+ * 审核人员查看待审核列表时的文案,如:党员李华申请变更小组【原小组名】,请审核。
+ */
+ private String messageText;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupInvitationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupInvitationDTO.java
new file mode 100644
index 0000000000..23ba23aeb8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupInvitationDTO.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 群邀请记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GroupInvitationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键(可能跟epmet-user的personnel_invite的[邀请Id]关联)
+ */
+ private String id;
+
+ /**
+ * 邀请人id(customer_user.id)
+ */
+ private String inviterUserId;
+
+ /**
+ * 邀请人所属客户id
+ */
+ private String inviterCustomerId;
+
+ /**
+ * 邀请网格id
+ */
+ private String inviterGridId;
+
+ /**
+ * 邀请小组id(resi_group.id)
+ */
+ private String resiGroupId;
+
+ /**
+ * 邀请链接:invited;扫码:scancode
+ */
+ private String invitationType;
+
+ /**
+ * 邀请内容
+ */
+ private String inviterContent;
+
+ /**
+ * 邀请码有效截止时间(暂定XX天)
+ */
+ private Date validEndTime;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(customer_user.id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(邀请时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupMemeberOperationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupMemeberOperationDTO.java
new file mode 100644
index 0000000000..c9c2ed3f88
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/GroupMemeberOperationDTO.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 组成员出入群记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class GroupMemeberOperationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 用户id来源于customer_user.id
+ */
+ private String customerUserId;
+
+ /**
+ * 群组表主键RESI_GROUP.ID
+ */
+ private String groupId;
+
+ /**
+ * 状态:
+审核中 - under_auditting、
+审核通过 - approved、
+入群被拒 - rejected 、
+已禁言 - silent、
+取消禁言-cancel_silent resi_group_member中status置为approved
+被移出群 - removed 修改resi_group_member表del_flag=1
+Ps: 1) 入群被拒绝之后,如果再申请是插入一条新的审核中的数据
+ 2)组长看到的待审核列表,同一个人一开始被拒绝,后来再次申请,列表是显示2条
+ */
+ private String operateStatus;
+
+ /**
+ * 入群方式:(受邀请入群 - invited;主动加入 - join;created创建群自动进入;scancode扫码入群;话题分享链接 - topic_share_link;议题分享链接 - issue_share_link)
+ */
+ private String enterGroupType;
+
+ /**
+ * 邀请连接id对应GROUP_INVITATION.id
+ */
+ private String groupInvitationId;
+
+ /**
+ * 入群理由、拒绝理由
+ */
+ private String operateDes;
+
+ /**
+ * 操作人id
+ */
+ private String operateUserId;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(操作人id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(操作时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/InvitationAccessRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/InvitationAccessRecordDTO.java
new file mode 100644
index 0000000000..fcada6acf6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/InvitationAccessRecordDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 邀请链接访问表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class InvitationAccessRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 邀请链接主键group_invitation.id
+ */
+ private String invitationId;
+
+ /**
+ * 用户idcustomer_user.id
+ */
+ private String customerUserId;
+
+ /**
+ * 状态:(已浏览 - viewed 、 同意加入小组 - tried 、 成功入群 - success)
+ */
+ private String state;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(用户id来源于customer_user.id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupCodeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupCodeDTO.java
new file mode 100644
index 0000000000..acc74838e7
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupCodeDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 小组二维码 小组唯一二维码,海报码和小组码是同一个二维码,长期有效的
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiGroupCodeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 小组Id
+ */
+ private String groupId;
+
+ /**
+ * 邀请id
+ */
+ private String invitationId;
+
+ /**
+ * 微信二维码使用类型 邀请:invite
+ */
+ private String type;
+
+ /**
+ * 二维码路径
+ */
+ private String url;
+
+ /**
+ * 删除标志
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupDTO.java
new file mode 100644
index 0000000000..43e46572bb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupDTO.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 群组信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiGroupDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 群头像(htt://地址)
+ */
+ private String groupHeadPhoto;
+
+ /**
+ * 小组名称
+ */
+ private String groupName;
+
+ /**
+ * 群介绍
+ */
+ private String groupIntroduction;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed)
+Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过”
+ */
+ private String state;
+
+ /**
+ * 最新话题时间
+ */
+ private Date latestTopicPublishDate;
+
+ /**
+ * 进组审核open开启;close关闭
+ */
+ private String auditSwitch;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupMemberDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupMemberDTO.java
new file mode 100644
index 0000000000..126b85c8e8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupMemberDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 群组成员关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiGroupMemberDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 用户id,来源于customer_user.id
+ */
+ private String customerUserId;
+
+ /**
+ * 小组id: 来源于resi_group表id
+ */
+ private String resiGroupId;
+
+ /**
+ * member成员,leader群主
+ */
+ private String groupLeaderFlag;
+
+ /**
+ * 入群方式:(受邀请入群 - invited 、 主动加入 - join、created创建群自动进入、扫码入群-scancode)
+ */
+ private String enterGroupType;
+
+ /**
+ * 邀请连接id对应GROUP_INVITATION.id
+ */
+ private String groupInvitationId;
+
+ /**
+ * 状态:( 审核通过 - approved、 已禁言 - silent、被移出群 - removed)
+ */
+ private String status;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(用户id,来源于customer_user.id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(入群时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupOperationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupOperationDTO.java
new file mode 100644
index 0000000000..f9db3273e3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupOperationDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 群组操作日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiGroupOperationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 小组id: 来源于resi_group表id
+ */
+ private String resiGroupId;
+
+ /**
+ * 状态:审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、取消屏蔽 - hidden_cancelled、 (组的状态变为审核通过approved)、 已关闭 - closed
+ */
+ private String state;
+
+ /**
+ * 审核未通过理由 ,屏蔽理由,关闭原因
+ */
+ private String operateReason;
+
+ /**
+ * 操作人id
+ */
+ private String operateUserId;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(操作人id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(操作时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 审核人员已读未读标识(未读:unread 界面显示红点; 已读:read 不显示红点)
+ */
+ private String readFlag;
+
+ /**
+ * 消息通知内容
+ */
+ private String messageText;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupStatisticalDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupStatisticalDTO.java
new file mode 100644
index 0000000000..357df74487
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiGroupStatisticalDTO.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 群组统计信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiGroupStatisticalDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 小组id: 来源于resi_group表id
+ */
+ private String resiGroupId;
+
+ /**
+ * 成员总数
+ */
+ private Integer totalMembers;
+
+ /**
+ * 话题总数
+ */
+ private Integer totalTopics;
+
+ /**
+ * 已转议题总数
+ */
+ private Integer totalIssues;
+
+ /**
+ * 党员总数
+ */
+ private Integer totalPartyMembers;
+
+ /**
+ * 热心居民总数
+ */
+ private Integer totalEarnestMemebers;
+
+ /**
+ * 普通居民总数=群人数
+ */
+ private Integer totalNormalMemebers;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人(用户id,来源于customer_user.id)
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间(入群时间)
+ */
+ private Date createdTime;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicAttachmentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicAttachmentDTO.java
new file mode 100644
index 0000000000..58a0c9046b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicAttachmentDTO.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题附件表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiTopicAttachmentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 话题Id,关联resi_topic的id
+ */
+ private String topicId;
+
+ /**
+ * 附件名(uuid随机生成)
+ */
+ private String attachmentName;
+
+ /**
+ * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS)
+ */
+ private String attachmentFormat;
+
+ /**
+ * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * 附件地址
+ */
+ private String attachmentUrl;
+
+ /**
+ * 排序字段
+ */
+ private Integer sort;
+
+ /**
+ * 语音或视频时长,秒
+ */
+ private Integer duration;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicCommentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicCommentDTO.java
new file mode 100644
index 0000000000..b84e9d8f10
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicCommentDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题评论表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiTopicCommentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ *
+ */
+ private String commentContent;
+
+ /**
+ * 话题Id,来自resi_topic
+ */
+ private String topicId;
+
+ /**
+ * 评论状态
+ */
+ private String status;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人,评论人Id,来自user
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicDTO.java
new file mode 100644
index 0000000000..19c44136fb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicDTO.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 话题信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiTopicDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 小组Id,关联resi_group的ID
+ */
+ private String groupId;
+
+ /**
+ *
+ */
+ private String topicContent;
+
+ /**
+ * 话题状态(讨论中 - discussing、 已屏蔽 - hidden、 已关闭 - closed)
+ */
+ private String status;
+
+ /**
+ * 关闭状态:已解决 resolved,未解决 unresolved
+ */
+ private String closedStatus;
+
+ /**
+ * 省
+ */
+ private String province;
+
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 区
+ */
+ private String area;
+
+ /**
+ * 地址
+ */
+ private String address;
+
+ /**
+ * 经度
+ */
+ private String longitude;
+
+ /**
+ * 维度
+ */
+ private String dimension;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人,发布人Id来源于user
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 是否转为议题,0:false,1:true
+ */
+ private Integer shiftIssue;
+
+ /**
+ * 议题ID,可为空
+ */
+ private String issueId;
+
+ /**
+ * 话题所属网格id
+ */
+ private String gridId;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicOperationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicOperationDTO.java
new file mode 100644
index 0000000000..74d8b5bd66
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ResiTopicOperationDTO.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题操作日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class ResiTopicOperationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 话题Id,关联resi_topic的ID
+ */
+ private String topicId;
+
+ /**
+ * 操作类型(发布 - discussing 、 屏蔽 - hidden、 取消屏蔽 - hidden_cancelled、 关闭话题 - closed)
+ */
+ private String operationType;
+
+ /**
+ * 屏蔽理由
+ */
+ private String operationReason;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人ID,关联user的ID
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftAttachmentDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftAttachmentDTO.java
new file mode 100644
index 0000000000..519c1e5d13
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftAttachmentDTO.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题草稿附件表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicDraftAttachmentDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 附件id
+ */
+ private String id;
+
+ /**
+ * 话题草稿id
+ */
+ private String topicDraftId;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 附件名(uuid随机生成)
+ */
+ private String attachmentName;
+
+ /**
+ * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS)
+ */
+ private String attachmentFormat;
+
+ /**
+ * 附件类型((图片 - image、视频 - video、 语音 - voice、 文档 - doc))
+ */
+ private String attachmentType;
+
+ /**
+ * 附件地址url
+ */
+ private String attachmentUrl;
+
+ /**
+ * 排序字段(按附件类型分组排序)
+ */
+ private Integer sort;
+
+ /**
+ * 附件状态(审核中:auditing;
+auto_passed: 自动通过;
+review:结果不确定,需要人工审核;
+block: 结果违规;
+rejected:人工审核驳回;
+approved:人工审核通过)
+现在图片是同步审核的,所以图片只有auto_passed一种状态
+ */
+ private String status;
+
+ /**
+ * 失败原因
+ */
+ private String reason;
+
+ /**
+ * 语音或视频时长,毫秒
+ */
+ private Integer duration;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftDTO.java
new file mode 100644
index 0000000000..d46e78aa2a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftDTO.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题草稿内容表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicDraftDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 话题草稿id
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 网格ID
+ */
+ private String gridId;
+
+ /**
+ * 小组Id
+ */
+ private String groupId;
+
+ /**
+ * 话题内容
+ */
+ private String topicContent;
+
+ /**
+ * 话题草稿状态(审核中:auditing;
+auto_passed: 自动通过;
+review:结果不确定,需要人工审核;
+block: 结果违规;
+rejected:人工审核驳回;
+approved:人工审核通过)
+ */
+ private String draftStatus;
+
+ /**
+ * 草稿审核理由
+ */
+ private String draftReason;
+
+ /**
+ * 省
+ */
+ private String province;
+
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 区
+ */
+ private String area;
+
+ /**
+ * 地址
+ */
+ private String address;
+
+ /**
+ * 经度
+ */
+ private String longitude;
+
+ /**
+ * 维度
+ */
+ private String dimension;
+
+ /**
+ * 发布成功后的话题id
+ */
+ private String topicId;
+
+ /**
+ * 创建者是否可见(0是 1否)
+ */
+ private String isSee;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 话题发布人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftOperationDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftOperationDTO.java
new file mode 100644
index 0000000000..f0c554266f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftOperationDTO.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题草稿操作日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicDraftOperationDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 话题草稿操作日志id
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 话题草稿id
+ */
+ private String topicDraftId;
+
+ /**
+ * 操作类型:submit:提交发布;
+auto_passed: 自动审核-通过;
+review:自动审核-结果不确定,需要人工审核;
+block: 自动审核-结果违规;
+rejected:人工审核驳回;
+approved:人工审核通过
+ */
+ private String operateType;
+
+ /**
+ * 操作时的备注,比如驳回理由
+ */
+ private String remark;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 操作人,API审核结果,存储为SCAN_USER或者APP_USER
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftScanTaskDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftScanTaskDTO.java
new file mode 100644
index 0000000000..e6b90cb92a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicDraftScanTaskDTO.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题附件检测任务表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicDraftScanTaskDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 话题草稿Id
+ */
+ private String topicDraftId;
+
+ /**
+ * 话题草稿附件表Id,对应dataId
+ */
+ private String topicDraftAttachmentId;
+
+ /**
+ * 阿里云审核任务Id
+ */
+ private String taskId;
+
+ /**
+ * 审核状态【auditing: 审核中;
+auto_passed: 自动通过;
+review:结果不确定,需要人工审核;
+block: 结果违规;】
+ */
+ private String status;
+
+ /**
+ * 附件类型(视频 - video、 语音 - voice)
+ */
+ private String attachmentType;
+
+ /**
+ * 删除标记 0:未删除,1:已删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 操作人,API审核结果,存储为SCAN_USER或者APP_USER
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkRecordDTO.java
new file mode 100644
index 0000000000..5d7cfb7116
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkRecordDTO.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题分享链接表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicShareLinkRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 邀请ID
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 话题所属网格ID
+ */
+ private String gridId;
+
+ /**
+ * 小组ID
+ */
+ private String groupId;
+
+ /**
+ * 话题ID
+ */
+ private String topicId;
+
+ /**
+ * 分享人ID(当前登录用户)
+ */
+ private String shareUserId;
+
+ /**
+ * 邀请内容
+ */
+ private String inviteContent;
+
+ /**
+ * 删除状态 0:正常,1:删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkVisitRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkVisitRecordDTO.java
new file mode 100644
index 0000000000..c3674608ae
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/TopicShareLinkVisitRecordDTO.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 话题分享链接访问记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Data
+public class TopicShareLinkVisitRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 分享人【邀请人】ID
+ */
+ private String shareUserId;
+
+ /**
+ * 被邀请人ID
+ */
+ private String inviteeUserId;
+
+ /**
+ * 话题分享链接表id
+ */
+ private String shareLinkRecId;
+
+ /**
+ * 是否邀请注册:0:是,1:不是;
+默认为1,完成注册后,回填此字段
+ */
+ private Integer isInviteRegister;
+
+ /**
+ * 删除状态,0:正常,1:删除
+ */
+ private Integer delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/Dockerfile b/epmet-module/data-aggregator/data-aggregator-server/Dockerfile
new file mode 100644
index 0000000000..57bc7e63b0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/Dockerfile
@@ -0,0 +1,11 @@
+FROM java:8
+
+RUN export LANG="zh_CN.UTF-8"
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+RUN echo 'Asia/Shanghai' > /etc/timezone
+
+COPY ./target/*.jar ./data-aggregator.jar
+
+EXPOSE 8114
+
+ENTRYPOINT ["sh", "-c", "$RUN_INSTRUCT"]
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml
new file mode 100644
index 0000000000..e26e72451c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-dev.yml
@@ -0,0 +1,18 @@
+version: "3.7"
+services:
+ data-aggregator-server:
+ container_name: data-aggregator-server-dev
+ image: 192.168.1.130:10080/epmet-cloud-dev/data-aggregator-server:version_placeholder
+ ports:
+ - "8114:8114"
+ network_mode: host # 使用现有网络
+ volumes:
+ - "/opt/epmet-cloud-logs/dev:/logs"
+ environment:
+ RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-aggregator.jar"
+ restart: "unless-stopped"
+ deploy:
+ resources:
+ limits:
+ cpus: '0.1'
+ memory: 300M
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml
new file mode 100644
index 0000000000..2906b958ce
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml
@@ -0,0 +1,18 @@
+version: "3.7"
+services:
+ data-aggregator-server:
+ container_name: data-aggregator-server-prod
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-aggregator-server:0.3.1
+ ports:
+ - "8114:8114"
+ network_mode: host # 使用现有网络
+ volumes:
+ - "/opt/epmet-cloud-logs/prod:/logs"
+ environment:
+ RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./data-aggregator.jar"
+ restart: "unless-stopped"
+ deploy:
+ resources:
+ limits:
+ cpus: '0.1'
+ memory: 600M
diff --git a/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml
new file mode 100644
index 0000000000..e066047e36
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-test.yml
@@ -0,0 +1,18 @@
+version: "3.7"
+services:
+ data-aggregator-server:
+ container_name: data-aggregator-server-test
+ image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-aggregator-server:version_placeholder
+ ports:
+ - "8114:8114"
+ network_mode: host # 使用现有网络
+ volumes:
+ - "/opt/epmet-cloud-logs/test:/logs"
+ environment:
+ RUN_INSTRUCT: "java -Xms32m -Xmx250m -jar ./data-aggregator.jar"
+ restart: "unless-stopped"
+ deploy:
+ resources:
+ limits:
+ cpus: '0.1'
+ memory: 300M
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
new file mode 100644
index 0000000000..c1e47d3b7e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
@@ -0,0 +1,371 @@
+
+
+
+ data-aggregator
+ com.epmet
+ 2.0.0
+
+ 4.0.0
+
+ data-aggregator-server
+
+
+
+ com.epmet
+ epmet-commons-tools
+ 2.0.0
+
+
+ com.epmet
+ epmet-commons-mybatis
+ 2.0.0
+
+
+ com.epmet
+ data-aggregator-client
+ 2.0.0
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework
+ spring-context-support
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ de.codecentric
+ spring-boot-admin-starter-client
+ ${spring.boot.admin.version}
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+ io.github.openfeign
+ feign-httpclient
+ 10.3.0
+
+
+
+ com.epmet
+ epmet-commons-dynamic-datasource
+ 2.0.0
+
+
+ com.epmet
+ common-service-client
+ 2.0.0
+ compile
+
+
+ com.epmet
+ gov-project-client
+ 2.0.0
+ compile
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ ${project.basedir}/src/main/java
+
+
+ true
+ ${basedir}/src/main/resources
+
+
+
+
+
+
+ dev
+
+ 8114
+ dev
+
+
+
+
+
+ epmet_gov_org_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_issue_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_project_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_resi_group_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_user_user
+ EpmEt-db-UsEr
+
+
+ 0
+ 192.168.1.130
+ 6379
+ 123456
+
+
+ true
+ 192.168.1.130:8848
+ 6ceab336-d004-4acf-89c6-e121d06f4988
+
+
+ false
+
+
+
+ false
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
+ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19
+
+
+
+ local
+
+ true
+
+
+ 8114
+ local
+
+
+
+
+
+ epmet_gov_org_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_issue_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_project_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_resi_group_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_user_user
+ EpmEt-db-UsEr
+
+
+ 0
+ 192.168.1.130
+ 6379
+ 123456
+
+
+ false
+ 192.168.1.130:8848
+ 6ceab336-d004-4acf-89c6-e121d06f4988
+
+
+ false
+
+
+
+ false
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
+ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19
+
+
+
+ test
+
+
+ 8114
+ test
+
+
+
+
+
+ epmet
+ elink@833066
+
+
+
+
+
+ epmet
+ elink@833066
+
+
+
+
+
+ epmet
+ elink@833066
+
+
+
+
+
+ epmet
+ elink@833066
+
+
+
+
+
+ epmet
+ elink@833066
+
+
+ 0
+ r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com
+ 6379
+ EpmEtrEdIs!q@w
+
+
+ true
+ 192.168.10.150:8848
+ 67e3c350-533e-4d7c-9f8f-faf1b4aa82ae
+
+
+ false
+
+
+
+ true
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
+ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19
+
+
+
+ prod
+
+
+ 8114
+ prod
+
+
+
+
+
+ epmet_gov_org_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_issue_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_gov_project_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_resi_group_user
+ EpmEt-db-UsEr
+
+
+
+
+
+ epmet_user_user
+ EpmEt-db-UsEr
+
+
+ 0
+ r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com
+ 6379
+ EpmEtclOUdrEdIs!Q2w
+
+
+ true
+ 192.168.11.180:8848
+ bd205d23-e696-47be-b995-916313f86e99
+
+
+ false
+
+
+
+ true
+
+
+ https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c
+ SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java
new file mode 100644
index 0000000000..791cf0b415
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java
@@ -0,0 +1,16 @@
+package com.epmet;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@SpringBootApplication(scanBasePackages = {"com.epmet"}, exclude = {DataSourceAutoConfiguration.class})
+@EnableDiscoveryClient
+@EnableFeignClients
+public class DataAggregatorApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(DataAggregatorApplication.class, args);
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/aspect/RequestLogAspect.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/aspect/RequestLogAspect.java
new file mode 100644
index 0000000000..34cf9f3d69
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/aspect/RequestLogAspect.java
@@ -0,0 +1,40 @@
+package com.epmet.dataaggre.aspect;
+
+import com.epmet.commons.tools.aspect.BaseRequestLogAspect;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 日志/异常处理切面实现,调用父类方法完成日志记录和异常处理。
+ */
+@Aspect
+@Component
+@Order(0)
+public class RequestLogAspect extends BaseRequestLogAspect {
+
+ @Override
+ @Around(value = "execution(* com.epmet.dataaggre.controller.*Controller.*(..)) ")
+ public Object proceed(ProceedingJoinPoint point) throws Throwable {
+ return super.proceed(point, getRequest());
+ }
+
+ /**
+ * 获取Request对象
+ *
+ * @return
+ */
+ private HttpServletRequest getRequest() {
+ RequestAttributes ra = RequestContextHolder.getRequestAttributes();
+ ServletRequestAttributes sra = (ServletRequestAttributes) ra;
+ return sra.getRequest();
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/ModuleConfigImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/ModuleConfigImpl.java
new file mode 100644
index 0000000000..3805467ca5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/ModuleConfigImpl.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.dataaggre.config;
+
+import com.epmet.commons.tools.config.ModuleConfig;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Service
+public class ModuleConfigImpl implements ModuleConfig {
+ @Override
+ public String getName() {
+ return "data-aggregator";
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DemoController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DemoController.java
new file mode 100644
index 0000000000..b3300e3fb4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DemoController.java
@@ -0,0 +1,23 @@
+package com.epmet.dataaggre.controller;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dataaggre.service.DemoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("demo")
+public class DemoController {
+
+ @Autowired
+ private DemoService demoService;
+
+ @GetMapping("doIt")
+ public Result doIt() {
+ demoService.doIt();
+ return new Result();
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
new file mode 100644
index 0000000000..583b66f4f1
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
@@ -0,0 +1,13 @@
+package com.epmet.dataaggre.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午9:45
+ */
+@RestController
+@RequestMapping("epmetuser")
+public class EpmetUserController {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovIssueController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovIssueController.java
new file mode 100644
index 0000000000..a3a6545861
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovIssueController.java
@@ -0,0 +1,84 @@
+package com.epmet.dataaggre.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.annotation.RequirePermission;
+import com.epmet.commons.tools.enums.RequirePermissionEnum;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO;
+import com.epmet.dataaggre.dto.govissue.form.ClosedIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.form.ShiftProjectIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.result.AllIssueResultDTO;
+import com.epmet.dataaggre.dto.govissue.result.ClosedIssueListResultDTO;
+import com.epmet.dataaggre.dto.govissue.result.ShiftProjectIssueListResultDTO;
+import com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO;
+import com.epmet.dataaggre.service.govissue.GovIssueService;
+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 zxc
+ * @DateTime 2020/12/25 上午9:45
+ */
+@RestController
+@RequestMapping("issue")
+public class GovIssueController {
+
+ @Autowired
+ private GovIssueService govIssueService;
+
+ /**
+ * @Description 按组织查询所有议题
+ * @Param formDTO
+ * @Param tokenDto
+ * @author zxc
+ * @date 2020/12/25 下午2:37
+ */
+ @RequirePermission(requirePermission = RequirePermissionEnum.WORK_HOT_ISSUE_ALL)
+ @PostMapping("allissuelist")
+ public Result allIssueList(@RequestBody AllIssueFormDTO formDTO, @LoginUser TokenDto tokenDto){
+ ValidatorUtils.validateEntity(formDTO, AllIssueFormDTO.AllIssueForm.class);
+ return new Result().ok(govIssueService.allIssueList(formDTO,tokenDto));
+ }
+
+ /**
+ * @param formDTO
+ * @Description 居民热议-表决中列表
+ * @author sun
+ **/
+ @PostMapping(value = "votingissuelist")
+ public Result> votingIssueList(@RequestBody VotingIssueListFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, VotingIssueListFormDTO.VotingForm.class);
+ return new Result>().ok(govIssueService.votingIssueList(formDTO));
+ }
+
+ /**
+ * @param fromDTO
+ * @Description 居民热议-已转项目列表
+ * @author sun
+ **/
+ @PostMapping("shiftprojectissuelist")
+ public Result> shiftProjectIssueList(@RequestBody ShiftProjectIssueListFormDTO fromDTO) {
+ ValidatorUtils.validateEntity(fromDTO, VotingIssueListFormDTO.VotingForm.class);
+ return new Result>().ok(govIssueService.shiftProjectIssueList(fromDTO));
+ }
+
+ /**
+ * @param fromDTO
+ * @Description 居民热议-已关闭列表
+ * @author sun
+ **/
+ @PostMapping(value = "closedissuelist")
+ public Result> closedIssueList(@RequestBody ClosedIssueListFormDTO fromDTO){
+ ValidatorUtils.validateEntity(fromDTO, ClosedIssueListFormDTO.ClosedForm.class);
+ return new Result>().ok(govIssueService.closedIssueList(fromDTO));
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
new file mode 100644
index 0000000000..aebb23a8b5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
@@ -0,0 +1,37 @@
+package com.epmet.dataaggre.controller;
+
+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.dataaggre.dto.govorg.result.AgencyGridListResultDTO;
+import com.epmet.dataaggre.service.govorg.GovOrgService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午9:45
+ */
+@RestController
+@RequestMapping("org")
+public class GovOrgController {
+
+ @Autowired
+ private GovOrgService govOrgService;
+
+
+ /**
+ * @param tokenDTO
+ * @Author sun
+ * @Description 组织、网格树结构
+ **/
+ @PostMapping("agencygridlist")
+ public Result agencyGridList(@LoginUser TokenDto tokenDTO) {
+ AgencyGridListResultDTO agencyGridList = new AgencyGridListResultDTO();
+ agencyGridList.setAgencyGridList(govOrgService.agencyGridList(tokenDTO.getUserId()));
+ return new Result().ok(agencyGridList);
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
new file mode 100644
index 0000000000..18aa5a924c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
@@ -0,0 +1,59 @@
+package com.epmet.dataaggre.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.annotation.RequirePermission;
+import com.epmet.commons.tools.enums.RequirePermissionEnum;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO;
+import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO;
+import com.epmet.dataaggre.dto.govproject.result.AllProjectResultDTO;
+import com.epmet.dataaggre.dto.govproject.result.ProjectDistributionResultDTO;
+import com.epmet.dataaggre.service.govproject.GovProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午9:45
+ */
+@RestController
+@RequestMapping("project")
+public class GovProjectController {
+
+ @Autowired
+ private GovProjectService govProjectService;
+
+ /**
+ * 全部项目
+ * @author zhaoqifeng
+ * @date 2020/12/25 16:00
+ * @param tokenDto token
+ * @param formDTO 入参
+ * @return com.epmet.commons.tools.utils.Result>
+ */
+ @RequirePermission(requirePermission = RequirePermissionEnum.WORK_PROJECT_TRACE_ALL)
+ @PostMapping("allprojectlist")
+ public Result allProjectList(@LoginUser TokenDto tokenDto, @RequestBody AllProjectFormDTO formDTO) {
+ AllProjectResultDTO result = govProjectService.allProjectList(tokenDto, formDTO);
+ return new Result().ok(result);
+ }
+
+ /**
+ * @param customerId
+ * @param formDTO
+ * @author yinzuomei 项目分布(实时只适用于e事通客户)返参
+ * @description 目前在用:龙湾大屏调用此接口;接口内写死了 按照立项时间降序,取前100个项目
+ * @Date 2021/2/24 13:17
+ **/
+ @PostMapping("projectdistribution")
+ public Result> queryProjectDistribution(@RequestHeader("CustomerId") String customerId,
+ @RequestBody ProjectDistributionFormDTO formDTO){
+ formDTO.setCustomerId(customerId);
+ ValidatorUtils.validateEntity(formDTO);
+ return new Result>().ok(govProjectService.queryProjectDistribution(formDTO));
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java
new file mode 100644
index 0000000000..984db9af9f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java
@@ -0,0 +1,13 @@
+package com.epmet.dataaggre.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/12/25 上午9:45
+ */
+@RestController
+@RequestMapping("resigroup")
+public class ResiGroupController {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigDao.java
new file mode 100644
index 0000000000..1d5de47a1b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.BadgeCertificationConfigEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 徽章认证配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface BadgeCertificationConfigDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigFieldDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigFieldDao.java
new file mode 100644
index 0000000000..890671f0cc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeCertificationConfigFieldDao.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.BadgeCertificationConfigFieldEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 徽章认证配置字段表
+
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface BadgeCertificationConfigFieldDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeDao.java
new file mode 100644
index 0000000000..babfb9f9a8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/BadgeDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.BadgeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 徽章
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface BadgeDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java
new file mode 100644
index 0000000000..9d3004c815
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 政府工作人员表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface CustomerStaffDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerUserDao.java
new file mode 100644
index 0000000000..efd5cde8c0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerUserDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.CustomerUserEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 居民用户信息,此表已作废
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface CustomerUserDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleDao.java
new file mode 100644
index 0000000000..5cdb42779f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 政府端角色表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface GovStaffRoleDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleTemplateDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleTemplateDao.java
new file mode 100644
index 0000000000..24440b43fa
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GovStaffRoleTemplateDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleTemplateEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 政府端角色模板表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface GovStaffRoleTemplateDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridLatestDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridLatestDao.java
new file mode 100644
index 0000000000..e9d28e949a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridLatestDao.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.GridLatestEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 最近访问网格表
+记录用户访问网格的最近一次记录,对同一网格只记录一条记录,同一网格每次只更新最近一次访问的时间
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface GridLatestDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridVisitedDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridVisitedDao.java
new file mode 100644
index 0000000000..3f7c34ddda
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/GridVisitedDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.GridVisitedEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 网格访问记录表 用户对网格访问的一个记录,只有在访问网格首页时才存储数据,一个用户一天对一个网格的访问只有一条记录
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface GridVisitedDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/OperUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/OperUserDao.java
new file mode 100644
index 0000000000..96c7f5e6f3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/OperUserDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.OperUserEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 运营人员表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface OperUserDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java
new file mode 100644
index 0000000000..ced9de54cd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 注册关系表 用于统计客户网格的注册居民数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface RegisterRelationDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/ResiUserBadgeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/ResiUserBadgeDao.java
new file mode 100644
index 0000000000..7d8765b542
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/ResiUserBadgeDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户徽章关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface ResiUserBadgeDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RoleDao.java
new file mode 100644
index 0000000000..ab5751a501
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RoleDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.RoleEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 角色表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface RoleDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffAgencyVisitedDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffAgencyVisitedDao.java
new file mode 100644
index 0000000000..ea59c1046f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffAgencyVisitedDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.StaffAgencyVisitedEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工作人员进入组织日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface StaffAgencyVisitedDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffGridVisitedDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffGridVisitedDao.java
new file mode 100644
index 0000000000..b10622f6a7
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffGridVisitedDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.StaffGridVisitedEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工作人员进入网格日志表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface StaffGridVisitedDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
new file mode 100644
index 0000000000..02ace6bc28
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工作人员-角色关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface StaffRoleDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffWechatDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffWechatDao.java
new file mode 100644
index 0000000000..6862779142
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffWechatDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.StaffWechatEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工作人员微信关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface StaffWechatDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceDao.java
new file mode 100644
index 0000000000..a24895160b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserAdviceEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * user_advice
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserAdviceDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceImgDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceImgDao.java
new file mode 100644
index 0000000000..0346a96301
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserAdviceImgDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserAdviceImgEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户建议图片
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserAdviceImgDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBadgeCertificateRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBadgeCertificateRecordDao.java
new file mode 100644
index 0000000000..1477837f71
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBadgeCertificateRecordDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserBadgeCertificateRecordEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户认证徽章记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserBadgeCertificateRecordDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java
new file mode 100644
index 0000000000..f7ced8b6f0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserBaseInfoEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户基础信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserBaseInfoDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserCustomerDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserCustomerDao.java
new file mode 100644
index 0000000000..35d96dba1c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserCustomerDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserCustomerEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户客户关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserCustomerDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserDao.java
new file mode 100644
index 0000000000..8982519ccc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserInvitationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserInvitationDao.java
new file mode 100644
index 0000000000..a20c106db5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserInvitationDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserInvitationEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 人员邀请关系表 记录user之间的邀请关系
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserInvitationDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiInfoDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiInfoDao.java
new file mode 100644
index 0000000000..9134ce63f9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiInfoDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserResiInfoEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户居民端注册信息表 用户在居民端完善的个人信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserResiInfoDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiRegisterVisitDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiRegisterVisitDao.java
new file mode 100644
index 0000000000..011871b5cd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserResiRegisterVisitDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserResiRegisterVisitEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户居民端注册访问记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserResiRegisterVisitDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserRoleDao.java
new file mode 100644
index 0000000000..9247a898f3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserRoleDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserRoleEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户角色关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserRoleDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserWechatDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserWechatDao.java
new file mode 100644
index 0000000000..ac7e440193
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserWechatDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetuser;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetuser.UserWechatEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户微信端关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-25
+ */
+@Mapper
+public interface UserWechatDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationDao.java
new file mode 100644
index 0000000000..8cda8f76cf
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationDao.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
+import com.epmet.dataaggre.entity.govissue.IssueApplicationEntity;
+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-11-17
+ */
+@Mapper
+public interface IssueApplicationDao extends BaseDao {
+
+ /**
+ * @Description 查询被拒绝的议题
+ * @Param gridIds
+ * @author zxc
+ * @date 2020/12/25 下午2:40
+ */
+ List issueStatusRejected(@Param("gridIds") List gridIds);
+
+ /**
+ * @Description 查询被拒绝的议题
+ * @Param gridIds
+ * @author zxc
+ * @date 2020/12/25 下午2:40
+ */
+ List issueStatusAuditing(@Param("gridIds") List gridIds);
+
+ Integer selectApplicationCount(@Param("gridIds") List gridIds,@Param("status")String status);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationHistoryDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationHistoryDao.java
new file mode 100644
index 0000000000..fab70d4286
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueApplicationHistoryDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueApplicationHistoryEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 话题转议题审核历史表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-11-17
+ */
+@Mapper
+public interface IssueApplicationHistoryDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueCustomerParameterDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueCustomerParameterDao.java
new file mode 100644
index 0000000000..fd2e407cda
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueCustomerParameterDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueCustomerParameterEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题客户参数定制表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueCustomerParameterDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
new file mode 100644
index 0000000000..1e85e06366
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.govissue.form.ClosedIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.form.ShiftProjectIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
+import com.epmet.dataaggre.dto.govissue.result.*;
+import com.epmet.dataaggre.entity.govissue.IssueEntity;
+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-05-11
+ */
+@Mapper
+public interface IssueDao extends BaseDao {
+
+ /**
+ * @Description 查询议题【表决中、已关闭】
+ * @Param gridIds
+ * @author zxc
+ * @date 2020/12/25 下午2:19
+ */
+ List issueStatusClosedOrVoting(@Param("gridIds") List gridIds, @Param("issueStatus")String issueStatus);
+
+ /**
+ * @Description 查询已转项目议题
+ * @Param gridIds
+ * @author zxc
+ * @date 2020/12/25 下午5:27
+ */
+ List issueStatusShiftProject(@Param("gridIds") List gridIds);
+
+ /**
+ * @Description 查询网格列表下表决中的议题列表
+ * @author sun
+ **/
+ List selectVotingList(VotingIssueListFormDTO formDTO);
+
+ /**
+ * @Description 根据组织ID查询议题Id集合
+ * @author sun
+ **/
+ List selectIssueListByGridIds(ShiftProjectIssueListFormDTO fromDTO);
+
+ /**
+ * @Description 查询组织下议题转项目切项目已关闭列表数据
+ * @author sun
+ **/
+ List selectClosedListGov(ClosedIssueListFormDTO fromDTO);
+
+ Integer selectIssueCount(@Param("gridIds") List gridIds,@Param("issueType")String issueType);
+
+ List selectShiftProjectIssueList(@Param("customerId") String customerId, @Param("gridId") String gridId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProcessDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProcessDao.java
new file mode 100644
index 0000000000..1569406be3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProcessDao.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueProcessEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * 议题进展记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueProcessDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProjectRelationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProjectRelationDao.java
new file mode 100644
index 0000000000..97d3a25866
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueProjectRelationDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueProjectRelationEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题项目关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueProjectRelationDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionDetailDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionDetailDao.java
new file mode 100644
index 0000000000..d819c9f6c0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionDetailDao.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueSatisfactionDetailEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题满意度调查记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueSatisfactionDetailDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionStatisticalDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionStatisticalDao.java
new file mode 100644
index 0000000000..27ab4ddabd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSatisfactionStatisticalDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueSatisfactionStatisticalEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题满意度调查统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueSatisfactionStatisticalDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSuggestionDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSuggestionDao.java
new file mode 100644
index 0000000000..dce95ef706
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueSuggestionDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueSuggestionEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * 居民端用户对议题建议或意见表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-11-18
+ */
+@Mapper
+public interface IssueSuggestionDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteDetailDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteDetailDao.java
new file mode 100644
index 0000000000..9e244a0ee8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteDetailDao.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueVoteDetailEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题表决记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueVoteDetailDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDailyDao.java
new file mode 100644
index 0000000000..88914bedd7
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDailyDao.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueVoteStatisticalDailyEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 议题表决按天统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueVoteStatisticalDailyDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDao.java
new file mode 100644
index 0000000000..aeb097b416
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueVoteStatisticalDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govissue;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govissue.IssueVoteStatisticalEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * 议题表决统计表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface IssueVoteStatisticalDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
new file mode 100644
index 0000000000..445baf2477
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govorg;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
+import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
+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-04-20
+ */
+@Mapper
+public interface CustomerAgencyDao extends BaseDao {
+
+ /**
+ * @Author sun
+ * @Description 递归查询当前机关的下一级机关列表
+ **/
+ List selectAllSubAgency(@Param("subPids") String subPids);
+
+ /**
+ * @Description 根据userId查询组织ID
+ * @Param userId
+ * @author zxc
+ * @date 2020/12/25 下午4:55
+ */
+ String getAgencyIdByUserId(@Param("userId") String userId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerDepartmentDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerDepartmentDao.java
new file mode 100644
index 0000000000..e640c21b32
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerDepartmentDao.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govorg;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govorg.CustomerDepartmentEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 客户部门表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Mapper
+public interface CustomerDepartmentDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java
new file mode 100644
index 0000000000..1da9910104
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govorg;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
+import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
+import com.epmet.dataaggre.entity.govorg.CustomerGridEntity;
+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-03-16
+ */
+@Mapper
+public interface CustomerGridDao extends BaseDao {
+
+ /**
+ * @Author sun
+ * @Description 根据组织Id查询当前组织及下级所有网格列表
+ **/
+ List selectAgencyGridList(@Param("agencyId") String agencyId);
+
+ /**
+ * @param gridIdList
+ * @return
+ * @Description 根据网格Id集合获取网格列表信息
+ * @Author sun
+ */
+ List selectGridByIds(@Param("gridIdList") List gridIdList);
+
+ /**
+ * @Author sun
+ * @Description 根据组织Id查询当前组织下所有网格列表
+ **/
+ List selectGridListByAgencyId(@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerPartyBranchDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerPartyBranchDao.java
new file mode 100644
index 0000000000..52551a6d52
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerPartyBranchDao.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.govorg;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.govorg.CustomerPartyBranchEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 党支部信息
+ *
+ * @author yinzuomei yinzuomei@elink-cn.com
+ * @since v1.0.0 2020-06-17
+ */
+@Mapper
+public interface CustomerPartyBranchDao extends BaseDao {
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java
new file mode 100644
index 0000000000..f8b58c698b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.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.dataaggre.dao.govorg;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO;
+import com.epmet.dataaggre.entity.govorg.CustomerStaffAgencyEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 人员-机关单位关系表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-04-20
+ */
+@Mapper
+public interface CustomerStaffAgencyDao extends BaseDao {
+
+ /**
+ * @Author sun
+ * @Description 根据staffId查询客户、组织信息
+ **/
+ CustomerStaffAgencyDTO selectByStaffId(@Param("userId") String userId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffDepartmentDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffDepartmentDao.java
new file mode 100644
index 0000000000..bde0fbaf92
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffDepartmentDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see