().error(e.getCode(), e.getMessage()));
} catch (Exception e) {
- logger.error("CpAuthGatewayFilterFactory认证出错,错误信息:{}", ExceptionUtils.getErrorStackTrace(e));
+ logger.error("CpAuthGatewayFilterFactory认证出错Exception,错误信息:{}", ExceptionUtils.getErrorStackTrace(e));
return response(exchange, new Result<>().error(e.getMessage()));
}
diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml
index 4f65034c7d..ca78ab64aa 100644
--- a/epmet-gateway/src/main/resources/bootstrap.yml
+++ b/epmet-gateway/src/main/resources/bootstrap.yml
@@ -336,12 +336,20 @@ spring:
# 宣传服务
- id: epmet-openapi-adv-server
uri: @gateway.routes.epmet-openapi-adv-server.url@
- order: 35
+ order: 36
predicates:
- Path=${server.servlet.context-path}/adv/**
filters:
- StripPrefix=1
- CpAuth=true
+ - id: tduck-api
+ uri: @gateway.routes.tduck-api.url@
+ order: 37
+ predicates:
+ - Path=${server.servlet.context-path}/tduck-api/**
+ filters:
+ - StripPrefix=1
+ - CpAuth=true
nacos:
discovery:
server-addr: @nacos.server-addr@
@@ -472,6 +480,7 @@ epmet:
- /epmetuser/customerstaff/customerlist
- /gov/project/project/platformcallback
- /oper/customize/customerstartpage/homestartpage
+ - /tduck-api/**
# 外部应用认证,使用AccessToken等头进行认证
externalOpenUrls:
diff --git a/epmet-module/data-aggregator/data-aggregator-client/pom.xml b/epmet-module/data-aggregator/data-aggregator-client/pom.xml
index 4e8beca881..7f6f4cd2ff 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/pom.xml
+++ b/epmet-module/data-aggregator/data-aggregator-client/pom.xml
@@ -17,6 +17,12 @@
epmet-commons-tools
2.0.0
+
+ com.baomidou
+ mybatis-plus-annotation
+ 3.2.0
+ compile
+
\ 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
index dd9ab18035..8ae93cc5d4 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
@@ -32,5 +32,9 @@ public interface DataSourceConstant {
String EVALUATION_INDEX = "evaluationIndex";
String OPERCUSTOMIZE="opercustomize";
+
String EPMET_MESSAGE="epmetmessage";
+
+ String EPMET_T_DUCK = "epmettduck";
+ String EPMETTDUCK="epmettduck";
}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TDuckConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TDuckConstant.java
new file mode 100644
index 0000000000..87ef2de7cb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/TDuckConstant.java
@@ -0,0 +1,17 @@
+package com.epmet.dataaggre.constant;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/23 4:06 下午
+ * @DESC
+ */
+public interface TDuckConstant {
+
+ String CLIENT_GOV = "gov";
+ String CLIENT_RESI = "resi";
+
+ String ORG_TYPE_AGENCY = "agency";
+ String ORG_TYPE_GRID = "grid";
+ String ORG_TYPE_DEPT = "dept";
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/AcUserAuthorizeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/AcUserAuthorizeDTO.java
new file mode 100644
index 0000000000..3db0c9939d
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/AcUserAuthorizeDTO.java
@@ -0,0 +1,85 @@
+package com.epmet.dataaggre.dto.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 第三方用户授权信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class AcUserAuthorizeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 第三方平台类型
+ */
+ private Integer type;
+
+ /**
+ * 平台AppId
+ */
+ private String appId;
+
+ /**
+ * 平台OpenId
+ */
+ private String openId;
+
+ /**
+ * 平台用户名
+ */
+ private String userName;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 平台用户信息
+ */
+ private String userInfo;
+
+
+ /**
+ * 删除标识 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/epmettduck/AcUserDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/AcUserDTO.java
new file mode 100644
index 0000000000..a1bb83f55b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/AcUserDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class AcUserDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 头像
+ */
+ private String avatar;
+
+ /**
+ * 性别0未知 1男2女
+ */
+ private Integer gender;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 手机号
+ */
+ private String phoneNumber;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 注册渠道
+ */
+ private String regChannel;
+
+ /**
+ * 最后登录渠道
+ */
+ private Integer lastLoginChannel;
+
+ /**
+ * 最后登录时间
+ */
+ private Date lastLoginTime;
+
+ /**
+ * 最后登录Ip
+ */
+ private String lastLoginIp;
+
+ /**
+ * 删除标识 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/epmettduck/InputMapDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/InputMapDTO.java
new file mode 100644
index 0000000000..befdf3ae93
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/InputMapDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.dataaggre.dto.epmettduck;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2021/9/16 11:34 下午
+ */
+@Data
+public class InputMapDTO implements Serializable {
+ private BigDecimal longitude;
+ private BigDecimal latitude;
+ private String address;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateCategoryDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateCategoryDTO.java
new file mode 100644
index 0000000000..8c0956058f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateCategoryDTO.java
@@ -0,0 +1,85 @@
+/**
+ * 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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目模板分类
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrProjectTemplateCategoryDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 主题名称
+ */
+ private String name;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 删除标识 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/epmettduck/PrProjectTemplateDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateDTO.java
new file mode 100644
index 0000000000..1b995189c6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrProjectTemplateDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 模板唯一标识
+ */
+ private String key;
+
+ /**
+ * 封面图
+ */
+ private String coverImg;
+
+ /**
+ * 项目名称
+ */
+ private String name;
+
+ /**
+ * 项目描述
+ */
+ private String describe;
+
+ /**
+ * 喜欢数
+ */
+ private Integer likeCount;
+
+ /**
+ * 项目类型
+ */
+ private String categoryId;
+
+ /**
+ * 状态
+ */
+ private Integer status;
+
+ /**
+ * 删除标识 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/epmettduck/PrProjectTemplateItemDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateItemDTO.java
new file mode 100644
index 0000000000..2174d4f39d
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectTemplateItemDTO.java
@@ -0,0 +1,141 @@
+/**
+ * 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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrProjectTemplateItemDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ /**
+ * 表单项类型
+ */
+ private String type;
+
+ /**
+ * 表单项标题
+ */
+ private String label;
+
+ /**
+ * 是否显示标签
+ */
+ private Integer showLabel;
+
+ /**
+ * 表单项默认值
+ */
+ private String defaultValue;
+
+ /**
+ * 是否必填
+ */
+ private Integer required;
+
+ /**
+ * 输入型提示文字
+ */
+ private String placeholder;
+
+ /**
+ * 排序
+ */
+ private Long sort;
+
+ /**
+ * 栅格宽度
+ */
+ private Integer span;
+
+ /**
+ * 扩展字段 表单项独有字段
+ */
+ private String expand;
+
+ /**
+ * 正则表达式
+ */
+ private String regList;
+
+ /**
+ * 删除标识 1删除;0未删除
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 展示类型组件
+ */
+ private Integer isDisplayType;
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectThemeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectThemeDTO.java
new file mode 100644
index 0000000000..8bf8538c2a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrProjectThemeDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目主题外观模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrProjectThemeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 主题名称
+ */
+ private String name;
+
+ /**
+ * 主题风格
+
+ */
+ private String style;
+
+ /**
+ * 头部图片
+ */
+ private String headImgUrl;
+
+ /**
+ * 颜色代码
+ */
+ private String color;
+
+ /**
+ * 按钮颜色
+ */
+ private String btnsColor;
+
+ /**
+ * 删除标识 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/epmettduck/PrPublishRangeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrPublishRangeDTO.java
new file mode 100644
index 0000000000..944965d1ec
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrPublishRangeDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目发布范围表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrPublishRangeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 范围组织ids,格式与组织维度一致 冒号隔开 即选中节点的全路径id
+ */
+ private String orgIds;
+
+ /**
+ * 最后发布组织的ID
+ */
+ private String orgId;
+
+ /**
+ * 最后发布组织的类型;department,agency;grid
+ */
+ private String orgType;
+
+ /**
+ * 删除标识 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/epmettduck/PrResultExtDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrResultExtDTO.java
new file mode 100644
index 0000000000..4f0ade42a5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrResultExtDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 问卷填写附属信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrResultExtDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String userId;
+
+ /**
+ * 结果Id
+ */
+ private String resultId;
+
+ /**
+ * 工作端小程序:gov、居民端小程序:resi、运营端:oper、其他:other
+ */
+ private String userType;
+
+ /**
+ * 在哪个组织填写的
+ */
+ private String fromOrgId;
+
+ /**
+ * 组织:agency;部门:department;网格:grid
+ */
+ private String fromOrgType;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectDTO.java
new file mode 100644
index 0000000000..7f9bba34cb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 项目code
+ */
+ private String key;
+
+ /**
+ * 来源Id
+ */
+ private String sourceId;
+
+ /**
+ * 来源类型
+ */
+ private Integer sourceType;
+
+ /**
+ * 项目名称
+ */
+ private String name;
+
+ /**
+ * 项目描述
+ */
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 项目类型
+ */
+ private Integer type;
+
+ /**
+ * 状态
+ */
+ private Integer status;
+
+ /**
+ * 适用于哪个端 resi:居民端用户;gov:工作端用户;运营端用户:oper
+ */
+ private String client;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectItemDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectItemDTO.java
new file mode 100644
index 0000000000..614236b09c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectItemDTO.java
@@ -0,0 +1,141 @@
+/**
+ * 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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectItemDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ /**
+ * 表单项类型
+ */
+ private String type;
+
+ /**
+ * 表单项标题
+ */
+ private String label;
+
+ /**
+ * 展示类型组件
+ */
+ private Integer isDisplayType;
+
+ /**
+ * 是否显示标签
+ */
+ private Integer showLabel;
+
+ /**
+ * 表单项默认值
+ */
+ private String defaultValue;
+
+ /**
+ * 是否必填
+ */
+ private Integer required;
+
+ /**
+ * 输入型提示文字
+ */
+ private String placeholder;
+
+ /**
+ * 排序
+ */
+ private Long sort;
+
+ /**
+ * 栅格宽度
+ */
+ private Integer span;
+
+ /**
+ * 扩展字段 表单项独有字段
+ */
+ private String expand;
+
+ /**
+ * 正则表达式
+ */
+ private String regList;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectLogicDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectLogicDTO.java
new file mode 100644
index 0000000000..901a8b41ba
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectLogicDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目逻辑
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectLogicDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 逻辑Id
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 问题Id
+ */
+ private String formItemId;
+
+ /**
+ * 条件选项
+ */
+ private Integer expression;
+
+ /**
+ * 条件列表
+ */
+ private String conditionList;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectResultDTO.java
new file mode 100644
index 0000000000..dd81d962fc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectResultDTO.java
@@ -0,0 +1,141 @@
+/**
+ * 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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 序号
+ */
+ private Integer serialNumber;
+
+ /**
+ * 填写结果
+ */
+ private String originalData;
+
+ /**
+ * 填写结果
+ */
+ private String processData;
+
+ /**
+ * 提交ua
+ */
+ private String submitUa;
+
+ /**
+ * 提交系统
+ */
+ private String submitOs;
+
+ /**
+ * 提交浏览器
+ */
+ private String submitBrowser;
+
+ /**
+ * 请求ip
+ */
+ private String submitRequestIp;
+
+ /**
+ * 提交地址
+ */
+ private String submitAddress;
+
+ /**
+ * 完成时间 毫秒
+ */
+ private Integer completeTime;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 微信openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 微信用户信息
+ */
+ private String wxUserInfo;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectSettingDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectSettingDTO.java
new file mode 100644
index 0000000000..bb44c7e351
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectSettingDTO.java
@@ -0,0 +1,186 @@
+/**
+ * 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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectSettingDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 提交提示图片
+ */
+ private String submitPromptImg;
+
+ /**
+ * 提交提示文字
+ */
+ private String submitPromptText;
+
+ /**
+ * 提交跳转连接
+ */
+ private String submitJumpUrl;
+
+ /**
+ * 公开提交结果
+ */
+ private Integer isPublicResult;
+
+ /**
+ * 只在微信填写
+ */
+ private Integer isWxWrite;
+
+ /**
+ *
+ */
+ private Integer isWxWriteOnce;
+
+ /**
+ * 每人只能填写一次
+ */
+ private Integer isEveryoneWriteOnce;
+
+ /**
+ * 每人每天只能填写一次
+ */
+ private Integer isEveryoneDayWriteOnce;
+
+ /**
+ * 填写之后提示
+ */
+ private String writeOncePromptText;
+
+ /**
+ * 新反馈通知邮件
+ */
+ private String newWriteNotifyEmail;
+
+ /**
+ * 新反馈通知微信
+ */
+ private String newWriteNotifyWx;
+
+ /**
+ * 记录微信用户个人信息
+ */
+ private Integer isRecordWxUser;
+
+ /**
+ * 定时收集开始时间
+ */
+ private Date timedCollectionBeginTime;
+
+ /**
+ * 定时收集结束时间
+ */
+ private Date timedCollectionEndTime;
+
+ /**
+ * 定时未启动提示文字
+ */
+ private String timedNotEnabledPromptText;
+
+ /**
+ * 定时停用会提示文字
+ */
+ private String timedDeactivatePromptText;
+
+ /**
+ * 定时定量数量
+ */
+ private Integer timedQuantitativeQuantity;
+
+ /**
+ * 定时定量完成提示
+ */
+ private String timedEndPromptText;
+
+ /**
+ * 分享图片
+ */
+ private String shareImg;
+
+ /**
+ * 分享标题
+ */
+ private String shareTitle;
+
+ /**
+ * 分享描述
+ */
+ private String shareDesc;
+
+ /**
+ * 删除标识 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/epmettduck/PrUserProjectThemeDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectThemeDTO.java
new file mode 100644
index 0000000000..e42dd917fc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrUserProjectThemeDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrUserProjectThemeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 主题Id
+ */
+ private String themeId;
+
+ /**
+ * 提交按钮文字
+ */
+ private String submitBtnText;
+
+ /**
+ * logo图片
+ */
+ private String logoImg;
+
+ /**
+ * logo位置
+ */
+ private String logoPosition;
+
+ /**
+ * 背景颜色
+ */
+ private String backgroundColor;
+
+ /**
+ * 背景图片
+ */
+ private String backgroundImg;
+
+ /**
+ * 是否显示标题
+ */
+ private Integer showTitle;
+
+ /**
+ * 是否显示描述语
+ */
+ private Integer showDescribe;
+
+ /**
+ * 显示序号
+ */
+ private Integer showNumber;
+
+ /**
+ * 删除标识 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/epmettduck/PrVistRecordDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrVistRecordDTO.java
new file mode 100644
index 0000000000..7e747c2680
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/PrVistRecordDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 用户访问问卷记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class PrVistRecordDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String userId;
+
+ /**
+ * 工作端小程序:gov、居民端小程序:resi、运营端:oper、其他:other
+ */
+ private String userType;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 删除标识 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/epmettduck/ProjectItemTypeEnum.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/ProjectItemTypeEnum.java
new file mode 100644
index 0000000000..8083aeb077
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/ProjectItemTypeEnum.java
@@ -0,0 +1,75 @@
+package com.epmet.dataaggre.dto.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.epmet.dataaggre.dto.epmettduck.struct.*;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/16 2:28 下午
+ * @DESC
+ */
+@AllArgsConstructor
+@Getter
+public enum ProjectItemTypeEnum {
+
+ //联系人组件:
+ INPUT("INPUT", "单行文本", InputExpandStruct.class),
+ TEXTAREA("TEXTAREA", "多行文本", TextareaExpandStruct.class),
+ PASSWORD_INPUT("PASSWORD_INPUT", "密码输入", null),
+ NUMBER_INPUT("NUMBER_INPUT", "数字输入", NumberExpandStruct.class),
+ SELECT("SELECT", "下拉框", SelectExpandStruct.class),
+ CASCADER("CASCADER", "级联选择", CascaderExpandStruct.class),
+ RADIO("RADIO", "单选框", RadioExpandStruct.class),
+ CHECKBOX("CHECKBOX", "多选框", CheckboxExpandStruct.class),
+ SWITCH("SWITCH", "开关", SwitchExpandStruct.class),
+ TIME("TIME", "时间选择", TimeExpandStruct.class),
+ TIME_RANGE("TIME_RANGE", "时间范围", TimeRangeExpandStruct.class),
+ DATE("DATE", "日期选择", DateExpandStruct.class),
+ DATE_RANGE("DATE_RANGE", "日期范围", DateRangeExpandStruct.class),
+ RATE("RATE", "评分", RateExpandStruct.class),
+ PROVINCE_CITY("PROVINCE_CITY", "省市联动", EmptyExpandStruct.class),
+ INPUT_MAP("INPUT_MAP", "地理位置", EmptyExpandStruct.class),
+
+ // 以下不分析
+ PHONE_VERIFICATION("PHONE_VERIFICATION", "手机号验证", EmptyExpandStruct.class),
+ SLIDER("SLIDER", "滑块", SliderExpandStruct.class),
+ COLOR("COLOR", "颜色", ColorExpandStruct.class),
+ UPLOAD("UPLOAD", "文件上传组件", UploadExpandStruct.class),
+ IMAGE("IMAGE", "图片展示", ImageExpandStruct.class),
+ IMAGE_SELECT("IMAGE_SELECT", "图片选择", ImageSelectExpandStruct.class),
+ IMAGE_CAROUSEL("IMAGE_CAROUSEL", "图片轮播", ImageCarouselExpandStruct.class),
+ DESC_TEXT("DESC_TEXT", "文字描述", DescTextExpandStruct.class),
+ SIGN_PAD("SIGN_PAD", "手写签名", SignPadExpandStruct.class),
+ PAGINATION("PAGINATION", "分页", PaginationExpandStruct.class),
+ DIVIDER("DIVIDER", "分割线", DividerExpandStruct.class);
+
+ @EnumValue
+ @JsonValue
+ private String value;
+
+ private String desc;
+ /**
+ * 扩展属性类
+ */
+ private Class expandClass;
+
+ /**
+ * 枚举入参注解
+ *
+ * @param value
+ * @return
+ */
+ @JsonCreator
+ public static ProjectItemTypeEnum getByValue(String value) {
+ for (ProjectItemTypeEnum typeEnum : values()) {
+ if (typeEnum.getValue().equals(value)) {
+ return typeEnum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/WxMpUserDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/WxMpUserDTO.java
new file mode 100644
index 0000000000..e50b5fffab
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/WxMpUserDTO.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.epmettduck;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 微信公众号用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+public class WxMpUserDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 公众号AppId
+ */
+ private String appid;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 性别
+ */
+ private Integer sex;
+
+ /**
+ * 头像
+ */
+ private String headImgUrl;
+
+ /**
+ *
+ */
+ private String unionId;
+
+ /**
+ *
+ */
+ private String openId;
+
+ /**
+ * 国家
+ */
+ private String country;
+
+ /**
+ * 省
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 是否关注
+ */
+ private Integer isSubscribe;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 删除标识 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/epmettduck/form/ItemResDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/ItemResDetailFormDTO.java
new file mode 100644
index 0000000000..a107080eea
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/ItemResDetailFormDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dataaggre.dto.epmettduck.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description 问卷-数据分析-查看详情
+ * @Author yinzuomei
+ * @Date 2021/9/22 1:29 下午
+ */
+@Data
+public class ItemResDetailFormDTO extends ProjectKeyCommonDTO{
+
+ @NotBlank(message = "formItemId不能为空",groups = AddUserInternalGroup.class)
+ private String formItemId;
+ /**
+ * 表单项类型
+ */
+ @NotBlank(message = "type不能为空",groups = AddUserInternalGroup.class)
+ private String type;
+
+
+ /**
+ * 09.22目前产品没要求分页
+ */
+ //@NotNull(message = "pageNo不能为空",groups = AddUserInternalGroup.class)
+ //private Integer pageNo;
+ //@NotNull(message = "pageSize不能为空",groups = AddUserInternalGroup.class)
+ //private Integer pageSize;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/ProjectKeyCommonDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/ProjectKeyCommonDTO.java
new file mode 100644
index 0000000000..9ed0db927c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/ProjectKeyCommonDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dataaggre.dto.epmettduck.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description projectKey通用
+ * @Author yinzuomei
+ * @Date 2021/9/16 1:32 下午
+ */
+@Data
+public class ProjectKeyCommonDTO implements Serializable {
+ public interface AddUserInternalGroup {
+ }
+ /**
+ * 问卷id, 对应pr_user_project.key
+ */
+ @NotBlank(message = "projectKey不能为空",groups = AddUserInternalGroup.class)
+ private String projectKey;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckDetailFormDTO.java
new file mode 100644
index 0000000000..3a9b934b69
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckDetailFormDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.dataaggre.dto.epmettduck.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/16 2:00 下午
+ * @DESC
+ */
+@Data
+public class TDuckDetailFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 3793280475377993346L;
+
+ public interface TDuckDetailForm{}
+ public interface PermissionValidate{}
+
+ /**
+ * 项目key
+ */
+ @NotBlank(message = "项目key不能为空",groups = { TDuckDetailForm.class, PermissionValidate.class })
+ private String key;
+ /**
+ * 是否显示类型
+ */
+ @NotNull(message = "是否显示类型不能为空",groups = TDuckDetailForm.class)
+ private Boolean displayType;
+
+ /** 当前操作人所在的组织的类型(grid:网格,agency:单位) */
+ private String orgType;
+
+ /** 当前操作人所在的组织的ID(当orgType为grid的时候必填,为agency的时候留空) */
+ private String orgId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckHeaderInfoFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckHeaderInfoFormDTO.java
new file mode 100644
index 0000000000..2e0a1a953f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckHeaderInfoFormDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dataaggre.dto.epmettduck.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/17 10:47 上午
+ * @DESC
+ */
+@Data
+public class TDuckHeaderInfoFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 3624352114576287768L;
+
+ public interface TDuckHeaderInfoForm{}
+
+ @NotBlank(message = "projectKey不能为空",groups = TDuckHeaderInfoForm.class)
+ private String projectKey;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java
new file mode 100644
index 0000000000..83fc43fd6f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java
@@ -0,0 +1,43 @@
+package com.epmet.dataaggre.dto.epmettduck.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/17 10:47 上午
+ * @DESC
+ */
+@Data
+public class TDuckListFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 3624352114576287768L;
+
+ public interface TDuckListForm{}
+
+ /**
+ * 1:未发布,2:收集中,3:已结束
+ */
+ @NotNull(message = "问卷调查状态不能为空",groups = TDuckListForm.class)
+ private Integer status;
+
+ @NotNull(message = "pageNo不能为空",groups = TDuckListForm.class)
+ private Integer pageNo;
+
+ @NotNull(message = "pageSize不能为空",groups = TDuckListForm.class)
+ private Integer pageSize;
+
+ private String orgId;
+
+ private String orgType;
+
+ @NotBlank(message = "client不能为空",groups = TDuckListForm.class)
+ private String client;
+
+ private String userId;
+
+ private String customerId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java
new file mode 100644
index 0000000000..e532068afa
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/AnalysisReportResDTO.java
@@ -0,0 +1,68 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2021/9/16 5:30 下午
+ */
+@Data
+public class AnalysisReportResDTO implements Serializable {
+ private static final long serialVersionUID = -1637286883477938648L;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 表单项类型
+ */
+ private String type;
+
+ /**
+ * 表单项标题
+ */
+ private String label;
+
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ /**
+ * 展示类型组件
+ */
+ private Integer isDisplayType;
+
+ /**
+ * 是否显示标签
+ */
+ private Integer showLabel;
+
+ /**
+ * 是否必填
+ */
+ private Integer required;
+
+ /**
+ * 排序
+ */
+ private Long sort;
+
+ private Map detail;
+
+ /**
+ * 扩展字段 表单项独有字段
+ */
+ @JsonIgnore
+ private String expand;
+
+ private String moduleType;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/CascaderDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/CascaderDTO.java
new file mode 100644
index 0000000000..3b5888a543
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/CascaderDTO.java
@@ -0,0 +1,40 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 级联选择组件答案参数格式
+ * @Author yinzuomei
+ * @Date 2021/9/18 3:40 下午
+ */
+@Data
+public class CascaderDTO implements Serializable {
+ /**
+ * 当前选择的选项id
+ */
+ private Integer id;
+ /**
+ * 选项名
+ */
+ private String label;
+
+ /**
+ * 选项名
+ */
+ private String value;
+
+ /**
+ * pid
+ */
+ private Integer pid;
+
+ /**
+ * 全路径名字
+ */
+ private List labels;
+ public String pathName;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java
new file mode 100644
index 0000000000..b44f736854
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ConcatTableHeaderDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 表头
+ * @Author yinzuomei
+ * @Date 2021/9/22 3:41 下午
+ */
+@Data
+public class ConcatTableHeaderDTO implements Serializable {
+ private static final long serialVersionUID = -1133629000511948034L;
+
+ /**
+ * 显示名称
+ */
+ private String label;
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ private String type;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/GetRangeResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/GetRangeResultDTO.java
new file mode 100644
index 0000000000..d1ea08f6fe
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/GetRangeResultDTO.java
@@ -0,0 +1,24 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2021/9/18 14:41
+ */
+@Data
+public class GetRangeResultDTO implements Serializable {
+ private static final long serialVersionUID = 3208245365454855156L;
+ /**
+ * 适用于哪个端 resi:居民端用户;gov:工作端用户
+ */
+ private String client;
+ /**
+ * 发布范围组织列表
+ */
+ private List orgList;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java
new file mode 100644
index 0000000000..8bb7fb8ccc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ItemResDetailConcatResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 联系人组件
+ * @Author yinzuomei
+ * @Date 2021/9/22 2:54 下午
+ */
+@Data
+public class ItemResDetailConcatResultDTO implements Serializable {
+ private static final long serialVersionUID = -3695200094740706700L;
+ private List tableHeaderList;
+ private List> dataMap;
+ //private List> dataList;
+
+ public ItemResDetailConcatResultDTO(){
+ this.tableHeaderList=new ArrayList<>();
+ this.dataMap=new ArrayList<>();
+ }
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/OptionDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/OptionDTO.java
new file mode 100644
index 0000000000..c1d64bba1e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/OptionDTO.java
@@ -0,0 +1,29 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @Author yinzuomei
+ * @Date 2021/9/17 3:25 下午
+ */
+@Data
+public class OptionDTO implements Serializable {
+ /**
+ * 选项题目
+ */
+ private String label;
+
+ /**
+ * 答案值
+ */
+ private Integer value;
+
+ /**
+ * 多少个人选择此答案
+ */
+ private Integer currentCount=0;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/PermissionValidateResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/PermissionValidateResultDTO.java
new file mode 100644
index 0000000000..45897428d9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/PermissionValidateResultDTO.java
@@ -0,0 +1,9 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+@Data
+public class PermissionValidateResultDTO {
+ private Boolean permitted;
+ private String accessKey;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ProjectProfileResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ProjectProfileResultDTO.java
new file mode 100644
index 0000000000..c5df187969
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/ProjectProfileResultDTO.java
@@ -0,0 +1,39 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 统计图标,上面的一行
+ * @Author yinzuomei
+ * @Date 2021/9/16 2:10 下午
+ */
+@Data
+public class ProjectProfileResultDTO implements Serializable {
+ private static final long serialVersionUID = -6087175682515652086L;
+
+ /**
+ * 问卷id, 对应pr_user_project.key
+ */
+ private String projectKey;
+
+ /**
+ * 采集数量
+ */
+ private Integer collectionTotal;
+
+ //CREATE(1, "未发布"),
+ //RELEASE(2, "收集中"),
+ //STOP(3, "停止发布");
+ private Integer status;
+
+ /**
+ * 采集数量
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+}
+
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java
new file mode 100644
index 0000000000..38654cfd7c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:03
+ */
+@Data
+public class RedPointResultDTO implements Serializable {
+ private static final long serialVersionUID = -2230123089546481389L;
+ /**
+ * redPoint
+ */
+ private String redPoint;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java
new file mode 100644
index 0000000000..ee412e8ad3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java
@@ -0,0 +1,114 @@
+package com.epmet.dataaggre.dto.epmettduck.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/17 10:47 上午
+ * @DESC
+ */
+@Data
+public class TDuckListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 3624352114576287768L;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 项目code
+ */
+ private String key;
+
+ /**
+ * 来源Id
+ */
+ private String sourceId;
+
+ /**
+ * 来源类型
+ */
+ private Integer sourceType;
+
+ /**
+ * 项目名称
+ */
+ private String name;
+
+ /**
+ * 项目描述
+ */
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 项目类型
+ */
+ private Integer type;
+
+ /**
+ * 状态
+ */
+ private Integer status;
+
+ /**
+ * 适用于哪个端 resi:居民端用户;gov:工作端用户;运营端用户:oper
+ */
+ private String client;
+
+ private String createdTime;
+
+ /**
+ * 是否填写问卷,true:是,false:否
+ */
+ private Boolean fillStatus;
+
+ /**
+ * 是否还能填写问卷,能:true,不能:false
+ */
+ private Boolean isFillQuestion;
+
+ /**
+ * 回收状态 0:未回收;1已回收
+ */
+ private Integer recycled;
+
+ /**
+ * 组织名
+ */
+ private String orgName;
+
+ private String createdBy;
+
+ @JsonIgnore
+ private Integer isEveryoneWriteOnceUid;
+
+ public TDuckListResultDTO() {
+ this.customerId = "";
+ this.key = "";
+ this.sourceId = "";
+ this.sourceType = NumConstant.ONE;
+ this.name = "";
+ this.describe = "";
+ this.userId = "";
+ this.type = NumConstant.ONE;
+ this.status = NumConstant.ONE;
+ this.client = "";
+ this.createdTime = "";
+ this.fillStatus = false;
+ this.isFillQuestion = true;
+ this.orgName = "";
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CascaderExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CascaderExpandStruct.java
new file mode 100644
index 0000000000..7961fdbf5d
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CascaderExpandStruct.java
@@ -0,0 +1,50 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 级联选择
+ * @create : 2020-11-19 15:13
+ **/
+@Data
+public class CascaderExpandStruct {
+ /**
+ * 选项
+ */
+ private List options;
+
+ /**
+ * 塞选
+ */
+ private Boolean filterable;
+
+ /**
+ * 多选
+ */
+ private Boolean multiple;
+
+ /**
+ * 分割符
+ */
+ private String separator;
+
+ /**
+ * 显示全路径
+ */
+ private Boolean showAllLevels;
+
+ @Data
+ public static class Option {
+ public Integer id;
+ public String label;
+ public String value;
+ /**
+ * 莹姐加了这个参数
+ */
+ public String pid;
+ public List children;
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CheckboxExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CheckboxExpandStruct.java
new file mode 100644
index 0000000000..09b4978f57
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/CheckboxExpandStruct.java
@@ -0,0 +1,45 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 颜色选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class CheckboxExpandStruct {
+ /**
+ * 最小
+ */
+ private Integer min;
+ /**
+ * 最大
+ */
+ private Integer max;
+
+ /**
+ * 选项类型
+ */
+ private String optionType;
+
+ /**
+ * 选项是按钮时大小
+ */
+ private String size;
+
+ /**
+ * 选项
+ */
+ private List options;
+
+
+ @Data
+ public static class Option {
+ public String label;
+ public Integer value;
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ColorExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ColorExpandStruct.java
new file mode 100644
index 0000000000..42dc7d96b5
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ColorExpandStruct.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 颜色选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class ColorExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateExpandStruct.java
new file mode 100644
index 0000000000..4ab27c65ab
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateExpandStruct.java
@@ -0,0 +1,20 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 日期选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class DateExpandStruct {
+
+ // 日期类型
+ private String type;
+ // 日期格式
+ private String format;
+ // 日期格式
+ private String valueFormat;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateRangeExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateRangeExpandStruct.java
new file mode 100644
index 0000000000..e92ff2c35c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DateRangeExpandStruct.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 日期范围
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class DateRangeExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DescTextExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DescTextExpandStruct.java
new file mode 100644
index 0000000000..28392247dd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DescTextExpandStruct.java
@@ -0,0 +1,24 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+
+import lombok.Data;
+
+/**
+ * 文字描述组件属性
+ *
+ * @author smalljop
+ */
+@Data
+public class DescTextExpandStruct {
+ /**
+ * 颜色
+ */
+ private String color;
+
+ /**
+ * 文字位置
+ */
+ private String textAlign;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DividerExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DividerExpandStruct.java
new file mode 100644
index 0000000000..7561201063
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/DividerExpandStruct.java
@@ -0,0 +1,15 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+
+import lombok.Data;
+
+/**
+ * 分割线组件属性
+ *
+ * @author smalljop
+ */
+@Data
+public class DividerExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/EmptyExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/EmptyExpandStruct.java
new file mode 100644
index 0000000000..d192629832
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/EmptyExpandStruct.java
@@ -0,0 +1,10 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * 无扩展属性
+ */
+@Data
+public class EmptyExpandStruct {
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageCarouselExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageCarouselExpandStruct.java
new file mode 100644
index 0000000000..e6b2296f88
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageCarouselExpandStruct.java
@@ -0,0 +1,25 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 颜色选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class ImageCarouselExpandStruct {
+
+ /**
+ * 选项
+ */
+ private List options;
+
+ public static class Option {
+ public String image;
+ public String label;
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageExpandStruct.java
new file mode 100644
index 0000000000..0048186f76
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageExpandStruct.java
@@ -0,0 +1,12 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+
+import lombok.Data;
+
+@Data
+public class ImageExpandStruct {
+ private String src;
+
+ private String alt;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageSelectExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageSelectExpandStruct.java
new file mode 100644
index 0000000000..014399fcac
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ImageSelectExpandStruct.java
@@ -0,0 +1,31 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 颜色选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class ImageSelectExpandStruct {
+
+ /**
+ * 选项
+ */
+ private List options;
+
+ /**
+ * 是否多选
+ */
+ private Boolean multiple;
+
+ public static class Option {
+ public String image;
+ public String label;
+ public Integer value;
+ }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/InputExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/InputExpandStruct.java
new file mode 100644
index 0000000000..ddece7ae8e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/InputExpandStruct.java
@@ -0,0 +1,36 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 输入框配置
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class InputExpandStruct {
+
+ /**
+ * 前缀
+ */
+ public String prepend;
+ /**
+ * 后缀
+ */
+ public String append;
+
+ /**
+ * 最大长度
+ */
+ private Long maxlength;
+
+ /**
+ * 前置图标
+ */
+ private String prefixIcon;
+
+ /**
+ * 显示可输入字数
+ */
+ private Boolean showWordLimit;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ItemDefaultValueStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ItemDefaultValueStruct.java
new file mode 100644
index 0000000000..f8ff73512c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/ItemDefaultValueStruct.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ItemDefaultValueStruct {
+ /**
+ * 值是否是Json
+ */
+ private boolean json;
+ /**
+ * 默认值具体值
+ */
+ private Object value;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/NumberExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/NumberExpandStruct.java
new file mode 100644
index 0000000000..2dd6094a76
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/NumberExpandStruct.java
@@ -0,0 +1,38 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 数字型输入
+ * @create : 2020-11-19 15:13
+ **/
+@Data
+public class NumberExpandStruct {
+ /**
+ * 最小
+ */
+ private Integer min;
+ /**
+ * 最大
+ */
+ private Integer max;
+ /**
+ * 计数器步长 每次+几
+ */
+ private Integer step;
+ /**
+ * 是否只能输入 step 的倍数
+ */
+ private Boolean stepStrictly;
+
+ /**
+ * 经度
+ */
+ private Integer precision;
+
+ /**
+ * 按钮控制位置
+ */
+ private String controlsPosition;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/PaginationExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/PaginationExpandStruct.java
new file mode 100644
index 0000000000..e4c8567e06
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/PaginationExpandStruct.java
@@ -0,0 +1,13 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 分页组件属性
+ * @create : 2021/05/19 10:29
+ **/
+@Data
+public class PaginationExpandStruct {
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RadioExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RadioExpandStruct.java
new file mode 100644
index 0000000000..5a4455fd31
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RadioExpandStruct.java
@@ -0,0 +1,31 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : d
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class RadioExpandStruct {
+
+ /**
+ * 选项样式
+ */
+ private String optionType;
+
+
+ /**
+ * 选项
+ */
+ private List options;
+
+ @Data
+ public static class Option {
+ public String label;
+ public Integer value;
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RateExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RateExpandStruct.java
new file mode 100644
index 0000000000..ab29b16895
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/RateExpandStruct.java
@@ -0,0 +1,35 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 评分
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class RateExpandStruct {
+
+ /**
+ * 最大分数
+ */
+ private Integer max;
+ /**
+ * 允许半选
+ */
+ private Boolean allowHalf;
+ /**
+ * 辅助文字
+ */
+ private Boolean showText;
+ /**
+ * 显示分数
+ */
+ private Boolean showScore;
+ /**
+ * 禁用
+ */
+ private Boolean disabled;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SelectExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SelectExpandStruct.java
new file mode 100644
index 0000000000..0eaacde3b6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SelectExpandStruct.java
@@ -0,0 +1,48 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 下拉框
+ * @create : 2020-11-19 15:13
+ **/
+@Data
+public class SelectExpandStruct {
+ /**
+ * 选项
+ */
+ private List options;
+ /**
+ * 最大
+ */
+ private Boolean multiple;
+
+ /**
+ * 塞选
+ */
+ private Boolean filterable;
+ /**
+ * 是否只能输入 step 的倍数
+ */
+ private Boolean stepStrictly;
+
+ /**
+ * 经度
+ */
+ private Integer precision;
+
+ /**
+ * 按钮控制位置
+ */
+ private String controlsPosition;
+
+
+ @Data
+ public static class Option {
+ public String label;
+ public Integer value;
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SignPadExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SignPadExpandStruct.java
new file mode 100644
index 0000000000..1ef3b0244e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SignPadExpandStruct.java
@@ -0,0 +1,19 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+
+import lombok.Data;
+
+/**
+ * 手写签名组件属性
+ *
+ * @author smalljop
+ */
+@Data
+public class SignPadExpandStruct {
+ /**
+ * 颜色
+ */
+ private String color;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SliderExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SliderExpandStruct.java
new file mode 100644
index 0000000000..007614250a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SliderExpandStruct.java
@@ -0,0 +1,35 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 滑块
+ * @create : 2020-11-19 15:13
+ **/
+@Data
+public class SliderExpandStruct {
+ /**
+ * 最小
+ */
+ private Integer min;
+ /**
+ * 最大
+ */
+ private Integer max;
+ /**
+ * 计数器步长 每次+几
+ */
+ private Integer step;
+
+
+ /**
+ * 是否是范围选择
+ */
+ private Boolean range;
+
+ /**
+ * 按钮控制位置
+ */
+ private String controlsPosition;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SwitchExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SwitchExpandStruct.java
new file mode 100644
index 0000000000..af96d2e567
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/SwitchExpandStruct.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 输入框配置
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class SwitchExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TextareaExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TextareaExpandStruct.java
new file mode 100644
index 0000000000..828dc7b5f3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TextareaExpandStruct.java
@@ -0,0 +1,27 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 多行文本
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class TextareaExpandStruct {
+
+ /**
+ * 最大行数
+ */
+ public Integer maxRows;
+ /**
+ * 最小行数
+ */
+ public Integer minRows;
+
+ /**
+ * 最大长度
+ */
+ private Long maxlength;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeExpandStruct.java
new file mode 100644
index 0000000000..e505722dd0
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeExpandStruct.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 时间选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class TimeExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeRangeExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeRangeExpandStruct.java
new file mode 100644
index 0000000000..6ecd0a89c8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/TimeRangeExpandStruct.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 时间区间选择
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class TimeRangeExpandStruct {
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadExpandStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadExpandStruct.java
new file mode 100644
index 0000000000..28ede6b16b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadExpandStruct.java
@@ -0,0 +1,53 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+/**
+ * @author : smalljop
+ * @description : 上传文件
+ * @create : 2020-11-19 11:42
+ **/
+@Data
+public class UploadExpandStruct {
+
+
+ /**
+ * 按钮文字
+ */
+ private String buttonText;
+
+ /**
+ * 显示提示
+ */
+ private Boolean showTip;
+
+ /**
+ * 文件大小
+ */
+ private Long fileSize;
+
+ /**
+ * 大小单位
+ */
+ private String sizeUnit;
+
+ /**
+ * 显示列表类型
+ */
+ private String listType;
+
+
+ /**
+ * 文件数字
+ */
+ private Integer limit;
+
+ /**
+ * 是否可以多选
+ */
+ private boolean multiple;
+ /**
+ * 允许上传的文件类型
+ */
+ private String accept;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadResultStruct.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadResultStruct.java
new file mode 100644
index 0000000000..f45409966b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/struct/UploadResultStruct.java
@@ -0,0 +1,22 @@
+package com.epmet.dataaggre.dto.epmettduck.struct;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author : smalljop
+ * @description : 上传收集结果
+ * @create : 2021/06/07 16:37
+ **/
+@Data
+public class UploadResultStruct {
+
+ private List files;
+
+ @Data
+ public static class UploadFile {
+ private String fileName;
+ private String url;
+ }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java
index b12ea53fec..a03406f0d0 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java
@@ -21,6 +21,11 @@ public class CustomerStaffResultDTO implements Serializable {
*/
private String agencyId;
+ /**
+ * 工作人员所属组织ID的pids
+ */
+ private String agencyPIds;
+
/**
* 工作人员所属组织名称
*/
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SubOrgFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SubOrgFormDTO.java
index effc43d25c..dca75903ab 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SubOrgFormDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SubOrgFormDTO.java
@@ -15,6 +15,10 @@ public class SubOrgFormDTO implements Serializable {
private static final long serialVersionUID = -3651225675593357002L;
@NotBlank(message = "组织ID不能为空")
private String agencyId;
+ /**
+ * 所属端 居民端resi,工作端gov
+ */
+ private String client;
/**
* 是否包括我(1 是,0 否)
*/
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgTreeResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgTreeResultDTO.java
new file mode 100644
index 0000000000..b9b6c724cd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgTreeResultDTO.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dto.govorg.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2021/9/16 16:50
+ */
+@Data
+public class OrgTreeResultDTO implements Serializable {
+ private static final long serialVersionUID = -4304356050545598564L;
+ private String orgId;
+ private String orgName;
+ private String orgType;
+ private String orgPids;
+ private List subOrgList;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
index a08ce28aea..b9835924ff 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
@@ -200,6 +200,13 @@
epmet_message_user
EpmEt-db-UsEr
+
+
+
+
+ epmet_tduck_user
+ EpmEt-db-UsEr
+
0
192.168.1.140
@@ -307,6 +314,13 @@
epmet_message_user
EpmEt-db-UsEr
+
+
+
+
+ epmet_tduck_user
+ EpmEt-db-UsEr
+
0
192.168.1.140
@@ -414,6 +428,13 @@
epmet
elink@833066
+
+
+
+
+ epmet
+ elink@833066
+
0
r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com
@@ -521,6 +542,13 @@
epmet_message_user
EpmEt-db-UsEr
+
+
+
+
+ epmet_tduck
+ EpmEt-db-UsEr
+
0
r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java
new file mode 100644
index 0000000000..101313d56c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java
@@ -0,0 +1,181 @@
+package com.epmet.dataaggre.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.constant.AppClientConstant;
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.ValidateException;
+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.epmettduck.PrPublishRangeDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.*;
+import com.epmet.dataaggre.dto.epmettduck.result.*;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectItemEntity;
+import com.epmet.dataaggre.service.QuestionnaireService;
+import com.epmet.dataaggre.service.epmettduck.PrUserProjectItemService;
+import com.epmet.dataaggre.service.epmettduck.PrUserProjectService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/9/15 2:43 下午
+ * @DESC
+ */
+@RestController
+@RequestMapping("questionnaire")
+public class EpmetTDuckController {
+ @Autowired
+ private PrUserProjectService prUserProjectService;
+ @Autowired
+ private PrUserProjectItemService projectItemService;
+ @Autowired
+ private QuestionnaireService questionnaireService;
+
+
+ /**
+ * 问卷概要
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author yinzuomei
+ * @date 2021/9/16 2:54 下午
+ */
+ @PostMapping("projectprofile")
+ public Result queryProjectProfile(@RequestBody ProjectKeyCommonDTO formDTO){
+ return new Result().ok(prUserProjectService.queryProjectProfile(formDTO.getProjectKey()));
+ }
+
+ /**
+ * @Description 问卷调查详情
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/16 2:51 下午
+ */
+ @PostMapping("detail")
+ public Result> queryProjectItem(@RequestBody TDuckDetailFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, TDuckDetailFormDTO.TDuckDetailForm.class);
+ return new Result>().ok(projectItemService.queryProjectItem(formDTO));
+ }
+ /**
+ * 分析报告
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author yinzuomei
+ * @date 2021/9/16 5:56 下午
+ */
+ @PostMapping("analysisreport")
+ public Result> queryAnalysisReport(@RequestBody ProjectKeyCommonDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class);
+ return new Result>().ok(prUserProjectService.queryAnalysisReport(formDTO.getProjectKey()));
+ }
+
+ /**
+ * @Description 问卷调查列表
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/18 10:29 上午
+ */
+ @PostMapping("list")
+ public Result> queryProjectList(@RequestBody TDuckListFormDTO formDTO,@LoginUser TokenDto tokenDto){
+ ValidatorUtils.validateEntity(formDTO,TDuckListFormDTO.TDuckListForm.class);
+ formDTO.setUserId(tokenDto.getUserId());
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ return new Result>().ok(prUserProjectService.queryProjectList(formDTO));
+ }
+
+ /**
+ * @Description 查询问卷调查的头部信息
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/18 10:35 上午
+ */
+ @PostMapping("headerinfo")
+ public Result headerInfo(@RequestBody TDuckHeaderInfoFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, TDuckHeaderInfoFormDTO.TDuckHeaderInfoForm.class);
+ return new Result().ok(prUserProjectService.headerInfo(formDTO));
+ }
+
+ /**
+ * @Description 获取发布范围
+ * @Param formDTO
+ * @Return {@link Result< GetRangeResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2021/9/18 15:18
+ */
+ @PostMapping("getrange")
+ public Result getRange(@RequestBody PrPublishRangeDTO formDTO) {
+ return new Result().ok(prUserProjectService.getRange(formDTO.getProjectKey()));
+ }
+
+ /**
+ * 查看详情
+ * 1、联系人组件统一用一个统计显示多少条,点击查看更多显示汇总列表,如有非必填项没有填写显示空(手机号验证不需要统计)
+ * 2、单行文本、多行文本、时间选择、时间范围、日期选择、日期范围,统计填写人数,点击查看列表
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author yinzuomei
+ * @date 2021/9/22 1:37 下午
+ */
+ @PostMapping("itemresdetail-list")
+ public Result> queryItemResDetail(@RequestBody ItemResDetailFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class);
+ return new Result>().ok(prUserProjectService.queryItemResDetail(formDTO));
+ }
+
+ /**
+ * 联系人组件-查看详情
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author yinzuomei
+ * @date 2021/9/22 2:57 下午
+ */
+ @PostMapping("itemresdetail-concat")
+ public Result queryItemResDetailConcat(@RequestBody ProjectKeyCommonDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class);
+ return new Result().ok(prUserProjectService.queryItemResDetailConcat(formDTO));
+ }
+
+ @PostMapping("redpoint")
+ public Result redPoint(@LoginUser TokenDto tokenDto) {
+ return new Result().ok(prUserProjectService.redPoint(tokenDto));
+ }
+
+ /**
+ * @description 校验权限,并且获取accesskey
+ *
+ * @param input
+ * @return
+ * @author wxz
+ * @date 2021.09.23 15:13:53
+ */
+ @PostMapping("/permission-validate")
+ public Result permissionValidate(@RequestBody TDuckDetailFormDTO input, @LoginUser TokenDto loginUserInfo, @RequestHeader("customerId") String customerId) {
+ ValidatorUtils.validateEntity(input, TDuckDetailFormDTO.PermissionValidate.class);
+ // 所用端的类型:gov:工作端,resi居民端
+ String app = loginUserInfo.getApp();
+ String orgId = input.getOrgId();
+ String projectKey = input.getKey();
+ String userId = loginUserInfo.getUserId();
+
+ PermissionValidateResultDTO r = null;
+ if (AppClientConstant.APP_RESI.equals(app)) {
+ if (StringUtils.isBlank(orgId) || !"grid".equals(input.getOrgType())) {
+ // 居民端,orgId是网格id,必填
+ throw new ValidateException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(), "【调查问卷】校验访问权限-居民端 orgId不能为空,且orgType需要为[grid]");
+ }
+ r = questionnaireService.resiPermissionValidate(projectKey, userId, orgId);
+ } else if (AppClientConstant.APP_GOV.equals(app)) {
+ // 工作端
+ r = questionnaireService.govPermissionValidate(projectKey, userId, customerId);
+ }
+
+ return new Result().ok(r);
+ }
+}
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
index 561dff2acc..17f939b2c6 100644
--- 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
@@ -165,4 +165,17 @@ public class GovOrgController {
return new Result().ok(govOrgService.getSubOrg(formDTO));
}
+ /**
+ * @Description 当前组织级下级组织树
+ * @Param tokenDto
+ * @Param formDTO
+ * @Return {@link Result< OrgTreeResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2021/9/17 14:02
+ */
+ @PostMapping("agencytree")
+ public Result> getAgencyTree(@LoginUser TokenDto tokenDto, @RequestBody SubOrgFormDTO formDTO) {
+ return new Result>().ok(govOrgService.getAgencyTree(tokenDto, formDTO));
+ }
+
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/AcUserAuthorizeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/AcUserAuthorizeDao.java
new file mode 100644
index 0000000000..e9ecd3404e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/AcUserAuthorizeDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.AcUserAuthorizeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 第三方用户授权信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface AcUserAuthorizeDao 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/epmettduck/AcUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/AcUserDao.java
new file mode 100644
index 0000000000..80fc110012
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/AcUserDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.AcUserEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface AcUserDao 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/epmettduck/PrProjectTemplateCategoryDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateCategoryDao.java
new file mode 100644
index 0000000000..4446abbd70
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateCategoryDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateCategoryEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目模板分类
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrProjectTemplateCategoryDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateDao.java
new file mode 100644
index 0000000000..570e6a224b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrProjectTemplateDao 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/epmettduck/PrProjectTemplateItemDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateItemDao.java
new file mode 100644
index 0000000000..cf857e5eea
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectTemplateItemDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateItemEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrProjectTemplateItemDao 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/epmettduck/PrProjectThemeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectThemeDao.java
new file mode 100644
index 0000000000..bb2d70f35a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrProjectThemeDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectThemeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目主题外观模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrProjectThemeDao 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/epmettduck/PrPublishRangeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrPublishRangeDao.java
new file mode 100644
index 0000000000..8c34b43604
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrPublishRangeDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrPublishRangeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目发布范围表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrPublishRangeDao 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/epmettduck/PrResultExtDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrResultExtDao.java
new file mode 100644
index 0000000000..9fa0907418
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrResultExtDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrResultExtEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 问卷填写附属信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrResultExtDao 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/epmettduck/PrUserProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java
new file mode 100644
index 0000000000..68f185ad89
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java
@@ -0,0 +1,77 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO;
+import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO;
+import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectDao extends BaseDao {
+ /**
+ * 问卷概要
+ *
+ * @param projectKey
+ * @return com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO
+ * @author yinzuomei
+ * @date 2021/9/16 2:58 下午
+ */
+ ProjectProfileResultDTO queryProjectProfile(String projectKey);
+
+ /**
+ * 分析报告展示的题目列表
+ *
+ * @param projectKey
+ * @return java.util.List
+ * @author yinzuomei
+ * @date 2021/9/16 5:59 下午
+ */
+ List selectItems(String projectKey);
+
+ /**
+ * 查询结果项
+ *
+ * @param projectKey
+ * @return java.util.List
+ * @author yinzuomei
+ * @date 2021/9/16 6:18 下午
+ */
+ List selectResults(String projectKey);
+
+ /**
+ * @Description 查询范围内的问卷调查
+ * @Param orgId
+ * @author zxc
+ * @date 2021/9/17 2:16 下午
+ */
+ List selectProjectKey(@Param("orgIds")List orgIds);
+
+ /**
+ * @Description 根据keys查询project
+ * @Param keys
+ * @author zxc
+ * @date 2021/9/17 3:41 下午
+ */
+ List queryProjectList(@Param("keys")List keys, @Param("status")Integer status,@Param("client")String client);
+
+ /**
+ * 当前问卷中所有的联系人组件
+ *
+ * @param projectKey
+ * @return java.util.List
+ * @author yinzuomei
+ * @date 2021/9/22 3:04 下午
+ */
+ List selectCocatItems(String projectKey);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectItemDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectItemDao.java
new file mode 100644
index 0000000000..c98c794092
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectItemDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectItemEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectItemDao 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/epmettduck/PrUserProjectLogicDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectLogicDao.java
new file mode 100644
index 0000000000..419f270dc9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectLogicDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectLogicEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目逻辑
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectLogicDao 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/epmettduck/PrUserProjectResultDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectResultDao.java
new file mode 100644
index 0000000000..eac14a49b8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectResultDao.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectResultDao extends BaseDao {
+
+ List selectFillRecordByUserId(@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/epmettduck/PrUserProjectSettingDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectSettingDao.java
new file mode 100644
index 0000000000..02fe88207b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectSettingDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectSettingEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectSettingDao 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/epmettduck/PrUserProjectThemeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectThemeDao.java
new file mode 100644
index 0000000000..1344849bc6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectThemeDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectThemeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrUserProjectThemeDao 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/epmettduck/PrVistRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java
new file mode 100644
index 0000000000..5714df590e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java
@@ -0,0 +1,21 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.PrVistRecordEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 用户访问问卷记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface PrVistRecordDao 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/epmettduck/WxMpUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/WxMpUserDao.java
new file mode 100644
index 0000000000..2894fd9c61
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/WxMpUserDao.java
@@ -0,0 +1,16 @@
+package com.epmet.dataaggre.dao.epmettduck;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmettduck.WxMpUserEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 微信公众号用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Mapper
+public interface WxMpUserDao 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
index 544f7387dd..bd29030255 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
@@ -18,10 +18,7 @@
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.dto.govorg.result.StaffAgencyGridListResultDTO;
-import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO;
-import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO;
+import com.epmet.dataaggre.dto.govorg.result.*;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -74,4 +71,31 @@ public interface CustomerAgencyDao extends BaseDao {
* @return
*/
StaffOrgRelationResultDTO getStaffFromOrgType(@Param("staffId") String staffId);
+ /**
+ * @Description 工作端组织级下级组织树
+ * @Param agencyId
+ * @Return {@link OrgTreeResultDTO}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:16
+ */
+ OrgTreeResultDTO getOrgTree(@Param("agencyId") String agencyId);
+ List getSubOrgList(@Param("pid") String pid);
+ /**
+ * @Description 居民端组织级下级组织树
+ * @Param agencyId
+ * @Return {@link OrgTreeResultDTO}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:16
+ */
+ OrgTreeResultDTO getResiOrgTree(@Param("agencyId") String agencyId);
+ List getResiSubOrgList(@Param("pid") String pid);
+
+ /**
+ * @Description 工作人员所在的组织,部门,网格
+ * @Param staffId
+ * @Return {@link List< String>}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:16
+ */
+ List getOrgList(@Param("staffId") String staffId);
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserAuthorizeEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserAuthorizeEntity.java
new file mode 100644
index 0000000000..8573983676
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserAuthorizeEntity.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 第三方用户授权信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ac_user_authorize")
+public class AcUserAuthorizeEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 第三方平台类型
+ */
+ private Integer type;
+
+ /**
+ * 平台AppId
+ */
+ private String appId;
+
+ /**
+ * 平台OpenId
+ */
+ private String openId;
+
+ /**
+ * 平台用户名
+ */
+ private String userName;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 平台用户信息
+ */
+ private String userInfo;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserEntity.java
new file mode 100644
index 0000000000..3b6f74e8ab
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/AcUserEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("ac_user")
+public class AcUserEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 姓名
+ */
+ private String name;
+
+ /**
+ * 头像
+ */
+ private String avatar;
+
+ /**
+ * 性别0未知 1男2女
+ */
+ private Integer gender;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 手机号
+ */
+ private String phoneNumber;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 注册渠道
+ */
+ private String regChannel;
+
+ /**
+ * 最后登录渠道
+ */
+ private Integer lastLoginChannel;
+
+ /**
+ * 最后登录时间
+ */
+ private Date lastLoginTime;
+
+ /**
+ * 最后登录Ip
+ */
+ private String lastLoginIp;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateCategoryEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateCategoryEntity.java
new file mode 100644
index 0000000000..c575a16456
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateCategoryEntity.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目模板分类
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_project_template_category")
+public class PrProjectTemplateCategoryEntity extends BaseEpmetEntity{
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 主题名称
+ */
+ private String name;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateEntity.java
new file mode 100644
index 0000000000..6d87744261
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_project_template")
+public class PrProjectTemplateEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 模板唯一标识
+ */
+ private String key;
+
+ /**
+ * 封面图
+ */
+ private String coverImg;
+
+ /**
+ * 项目名称
+ */
+ private String name;
+
+ /**
+ * 项目描述
+ */
+ private String describe;
+
+ /**
+ * 喜欢数
+ */
+ private Integer likeCount;
+
+ /**
+ * 项目类型
+ */
+ private String categoryId;
+
+ /**
+ * 状态
+ */
+ private Integer status;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateItemEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateItemEntity.java
new file mode 100644
index 0000000000..4b109d6df9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectTemplateItemEntity.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_project_template_item")
+public class PrProjectTemplateItemEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ /**
+ * 表单项类型
+ */
+ private String type;
+
+ /**
+ * 表单项标题
+ */
+ private String label;
+
+ /**
+ * 是否显示标签
+ */
+ private Integer showLabel;
+
+ /**
+ * 表单项默认值
+ */
+ private String defaultValue;
+
+ /**
+ * 是否必填
+ */
+ private Integer required;
+
+ /**
+ * 输入型提示文字
+ */
+ private String placeholder;
+
+ /**
+ * 排序
+ */
+ private Long sort;
+
+ /**
+ * 栅格宽度
+ */
+ private Integer span;
+
+ /**
+ * 扩展字段 表单项独有字段
+ */
+ private String expand;
+
+ /**
+ * 正则表达式
+ */
+ private String regList;
+
+ /**
+ * 展示类型组件
+ */
+ private Integer isDisplayType;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectThemeEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectThemeEntity.java
new file mode 100644
index 0000000000..b3790a9b43
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrProjectThemeEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目主题外观模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_project_theme")
+public class PrProjectThemeEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 主题名称
+ */
+ private String name;
+
+ /**
+ * 主题风格
+
+ */
+ private String style;
+
+ /**
+ * 头部图片
+ */
+ private String headImgUrl;
+
+ /**
+ * 颜色代码
+ */
+ private String color;
+
+ /**
+ * 按钮颜色
+ */
+ private String btnsColor;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrPublishRangeEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrPublishRangeEntity.java
new file mode 100644
index 0000000000..c69e65d3f1
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrPublishRangeEntity.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目发布范围表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_publish_range")
+public class PrPublishRangeEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 范围组织ids,格式与组织维度一致 冒号隔开 即选中节点的全路径id
+ */
+ private String orgIds;
+
+ /**
+ * 最后发布组织的ID
+ */
+ private String orgId;
+
+ /**
+ * 最后发布组织的类型;department,agency;grid
+ */
+ private String orgType;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrResultExtEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrResultExtEntity.java
new file mode 100644
index 0000000000..00029fd51b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrResultExtEntity.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 问卷填写附属信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_result_ext")
+public class PrResultExtEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String userId;
+
+ /**
+ * 结果Id
+ */
+ private String resultId;
+
+ /**
+ * 工作端小程序:gov、居民端小程序:resi、运营端:oper、其他:other
+ */
+ private String userType;
+
+ /**
+ * 在哪个组织填写的
+ */
+ private String fromOrgId;
+
+ /**
+ * 组织:agency;部门:department;网格:grid
+ */
+ private String fromOrgType;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectEntity.java
new file mode 100644
index 0000000000..5d06a44213
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectEntity.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_user_project")
+public class PrUserProjectEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 项目code
+ */
+ @TableField("`key`")
+ private String key;
+
+ /**
+ * 来源Id
+ */
+ private String sourceId;
+
+ /**
+ * 来源类型
+ */
+ private Integer sourceType;
+
+ /**
+ * 项目名称
+ */
+ private String name;
+
+ /**
+ * 项目描述
+ */
+ @TableField("`describe`")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ private String userId;
+
+ /**
+ * 项目类型
+ */
+ private Integer type;
+
+ /**
+ * 状态
+ */
+ private Integer status;
+
+ /**
+ * 适用于哪个端 resi:居民端用户;gov:工作端用户;运营端用户:oper
+ */
+ private String client;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.java
new file mode 100644
index 0000000000..e3ce844e69
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectItemEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import com.epmet.dataaggre.dto.epmettduck.ProjectItemTypeEnum;
+import com.epmet.dataaggre.dto.epmettduck.struct.ItemDefaultValueStruct;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.apache.ibatis.type.EnumTypeHandler;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@Accessors(chain = true)
+@TableName(value = "pr_user_project_item", autoResultMap = true)
+@FieldNameConstants
+public class PrUserProjectItemEntity extends BaseEpmetEntity{
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 表单项Id
+ */
+ private String formItemId;
+
+ /**
+ * 表单项类型
+ */
+ @TableField(typeHandler = EnumTypeHandler.class)
+ private ProjectItemTypeEnum type;
+
+ /**
+ * 表单项标题
+ */
+ private String label;
+
+ /**
+ * 展示类型组件
+ */
+ @TableField("is_display_type")
+ private Integer displayType;
+
+ /**
+ * 是否显示标签
+ */
+ private Boolean showLabel;
+
+ /**
+ * 表单项默认值
+ */
+ @TableField(value = "default_value",typeHandler = JacksonTypeHandler.class)
+ private ItemDefaultValueStruct defaultValue;
+
+ /**
+ * 是否必填
+ */
+ private Boolean required;
+
+ /**
+ * 输入型提示文字
+ */
+ private String placeholder;
+
+ /**
+ * 排序
+ */
+ private Long sort;
+
+ /**
+ * 栅格宽度
+ */
+ private Integer span;
+
+ /**
+ * 扩展字段 表单项独有字段
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private Map expand;
+
+ /**
+ * 正则表达式
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private List> regList;
+
+ /**
+ * 组件类型:联系人组件:concat;输入型组件:input;图片型组件:image;辅助型组件:assist;选择性组件:choose
+ */
+ private String moduleType;
+ /**
+ * 与type一致,手机号:phone;邮箱:email;身份证号:idCard。。。。详见数据库
+ */
+ private String itemKey;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectLogicEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectLogicEntity.java
new file mode 100644
index 0000000000..7c565fed9e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectLogicEntity.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目逻辑
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_user_project_logic")
+public class PrUserProjectLogicEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 逻辑Id
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 问题Id
+ */
+ private String formItemId;
+
+ /**
+ * 条件选项
+ */
+ private Integer expression;
+
+ /**
+ * 条件列表
+ */
+ private String conditionList;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectResultEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectResultEntity.java
new file mode 100644
index 0000000000..9f46a03222
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectResultEntity.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_user_project_result")
+public class PrUserProjectResultEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 序号
+ */
+ private Integer serialNumber;
+
+ /**
+ * 填写结果
+ */
+ private String originalData;
+
+ /**
+ * 填写结果
+ */
+ private String processData;
+
+ /**
+ * 提交ua
+ */
+ private String submitUa;
+
+ /**
+ * 提交系统
+ */
+ private String submitOs;
+
+ /**
+ * 提交浏览器
+ */
+ private String submitBrowser;
+
+ /**
+ * 请求ip
+ */
+ private String submitRequestIp;
+
+ /**
+ * 提交地址
+ */
+ private String submitAddress;
+
+ /**
+ * 完成时间 毫秒
+ */
+ private Integer completeTime;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 微信openId
+ */
+ private String wxOpenId;
+
+ /**
+ * 微信用户信息
+ */
+ private String wxUserInfo;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectSettingEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectSettingEntity.java
new file mode 100644
index 0000000000..d4b352e21b
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectSettingEntity.java
@@ -0,0 +1,161 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_user_project_setting")
+public class PrUserProjectSettingEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 提交提示图片
+ */
+ private String submitPromptImg;
+
+ /**
+ * 提交提示文字
+ */
+ private String submitPromptText;
+
+ /**
+ * 提交跳转连接
+ */
+ private String submitJumpUrl;
+
+ /**
+ * 公开提交结果
+ */
+ private Integer isPublicResult;
+
+ /**
+ * 只在微信填写
+ */
+ private Integer isWxWrite;
+
+ /**
+ *
+ */
+ private Integer isWxWriteOnce;
+
+ /**
+ * 每人只能填写一次
+ */
+ private Integer isEveryoneWriteOnce;
+
+ /**
+ * 每人每天只能填写一次
+ */
+ private Integer isEveryoneDayWriteOnce;
+
+ /**
+ * 填写之后提示
+ */
+ private String writeOncePromptText;
+
+ /**
+ * 新反馈通知邮件
+ */
+ private String newWriteNotifyEmail;
+
+ /**
+ * 新反馈通知微信
+ */
+ private String newWriteNotifyWx;
+
+ /**
+ * 记录微信用户个人信息
+ */
+ private Integer isRecordWxUser;
+
+ /**
+ * 定时收集开始时间
+ */
+ private Date timedCollectionBeginTime;
+
+ /**
+ * 定时收集结束时间
+ */
+ private Date timedCollectionEndTime;
+
+ /**
+ * 定时未启动提示文字
+ */
+ private String timedNotEnabledPromptText;
+
+ /**
+ * 定时停用会提示文字
+ */
+ private String timedDeactivatePromptText;
+
+ /**
+ * 定时定量数量
+ */
+ private Integer timedQuantitativeQuantity;
+
+ /**
+ * 定时定量完成提示
+ */
+ private String timedEndPromptText;
+
+ /**
+ * 分享图片
+ */
+ private String shareImg;
+
+ /**
+ * 分享标题
+ */
+ private String shareTitle;
+
+ /**
+ * 分享描述
+ */
+ private String shareDesc;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectThemeEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectThemeEntity.java
new file mode 100644
index 0000000000..db6d6192a8
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrUserProjectThemeEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_user_project_theme")
+public class PrUserProjectThemeEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+ /**
+ * 主题Id
+ */
+ private String themeId;
+
+ /**
+ * 提交按钮文字
+ */
+ private String submitBtnText;
+
+ /**
+ * logo图片
+ */
+ private String logoImg;
+
+ /**
+ * logo位置
+ */
+ private String logoPosition;
+
+ /**
+ * 背景颜色
+ */
+ private String backgroundColor;
+
+ /**
+ * 背景图片
+ */
+ private String backgroundImg;
+
+ /**
+ * 是否显示标题
+ */
+ private Integer showTitle;
+
+ /**
+ * 是否显示描述语
+ */
+ private Integer showDescribe;
+
+ /**
+ * 显示序号
+ */
+ private Integer showNumber;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java
new file mode 100644
index 0000000000..00864276e1
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 用户访问问卷记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("pr_vist_record")
+public class PrVistRecordEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 姓名
+ */
+ private String userId;
+
+ /**
+ * 工作端小程序:gov、居民端小程序:resi、运营端:oper、其他:other
+ */
+ private String userType;
+
+ /**
+ * 项目key
+ */
+ private String projectKey;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/WxMpUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/WxMpUserEntity.java
new file mode 100644
index 0000000000..e51905536c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/WxMpUserEntity.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.entity.epmettduck;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 微信公众号用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("wx_mp_user")
+public class WxMpUserEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 公众号AppId
+ */
+ private String appid;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 性别
+ */
+ private Integer sex;
+
+ /**
+ * 头像
+ */
+ private String headImgUrl;
+
+ /**
+ *
+ */
+ private String unionId;
+
+ /**
+ *
+ */
+ private String openId;
+
+ /**
+ * 国家
+ */
+ private String country;
+
+ /**
+ * 省
+ */
+ private String province;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 是否关注
+ */
+ private Integer isSubscribe;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/QuestionnaireService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/QuestionnaireService.java
new file mode 100644
index 0000000000..c23f7f1245
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/QuestionnaireService.java
@@ -0,0 +1,9 @@
+package com.epmet.dataaggre.service;
+
+import com.epmet.dataaggre.dto.epmettduck.result.PermissionValidateResultDTO;
+
+public interface QuestionnaireService {
+ PermissionValidateResultDTO resiPermissionValidate(String projectKey, String userId, String gridId);
+
+ PermissionValidateResultDTO govPermissionValidate(String projectKey, String staffId, String customerId);
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserAuthorizeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserAuthorizeService.java
new file mode 100644
index 0000000000..84b2002e8a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserAuthorizeService.java
@@ -0,0 +1,78 @@
+package com.epmet.dataaggre.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.AcUserAuthorizeDTO;
+import com.epmet.dataaggre.entity.epmettduck.AcUserAuthorizeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 第三方用户授权信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface AcUserAuthorizeService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return AcUserAuthorizeDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ AcUserAuthorizeDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(AcUserAuthorizeDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(AcUserAuthorizeDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserService.java
new file mode 100644
index 0000000000..3ab7e664e9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/AcUserService.java
@@ -0,0 +1,78 @@
+package com.epmet.dataaggre.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.AcUserDTO;
+import com.epmet.dataaggre.entity.epmettduck.AcUserEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface AcUserService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return AcUserDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ AcUserDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(AcUserDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(AcUserDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateCategoryService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateCategoryService.java
new file mode 100644
index 0000000000..360af280e9
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateCategoryService.java
@@ -0,0 +1,14 @@
+package com.epmet.dataaggre.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateCategoryEntity;
+
+/**
+ * 项目模板分类
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrProjectTemplateCategoryService {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateItemService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateItemService.java
new file mode 100644
index 0000000000..26803febd3
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateItemService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectTemplateItemDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateItemEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrProjectTemplateItemService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrProjectTemplateItemDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrProjectTemplateItemDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrProjectTemplateItemDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrProjectTemplateItemDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateService.java
new file mode 100644
index 0000000000..52b6f23deb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectTemplateService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectTemplateDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrProjectTemplateService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrProjectTemplateDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrProjectTemplateDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrProjectTemplateDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrProjectTemplateDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectThemeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectThemeService.java
new file mode 100644
index 0000000000..5144ceb67a
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrProjectThemeService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectThemeDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectThemeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目主题外观模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrProjectThemeService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrProjectThemeDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrProjectThemeDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrProjectThemeDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrProjectThemeDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java
new file mode 100644
index 0000000000..66a2dbb79e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java
@@ -0,0 +1,123 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrPublishRangeDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrPublishRangeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目发布范围表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrPublishRangeService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrPublishRangeDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrPublishRangeDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrPublishRangeDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrPublishRangeDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+
+ /**
+ * @Description 发布范围组织列表
+ * @Param projectKey
+ * @Return {@link List< String>}
+ * @Author zhaoqifeng
+ * @Date 2021/9/18 15:28
+ */
+ List getRangeOrgList(String projectKey);
+
+ /**
+ * @description 使用projectKey查询发布范围entity
+ *
+ * @param projectKey
+ * @return
+ * @author wxz
+ * @date 2021.09.23 23:04:23
+ */
+ List getPublishRangeEntity(String projectKey);
+
+ /**
+ * @Description 获取组织范围内的问卷
+ * @Param orgList
+ * @Return {@link List< PrPublishRangeDTO>}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:27
+ */
+ List getListByOrg(List orgList);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrResultExtService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrResultExtService.java
new file mode 100644
index 0000000000..98f7e0b713
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrResultExtService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrResultExtDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrResultExtEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 问卷填写附属信息表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrResultExtService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrResultExtDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrResultExtDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrResultExtDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrResultExtDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectItemService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectItemService.java
new file mode 100644
index 0000000000..74d1ddd332
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectItemService.java
@@ -0,0 +1,28 @@
+package com.epmet.dataaggre.service.epmettduck;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectItemDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.TDuckDetailFormDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectItemEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectItemService extends IService {
+
+ /**
+ * @Description 问卷调查详情
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/16 2:51 下午
+ */
+ List queryProjectItem(TDuckDetailFormDTO formDTO);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectLogicService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectLogicService.java
new file mode 100644
index 0000000000..5440d9a334
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectLogicService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectLogicDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectLogicEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目逻辑
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectLogicService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrUserProjectLogicDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrUserProjectLogicDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrUserProjectLogicDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrUserProjectLogicDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectResultService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectResultService.java
new file mode 100644
index 0000000000..aaa8a131e6
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectResultService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectResultDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectResultService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrUserProjectResultDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrUserProjectResultDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrUserProjectResultDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrUserProjectResultDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java
new file mode 100644
index 0000000000..93e437a043
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java
@@ -0,0 +1,187 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.ItemResDetailFormDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.ProjectKeyCommonDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.TDuckHeaderInfoFormDTO;
+import com.epmet.dataaggre.dto.epmettduck.form.TDuckListFormDTO;
+import com.epmet.dataaggre.dto.epmettduck.result.*;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrUserProjectDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrUserProjectDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrUserProjectDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrUserProjectDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+
+ /**
+ * 问卷概要
+ *
+ * @param projectKey
+ * @return com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO
+ * @author yinzuomei
+ * @date 2021/9/16 2:54 下午
+ */
+ ProjectProfileResultDTO queryProjectProfile(String projectKey);
+
+ /**
+ * @Description 问卷调查列表
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/18 10:29 上午
+ */
+ List queryProjectList(TDuckListFormDTO formDTO);
+
+ /**
+ * 分析报告
+ *
+ * @param projectKey
+ * @return com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO
+ * @author yinzuomei
+ * @date 2021/9/16 5:57 下午
+ */
+ List queryAnalysisReport(String projectKey);
+
+ /**
+ * @Description 查询问卷调查的头部信息
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/9/18 10:35 上午
+ */
+ PrUserProjectEntity headerInfo(TDuckHeaderInfoFormDTO formDTO);
+
+ /**
+ * @Description 获取发布范围
+ * @Param projectKey
+ * @Return {@link GetRangeResultDTO}
+ * @Author zhaoqifeng
+ * @Date 2021/9/18 15:18
+ */
+ GetRangeResultDTO getRange(String projectKey);
+
+ /**
+ * 查看详情
+ * 1、联系人组件统一用一个统计显示多少条,点击查看更多显示汇总列表,如有非必填项没有填写显示空(手机号验证不需要统计)
+ * 2、单行文本、多行文本、时间选择、时间范围、日期选择、日期范围,统计填写人数,点击查看列表
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author yinzuomei
+ * @date 2021/9/22 1:37 下午
+ */
+ List queryItemResDetail(ItemResDetailFormDTO formDTO);
+
+ /**
+ * 联系人组件
+ *
+ * @param formDTO
+ * @return com.epmet.dataaggre.dto.epmettduck.result.ItemResDetailConcatResultDTO
+ * @author yinzuomei
+ * @date 2021/9/22 2:57 下午
+ */
+ ItemResDetailConcatResultDTO queryItemResDetailConcat(ProjectKeyCommonDTO formDTO);
+
+ /**
+ * 有新的问卷显示小红点
+ * @Param tokenDto
+ * @Return {@link RedPointResultDTO}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 10:05
+ */
+ RedPointResultDTO redPoint(TokenDto tokenDto);
+
+ /**
+ * @description 根据key查询问卷
+ *
+ * @param key
+ * @return
+ * @author wxz
+ * @date 2021.09.23 22:25:57
+ */
+ PrUserProjectEntity getProjectEntityBykey(String key);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectSettingService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectSettingService.java
new file mode 100644
index 0000000000..67111d9eb4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectSettingService.java
@@ -0,0 +1,78 @@
+package com.epmet.dataaggre.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectSettingDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectSettingEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectSettingService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrUserProjectSettingDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrUserProjectSettingDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrUserProjectSettingDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrUserProjectSettingDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectThemeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectThemeService.java
new file mode 100644
index 0000000000..48fc3f1d63
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectThemeService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrUserProjectThemeDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrUserProjectThemeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrUserProjectThemeService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrUserProjectThemeDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrUserProjectThemeDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrUserProjectThemeDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrUserProjectThemeDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java
new file mode 100644
index 0000000000..691e4cdc95
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.PrVistRecordDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrVistRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户访问问卷记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface PrVistRecordService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return PrVistRecordDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ PrVistRecordDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(PrVistRecordDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(PrVistRecordDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+
+ /**
+ * @Description 获取最新访问记录
+ * @Param staffId
+ * @Return {@link PrVistRecordDTO}
+ * @Author zhaoqifeng
+ * @Date 2021/9/23 14:16
+ */
+ PrVistRecordDTO getNewestRecord(String staffId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/WxMpUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/WxMpUserService.java
new file mode 100644
index 0000000000..b65983748c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/WxMpUserService.java
@@ -0,0 +1,95 @@
+/**
+ * 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.service.epmettduck;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dataaggre.dto.epmettduck.WxMpUserDTO;
+import com.epmet.dataaggre.entity.epmettduck.WxMpUserEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 微信公众号用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+public interface WxMpUserService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-09-15
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-09-15
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return WxMpUserDTO
+ * @author generator
+ * @date 2021-09-15
+ */
+ WxMpUserDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void save(WxMpUserDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void update(WxMpUserDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-09-15
+ */
+ void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserAuthorizeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserAuthorizeServiceImpl.java
new file mode 100644
index 0000000000..2887bd8ecf
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserAuthorizeServiceImpl.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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.AcUserAuthorizeDao;
+import com.epmet.dataaggre.dto.epmettduck.AcUserAuthorizeDTO;
+import com.epmet.dataaggre.entity.epmettduck.AcUserAuthorizeEntity;
+import com.epmet.dataaggre.service.epmettduck.AcUserAuthorizeService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 第三方用户授权信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class AcUserAuthorizeServiceImpl extends BaseServiceImpl implements AcUserAuthorizeService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, AcUserAuthorizeDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, AcUserAuthorizeDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public AcUserAuthorizeDTO get(String id) {
+ AcUserAuthorizeEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, AcUserAuthorizeDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(AcUserAuthorizeDTO dto) {
+ AcUserAuthorizeEntity entity = ConvertUtils.sourceToTarget(dto, AcUserAuthorizeEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(AcUserAuthorizeDTO dto) {
+ AcUserAuthorizeEntity entity = ConvertUtils.sourceToTarget(dto, AcUserAuthorizeEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserServiceImpl.java
new file mode 100644
index 0000000000..c53ce7da8e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/AcUserServiceImpl.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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.AcUserDao;
+import com.epmet.dataaggre.dto.epmettduck.AcUserDTO;
+import com.epmet.dataaggre.entity.epmettduck.AcUserEntity;
+import com.epmet.dataaggre.service.epmettduck.AcUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class AcUserServiceImpl extends BaseServiceImpl implements AcUserService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, AcUserDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, AcUserDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public AcUserDTO get(String id) {
+ AcUserEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, AcUserDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(AcUserDTO dto) {
+ AcUserEntity entity = ConvertUtils.sourceToTarget(dto, AcUserEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(AcUserDTO dto) {
+ AcUserEntity entity = ConvertUtils.sourceToTarget(dto, AcUserEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateCategoryServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateCategoryServiceImpl.java
new file mode 100644
index 0000000000..bf82320282
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateCategoryServiceImpl.java
@@ -0,0 +1,37 @@
+/**
+ * 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.service.epmettduck.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.service.epmettduck.PrProjectTemplateCategoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目模板分类
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class PrProjectTemplateCategoryServiceImpl implements PrProjectTemplateCategoryService {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateItemServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateItemServiceImpl.java
new file mode 100644
index 0000000000..a903234d27
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateItemServiceImpl.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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.PrProjectTemplateItemDao;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectTemplateItemDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateItemEntity;
+import com.epmet.dataaggre.service.epmettduck.PrProjectTemplateItemService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表单项
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class PrProjectTemplateItemServiceImpl extends BaseServiceImpl implements PrProjectTemplateItemService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, PrProjectTemplateItemDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, PrProjectTemplateItemDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public PrProjectTemplateItemDTO get(String id) {
+ PrProjectTemplateItemEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, PrProjectTemplateItemDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(PrProjectTemplateItemDTO dto) {
+ PrProjectTemplateItemEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectTemplateItemEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(PrProjectTemplateItemDTO dto) {
+ PrProjectTemplateItemEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectTemplateItemEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateServiceImpl.java
new file mode 100644
index 0000000000..29eabe1520
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectTemplateServiceImpl.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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.PrProjectTemplateDao;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectTemplateDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectTemplateEntity;
+import com.epmet.dataaggre.service.epmettduck.PrProjectTemplateService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class PrProjectTemplateServiceImpl extends BaseServiceImpl implements PrProjectTemplateService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, PrProjectTemplateDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, PrProjectTemplateDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public PrProjectTemplateDTO get(String id) {
+ PrProjectTemplateEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, PrProjectTemplateDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(PrProjectTemplateDTO dto) {
+ PrProjectTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectTemplateEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(PrProjectTemplateDTO dto) {
+ PrProjectTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectTemplateEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectThemeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectThemeServiceImpl.java
new file mode 100644
index 0000000000..07345640c1
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrProjectThemeServiceImpl.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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.PrProjectThemeDao;
+import com.epmet.dataaggre.dto.epmettduck.PrProjectThemeDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrProjectThemeEntity;
+import com.epmet.dataaggre.service.epmettduck.PrProjectThemeService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目主题外观模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class PrProjectThemeServiceImpl extends BaseServiceImpl implements PrProjectThemeService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, PrProjectThemeDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, PrProjectThemeDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public PrProjectThemeDTO get(String id) {
+ PrProjectThemeEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, PrProjectThemeDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(PrProjectThemeDTO dto) {
+ PrProjectThemeEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectThemeEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(PrProjectThemeDTO dto) {
+ PrProjectThemeEntity entity = ConvertUtils.sourceToTarget(dto, PrProjectThemeEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java
new file mode 100644
index 0000000000..6865f8764e
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java
@@ -0,0 +1,160 @@
+/**
+ * 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.service.epmettduck.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmettduck.PrPublishRangeDao;
+import com.epmet.dataaggre.dto.epmettduck.PrPublishRangeDTO;
+import com.epmet.dataaggre.entity.epmettduck.PrPublishRangeEntity;
+import com.epmet.dataaggre.service.epmettduck.PrPublishRangeService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 项目发布范围表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-09-15
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EPMETTDUCK)
+@Service
+public class PrPublishRangeServiceImpl extends BaseServiceImpl implements PrPublishRangeService {
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, PrPublishRangeDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, PrPublishRangeDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper