images;
+
+ /**
+ * 部门名称
+ */
+ private String deptName;
+
+ /**
+ * 创建时间
+ */
+ private String createdTime;
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java
new file mode 100644
index 00000000..17c9f46a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/topic/result/TopicResultDTO.java
@@ -0,0 +1,61 @@
+package com.elink.esua.epdc.dto.topic.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 话题列表DTO
+ * @Author yinzuomei
+ * @Date 2020/2/10 11:31
+ */
+@Data
+public class TopicResultDTO implements Serializable {
+ private static final long serialVersionUID = -1938141144074477454L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 话题摘要
+ */
+ private String topicContent;
+
+ /**
+ * 所有部门
+ */
+ private String allDeptNames;
+
+ /**
+ * 网格来源群名称
+ */
+ private String groupName;
+
+ /**
+ * 话题发布人姓名
+ */
+ private String nickName;
+
+ /**
+ * 发布时间
+ */
+ private Date releaseTime;
+
+ /**
+ * 评论数(评论+回复)
+ */
+ private Integer commentNum;
+
+ /**
+ * 浏览数
+ */
+ private Integer browseNum;
+
+ /**
+ * 表达态度(评论+回复+浏览)
+ */
+ private Integer expressAttitudeNum;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserGridOpiningDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserGridOpiningDTO.java
new file mode 100644
index 00000000..c3b3d376
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserGridOpiningDTO.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dto.user;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 网格开通情况
+ *
+ * @author qu elink@elink-cn.com
+ * @since v1.0.0 2020-03-25
+ */
+@Data
+public class MetaUserGridOpiningDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * 用户总数
+ */
+ private int registerCount;
+
+ /**
+ * 党员数
+ */
+ private int partyCount;
+
+ /**
+ * 已注册居民
+ */
+ private int residentCount;
+
+ /**
+ * 未注册居民
+ */
+ private int unAuthorizedCount;
+
+ /**
+ * 新闻发布数
+ */
+ private int newsCount;
+
+ /**
+ * 社群数
+ */
+ private int communityCount;
+
+ /**
+ * 群成员数
+ */
+ private int communityMemberCount;
+
+ /**
+ * 群话题数
+ */
+ private int communityTopicCount;
+
+ /**
+ * 议题总数
+ */
+ private int eventCount;
+
+ /**
+ * 项目数
+ */
+ private int itemCount;
+
+ /**
+ * 项目已解决数
+ */
+ private int itemCloseCount;
+
+ /**
+ * 好评数
+ */
+ private int itemPraiseCount;
+
+ /**
+ * 网格名称
+ */
+ private String allDeptName;
+
+ /**
+ * 网格党建指导员姓名
+ */
+ private String gridLeader;
+
+ /**
+ * 删除标记
+ */
+ 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/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserPartyRankDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserPartyRankDTO.java
new file mode 100644
index 00000000..be8c514e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserPartyRankDTO.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dto.user;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 党员排行
+ *
+ * @author qu elink@elink-cn.com
+ * @since v1.0.0 2020-03-26
+ */
+@Data
+public class MetaUserPartyRankDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 街道id
+ */
+ private String streetId;
+
+ /**
+ * 街道名称
+ */
+ private String streetName;
+
+ /**
+ * 已注册党员数量(已认证)
+ */
+ private Integer partyMemberCount;
+
+ /**
+ * 年龄超过50岁党员数量
+ */
+ private Integer oldCount;
+
+ /**
+ * 老龄化比例
+ */
+ private BigDecimal oldPercent;
+
+ /**
+ * 年龄50岁以下的党员数量
+ */
+ private Integer youngCount;
+
+ /**
+ * 年轻化比例
+ */
+ private BigDecimal youngPercent;
+
+ /**
+ * 男
+ */
+ private Integer maleCount;
+
+ /**
+ * 女
+ */
+ private Integer femaleCount;
+
+ /**
+ * 未知性别
+ */
+ private Integer unknownSexCount;
+
+ /**
+ * 党员认证失败数
+ */
+ private Integer partyAuthFailureCount;
+
+ /**
+ * 删除标记
+ */
+ 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/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserRegisterRankDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserRegisterRankDTO.java
new file mode 100644
index 00000000..52f3b710
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/MetaUserRegisterRankDTO.java
@@ -0,0 +1,137 @@
+/**
+ * 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.elink.esua.epdc.dto.user;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户注册排行
+ *
+ * @author qu elink@elink-cn.com
+ * @since v1.0.0 2020-03-26
+ */
+@Data
+public class MetaUserRegisterRankDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 街道id
+ */
+ private String streetId;
+
+ /**
+ * 街道名称
+ */
+ private String streetName;
+
+ /**
+ * 用户总数
+ */
+ private Integer userCount;
+
+ /**
+ * 党员数
+ */
+ private Integer partyMemberCount;
+
+ /**
+ * 已注册居民
+ */
+ private Integer residentCount;
+
+ /**
+ * 为注册居民
+ */
+ private Integer unAuthorizedCount;
+
+ /**
+ * 年龄超过50岁
+ */
+ private Integer oldCount;
+
+ /**
+ * 老龄化比例
+ */
+ private BigDecimal oldPercent;
+
+ /**
+ * 50岁以下用户数量
+ */
+ private Integer youngCount;
+
+ /**
+ * 年轻化比例
+ */
+ private BigDecimal youngPercent;
+
+ /**
+ * 男
+ */
+ private Integer maleCount;
+
+ /**
+ * 女
+ */
+ private Integer femaleCount;
+
+ /**
+ * 未知性别
+ */
+ private Integer unknownSexCount;
+
+ /**
+ * 删除标记
+ */
+ 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/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/UserAnalysisDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/UserAnalysisDTO.java
new file mode 100644
index 00000000..8641b880
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/UserAnalysisDTO.java
@@ -0,0 +1,15 @@
+package com.elink.esua.epdc.dto.user;
+
+import lombok.Data;
+
+/**
+ * 用户注册数据分析
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 10:43
+ */
+@Data
+public class UserAnalysisDTO {
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/ExportOperationFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/ExportOperationFormDTO.java
new file mode 100644
index 00000000..f8ebbe51
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/ExportOperationFormDTO.java
@@ -0,0 +1,25 @@
+package com.elink.esua.epdc.dto.user.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ExportOperationFormDTO implements Serializable {
+
+ private String operationStartTime;
+
+ private String operationEndTime;
+
+ /**
+ * 所有部门列表
+ */
+ private List allDeptIdsShow;
+
+ private List allStreetIds;
+
+ private String endTime;
+
+ private List deptIdList;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/MemberRankFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/MemberRankFormDTO.java
new file mode 100644
index 00000000..9509ffb2
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/MemberRankFormDTO.java
@@ -0,0 +1,41 @@
+package com.elink.esua.epdc.dto.user.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author songyunpeng
+ * @Description 党员老龄化和年轻化排名查询表单
+ * @create 2020-02-11 10:53 上午
+ */
+@Data
+public class MemberRankFormDTO {
+
+ /**
+ * 页码
+ */
+ @NotNull(message = "页码不能为空")
+ private Integer pageIndex;
+ /**
+ * 页容量
+ */
+ @NotNull(message = "分页数量不能为空")
+ private Integer pageSize;
+ /**
+ * 时间戳(yyyy-MM-dd HH:mm:ss)
+ */
+ @NotBlank(message = "时间戳不能为空")
+ private String timestamp;
+ /**
+ * 排序状态(1:降序,2升序)
+ */
+ @NotBlank(message = "排序状态不能为空")
+ private String sortState;
+ /**
+ * 部门Id
+ */
+ private String deptId;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserCountDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserCountDTO.java
new file mode 100644
index 00000000..f47fd38a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserCountDTO.java
@@ -0,0 +1,20 @@
+package com.elink.esua.epdc.dto.user.form;
+
+import lombok.Data;
+
+/**
+ * @program: esua-epdc-cloud
+ * @description: 用户数据统计/网格开通数量
+ * @author: wangtong
+ * @create: 2020-02-12 10:03
+ **/
+@Data
+public class UserCountDTO{
+
+
+ /**
+ * 部门id
+ */
+ private String deptId;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserRegisterDataFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserRegisterDataFormDTO.java
new file mode 100644
index 00000000..4238927d
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserRegisterDataFormDTO.java
@@ -0,0 +1,13 @@
+package com.elink.esua.epdc.dto.user.form;
+
+import lombok.Data;
+
+/**
+ * 用户注册数据分析
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 09:43
+ */
+@Data
+public class UserRegisterDataFormDTO {
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserSortRankFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserSortRankFormDTO.java
new file mode 100644
index 00000000..ac299bb4
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/form/UserSortRankFormDTO.java
@@ -0,0 +1,47 @@
+package com.elink.esua.epdc.dto.user.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lpf
+ * @Description 用户排名
+ * @create 2020-02-11 10:53 上午
+ */
+@Data
+public class UserSortRankFormDTO {
+
+ /**
+ * 页码
+ */
+ @NotNull(message = "页码不能为空")
+ private Integer pageIndex;
+ /**
+ * 页容量
+ */
+ @NotNull(message = "分页数量不能为空")
+ private Integer pageSize;
+ /**
+ * 时间戳(yyyy-MM-dd HH:mm:ss)
+ */
+ @NotBlank(message = "时间戳不能为空")
+ private String timestamp;
+ /**
+ * 排序状态(1:降序,2升序)
+ */
+ @NotBlank(message = "排序状态不能为空")
+ private String sortState ="1";
+ /**
+ * 排序类型(1:按用户数,2按党员数)
+ */
+ @NotBlank(message = "排序类型")
+ private String sortType = "1";
+ /**
+ * 部门Id
+ */
+ private String deptId;
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/ExportOperationDataResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/ExportOperationDataResultDTO.java
new file mode 100644
index 00000000..3762374e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/ExportOperationDataResultDTO.java
@@ -0,0 +1,81 @@
+package com.elink.esua.epdc.dto.user.result;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * @author: qushutong
+ * @Date: 2020/3/23 14:47
+ * @Description: 运营导出数据
+ */
+@Data
+public class ExportOperationDataResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -798787916350968587L;
+
+ /**
+ * 居民数
+ */
+ private int registerCount = 0;
+
+ /**
+ * 未认证用户数
+ */
+ private int unAuthorizedCount = 0;
+
+
+ /**
+ * 党员数
+ */
+ private int partyCount = 0;
+
+ /**
+ * 新闻发布数
+ */
+ private int newsCount = 0;
+
+
+ /**
+ * 议题数
+ */
+ private int eventCount = 0;
+
+ /**
+ * 项目数
+ */
+ private int itemCount = 0;
+
+ /**
+ * 项目解决数
+ */
+ private int itemCloseCount = 0;
+
+ /**
+ * 社群数
+ */
+ private int communityCount = 0;
+
+ /**
+ * 社群成员数
+ */
+ private int communityMemberCount = 0;
+
+ /**
+ * 社群话题数
+ */
+ private int communityTopicCount = 0;
+
+ /**
+ * 街道
+ */
+ private String streetName;
+
+ /**
+ * 企业数
+ */
+ private int enterpriseCount = 0;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridDataTotalResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridDataTotalResultDTO.java
new file mode 100644
index 00000000..be714150
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridDataTotalResultDTO.java
@@ -0,0 +1,23 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+/**
+ * 已开通网格 用户数据总计
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/13 13:46
+ */
+@Data
+public class GridDataTotalResultDTO extends GridOpeningResultDTO {
+
+ /**
+ * 已开通网格数
+ */
+ private int workGridCount = 0;
+ /**
+ * 未开通网格数
+ */
+ private int unWorkGridCount = 0;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java
new file mode 100644
index 00000000..3a9fdae9
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GridOpeningResultDTO.java
@@ -0,0 +1,99 @@
+package com.elink.esua.epdc.dto.user.result;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: qushutong
+ * @Date: 2020/2/11 13:09
+ * @Description: 开通网格情况
+ */
+@Data
+public class GridOpeningResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -852226852590425991L;
+
+ private String gridId;
+
+ /**
+ * 街道社区网格
+ */
+ private String allDeptName;
+ /**
+ * 用户注册数
+ */
+ private int registerCount = 0;
+ /**
+ * 居民数(包括认证成功和党员认证失败的居民)
+ */
+ private int residentCount = 0;
+
+ /**
+ * 认证党员数
+ */
+ private int partyCount = 0;
+
+ /**
+ * 未认证用户(根据用户第一次扫码的网格统计)
+ */
+ private Integer unAuthorizedCount = 0;
+
+ /**
+ * 居民扫码数
+ */
+ private int ewmCount = 0;
+
+ /**
+ * 新闻数
+ */
+ private int newsCount = 0;
+
+ /**
+ * 通知数
+ */
+ private int noticeCount = 0;
+
+ /**
+ * 议题数
+ */
+ private int eventCount = 0;
+
+ /**
+ * 项目数
+ */
+ private int itemCount = 0;
+
+ /**
+ * 项目解决数
+ */
+ private int itemCloseCount = 0;
+
+ /**
+ * 项目好评数(满意度评价为非常满意)
+ */
+ private int itemPraiseCount = 0;
+
+ /**
+ * 社群数
+ */
+ private int communityCount = 0;
+
+ /**
+ * 社群成员数
+ */
+ private int communityMemberCount = 0;
+
+ /**
+ * 社群话题数
+ */
+ private int communityTopicCount = 0;
+
+ /**
+ * 网格长姓名
+ */
+ private String gridLeader;
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GriddingCountDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GriddingCountDTO.java
new file mode 100644
index 00000000..6d3e6774
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/GriddingCountDTO.java
@@ -0,0 +1,28 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @program: esua-epdc-cloud
+ * @description: 网格数量统计Serializable
+ * @author: wangtong
+ * @create: 2020-02-11 14:50
+ **/
+@Data
+public class GriddingCountDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 网格总计
+ **/
+ private Integer gridTotle;
+
+ /**
+ * 开通网格数量
+ **/
+ private Integer gridCount;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/OldMemberRankResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/OldMemberRankResultDTO.java
new file mode 100644
index 00000000..f10d6d84
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/OldMemberRankResultDTO.java
@@ -0,0 +1,34 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author songyunpeng
+ * @Description 党员老龄化排名结果
+ * @create 2020-02-11 10:53 上午
+ */
+@Data
+public class OldMemberRankResultDTO implements Serializable {
+ /**
+ * 部门ID
+ */
+ private String deptId;
+ /**
+ * 部门名称
+ */
+ private String deptName;
+ /**
+ * 党员数
+ */
+ private Integer partyMemberCount;
+ /**
+ * 超过50岁党员数
+ */
+ private Integer oldMemberCount;
+ /**
+ * 比例
+ */
+ private String proportion;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserAnalysisCountDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserAnalysisCountDTO.java
new file mode 100644
index 00000000..a258488d
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserAnalysisCountDTO.java
@@ -0,0 +1,44 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @program: esua-epdc-cloud
+ * @description: 用户数据统计
+ * @author: wangtong
+ * @create: 2020-02-11 12:14
+ **/
+@Data
+public class UserAnalysisCountDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 所有用户数
+ **/
+ private Integer allUserCount;
+
+ /**
+ * 党员数
+ **/
+ private Integer partyMemberCount;
+
+ /**
+ * 居民数
+ **/
+ private Integer userCount;
+
+ /**
+ * 党员认证率
+ **/
+ private BigDecimal partyMemberPercent;
+
+ /**
+ * 居民认证率
+ **/
+ private BigDecimal residentPercent;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java
new file mode 100644
index 00000000..a725e5cf
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserDataRankResultDTO.java
@@ -0,0 +1,72 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户数据排行
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 14:44
+ */
+@Data
+public class UserDataRankResultDTO {
+
+ /**
+ * 街道id
+ */
+ private String streetId;
+ /**
+ * 街道名称
+ */
+ private String streetName;
+ /**
+ * 用户注册数
+ */
+ private Integer userCount;
+ /**
+ * 男性数
+ */
+ private Integer maleCount;
+ /**
+ * 女性数
+ */
+ private Integer femaleCount;
+ /**
+ * 未知性别数
+ */
+ private Integer unknownSexCount;
+ /**
+ * 居民数(包括认证成功和党员认证居民失败的居民)
+ */
+ private Integer residentCount;
+ /**
+ * 未认证用户(根据用户第一次扫码的网格统计)
+ */
+ private Integer unAuthorizedCount = 0;
+ /**
+ * 党员数
+ */
+ private Integer partyMemberCount;
+ /**
+ * 老人数(年龄大于50)
+ */
+ private Integer oldCount;
+ /**
+ * 年轻人数(年龄不大于50)
+ */
+ private Integer youngCount;
+ /**
+ * 老人比例
+ */
+ private BigDecimal oldPercent;
+ /**
+ * 年轻人比例
+ */
+ private BigDecimal youngPercent;
+ /**
+ * 党员认证失败数
+ */
+ private Integer partyAuthFailureCount;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserRegisterDataResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserRegisterDataResultDTO.java
new file mode 100644
index 00000000..1ef2d336
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserRegisterDataResultDTO.java
@@ -0,0 +1,13 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+/**
+ * 用户注册数据分析
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 09:43
+ */
+@Data
+public class UserRegisterDataResultDTO {
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserSortRankResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserSortRankResultDTO.java
new file mode 100644
index 00000000..3fbdb134
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/UserSortRankResultDTO.java
@@ -0,0 +1,41 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户数据排行
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 14:44
+ */
+@Data
+public class UserSortRankResultDTO {
+
+ /**
+ * 街道id
+ */
+ private String deptId;
+ /**
+ * 街道名称
+ */
+ private String deptName;
+ /**
+ * 用户注册数
+ */
+ private Integer allUserCount;
+ /**
+ * 居民数
+ */
+ private Integer userCount;
+ /**
+ * 党员数
+ */
+ private Integer pattyMemberCount;
+
+ /**
+ * 党员占比
+ */
+ private String partyMemberPercent;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/YoungMemberRankResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/YoungMemberRankResultDTO.java
new file mode 100644
index 00000000..ec567d6f
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/user/result/YoungMemberRankResultDTO.java
@@ -0,0 +1,34 @@
+package com.elink.esua.epdc.dto.user.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author songyunpeng
+ * @Description 党员年轻化排名结果
+ * @create 2020-02-11 10:53 上午
+ */
+@Data
+public class YoungMemberRankResultDTO implements Serializable {
+ /**
+ * 部门ID
+ */
+ private String deptId;
+ /**
+ * 部门名称
+ */
+ private String deptName;
+ /**
+ * 党员数
+ */
+ private Integer partyMemberCount;
+ /**
+ * 超过50岁党员数
+ */
+ private Integer youngMemberCount;
+ /**
+ * 比例
+ */
+ private String proportion;
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/Dockerfile b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/Dockerfile
new file mode 100644
index 00000000..fc459b9c
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/Dockerfile
@@ -0,0 +1,20 @@
+# 基础镜像
+FROM openjdk:8u242-jdk-buster
+# 作者
+MAINTAINER rongchao@elink-cn.com
+# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值
+ARG JAR_FILE
+# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_NAME的值
+ARG JAR_NAME
+# 对应pom.xml文件中的dockerfile-maven-plugin插件SERVER_PORT的值
+ARG SERVER_PORT
+# 复制打包完成后的jar文件到/opt目录下
+ENV JAR_PATH /mnt/epdc/${JAR_NAME}.jar
+ADD ${JAR_FILE} $JAR_PATH
+# /data设为环境变量
+ENV DATAPATH /data
+# 挂载/data目录到主机
+VOLUME $DATAPATH
+# 启动容器时执行
+ENTRYPOINT java -jar $JAR_CONFIG $JAR_PATH
+EXPOSE ${SERVER_PORT}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml
new file mode 100644
index 00000000..e536208a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/pom.xml
@@ -0,0 +1,190 @@
+
+
+ 4.0.0
+
+ com.esua.epdc
+ epdc-analysis
+ 1.0.0
+
+
+ epdc-analysis-server
+ jar
+
+
+
+ com.esua.epdc
+ epdc-analysis-client
+ 1.0.0
+
+
+ com.esua.epdc
+ epdc-commons-tools
+ 1.0.0
+
+
+ com.esua.epdc
+ epdc-commons-mybatis
+ 1.0.0
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework
+ spring-context-support
+
+
+ de.codecentric
+ spring-boot-admin-starter-client
+ ${spring.boot.admin.version}
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.esua.epdc
+ epdc-commons-api-version-control
+ ${project.version}
+
+
+ com.esua.epdc
+ epdc-admin-client
+ 1.0.0
+ compile
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ true
+
+
+
+ com.spotify
+ dockerfile-maven-plugin
+
+
+
+ ${project.basedir}/src/main/java
+
+
+
+ true
+ ${basedir}/src/main/resources
+
+ **/application*.yml
+ **/*.properties
+ logback-spring.xml
+ registry.conf
+
+
+
+ ${basedir}/src/main/resources
+
+ **/application*.yml
+ **/*.properties
+ logback-spring.xml
+ registry.conf
+
+
+
+
+
+
+
+ dev
+
+ true
+
+
+ 9078
+
+ dev
+ dev
+
+
+
+
+
+
+ 2
+ 114.215.125.123
+ 9603
+ epdc!redis@master1405
+
+
+ false
+ 47.104.224.45:8848
+
+ 6a3577b4-7b79-43f6-aebb-9c3f31263f6a
+
+
+
+
+ test
+
+ 10003
+
+ test
+ test
+
+
+ 2
+ 118.190.232.100
+ 9603
+ epdc!redis@master1405
+
+
+ true
+ 47.104.224.45:8848
+ 219.146.91.110
+ a746dde3-7a13-4521-b986-7369b0b7c269
+
+
+
+
+ prod
+
+ 9077
+ prod
+ prod
+
+
+ 0
+ 172.16.0.54
+ 6379
+ Elink833066
+
+
+ true
+ 172.16.0.52:8848
+
+
+
+
+
+
+
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java
new file mode 100644
index 00000000..ac038bbd
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/AnalysisApplication.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.elink.esua.epdc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 模块
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients
+public class AnalysisApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(AnalysisApplication.class, args);
+ }
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java
new file mode 100644
index 00000000..edebd6d8
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/config/ModuleConfigImpl.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.elink.esua.epdc.config;
+
+import com.elink.esua.epdc.commons.tools.config.ModuleConfig;
+import org.springframework.stereotype.Service;
+
+/**
+ * 模块配置信息
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Service
+public class ModuleConfigImpl implements ModuleConfig {
+ @Override
+ public String getName() {
+ return "analysis";
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java
new file mode 100644
index 00000000..55b1b3a2
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DataSourceNames.java
@@ -0,0 +1,23 @@
+package com.elink.esua.epdc.datasources;
+
+/**
+ *
+ * 增加多数据源,在此配置
+ *
+ * @Author:liuchuang
+ * @Date:2020/2/9 14:50
+ */
+public interface DataSourceNames {
+ String FIRST = "first";
+ String SECOND = "second";
+ String THIRD = "third";
+ String FOURTH = "fourth";
+ String FIFTH = "fifth";
+ String SIXTH = "sixth";
+ String SEVENTH = "seventh";
+ String EIGHTH = "eighth";
+ String NINTH = "ninth";
+ String TENTH = "tenth";
+ String ELEVENTH = "eleventh";
+ String TWELVE = "twelve";
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java
new file mode 100644
index 00000000..6465e38a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSource.java
@@ -0,0 +1,41 @@
+package com.elink.esua.epdc.datasources;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+import javax.sql.DataSource;
+import java.util.Map;
+
+/**
+ *
+ * 动态数据源
+ *
+ * @Author:liuchuang
+ * @Date:2020/2/9 14:59
+ */
+public class DynamicDataSource extends AbstractRoutingDataSource {
+
+ private static final ThreadLocal contextHolder = new ThreadLocal<>();
+
+ public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) {
+ super.setDefaultTargetDataSource(defaultTargetDataSource);
+ super.setTargetDataSources(targetDataSources);
+ super.afterPropertiesSet();
+ }
+
+ @Override
+ protected Object determineCurrentLookupKey() {
+ return getDataSource();
+ }
+
+ public static void setDataSource(String dataSource) {
+ contextHolder.set(dataSource);
+ }
+
+ public static String getDataSource() {
+ return contextHolder.get();
+ }
+
+ public static void clearDataSource() {
+ contextHolder.remove();
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java
new file mode 100644
index 00000000..bf0541dd
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/DynamicDataSourceConfig.java
@@ -0,0 +1,118 @@
+package com.elink.esua.epdc.datasources;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ * 配置多数据源
+ *
+ * @Author:liuchuang
+ * @Date:2020/2/9 15:04
+ */
+@Configuration
+public class DynamicDataSourceConfig {
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.first")
+ public DataSource firstDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.second")
+ public DataSource secondDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.third")
+ public DataSource thirdDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.fourth")
+ public DataSource fourthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.fifth")
+ public DataSource fifthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.sixth")
+ public DataSource sixthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.seventh")
+ public DataSource seventhDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.eighth")
+ public DataSource eighthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.ninth")
+ public DataSource ninthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.tenth")
+ public DataSource tenthDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.eleventh")
+ public DataSource eleventhDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @ConfigurationProperties("spring.datasource.druid.twelve")
+ public DataSource twelvethDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean
+ @Primary
+ public DynamicDataSource dataSource(DataSource firstDataSource, DataSource secondDataSource,
+ DataSource thirdDataSource, DataSource fourthDataSource,
+ DataSource fifthDataSource, DataSource sixthDataSource,
+ DataSource seventhDataSource, DataSource eighthDataSource,
+ DataSource ninthDataSource, DataSource tenthDataSource,
+ DataSource eleventhDataSource,DataSource twelvethDataSource) {
+ Map targetDataSources = new HashMap<>();
+ targetDataSources.put(DataSourceNames.FIRST, firstDataSource);
+ targetDataSources.put(DataSourceNames.SECOND, secondDataSource);
+ targetDataSources.put(DataSourceNames.THIRD, thirdDataSource);
+ targetDataSources.put(DataSourceNames.FOURTH, fourthDataSource);
+ targetDataSources.put(DataSourceNames.FIFTH, fifthDataSource);
+ targetDataSources.put(DataSourceNames.SIXTH, sixthDataSource);
+ targetDataSources.put(DataSourceNames.SEVENTH, seventhDataSource);
+ targetDataSources.put(DataSourceNames.EIGHTH, eighthDataSource);
+ targetDataSources.put(DataSourceNames.NINTH, ninthDataSource);
+ targetDataSources.put(DataSourceNames.TENTH, tenthDataSource);
+ targetDataSources.put(DataSourceNames.ELEVENTH, eleventhDataSource);
+ targetDataSources.put(DataSourceNames.TWELVE, twelvethDataSource);
+ return new DynamicDataSource(firstDataSource, targetDataSources);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java
new file mode 100644
index 00000000..abb8e539
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/annotation/DataSource.java
@@ -0,0 +1,17 @@
+package com.elink.esua.epdc.datasources.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ *
+ * 多数据源注解
+ *
+ * @Author:liuchuang
+ * @Date:2020/2/9 14:50
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataSource {
+ String name() default "";
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java
new file mode 100644
index 00000000..36134016
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/datasources/aspect/DataSourceAspect.java
@@ -0,0 +1,61 @@
+package com.elink.esua.epdc.datasources.aspect;
+
+import com.elink.esua.epdc.datasources.DataSourceNames;
+import com.elink.esua.epdc.datasources.DynamicDataSource;
+import com.elink.esua.epdc.datasources.annotation.DataSource;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.Ordered;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+
+/**
+ *
+ * 多数据源,切面处理类
+ *
+ * @Author:liuchuang
+ * @Date:2020/2/9 15:12
+ */
+@Aspect
+@Component
+public class DataSourceAspect implements Ordered {
+ protected Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Pointcut("@annotation(com.elink.esua.epdc.datasources.annotation.DataSource)")
+ public void dataSourcePointCut() {
+
+ }
+
+ @Around("dataSourcePointCut()")
+ public Object around(ProceedingJoinPoint point) throws Throwable {
+ MethodSignature signature = (MethodSignature) point.getSignature();
+ Method method = signature.getMethod();
+
+ DataSource ds = method.getAnnotation(DataSource.class);
+ if(ds == null){
+ DynamicDataSource.setDataSource(DataSourceNames.FIRST);
+ logger.debug("set datasource is " + DataSourceNames.FIRST);
+ }else {
+ DynamicDataSource.setDataSource(ds.name());
+ logger.debug("set datasource is " + ds.name());
+ }
+
+ try {
+ return point.proceed();
+ } finally {
+ DynamicDataSource.clearDataSource();
+ logger.debug("clean datasource");
+ }
+ }
+
+ @Override
+ public int getOrder() {
+ return 1;
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/ExportOperationDataExcel.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/ExportOperationDataExcel.java
new file mode 100644
index 00000000..4091895e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/ExportOperationDataExcel.java
@@ -0,0 +1,55 @@
+package com.elink.esua.epdc.excel;
+
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * @author: qushutong
+ * @Date: 2020/3/23 14:47
+ * @Description: 运营导出数据
+ */
+@Data
+public class ExportOperationDataExcel implements Serializable {
+
+ private static final long serialVersionUID = 4935348597474149310L;
+
+ @Excel(name = "街道")
+ private String streetName;
+
+ @Excel(name = "居民数")
+ private int registerCount = 0;
+
+ @Excel(name = "企业数")
+ private int enterpriseCount = 0;
+
+ @Excel(name = "已认证党员数")
+ private int partyCount = 0;
+
+ @Excel(name = "新闻发布数")
+ private int newsCount = 0;
+
+
+ @Excel(name = "议题数")
+ private int eventCount = 0;
+
+ @Excel(name = "项目数")
+ private int itemCount = 0;
+
+ @Excel(name = "项目结案数")
+ private int itemCloseCount = 0;
+
+ @Excel(name = "社群数")
+ private int communityCount = 0;
+
+ @Excel(name = "社群成员数")
+ private int communityMemberCount = 0;
+
+ @Excel(name = "社群话题数")
+ private int communityTopicCount = 0;
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/GridOpiningExcel.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/GridOpiningExcel.java
new file mode 100644
index 00000000..4ba5922c
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/GridOpiningExcel.java
@@ -0,0 +1,55 @@
+package com.elink.esua.epdc.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+/**
+ * @author: qushutong
+ * @Date: 2020/2/13 15:23
+ * @Description: 网格开通导出
+ */
+@Data
+public class GridOpiningExcel {
+ @Excel(name = "网格名称")
+ private String allDeptName;
+
+ @Excel(name = "网格党建指导员姓名")
+ private String gridLeader;
+
+ @Excel(name = "用户总数")
+ private Integer registerCount;
+
+ @Excel(name = "党员数")
+ private Integer partyCount;
+
+ @Excel(name = "未注册居民")
+ private Integer unAuthorizedCount;
+
+ @Excel(name = "已注册居民")
+ private int residentCount;
+
+ @Excel(name = "新闻发布数")
+ private Integer newsCount;
+
+ @Excel(name = "社群数")
+ private Integer communityCount;
+
+ @Excel(name = "群成员数")
+ private Integer communityMemberCount;
+
+ @Excel(name = "话题数")
+ private Integer communityTopicCount;
+
+ @Excel(name = "项目数")
+ private Integer itemCount;
+
+ @Excel(name = "项目关闭数")
+ private Integer itemCloseCount;
+
+ @Excel(name = "好评数")
+ private Integer itemPraiseCount;
+
+ @Excel(name = "议题数")
+ private Integer eventCount;
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/PartyAnalysExcel.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/PartyAnalysExcel.java
new file mode 100644
index 00000000..11ca7c67
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/PartyAnalysExcel.java
@@ -0,0 +1,52 @@
+package com.elink.esua.epdc.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author: qushutong
+ * @Date: 2020/2/12 14:24
+ * @Description: 注册用户分析
+ */
+@Data
+public class PartyAnalysExcel {
+ @Excel(name = "街道名称")
+ private String streetName;
+
+ @Excel(name = "注册用户数")
+ private Integer userCount;
+
+ @Excel(name = "注册党员数")
+ private Integer partyMemberCount;
+
+ @Excel(name = "注册居民数")
+ private Integer residentCount;
+
+ @Excel(name = "男")
+ private Integer maleCount;
+
+ @Excel(name = "女")
+ private Integer femaleCount;
+
+ @Excel(name = "其他")
+ private Integer unknownSexCount;
+
+ @Excel(name = "超过50岁用户数量")
+ private Integer oldCount;
+
+ @Excel(name = "老龄化比例")
+ private BigDecimal oldPercent;
+
+ @Excel(name = "50岁以下用户数量")
+ private Integer youngCount;
+
+ @Excel(name = "年轻化比例")
+ private BigDecimal youngPercent;
+
+ @Excel(name = "党员认证失败数")
+ private Integer partyAuthFailureCount;
+
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java
new file mode 100644
index 00000000..2f9ee8c1
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java
@@ -0,0 +1,53 @@
+package com.elink.esua.epdc.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author: qushutong
+ * @Date: 2020/2/12 14:24
+ * @Description: 注册用户分析
+ */
+@Data
+public class RegisterExcel {
+ @Excel(name = "街道名称")
+ private String streetName;
+
+ @Excel(name = "用户总数")
+ private Integer userCount;
+
+ @Excel(name = "党员数")
+ private Integer partyMemberCount;
+
+ @Excel(name = "已注册居民")
+ private Integer residentCount;
+
+ @Excel(name = "未注册居民")
+ private Integer unAuthorizedCount;
+
+ @Excel(name = "男")
+ private Integer maleCount;
+
+ @Excel(name = "女")
+ private Integer femaleCount;
+
+ @Excel(name = "其他")
+ private Integer unknownSexCount;
+
+ @Excel(name = "超过50岁用户数量")
+ private Integer oldCount;
+
+ @Excel(name = "老龄化比例")
+ private BigDecimal oldPercent;
+
+ @Excel(name = "50岁以下用户数量")
+ private Integer youngCount;
+
+ @Excel(name = "年轻化比例")
+ private BigDecimal youngPercent;
+
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
new file mode 100644
index 00000000..7655e329
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
@@ -0,0 +1,42 @@
+package com.elink.esua.epdc.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
+import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+import java.util.List;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/5 14:44
+ */
+@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class)
+public interface AdminFeignClient {
+
+ /**
+ * 根据部门ID,获取下属所有网格ID
+ *
+ * @param pid
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author yujintao
+ * @date 2019/9/5 14:49
+ */
+ @GetMapping("/sys/dept/listGridId/{pid}")
+ Result> listGridIdByDeptPid(@PathVariable("pid") Long pid);
+
+ /**
+ * 根据部门ID获取上级所有部门信息
+ *
+ * @param deptId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author gp
+ * @date 2019-11-29
+ */
+ @GetMapping("/sys/dept/getParentAndAllDept/{deptId}")
+ Result getParentAndAllDept(@PathVariable("deptId") String deptId);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
new file mode 100644
index 00000000..7ec1c523
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
@@ -0,0 +1,29 @@
+package com.elink.esua.epdc.feign.fallback;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
+import com.elink.esua.epdc.feign.AdminFeignClient;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/5 14:44
+ */
+@Component
+public class AdminFeignClientFallback implements AdminFeignClient {
+
+ @Override
+ public Result> listGridIdByDeptPid(Long pid) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listGridIdByDeptPid", pid);
+ }
+
+ @Override
+ public Result getParentAndAllDept(String depId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentAndAllDept", depId);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/AppIssueAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/AppIssueAnalysisController.java
new file mode 100644
index 00000000..12d9d7dd
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/AppIssueAnalysisController.java
@@ -0,0 +1,77 @@
+package com.elink.esua.epdc.modules.issue.controller;
+
+import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.issue.form.HotIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueStatisticsInfoFormDTO;
+import com.elink.esua.epdc.dto.issue.form.NewIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.HotIssueResultDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueStatisticsInfoResultDTO;
+import com.elink.esua.epdc.dto.issue.result.NewIssueResultDTO;
+import com.elink.esua.epdc.modules.issue.service.IssueAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Description 议题App
+ * @Author wgf
+ * @Date 2020/2/10 16:06
+ */
+@RestController
+@RequestMapping("appissue")
+public class AppIssueAnalysisController {
+ @Autowired
+ private IssueAnalysisService issueAnalysisService;
+
+ /**
+ * @Description: 议题项目数量类目分析
+ * @Param: [tokenDto, formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ @GetMapping("getStatisticsByCategory")
+ public Result> getStatisticsByCategory(@RequestBody IssueStatisticsInfoFormDTO formDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDTO);
+ formDTO.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ List list = issueAnalysisService.listStatisticsByCategoryList(formDTO);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * @Description: 最新发布议题接口
+ * @Param: [tokenDto, formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: wgf
+ * @Date: 2020-02-11
+ */
+ @GetMapping("getNewIssueList")
+ public Result> getNewIssueList(@RequestBody NewIssueFormDTO formDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDTO);
+ List list = issueAnalysisService.getNewIssueList(formDTO);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * @Description: 最热议题接口
+ * @Param: [tokenDto, formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: wgf
+ * @Date: 2020-02-12
+ */
+ @GetMapping("getHotIssueList")
+ public Result> getHotIssueList(@RequestBody HotIssueFormDTO formDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDTO);
+ List list = issueAnalysisService.getHotIssueList(formDTO);
+ return new Result>().ok(list);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueAnalysisController.java
new file mode 100644
index 00000000..b24a2cc2
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/IssueAnalysisController.java
@@ -0,0 +1,67 @@
+package com.elink.esua.epdc.modules.issue.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+import com.elink.esua.epdc.modules.issue.service.IssueAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * @Description 议题相关
+ * @Author yinzuomei
+ * @Date 2020/2/10 16:06
+ */
+@RestController
+@RequestMapping("issue")
+public class IssueAnalysisController {
+ @Autowired
+ private IssueAnalysisService issueAnalysisService;
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueResultDTO
+ * @Author yinzuomei
+ * @Description 最热议题列表
+ * @Date 2020/2/10 16:15
+ **/
+ @GetMapping("pageHottestIssue")
+ public Result> pageHottestIssue(@RequestParam Map params) {
+ PageData page = issueAnalysisService.listHottestIssue(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueResultDTO
+ * @Author yinzuomei
+ * @Description 最新议题列表
+ * @Date 2020/2/10 16:15
+ **/
+ @GetMapping("pageLatestIssue")
+ public Result> pageLatestIssue(@RequestParam Map params) {
+ PageData page = issueAnalysisService.listLatestIssue(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 分类统计
+ * @Date 2020/2/11 9:40
+ **/
+ @GetMapping("pageCategoryAnalysis")
+ public Result> pageCategoryAnalysis(@RequestParam Map params) {
+ PageData page = issueAnalysisService.listIssueClassifiedStatistic(params);
+ return new Result>().ok(page);
+ }
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueAnalysisDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueAnalysisDao.java
new file mode 100644
index 00000000..f111278e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueAnalysisDao.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.elink.esua.epdc.modules.issue.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.dto.issue.form.HotIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueStatisticsInfoFormDTO;
+import com.elink.esua.epdc.dto.issue.form.NewIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.*;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @Description 议题相关
+ * @Author yinzuomei
+ * @Date 2020/2/10 16:06
+ */
+@Mapper
+public interface IssueAnalysisDao extends BaseDao {
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 最热议题列表
+ * @Date 2020/2/10 16:19
+ **/
+ List selectListHottestIssue(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 最新议题列表
+ * @Date 2020/2/10 16:19
+ **/
+ List selectListLatestIssue(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 一级类目
+ * @Date 2020/2/11 10:09
+ **/
+ List selectFirstIssueClassifiedStatistic(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 二级类目
+ * @Date 2020/2/11 10:09
+ **/
+ List selectSecondIssueClassifiedStatistic(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 三级类目
+ * @Date 2020/2/11 10:09
+ **/
+ List selectThreeIssueClassifiedStatistic(Map params);
+
+ /**
+ * @Description: 一级类目议题项目数量类目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List selectListStatisticsByFirstCategory(IssueStatisticsInfoFormDTO formDto);
+
+ /**
+ * @Description: 二级类目议题项目数量类目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List selectListStatisticsByTwoCategory(IssueStatisticsInfoFormDTO formDto);
+
+ /**
+ * @Description: 三级类目议题项目数量类目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List selectListStatisticsByThreeCategory(IssueStatisticsInfoFormDTO formDto);
+
+ /**
+ * 最新发布议题接口
+ * @param formDto
+ * @return
+ */
+ List selectNewIssueList(NewIssueFormDTO formDto);
+
+ /**
+ * 最热议题接口
+ * @param formDto
+ * @return
+ */
+ List selectHotIssueList(HotIssueFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueAnalysisService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueAnalysisService.java
new file mode 100644
index 00000000..491159b8
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueAnalysisService.java
@@ -0,0 +1,71 @@
+package com.elink.esua.epdc.modules.issue.service;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.dto.issue.form.HotIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueStatisticsInfoFormDTO;
+import com.elink.esua.epdc.dto.issue.form.NewIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 议题相关
+ * @Author yinzuomei
+ * @Date 2020/2/10 16:06
+ */
+public interface IssueAnalysisService {
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 最热议题列表
+ * @Date 2020/2/10 16:16
+ **/
+ PageData listHottestIssue(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 最新议题列表
+ * @Date 2020/2/10 16:16
+ **/
+ PageData listLatestIssue(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 分类统计
+ * @Date 2020/2/11 9:41
+ **/
+ PageData listIssueClassifiedStatistic(Map params);
+
+ /**
+ * @Description: 议题项目数量类目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List listStatisticsByCategoryList(IssueStatisticsInfoFormDTO formDto);
+
+ /**
+ * @Description: 最新发布议题接口
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: wgf
+ * @Date: 2020-02-11
+ */
+ List getNewIssueList(NewIssueFormDTO formDto);
+
+ /**
+ * @Description: 最热议题接口
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: wgf
+ * @Date: 2020-02-12
+ */
+ List getHotIssueList(HotIssueFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueAnalysisServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueAnalysisServiceImpl.java
new file mode 100644
index 00000000..a3dc4edb
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueAnalysisServiceImpl.java
@@ -0,0 +1,135 @@
+package com.elink.esua.epdc.modules.issue.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
+import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
+import com.elink.esua.epdc.datasources.DataSourceNames;
+import com.elink.esua.epdc.datasources.annotation.DataSource;
+import com.elink.esua.epdc.dto.issue.form.HotIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueStatisticsInfoFormDTO;
+import com.elink.esua.epdc.dto.issue.form.NewIssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.*;
+import com.elink.esua.epdc.modules.issue.dao.IssueAnalysisDao;
+import com.elink.esua.epdc.modules.issue.service.IssueAnalysisService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 议题相关
+ * @Author yinzuomei
+ * @Date 2020/2/10 16:06
+ */
+@Service
+public class IssueAnalysisServiceImpl extends BaseServiceImpl implements IssueAnalysisService {
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 最热议题列表
+ * @Date 2020/2/10 16:17
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listHottestIssue(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListHottestIssue(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 最新议题列表
+ * @Date 2020/2/10 16:17
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listLatestIssue(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListLatestIssue(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.issue.result.IssueClassifiedStatisticDTO
+ * @Author yinzuomei
+ * @Description 分类统计
+ * @Date 2020/2/11 9:41
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listIssueClassifiedStatistic(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ if (StringUtils.isBlank((String) params.get("categoryLevel"))) {
+ params.put("categoryLevel", "1");
+ }
+ String categoryLevel = (String) params.get("categoryLevel");
+ IPage page = getPage(params);
+ List list = new ArrayList<>();
+ if (NumConstant.ONE_STR.equals(categoryLevel)) {
+ list = baseDao.selectFirstIssueClassifiedStatistic(params);
+ } else if (NumConstant.TWO_STR.equals(categoryLevel)) {
+ list = baseDao.selectSecondIssueClassifiedStatistic(params);
+ } else if (NumConstant.THREE_STR.equals(categoryLevel)) {
+ list = baseDao.selectThreeIssueClassifiedStatistic(params);
+ }
+ return new PageData<>(list, page.getTotal());
+ }
+
+ @Override
+ public List listStatisticsByCategoryList(IssueStatisticsInfoFormDTO formDto) {
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ List list = new ArrayList<>();
+ if (NumConstant.ONE_STR.equals(formDto.getCotegoryType())){
+ list = baseDao.selectListStatisticsByFirstCategory(formDto);
+ } else if (NumConstant.TWO_STR.equals(formDto.getCotegoryType())) {
+ list = baseDao.selectListStatisticsByTwoCategory(formDto);
+ } else if (NumConstant.THREE_STR.equals(formDto.getCotegoryType())) {
+ list = baseDao.selectListStatisticsByThreeCategory(formDto);
+ }
+ return list;
+ }
+
+ @Override
+ public List getNewIssueList(NewIssueFormDTO formDto) {
+ formDto.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ List list = baseDao.selectNewIssueList(formDto);
+ return list;
+ }
+
+ @Override
+ public List getHotIssueList(HotIssueFormDTO formDto) {
+ formDto.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ List list = baseDao.selectHotIssueList(formDto);
+ return list;
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/AppItemAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/AppItemAnalysisController.java
new file mode 100644
index 00000000..fced3fb0
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/AppItemAnalysisController.java
@@ -0,0 +1,81 @@
+package com.elink.esua.epdc.modules.item.controller;
+
+import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.item.form.HotItemListFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
+import com.elink.esua.epdc.dto.item.result.HotItemListResultDTO;
+import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
+import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
+import com.elink.esua.epdc.modules.item.service.ItemAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 手机端领导数据-项目
+ *
+ * @author zy
+ * @since 2020-2-11
+ */
+@RestController
+@RequestMapping("appitem")
+public class AppItemAnalysisController {
+
+ @Autowired
+ private ItemAnalysisService itemAnalysisService;
+
+ /**
+ * @Description: 疑难项目分析
+ * @Param: [formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ @GetMapping("getItemAnalysis")
+ public Result> getItemAnalysis(@RequestBody ItemAnalysisFormDTO formDto) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDto);
+ formDto.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ List data = itemAnalysisService.getItemAnalysis(formDto);
+ return new Result>().ok(data);
+ }
+
+ /**
+ * @Description: 重点项目概况
+ * @Param: [formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ @GetMapping("getItemSurvey")
+ public Result getItemSurvey(@RequestBody ItemSurveyFormDTO formDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDTO);
+ formDTO.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ ItemSurveyResultDTO data = itemAnalysisService.getItemSurvey(formDTO);
+ return new Result().ok(data);
+ }
+
+ /**
+ * @Description: 最热项目接口 :最热讨论分析
+ * @Param: [formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: zy
+ * @Date: 2020-02-12
+ */
+ @GetMapping("getHotItemList")
+ public Result> getHotItemList(@RequestBody HotItemListFormDTO formDto) {
+ //效验数据
+ ValidatorUtils.validateEntity(formDto);
+ formDto.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ List data = itemAnalysisService.listHotItemList(formDto);
+ return new Result>().ok(data);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemAnalysisController.java
new file mode 100644
index 00000000..f7fa875e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemAnalysisController.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.modules.item.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.item.result.*;
+import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
+import com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO;
+import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
+import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
+import com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO;
+import com.elink.esua.epdc.modules.item.service.ItemAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+
+/**
+ * 项目表 项目表
+ *
+ * @author yujintao yujintao@elink-cn.com
+ * @since v1.0.0 2019-09-04
+ */
+@RestController
+@RequestMapping("item")
+public class ItemAnalysisController {
+
+ @Autowired
+ private ItemAnalysisService itemAnalysisService;
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
+ * @Author yinzuomei
+ * @Description 最热项目列表查询
+ * @Date 2020/2/10 13:45
+ **/
+ @GetMapping("pageHottestItem")
+ public Result> pageHottestItem(@RequestParam Map params) {
+ PageData page = itemAnalysisService.listItemResultDTO(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO
+ * @Author yinzuomei
+ * @Description 未解决项目列表查询
+ * @Date 2020/2/10 19:08
+ **/
+ @GetMapping("pageUnsolvedItem")
+ public Result> pageUnsolvedItem(@RequestParam Map params) {
+ PageData page = itemAnalysisService.listUnsolvedItemResultDTO(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO
+ * @Author yinzuomei
+ * @Description 疑难项目分析
+ * @Date 2020/2/11 13:12
+ **/
+ @GetMapping("pageDifficultItem")
+ public Result> pageDifficultItem(@RequestParam Map params) {
+ PageData page = itemAnalysisService.listDifficultItemResultDTO(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.ReportUnsolvedItemResultDTO
+ * @Author yinzuomei
+ * @Description 区域调度-解决中项目列表
+ * @Date 2020/2/11 15:11
+ **/
+ @GetMapping("pageReportUnsolvedItem")
+ public Result> pageReportUnsolvedItem(@RequestParam Map params) {
+ PageData page = itemAnalysisService.listReportUnsolvedItemDTO(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.ReportSolvedItemResultDTO
+ * @Author yinzuomei
+ * @Description 区域调度-已解决项目列表
+ * @Date 2020/2/11 15:11
+ **/
+ @GetMapping("pageReportSolvedItem")
+ public Result> pageReportSolvedItem(@RequestParam Map params) {
+ PageData page = itemAnalysisService.listReportSolvedItemResultDTO(params);
+ return new Result>().ok(page);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemAnalysisDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemAnalysisDao.java
new file mode 100644
index 00000000..df1ae540
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemAnalysisDao.java
@@ -0,0 +1,108 @@
+/**
+ * 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.elink.esua.epdc.modules.item.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.dto.item.form.HotItemListFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
+import com.elink.esua.epdc.dto.item.result.*;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 项目模块
+ * @Author yinzuomei
+ * @Date 2020/2/10 13:43
+ */
+@Mapper
+public interface ItemAnalysisDao extends BaseDao {
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 最热项目列表查询
+ * @Date 2020/2/10 13:53
+ **/
+ List selectListHottestItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 未解决项目列表查询
+ * @Date 2020/2/10 19:16
+ **/
+ List selectListUnsolvedItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 疑难项目分析列表查询
+ * @Date 2020/2/11 13:14
+ **/
+ List selectListDifficultItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 区域调度-解决中项目列表
+ * @Date 2020/2/11 15:14
+ **/
+ List selectListReportUnsolvedItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 区域调度-已解决项目列表
+ * @Date 2020/2/11 15:15
+ **/
+ List selectListReportSolvedItemResultDTO(Map params);
+
+ /**
+ * @Description: 重点项目概况
+ * @Param: [formDTO]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ ItemSurveyResultDTO selectOneItemSurvey(ItemSurveyFormDTO formDTO);
+
+ /**
+ * @Description: 疑难项目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List selectOneItemAnalysis(ItemAnalysisFormDTO formDto);
+
+ /**
+ * @Description: 最热项目接口 :最热讨论分析
+ * @Param: [formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: zy
+ * @Date: 2020-02-12
+ */
+ List selectListHotItemList(HotItemListFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemAnalysisService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemAnalysisService.java
new file mode 100644
index 00000000..b5ad15be
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemAnalysisService.java
@@ -0,0 +1,92 @@
+package com.elink.esua.epdc.modules.item.service;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.dto.item.form.HotItemListFormDTO;
+import com.elink.esua.epdc.dto.item.result.*;
+import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
+import com.elink.esua.epdc.dto.item.result.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 项目模块
+ *
+ * @Author yinzuomei
+ * @Date 2020/2/10 13:43
+ */
+public interface ItemAnalysisService {
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
+ * @Author yinzuomei
+ * @Description 最热项目列表查询
+ * @Date 2020/2/10 13:46
+ **/
+ PageData listItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO
+ * @Author yinzuomei
+ * @Description 未解决项目列表查询
+ * @Date 2020/2/10 19:11
+ **/
+ PageData listUnsolvedItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO
+ * @Author yinzuomei
+ * @Description 疑难项目分析
+ * @Date 2020/2/11 13:13
+ **/
+ PageData listDifficultItemResultDTO(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 区域调度-解决中项目列表
+ * @Date 2020/2/11 15:13
+ **/
+ PageData listReportUnsolvedItemDTO(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 区域调度-已解决项目列表
+ * @Date 2020/2/11 15:13
+ **/
+ PageData listReportSolvedItemResultDTO(Map params);
+
+ /**
+ * @Description: 重点项目概况
+ * @Param: [formDTO]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ ItemSurveyResultDTO getItemSurvey(ItemSurveyFormDTO formDTO);
+
+ /**
+ * @Description: 疑难项目分析
+ * @Param: [formDto]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-02-11
+ */
+ List getItemAnalysis(ItemAnalysisFormDTO formDto);
+
+ /**
+ * @Description: 最热项目接口 :最热讨论分析
+ * @Param: [formDto]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: zy
+ * @Date: 2020-02-12
+ */
+ List listHotItemList(HotItemListFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemAnalysisServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemAnalysisServiceImpl.java
new file mode 100644
index 00000000..89cef81e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemAnalysisServiceImpl.java
@@ -0,0 +1,152 @@
+package com.elink.esua.epdc.modules.item.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
+import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
+import com.elink.esua.epdc.datasources.DataSourceNames;
+import com.elink.esua.epdc.datasources.annotation.DataSource;
+import com.elink.esua.epdc.dto.item.form.HotItemListFormDTO;
+import com.elink.esua.epdc.dto.item.result.*;
+import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
+import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
+import com.elink.esua.epdc.dto.item.result.*;
+import com.elink.esua.epdc.modules.item.dao.ItemAnalysisDao;
+import com.elink.esua.epdc.modules.item.service.ItemAnalysisService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 项目模块
+ * @Author yinzuomei
+ * @Date 2020/2/10 13:43
+ */
+@Service
+public class ItemAnalysisServiceImpl extends BaseServiceImpl implements ItemAnalysisService {
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.ItemResultDTO
+ * @Author yinzuomei
+ * @Description 最热项目列表查询
+ * @Date 2020/2/10 13:47
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listItemResultDTO(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListHottestItemResultDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO
+ * @Author yinzuomei
+ * @Description 未解决项目列表查询
+ * @Date 2020/2/10 19:13
+ **/
+ @Override
+ @DataSource(name = DataSourceNames.FOURTH)
+ public PageData listUnsolvedItemResultDTO(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListUnsolvedItemResultDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO
+ * @Author yinzuomei
+ * @Description 疑难项目分析
+ * @Date 2020/2/11 13:13
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listDifficultItemResultDTO(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListDifficultItemResultDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 区域调度-解决中项目列表
+ * @Date 2020/2/11 15:13
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listReportUnsolvedItemDTO(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListReportUnsolvedItemResultDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 区域调度-已解决项目列表
+ * @Date 2020/2/11 15:13
+ **/
+ @DataSource(name = DataSourceNames.FOURTH)
+ @Override
+ public PageData listReportSolvedItemResultDTO(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListReportSolvedItemResultDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ @Override
+ public ItemSurveyResultDTO getItemSurvey(ItemSurveyFormDTO formDTO) {
+ return baseDao.selectOneItemSurvey(formDTO);
+ }
+
+ @Override
+ public List getItemAnalysis(ItemAnalysisFormDTO formDto) {
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ return baseDao.selectOneItemAnalysis(formDto);
+ }
+
+ @Override
+ public List listHotItemList(HotItemListFormDTO formDto) {
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ return baseDao.selectListHotItemList(formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/AppTopicAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/AppTopicAnalysisController.java
new file mode 100644
index 00000000..1085894a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/AppTopicAnalysisController.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.modules.topic.controller;
+
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.topic.form.HotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.form.NewHotTopicFormDTO;
+import com.elink.esua.epdc.modules.topic.service.TopicAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 话题相关接口APP
+ *
+ * @author wanggongfeng
+ * @since v1.0.0 2020-02-11
+ */
+@RestController
+@RequestMapping("apptopic")
+public class AppTopicAnalysisController {
+
+ @Autowired
+ private TopicAnalysisService topicAnalysisService;
+
+ /**
+ * @param hotTopicFormDTO
+ * @return com.elink.esua.epdc.dto.result.TopicResultDTO
+ * @Author wanggongfeng
+ * @Description 最热话题接口
+ * @Date 2020/2/11 11:12
+ **/
+ @GetMapping("getHotTopicList")
+ public Result getHotTopicList(@RequestBody HotTopicFormDTO hotTopicFormDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(hotTopicFormDTO);
+ Result result = topicAnalysisService.getHotTopicList(hotTopicFormDTO);
+ return result;
+ }
+
+ /**
+ * @param newHotTopicFormDTO
+ * @return com.elink.esua.epdc.dto.result.TopicResultDTO
+ * @Author wanggongfeng
+ * @Description 最新发布话题接口
+ * @Date 2020/2/11 11:12
+ **/
+ @GetMapping("getNewTopicList")
+ public Result getNewTopicList(@RequestBody NewHotTopicFormDTO newHotTopicFormDTO) {
+ //效验数据
+ ValidatorUtils.validateEntity(newHotTopicFormDTO);
+ Result result = topicAnalysisService.getNewTopicList(newHotTopicFormDTO);
+ return result;
+ }
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicAnalysisController.java
new file mode 100644
index 00000000..4e5f5dc1
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/controller/TopicAnalysisController.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.elink.esua.epdc.modules.topic.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
+import com.elink.esua.epdc.modules.topic.service.TopicAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+
+/**
+ * 话题相关接口
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@RestController
+@RequestMapping("topic")
+public class TopicAnalysisController {
+
+ @Autowired
+ private TopicAnalysisService topicAnalysisService;
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.result.TopicResultDTO
+ * @Author yinzuomei
+ * @Description 最热话题列表查询
+ * @Date 2020/2/10 11:34
+ **/
+ @GetMapping("pageHottestTopic")
+ public Result> pageHottestTopic(@RequestParam Map params) {
+ PageData page = topicAnalysisService.listHottestTopic(params);
+ return new Result>().ok(page);
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.result.TopicResultDTO
+ * @Author yinzuomei
+ * @Description 最新话题列表查询
+ * @Date 2020/2/10 12:50
+ **/
+ @GetMapping("pageLatestTopic")
+ public Result> pageLatestTopic(@RequestParam Map params) {
+ PageData page = topicAnalysisService.listLatestTopic(params);
+ return new Result>().ok(page);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicAnalysisDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicAnalysisDao.java
new file mode 100644
index 00000000..a9d94d66
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/dao/TopicAnalysisDao.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.elink.esua.epdc.modules.topic.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.elink.esua.epdc.dto.topic.form.HotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.form.NewHotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.result.HotTopicResultDTO;
+import com.elink.esua.epdc.dto.topic.result.NewHotTopicResultDTO;
+import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 话题表 话题表
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@Mapper
+public interface TopicAnalysisDao extends BaseMapper {
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 最热话题列表查询
+ * @Date 2020/2/10 11:52
+ **/
+ List selectListHottestTopicDTO(Map params);
+
+ /**
+ * @param params
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 最新话题列表查询
+ * @Date 2020/2/10 12:51
+ **/
+ List selectListLatesttTopicDTO(Map params);
+
+ /**
+ * 最热话题接口
+ * @param hotTopicFormDTO
+ * @return
+ */
+ List selectHotTopicList(HotTopicFormDTO hotTopicFormDTO);
+
+ /**
+ * 最新发布话题接口
+ * @param newHotTopicFormDTO
+ * @return
+ */
+ List selectNewHotTopicList(NewHotTopicFormDTO newHotTopicFormDTO);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicAnalysisService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicAnalysisService.java
new file mode 100644
index 00000000..7f41226a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/TopicAnalysisService.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.elink.esua.epdc.modules.topic.service;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.topic.form.HotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.form.NewHotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
+
+import java.util.Map;
+
+/**
+ * 话题相关Service
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+public interface TopicAnalysisService {
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.result.TopicResultDTO
+ * @Author yinzuomei
+ * @Description 最热话题列表查询
+ * @Date 2020/2/10 11:34
+ **/
+ PageData listHottestTopic(Map params);
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.commons.tools.page.PageData
+ * @Author yinzuomei
+ * @Description 最新话题列表查询
+ * @Date 2020/2/10 12:50
+ **/
+ PageData listLatestTopic(Map params);
+
+ /**
+ * 最热话题接口
+ * @param hotTopicFormDTO
+ * @return
+ */
+ Result getHotTopicList(HotTopicFormDTO hotTopicFormDTO);
+
+ /**
+ * 最新发布话题接口
+ * @param newHotTopicFormDTO
+ * @return
+ */
+ Result getNewTopicList(NewHotTopicFormDTO newHotTopicFormDTO);
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicAnalysisServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicAnalysisServiceImpl.java
new file mode 100644
index 00000000..9cb68f49
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/topic/service/impl/TopicAnalysisServiceImpl.java
@@ -0,0 +1,103 @@
+package com.elink.esua.epdc.modules.topic.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
+import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.datasources.DataSourceNames;
+import com.elink.esua.epdc.datasources.annotation.DataSource;
+import com.elink.esua.epdc.dto.topic.form.HotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.form.NewHotTopicFormDTO;
+import com.elink.esua.epdc.dto.topic.result.HotTopicResultDTO;
+import com.elink.esua.epdc.dto.topic.result.NewHotTopicResultDTO;
+import com.elink.esua.epdc.dto.topic.result.TopicResultDTO;
+import com.elink.esua.epdc.modules.topic.dao.TopicAnalysisDao;
+import com.elink.esua.epdc.modules.topic.service.TopicAnalysisService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 话题相关Service
+ * @Author yinzuomei
+ * @Date 2020/2/10 10:56
+ */
+@Service
+public class TopicAnalysisServiceImpl extends BaseServiceImpl implements TopicAnalysisService {
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.result.HottestTopicResultDTO
+ * @Author yinzuomei
+ * @Description 最热话题列表查询
+ * @Date 2020/2/10 12:53
+ **/
+ @DataSource(name = DataSourceNames.FIFTH)
+ @Override
+ public PageData listHottestTopic(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListHottestTopicDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * @param params
+ * @return com.elink.esua.epdc.dto.result.LatestTopicResultDTO
+ * @Author yinzuomei
+ * @Description 最新话题列表查询
+ * @Date 2020/2/10 12:53
+ **/
+ @DataSource(name = DataSourceNames.FIFTH)
+ @Override
+ public PageData listLatestTopic(Map params) {
+ UserDetail userDetail = SecurityUser.getUser();
+ if (null == userDetail.getDeptIdList() || userDetail.getDeptIdList().size() == 0) {
+ return new PageData<>(null, 0);
+ }
+ params.put("deptIdList", userDetail.getDeptIdList());
+ IPage page = getPage(params);
+ List list = baseDao.selectListLatesttTopicDTO(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ /**
+ * 最热话题接口
+ * @param hotTopicFormDTO
+ * @Author wanggongfeng
+ * @return
+ */
+ @Override
+ public Result getHotTopicList(HotTopicFormDTO hotTopicFormDTO){
+ int pageIndex = (hotTopicFormDTO.getPageIndex() - NumConstant.ONE) * hotTopicFormDTO.getPageSize();
+ hotTopicFormDTO.setPageIndex(pageIndex);
+ hotTopicFormDTO.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ List list = baseDao.selectHotTopicList(hotTopicFormDTO);
+ return new Result().ok(list);
+ }
+
+ /**
+ * 最新发布话题接口
+ * @param newHotTopicFormDTO
+ * @Author wanggongfeng
+ * @return
+ */
+ @Override
+ public Result getNewTopicList(NewHotTopicFormDTO newHotTopicFormDTO){
+ int pageIndex = (newHotTopicFormDTO.getPageIndex() - NumConstant.ONE) * newHotTopicFormDTO.getPageSize();
+ newHotTopicFormDTO.setPageIndex(pageIndex);
+ newHotTopicFormDTO.setDeptIdList(SecurityUser.getUser().getDeptIdList());
+ List list = baseDao.selectNewHotTopicList(newHotTopicFormDTO);
+ return new Result().ok(list);
+ }
+
+
+}
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserGridOpiningController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserGridOpiningController.java
new file mode 100644
index 00000000..0f5b1fc1
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserGridOpiningController.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.elink.esua.epdc.modules.user.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import com.elink.esua.epdc.dto.user.MetaUserGridOpiningDTO;
+import com.elink.esua.epdc.dto.user.result.GridOpeningResultDTO;
+import com.elink.esua.epdc.modules.user.excel.MetaUserGridOpiningExcel;
+import com.elink.esua.epdc.modules.user.service.MetaUserGridOpiningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 网格开通情况
+ *
+ * @author qu elink@elink-cn.com
+ * @since v1.0.0 2020-03-25
+ */
+@RestController
+@RequestMapping("metausergridopining")
+public class MetaUserGridOpiningController {
+
+ @Autowired
+ private MetaUserGridOpiningService metaUserGridOpiningService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = metaUserGridOpiningService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ MetaUserGridOpiningDTO data = metaUserGridOpiningService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody MetaUserGridOpiningDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ metaUserGridOpiningService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody MetaUserGridOpiningDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ metaUserGridOpiningService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ metaUserGridOpiningService.delete(ids);
+ return new Result();
+ }
+
+ @GetMapping("export")
+ public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
+ List list = metaUserGridOpiningService.list(params);
+ ExcelUtils.exportExcelToTarget(response, null, list, MetaUserGridOpiningExcel.class);
+ }
+
+ /**
+ * @author: qushutong
+ * @Date: 2020/3/25 10:35
+ * @Description: 临时表导入
+ */
+ @GetMapping("tolead")
+ public Result> tolead() {
+ return metaUserGridOpiningService.createUserAnalysisData();
+ }
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserPartyRankController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserPartyRankController.java
new file mode 100644
index 00000000..b4d67843
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/controller/MetaUserPartyRankController.java
@@ -0,0 +1,107 @@
+/**
+ * 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.elink.esua.epdc.modules.user.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import com.elink.esua.epdc.dto.user.MetaUserPartyRankDTO;
+import com.elink.esua.epdc.modules.user.excel.MetaUserPartyRankExcel;
+import com.elink.esua.epdc.modules.user.service.MetaUserPartyRankService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 党员排行
+ *
+ * @author qu elink@elink-cn.com
+ * @since v1.0.0 2020-03-26
+ */
+@RestController
+@RequestMapping("metauserpartyrank")
+public class MetaUserPartyRankController {
+
+ @Autowired
+ private MetaUserPartyRankService metaUserPartyRankService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = metaUserPartyRankService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ MetaUserPartyRankDTO data = metaUserPartyRankService.get(id);
+ return new Result