().ok(screenProjectService.projectDetail(projectDetailFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
index 233f31dc27..91edf636dd 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
@@ -1,10 +1,10 @@
-package com.epmet.controller.topic;
+package com.epmet.datareport.controller.topic;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
index cceebbef37..dda6b177cf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
@@ -1,4 +1,4 @@
-package com.epmet.controller.user;
+package com.epmet.datareport.controller.user;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@@ -7,7 +7,7 @@ import com.epmet.dto.form.user.UserSubAgencyFormDTO;
import com.epmet.dto.form.user.UserSubGridFormDTO;
import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.user.*;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
index e2a8410272..975b49ba5a 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.group;
+package com.epmet.datareport.dao.group;
import com.epmet.group.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
index abf2c4d350..53cab40c92 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.issue;
+package com.epmet.datareport.dao.issue;
import com.epmet.issue.dto.result.IssueDataDTO;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
index 3ae53720f7..b8920580bf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.project;
+package com.epmet.datareport.dao.project;
import com.epmet.project.dto.FactAgencyProjectDailyDTO;
import com.epmet.project.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
index a4babe6039..b65c16b9a1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.dao.publicity;
+package com.epmet.datareport.dao.publicity;
import com.epmet.publicity.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCpcBaseDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCpcBaseDataDao.java
new file mode 100644
index 0000000000..87f26f3b01
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCpcBaseDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 基层党建-党员基本情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCpcBaseDataDao{
+
+ /**
+ * @Description 查询党员年龄分布情况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:47
+ **/
+ PartymemberAgeDistributionResultDTO selectPartymemberAgeDistribution(@Param("agencyId") String agencyId);
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerAgencyDao.java
new file mode 100644
index 0000000000..c97ac8b8e0
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerAgencyDao.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 组织机构信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerAgencyDao {
+
+ /**
+ * @Description 查询客户根组织ID
+ * @param customerId
+ * @author zxc
+ * @date 2020/8/18 2:44 下午
+ */
+ TreeResultDTO selectRootAgencyId(@Param("customerId")String customerId);
+
+ /**
+ * @Description 查询下级机关的 名称和id
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:48 下午
+ */
+ List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids);
+
+ /**
+ * @Description 查询当前机关的区域信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 4:51 下午
+ */
+ CompartmentResultDTO getAgencyAreaInfo(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级区域分布信息【机关级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistributionAgency(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerDeptDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerDeptDao.java
new file mode 100644
index 0000000000..e6ae450514
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerDeptDao.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 部门信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerDeptDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerGridDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerGridDao.java
new file mode 100644
index 0000000000..4e57c2f71d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenCustomerGridDao.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.AgencyDistributionResultDTO;
+import com.epmet.screen.dto.result.BranchResultDTO;
+import com.epmet.screen.dto.result.ParymemberDistributionResultDTO;
+import com.epmet.screen.dto.result.UserDistributionResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 网格(党支部)信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerGridDao {
+
+ /**
+ * @Description 查询子级区域分布信息【网格级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询党支部信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 9:13 上午
+ */
+ List selectBranch(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistribution(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenDifficultyDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenDifficultyDataDao.java
new file mode 100644
index 0000000000..17d2e7a420
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenDifficultyDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.DifficultProjectResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-难点堵点(耗时最长|设计部门最多|处理次数)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenDifficultyDataDao {
+
+ /**
+ * @Description 查询难点赌点-耗时最长|涉及部门最多|处理次数
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:26
+ **/
+ List selectDifficulty(@Param("agencyId")String agencyId,@Param("type")String type);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventDataDao.java
new file mode 100644
index 0000000000..92f1641cce
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventDataDao.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.ProjectDetailResultDTO;
+import com.epmet.screen.dto.result.ProjectResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 中央区-事件数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenEventDataDao{
+
+ /**
+ * @Description 查询事件
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 2:09 下午
+ */
+ List selectEvent(@Param("parentId")String parentId);
+
+ /**
+ * @Description 3、项目详情
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO selectEventDetail(@Param("projectId")String projectId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventImgDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventImgDataDao.java
new file mode 100644
index 0000000000..8090ce00c7
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenEventImgDataDao.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 中央区-事件数据图片数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenEventImgDataDao {
+
+ /**
+ * @Description 查询事件imgUrl集合
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 5:11 下午
+ */
+ List selectEventImgList(@Param("projectId")String projectId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenGovernRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenGovernRankDataDao.java
new file mode 100644
index 0000000000..3cf167fc5e
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenGovernRankDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.GovernCapacityResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-治理能力排行数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenGovernRankDataDao{
+
+ /**
+ * @Description 查询政府治理能力各项指标
+ * @param monthId
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:34
+ **/
+ List selectGovernCapacityRatio(@Param("monthId") String monthId,@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataMonthlyDao.java
new file mode 100644
index 0000000000..2e18647c39
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataMonthlyDao.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.screen.dto.result.MonthBarchartResult;
+import com.epmet.screen.dto.result.MonthBarchartResultDTO;
+import com.epmet.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.screen.dto.result.SubAgencyIndexRankResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 指数-指数数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenIndexDataMonthlyDao{
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ MonthPieChartResultDTO selectMonthPieChart(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询近一年的指数值【不包括本月】
+ * @param customerId
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 9:02 上午
+ */
+ List selectMonthBarchart(@Param("customerId")String customerId, @Param("agencyId")String agencyId);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List selectSubAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataYearlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataYearlyDao.java
new file mode 100644
index 0000000000..304351b3b7
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenIndexDataYearlyDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.YearAverageIndexResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 指数-指数数据(按年统计)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-19
+ */
+@Mapper
+public interface ScreenIndexDataYearlyDao{
+
+ /**
+ * @Description 1、年度平均指数
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ YearAverageIndexResultDTO selectYearAverageIndex(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenOrgRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenOrgRankDataDao.java
new file mode 100644
index 0000000000..fbee5cd15c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenOrgRankDataDao.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.OrgRankDataResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领-组织排行榜
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenOrgRankDataDao{
+
+ /**
+ * @Description 查询指定机关的直属网格月度数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 13:58
+ **/
+ List selectGridDataMonthly(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyBranchDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyBranchDataDao.java
new file mode 100644
index 0000000000..0117eec4a7
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyBranchDataDao.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.BranchBuildOrderByCountResultDTO;
+import com.epmet.screen.dto.result.BranchIssueDataResultDTO;
+import com.epmet.screen.dto.result.VolunteerServiceResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层党建-建设情况数据(支部,联建)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyBranchDataDao {
+
+ /**
+ * @Description 根据agencyTd、type(数据类别 party:支部建设;union:联合建设)查出共有多少议题主题
+ * @param agencyId
+ * @param type
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:44
+ **/
+ List selectIssueGroup(@Param("agencyId") String agencyId , @Param("type") String type);
+
+ /**
+ * @Description 根据议题名称查找近12个月的数据
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:59
+ **/
+ List selectBranchDataByTypeAndTimeZone(@Param("agencyId") String agencyId , @Param("type") String type, @Param("category") String category, @Param("bottomMonthId") String bottomMonthId);
+
+ /**
+ * @Description 查询党员志愿服务
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 3:30 下午
+ */
+ List selectVolunteerServiceResult(@Param("agencyId")String agencyId);
+ /**
+ * @Description 查找指定组织的下一级组织的数据排行
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.20 09:46
+ **/
+ List selectBranchDataByTypeOrder(@Param("agencyId")String agencyId,@Param("category")String category,@Param("monthId")String monthId,@Param("bottomMonthId")String bottomMonthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyLinkMassesDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyLinkMassesDataDao.java
new file mode 100644
index 0000000000..dfa5c1f6d2
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyLinkMassesDataDao.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.ContactMassLineChartResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领-党员联系群众数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyLinkMassesDataDao {
+
+ /**
+ * @Description 查询党员联系群众
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 2:48 下午
+ */
+ List selectContactMassLineChart(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyUserRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyUserRankDataDao.java
new file mode 100644
index 0000000000..946ac2a096
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyUserRankDataDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.PartyUserPointResultDTO;
+import com.epmet.screen.dto.result.UserPointResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领|基层治理-市民(党员)积分排行榜
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyUserRankDataDao{
+
+ /**
+ * @Description 查询指定机关下的用户积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:11
+ **/
+ List selectUserPointOrder(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询指定机关所属网格的党员积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 14:32
+ **/
+ List selectPartymemberPointOrder(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPioneerDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPioneerDataDao.java
new file mode 100644
index 0000000000..4b477689c3
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPioneerDataDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.FineExampleResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 党建引领-先锋模范数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPioneerDataDao{
+
+ /**
+ * @Description 查询先锋模范
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 5:22 下午
+ */
+ FineExampleResultDTO selectFineExample(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserJoinDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserJoinDao.java
new file mode 100644
index 0000000000..0edee635d4
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserJoinDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.UserJoinIndicatorGrowthRateResultDTO;
+import com.epmet.screen.dto.result.UserJoinMonthlyResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-公众参与
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenUserJoinDao {
+
+ /**
+ * @Description 查询用户参与数据
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:07
+ **/
+ UserJoinIndicatorGrowthRateResultDTO selectUserJoinData(@Param("agencyId") String agencyId, @Param("monthId")String monthId);
+
+ /**
+ * @Description 查询月度用户参与数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:54
+ **/
+ List selectUserJoinDataMonthly(@Param("agencyId")String agencyId,@Param("monthId") String monthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
new file mode 100644
index 0000000000..a03353e825
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.screen;
+
+import com.epmet.screen.dto.result.PartymemberPercentResultDTO;
+import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
+import com.epmet.screen.dto.result.TopProfileResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 中央区-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenUserTotalDataDao {
+
+ /**
+ * @Description 党员基本情况-饼状图概况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 15:17
+ **/
+ PartymemberPercentResultDTO selectAgencyPartymemberPercent(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询top区概况
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 2:13 下午
+ */
+ TopProfileResultDTO selectTopProfile(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 求出人均议题
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:54
+ **/
+ int selectAvgIssue(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询用户数据
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 16:00
+ **/
+ List selectUserTotalData(@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
index 2ab863ab78..4c0fb9d377 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
@@ -1,6 +1,5 @@
-package com.epmet.dao.topic;
+package com.epmet.datareport.dao.topic;
-import com.epmet.group.dto.result.GroupIncrTrendResultDTO;
import com.epmet.topic.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
index 2df268feb2..c0a69f82fc 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.user;
+package com.epmet.datareport.dao.user;
import com.epmet.dto.DimAgencyDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
index d644029bcf..66d57fc92c 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.group;
+package com.epmet.datareport.service.group;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
index d1be53ee85..be4faf115d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
@@ -1,15 +1,15 @@
-package com.epmet.service.group.impl;
+package com.epmet.datareport.service.group.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.group.GroupDao;
+import com.epmet.datareport.dao.group.GroupDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.group.constant.GroupConstant;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
import com.epmet.group.dto.result.*;
-import com.epmet.service.group.GroupService;
+import com.epmet.datareport.service.group.GroupService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
index c0d33b2a3b..d0b3b6156d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.issue;
+package com.epmet.datareport.service.issue;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
index d44576202e..86953616b1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
@@ -1,22 +1,20 @@
-package com.epmet.service.issue.impl;
+package com.epmet.datareport.service.issue.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.issue.IssueDao;
+import com.epmet.datareport.dao.issue.IssueDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.issue.constant.IssueConstant;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
import com.epmet.issue.dto.result.*;
-import com.epmet.service.issue.IssueService;
+import com.epmet.datareport.service.issue.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
index 6e5366827f..41af9351ac 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
@@ -1,10 +1,10 @@
-package com.epmet.service.project.impl;
+package com.epmet.datareport.service.project.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.project.ProjectDao;
+import com.epmet.datareport.dao.project.ProjectDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
index bec823066c..35b6fff93b 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity;
+package com.epmet.datareport.service.publicity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.publicity.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
index b01f9339bc..9a8ceaca2f 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
@@ -15,16 +15,16 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity.impl;
+package com.epmet.datareport.service.publicity.impl;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.publicity.PublicityDao;
+import com.epmet.datareport.dao.publicity.PublicityDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.publicity.dto.result.*;
-import com.epmet.service.publicity.PublicityService;
+import com.epmet.datareport.service.publicity.PublicityService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/AgencyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/AgencyService.java
new file mode 100644
index 0000000000..d3eee4f133
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/AgencyService.java
@@ -0,0 +1,35 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.screen.dto.form.CompartmentFormDTO;
+import com.epmet.screen.dto.result.CompartmentResultDTO;
+import com.epmet.screen.dto.result.TreeResultDTO;
+
+import java.util.List;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+public interface AgencyService {
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam);
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/DistributionService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/DistributionService.java
new file mode 100644
index 0000000000..62a0d0d7bf
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/DistributionService.java
@@ -0,0 +1,56 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.screen.dto.form.*;
+import com.epmet.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+public interface DistributionService {
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ List branch(BranchFormDTO formDTO);
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ UserResultDTO user(UserFormDTO userFormDTO);
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO);
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ List project(ProjectFormDTO projectFormDTO);
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassRootsGovernService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassRootsGovernService.java
new file mode 100644
index 0000000000..12315295b5
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassRootsGovernService.java
@@ -0,0 +1,77 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.screen.dto.form.AgencyFormDTO;
+import com.epmet.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+public interface GrassRootsGovernService {
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ List difficultProject(AgencyNumTypeParamFormDTO param);
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param);
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ List publicPartiRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ List governCapacityRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassrootsPartyDevService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassrootsPartyDevService.java
new file mode 100644
index 0000000000..a870d21585
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassrootsPartyDevService.java
@@ -0,0 +1,58 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.screen.dto.form.ParymemberFormDTO;
+import com.epmet.screen.dto.result.BranchBuildRankResultDTO;
+import com.epmet.screen.dto.result.BranchBuildTrendResultDTO;
+import com.epmet.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import com.epmet.screen.dto.result.PartymemberPercentResultDTO;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface GrassrootsPartyDevService {
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param);
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param);
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param);
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/IndexService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/IndexService.java
new file mode 100644
index 0000000000..5c0b5e4ade
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/IndexService.java
@@ -0,0 +1,55 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.screen.dto.form.MonthBarchartFormDTO;
+import com.epmet.screen.dto.form.MonthPieChartFormDTO;
+import com.epmet.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.screen.dto.form.YearAverageIndexFormDTO;
+import com.epmet.screen.dto.result.MonthBarchartResultDTO;
+import com.epmet.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.screen.dto.result.SubAgencyIndexRankResultDTO;
+import com.epmet.screen.dto.result.YearAverageIndexResultDTO;
+
+import java.util.List;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface IndexService {
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO);
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO);
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO, ExternalAppRequestParam externalAppRequestParam);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/PartyMemberLeadService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/PartyMemberLeadService.java
new file mode 100644
index 0000000000..5f781b2622
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/PartyMemberLeadService.java
@@ -0,0 +1,63 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.screen.dto.form.FineExampleFormDTO;
+import com.epmet.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface PartyMemberLeadService {
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO);
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO);
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO);
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ List advancedBranchRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ List advancedPartymemberRank(AgencyAndNumFormDTO param);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/ScreenProjectService.java
new file mode 100644
index 0000000000..78543bc52f
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/ScreenProjectService.java
@@ -0,0 +1,22 @@
+package com.epmet.datareport.service.screen;
+
+import com.epmet.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.screen.dto.result.ProjectDetailResultDTO;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface ScreenProjectService {
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
new file mode 100644
index 0000000000..9ca543828c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
@@ -0,0 +1,94 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.screen.ScreenCustomerGridDao;
+import com.epmet.screen.dto.form.CompartmentFormDTO;
+import com.epmet.screen.dto.result.AgencyDistributionResultDTO;
+import com.epmet.screen.constant.*;
+import com.epmet.screen.dto.result.CompartmentResultDTO;
+import com.epmet.screen.dto.result.TreeResultDTO;
+import com.epmet.datareport.service.screen.AgencyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+@Service
+public class AgencyServiceImpl implements AgencyService {
+
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) {
+ // 1. 查询客户根组织ID
+ String customerId = externalAppRequestParam.getCustomerId();
+ TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId);
+ if (null == rootAgency){
+ return new TreeResultDTO();
+ }
+ List departmentList = this.getDepartmentList(("".equals(rootAgency.getPids()) ? "" : rootAgency.getPids() + ",") + rootAgency.getValue());
+ rootAgency.setChildren(departmentList);
+ return rootAgency;
+ }
+
+ /**
+ * @Description 递归查询填充下级
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:42 下午
+ */
+ private List getDepartmentList(String subAgencyPids) {
+ List subAgencyList = screenCustomerAgencyDao.selectSubAgencyList(subAgencyPids);
+ if (subAgencyList.size() > NumConstant.ZERO) {
+ for (TreeResultDTO sub : subAgencyList) {
+ List subAgency = getDepartmentList(sub.getPids() + "," + sub.getValue());
+ sub.setChildren(subAgency);
+ }
+ }
+ return subAgencyList;
+ }
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO) {
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(compartmentFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return new CompartmentResultDTO();
+ }
+ if (agencyAreaInfo.getLevel().equals(ScreenConstant.COMMUNITY)){
+ // 当level为"community"时,查询screen_customer_grid表
+ List agencyDistributionResultDTOS = screenCustomerGridDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }else {
+ List agencyDistributionResultDTOS = screenCustomerAgencyDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }
+ return agencyAreaInfo;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/DistributionServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/DistributionServiceImpl.java
new file mode 100644
index 0000000000..97a627fb23
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/DistributionServiceImpl.java
@@ -0,0 +1,133 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.screen.ScreenCustomerGridDao;
+import com.epmet.datareport.dao.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
+import com.epmet.screen.dto.form.*;
+import com.epmet.screen.dto.result.*;
+import com.epmet.screen.constant.*;
+import com.epmet.datareport.service.screen.DistributionService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+@Service
+public class DistributionServiceImpl implements DistributionService {
+
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List branch(BranchFormDTO formDTO) {
+ List branchResultDTOS = screenCustomerGridDao.selectBranch(formDTO.getAgencyId());
+ return branchResultDTOS;
+ }
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public UserResultDTO user(UserFormDTO userFormDTO) {
+ UserResultDTO userResult = new UserResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(userFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return userResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,userResult);
+ if (userResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List userDistributionResultDTOS = screenCustomerGridDao.selectUserDistribution(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }else {
+ List userDistributionResultDTOS = screenCustomerAgencyDao.selectUserDistributionAgency(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }
+ return userResult;
+ }
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO) {
+ ParymemberResultDTO parymemberResult = new ParymemberResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(parymemberFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return parymemberResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,parymemberResult);
+ if (parymemberResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List parymemberDistributionResultDTOS = screenCustomerGridDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }else {
+ List parymemberDistributionResultDTOS = screenCustomerAgencyDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }
+ return parymemberResult;
+ }
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List project(ProjectFormDTO projectFormDTO) {
+ List projectResultDTOS = screenEventDataDao.selectEvent(projectFormDTO.getAgencyId());
+ if (projectResultDTOS.size() == NumConstant.ZERO){
+ return new ArrayList<>();
+ }
+ return projectResultDTOS;
+ }
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO) {
+ TopProfileResultDTO topProfileResultDTO = screenUserTotalDataDao.selectTopProfile(topProfileFormDTO.getAgencyId());
+ if (null == topProfileResultDTO){
+ return new TopProfileResultDTO();
+ }
+ return topProfileResultDTO;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
new file mode 100644
index 0000000000..8b0db2c65a
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
@@ -0,0 +1,229 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.*;
+import com.epmet.datareport.service.screen.GrassRootsGovernService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.screen.dto.form.AgencyFormDTO;
+import com.epmet.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+@Service
+public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
+
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+ @Autowired
+ private ScreenDifficultyDataDao screenDifficultyDataDao;
+ @Autowired
+ private ScreenUserJoinDao screenUserJoinDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+ @Autowired
+ private ScreenGovernRankDataDao screenGovernRankDataDao;
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param) {
+ //默认5
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List userPointList = screenPartyUserRankDataDao.selectUserPointOrder(param.getAgencyId());
+ UserPointRankResultDTO result = new UserPointRankResultDTO();
+ result.setNameData(userPointList.stream().map(UserPointResultDTO::getName).collect(Collectors.toList()));
+ result.setPointsData(userPointList.stream().map(UserPointResultDTO::getPoint).collect(Collectors.toList()));
+ return result;
+ }
+
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List difficultProject(AgencyNumTypeParamFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.TWO);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenDifficultyDataDao.selectDifficulty(param.getAgencyId(),param.getType());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param) {
+
+ String monthId = dateUtils.getPreviousMonthId();
+ UserJoinIndicatorGrowthRateResultDTO latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
+ if(null == latest) return new PublicPartiProfileResultDTO();
+ PublicPartiProfileResultDTO result = ConvertUtils.sourceToTarget(latest,PublicPartiProfileResultDTO.class);
+ result.setMonthIncr(convertPercentStr(latest.getMonthIncr(),NumConstant.ZERO));
+ result.setJoinCompareLatestMonth(convertPercentStr(latest.getJoinCompareLatestMonth(),NumConstant.ZERO));
+ result.setIssueCompareLatestMonth(convertPercentStr(latest.getIssueCompareLatestMonth(),NumConstant.ZERO));
+ return result;
+ }
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List publicPartiRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.TWO);
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenUserTotalDataDao.selectUserTotalData(param.getAgencyId());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List governCapacityRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.FIVE);
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List orderList =
+ screenGovernRankDataDao.selectGovernCapacityRatio(dateUtils.getPreviousMonthId(),param.getAgencyId());
+ if(null == orderList || orderList.isEmpty()) return new ArrayList<>();
+ List result = new LinkedList<>();
+ orderList.forEach(o -> {
+ GovernCapacityRankResultDTO rank = new GovernCapacityRankResultDTO();
+ rank.setAgencyName(o.getAgencyName());
+ rank.setGovernRatio(convertPercentStr(o.getGovernRatio(),NumConstant.ONE));
+ rank.setResolvedRatio(convertPercentStr(o.getResolvedRatio(),NumConstant.ONE));
+ rank.setResponseRatio(convertPercentStr(o.getResponseRatio(),NumConstant.ONE));
+ rank.setSatisfactionRatio(convertPercentStr(o.getSatisfactionRatio(),NumConstant.ONE));
+ result.add(rank);
+ });
+ return result;
+ }
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ @Override
+ public PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param) {
+ Map Xaxis = dateUtils.getXpro();
+ List monthlyData = screenUserJoinDao.selectUserJoinDataMonthly(param.getAgencyId(),Xaxis.keySet().iterator().next());
+ PublicPartiChartResultDTO result = new PublicPartiChartResultDTO();
+ result.setXAxis(Xaxis.values().stream().collect(Collectors.toList()));
+ List defaultData = new LinkedList<>();
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ defaultData.add(NumConstant.ZERO);
+ }
+ if(null == monthlyData || monthlyData.isEmpty()){
+ result.setAverageJoinNumList(defaultData);
+ result.setJoinUserNumList(defaultData);
+ result.setOrganizeNumList(defaultData);
+ return result;
+ }
+ result.setOrganizeNumList(new ArrayList<>());
+ result.setJoinUserNumList(new ArrayList<>());
+ result.setAverageJoinNumList(new ArrayList<>());
+ Map> dataMap = monthlyData.stream().collect(Collectors.groupingBy(UserJoinMonthlyResultDTO :: getMonthId));
+ Xaxis.keySet().stream().forEach(monthId -> {
+ List data = dataMap.get(monthId);
+ if(null == data || data.isEmpty()){
+ result.getOrganizeNumList().add(NumConstant.ZERO);
+ result.getJoinUserNumList().add(NumConstant.ZERO);
+ result.getAverageJoinNumList().add(NumConstant.ZERO);
+ }else{
+ Integer o = NumConstant.ZERO;
+ Integer j = NumConstant.ZERO;
+ Integer a = NumConstant.ZERO;
+ for(UserJoinMonthlyResultDTO unit : data){
+ o = null == unit.getOrganizeNum() ? NumConstant.ZERO : o + unit.getOrganizeNum();
+ j = null == unit.getJoinUserNum() ? NumConstant.ZERO : o + unit.getJoinUserNum();
+ a = null == unit.getAverageJoinNum() ? NumConstant.ZERO : o + unit.getAverageJoinNum();
+ }
+ result.getOrganizeNumList().add(o);
+ result.getJoinUserNumList().add(j);
+ result.getAverageJoinNumList().add(a);
+ }
+ });
+
+ return result;
+ }
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
+ String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+ private String convertPercentStr(BigDecimal percent,Integer digits){
+ if(null == percent) percent = BigDecimal.ZERO;
+ String percentStr = percent.setScale(digits, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
new file mode 100644
index 0000000000..51a7a49ff6
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
@@ -0,0 +1,261 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenCpcBaseDataDao;
+import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao;
+import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.screen.dto.form.ParymemberFormDTO;
+import com.epmet.screen.dto.result.*;
+import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
+import com.github.pagehelper.PageHelper;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService {
+
+ private static final Logger logger = LoggerFactory.getLogger(GrassrootsPartyDevServiceImpl.class);
+
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+ @Autowired
+ private ScreenCpcBaseDataDao screenCpcBaseDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ private List issueGroup;
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param) {
+
+ PartymemberPercentResultDTO result = screenUserTotalDataDao.selectAgencyPartymemberPercent(param.getAgencyId());
+ if(null == result){
+ logger.warn("com.epmet.datareport.service.screen.impl.GrassrootsPartyDevServiceImpl.partymemberBaseInfo:未查询出指定agencyId下的党员基础信息数据,agencyId :: {}",param.getAgencyId());
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ return result;
+ }
+ //partymember / platform
+ if(null == result.getPlatFormTotal() || NumConstant.ZERO == result.getPlatFormTotal()){
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ }else{
+ result.setPercentInPlatForm(convertPercentStr(new BigDecimal((result.getPartyMemberTotal().doubleValue()/result.getPlatFormTotal().doubleValue()))));
+ }
+ return result;
+ }
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param) {
+ return screenCpcBaseDataDao.selectPartymemberAgeDistribution(param.getAgencyId());
+ }
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ BranchBuildTrendResultDTO result = new BranchBuildTrendResultDTO();
+ //生成近十二个月的横坐标数组
+ Map monthMap = getX();
+ result.setXAxis(monthMap.values().stream().collect(Collectors.toList()));
+
+ List dataArray = new LinkedList<>();
+ List yearlyDataList =
+ screenPartyBranchDataDao.selectBranchDataByTypeAndTimeZone(param.getAgencyId(),param.getType(),param.getCategory(),monthMap.keySet().iterator().next());
+
+
+ if(null != yearlyDataList && !yearlyDataList.isEmpty()){
+
+ Map> dataMapByIssue =
+ yearlyDataList.stream().collect(Collectors.groupingBy(BranchIssueDataResultDTO::getIssue));
+
+
+ result.setLegend(new LinkedList<>(dataMapByIssue.keySet()));
+
+ dataMapByIssue.forEach((issue,val) ->{
+ List issueYearlyDataList = val;
+ List numArray = new LinkedList<>();
+ BranchTrendSeriesDataResultDTO data = new BranchTrendSeriesDataResultDTO();
+ data.setName(issue);
+ if(null != issueYearlyDataList && !issueYearlyDataList.isEmpty()){
+ monthMap.keySet().forEach( monthId ->{
+ Optional optional
+ = issueYearlyDataList.stream().filter(yearly -> StringUtils.equals(monthId,yearly.getMonthId())).findAny();
+ if(optional.isPresent()){
+ numArray.add(optional.get().getData());
+ }else{
+ numArray.add(NumConstant.ZERO);
+ }
+ });
+ }else{
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ numArray.add(NumConstant.ZERO);
+ }
+ }
+ data.setData(numArray);
+ dataArray.add(data);
+ });
+ }
+
+ result.setSeriesData(dataArray);
+ result.setLegend(null == result.getLegend() ? new ArrayList<>() : result.getLegend());
+
+ return result;
+ }
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return BranchBuildRankResultDTO
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ if(StringUtils.isBlank(param.getMonthId())){
+ param.setMonthId(getPreviousMonthId());
+ }
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List orderList =
+ screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
+
+ BranchBuildRankResultDTO result = new BranchBuildRankResultDTO();
+ result.setJoinData(new LinkedList<>());
+ result.setOrganizeData(new LinkedList<>());
+ result.setXAxis(new LinkedList<>());
+ for(BranchBuildOrderByCountResultDTO data : orderList){
+ result.getXAxis().add(data.getOrgName());
+ result.getOrganizeData().add(data.getOrganizeData());
+ result.getJoinData().add(data.getJoinData());
+ }
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
+ String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+ /**
+ * @Description 返回当前月以及前十一个月,升序
+ * @param
+ * @return Map key:202001 value:1月
+ * @author wangc
+ * @date 2020.08.19 12:46
+ **/
+ public Map getX(){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ String currentMonth = format.format(calendar.getTime());
+ Integer monthCounter = Integer.parseInt(currentMonth);
+ Map monthMap = new HashMap<>();
+ int i = NumConstant.ONE;
+ while(i <= NumConstant.TWELVE){
+
+ if(monthCounter.toString().endsWith("00")){
+ monthCounter -= NumConstant.EIGHTY_EIGHT;
+ }
+
+ String abscissa = monthCounter.toString().substring(monthCounter.toString().length() - NumConstant.TWO);
+ if(abscissa.startsWith("0")) {
+ abscissa = abscissa.replace("0","").concat("月");
+ }else{
+ abscissa = abscissa.concat("月");
+ }
+ monthMap.put(monthCounter.toString(),abscissa);
+ monthCounter-- ;
+ i++;
+ }
+
+ Map result = Maps.newLinkedHashMap();
+ monthMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+
+ return result;
+ }
+
+
+ /**
+ * @Description 得到上个月的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 10:19
+ **/
+ private String getPreviousMonthId(){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ return format.format(calendar.getTime());
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/IndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/IndexServiceImpl.java
new file mode 100644
index 0000000000..e106a07d45
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/IndexServiceImpl.java
@@ -0,0 +1,136 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenIndexDataMonthlyDao;
+import com.epmet.datareport.dao.screen.ScreenIndexDataYearlyDao;
+import com.epmet.datareport.service.screen.IndexService;
+import com.epmet.screen.dto.form.MonthBarchartFormDTO;
+import com.epmet.screen.dto.form.MonthPieChartFormDTO;
+import com.epmet.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.screen.dto.form.YearAverageIndexFormDTO;
+import com.epmet.screen.dto.result.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+public class IndexServiceImpl implements IndexService {
+
+ @Autowired
+ private ScreenIndexDataYearlyDao screenIndexDataYearlyDao;
+ @Autowired
+ private ScreenIndexDataMonthlyDao screenIndexDataMonthlyDao;
+ @Autowired
+ private PartyMemberLeadServiceImpl partyMemberLeadServiceImpl;
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO) {
+ YearAverageIndexResultDTO yearAverageIndexResultDTO = screenIndexDataYearlyDao.selectYearAverageIndex(yearAverageIndexFormDTO.getAgencyId());
+ if (null == yearAverageIndexResultDTO){
+ return new YearAverageIndexResultDTO();
+ }
+ return yearAverageIndexResultDTO;
+ }
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO) {
+ MonthPieChartResultDTO monthPieChartResultDTO = screenIndexDataMonthlyDao.selectMonthPieChart(monthPieChartFormDTO.getAgencyId());
+ if (null == monthPieChartResultDTO){
+ return new MonthPieChartResultDTO();
+ }
+ return monthPieChartResultDTO;
+ }
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO, ExternalAppRequestParam externalAppRequestParam) {
+ String customerId = externalAppRequestParam.getCustomerId();
+ MonthBarchartResultDTO result = new MonthBarchartResultDTO();
+ List serviceAbilityData = new ArrayList<>();
+ List partyDevAbilityData = new ArrayList<>();
+ List governAbilityData = new ArrayList<>();
+ List totalIndexData = new ArrayList<>();
+ // 1. x轴
+ result.setXAxis(partyMemberLeadServiceImpl.getXPro());
+ // 2. 查询近一年的指数值【不包括本月】
+ List monthBarchartResults = screenIndexDataMonthlyDao.selectMonthBarchart(customerId, monthBarchartFormDTO.getAgencyId());
+ if (monthBarchartResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ serviceAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ partyDevAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ governAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ totalIndexData.add(NumConstant.ZERO_DOT_ZERO);
+ }
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+ List collect = monthBarchartResults.stream().sorted(Comparator.comparing(MonthBarchartResult::getMonthId)).collect(Collectors.toList());
+ collect.forEach(month -> {
+ serviceAbilityData.add(null == month.getServiceAbility() ? NumConstant.ZERO_DOT_ZERO : month.getServiceAbility());
+ partyDevAbilityData.add(null == month.getPartyDevAbility() ? NumConstant.ZERO_DOT_ZERO : month.getPartyDevAbility());
+ governAbilityData.add(null == month.getGovernAbility() ? NumConstant.ZERO_DOT_ZERO : month.getGovernAbility());
+ totalIndexData.add(null == month.getIndexTotal() ? NumConstant.ZERO_DOT_ZERO : month.getIndexTotal());
+ });
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO) {
+ LocalDate now = LocalDate.now().minusMonths(NumConstant.ONE);
+ int yearId = now.getYear();
+ subAgencyIndexRankFormDTO.setYearId(String.valueOf(yearId));
+ List subAgencyIndexRankResultDTOS = screenIndexDataMonthlyDao.selectSubAgencyIndexRank(subAgencyIndexRankFormDTO);
+ if (subAgencyIndexRankResultDTOS.size() == NumConstant.ZERO){
+ return new ArrayList<>();
+ }
+ return subAgencyIndexRankResultDTOS;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/PartyMemberLeadServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/PartyMemberLeadServiceImpl.java
new file mode 100644
index 0000000000..b1cecb92bb
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/PartyMemberLeadServiceImpl.java
@@ -0,0 +1,224 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenOrgRankDataDao;
+import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao;
+import com.epmet.datareport.dao.screen.ScreenPartyLinkMassesDataDao;
+import com.epmet.datareport.dao.screen.ScreenPioneerDataDao;
+import com.epmet.datareport.dao.screen.ScreenPartyUserRankDataDao;
+import com.epmet.datareport.service.screen.PartyMemberLeadService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.screen.dto.form.FineExampleFormDTO;
+import com.epmet.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.screen.dto.result.*;
+import com.epmet.screen.constant.*;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+@Service
+public class PartyMemberLeadServiceImpl implements PartyMemberLeadService {
+
+ @Autowired
+ private ScreenPartyLinkMassesDataDao screenPartyLinkMassesDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ @Autowired
+ private ScreenPioneerDataDao screenPioneerDataDao;
+ @Autowired
+ private ScreenOrgRankDataDao screenOrgRankDataDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO) {
+ FineExampleResultDTO fineExampleResultDTO = screenPioneerDataDao.selectFineExample(fineExampleFormDTO.getAgencyId());
+ if (null == fineExampleResultDTO){
+ return new FineExampleResultDTO();
+ }
+ fineExampleResultDTO.setIssueRatio(this.getRatio(fineExampleResultDTO.getIssueRatioA()));
+ fineExampleResultDTO.setPublishIssueRatio(this.getRatio(fineExampleResultDTO.getPublishIssueRatioA()));
+ fineExampleResultDTO.setResolvedProjectRatio(this.getRatio(fineExampleResultDTO.getResolvedProjectRatioA()));
+ fineExampleResultDTO.setTopicRatio(this.getRatio(fineExampleResultDTO.getTopicRatioA()));
+ fineExampleResultDTO.setShiftProjectRatio(this.getRatio(fineExampleResultDTO.getShiftProjectRatioA()));
+ return fineExampleResultDTO;
+ }
+
+ /**
+ * @Description 小数转换百分比
+ * @param d
+ * @author zxc
+ * @date 2020/8/20 6:06 下午
+ */
+ public String getRatio(Double d){
+ BigDecimal bigDecimal = new BigDecimal(d * NumConstant.ONE_HUNDRED);
+ return bigDecimal.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).toPlainString().concat(ScreenConstant.RATIO);
+ }
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO) {
+ ContactMassLineChartResultDTO result = new ContactMassLineChartResultDTO();
+ List contactMassLineChartResults = screenPartyLinkMassesDataDao.selectContactMassLineChart(contactMassLineChartFormDTO.getAgencyId());
+ if (contactMassLineChartResults.size() == NumConstant.ZERO){
+ result.setXAxis(new ArrayList<>());
+ result.setGroupMemberData(new ArrayList<>());
+ result.setGroupData(new ArrayList<>());
+ return result;
+ }
+ List xAxis = new ArrayList<>();
+ List groupData = new ArrayList<>();
+ List groupMemberData = new ArrayList<>();
+ contactMassLineChartResults.forEach(contact -> {
+ xAxis.add(contact.getOrgName());
+ groupData.add(contact.getGroupTotal());
+ groupMemberData.add(contact.getUserTotal());
+ });
+ result.setXAxis(xAxis);
+ result.setGroupData(groupData);
+ result.setGroupMemberData(groupMemberData);
+ return result;
+ }
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO) {
+ VolunteerServiceResultDTO result = new VolunteerServiceResultDTO();
+ List organizeData = new ArrayList<>();
+ List joinData = new ArrayList<>();
+ List averageJoinUserData = new ArrayList<>();
+ result.setXAxis(this.getXPro());
+ List volunteerServiceResults = screenPartyBranchDataDao.selectVolunteerServiceResult(volunteerServiceFormDTO.getAgencyId());
+ if (volunteerServiceResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ organizeData.add(NumConstant.ZERO);
+ joinData.add(NumConstant.ZERO);
+ averageJoinUserData.add(NumConstant.ZERO);
+ }
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ return result;
+ }
+ List collect = volunteerServiceResults.stream().sorted(Comparator.comparing(VolunteerServiceResult::getMonthId)).collect(Collectors.toList());
+ collect.forEach(volunteer -> {
+ organizeData.add(volunteer.getOrganizeData());
+ joinData.add(volunteer.getJoinData());
+ averageJoinUserData.add(volunteer.getAverageJoinUserData());
+ });
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ return result;
+ }
+
+ /**
+ * @Description 获取之前的12个月份【不包括当前月】
+ * @author zxc
+ * @date 2020/8/21 10:19 上午
+ */
+ public List getXPro(){
+ List xAxis = new ArrayList<>();
+ LocalDate today = LocalDate.now();
+ for(int i = NumConstant.TWELVE;i >= NumConstant.ONE; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + ScreenConstant.MONTH;
+ xAxis.add(s);
+ }
+ return xAxis;
+ }
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List advancedBranchRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }else if(NumConstant.ZERO == param.getTopNum()){
+ param.setTopNum(NumConstant.MAX);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List gridData =
+ screenOrgRankDataDao.selectGridDataMonthly(param.getAgencyId(),dateUtils.getPreviousMonthId());
+ List result = new LinkedList<>();
+ if(null == gridData || gridData.isEmpty()) return result;
+ gridData.forEach( data -> {
+ AdvanceBranchRankResultDTO o = ConvertUtils.sourceToTarget(data,AdvanceBranchRankResultDTO.class);
+ o.setClosedProjectRatio(convertPercentStr(data.getClosedProjectRatio()));
+ o.setSatisfactionRatio(convertPercentStr(data.getSatisfactionRatio()));
+ result.add(o);
+ });
+
+ return result;
+ }
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
+ @Override
+ public List advancedPartymemberRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.TEN);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenPartyUserRankDataDao.selectPartymemberPointOrder(param.getAgencyId());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.0%";
+ String percentStr = percent.setScale(NumConstant.ONE, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/ScreenProjectServiceImpl.java
new file mode 100644
index 0000000000..dce609636d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/ScreenProjectServiceImpl.java
@@ -0,0 +1,46 @@
+package com.epmet.datareport.service.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.screen.ScreenEventImgDataDao;
+import com.epmet.datareport.service.screen.ScreenProjectService;
+import com.epmet.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.screen.dto.result.ProjectDetailResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:23
+ */
+@Service
+public class ScreenProjectServiceImpl implements ScreenProjectService {
+
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenEventImgDataDao screenEventImgDataDao;
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ @DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true)
+ @Override
+ public ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO) {
+ ProjectDetailResultDTO projectDetailResultDTO = screenEventDataDao.selectEventDetail(projectDetailFormDTO.getProjectId());
+ if (null == projectDetailResultDTO){
+ return new ProjectDetailResultDTO();
+ }
+ List imgList = screenEventImgDataDao.selectEventImgList(projectDetailFormDTO.getProjectId());
+ projectDetailResultDTO.setImgList(imgList);
+ return projectDetailResultDTO;
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
index 584ac1b1dc..f0dd505cb4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.topic;
+package com.epmet.datareport.service.topic;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
index 298dcae7a3..12889caaae 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
@@ -1,13 +1,12 @@
-package com.epmet.service.topic.impl;
+package com.epmet.datareport.service.topic.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.topic.TopicDao;
+import com.epmet.datareport.dao.topic.TopicDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.group.constant.GroupConstant;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.constant.TopicConstant;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
@@ -16,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
index 2c658fc1da..47c304f1b2 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user;
+package com.epmet.datareport.service.user;
import com.epmet.dto.form.user.UserIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
index 3244076896..88e39067b4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user.impl;
+package com.epmet.datareport.service.user.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
@@ -7,7 +7,7 @@ import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserAnalysisConstant;
-import com.epmet.dao.user.UserAnalysisDao;
+import com.epmet.datareport.dao.user.UserAnalysisDao;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
@@ -19,7 +19,7 @@ import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.user.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
new file mode 100644
index 0000000000..6db1756fdb
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
@@ -0,0 +1,128 @@
+package com.epmet.datareport.utils;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Description
+ * @ClassName DateUtils
+ * @Auth wangc
+ * @Date 2020-08-20 10:56
+ */
+@Component
+public class DateUtils {
+ private static SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyyMM");
+ private static DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMM");
+ /**
+ * @Description 返回当前月以及前十一个月,升序
+ * @param
+ * @return Map key:202001 value:1月
+ * @author wangc
+ * @date 2020.08.19 12:46
+ **/
+ public Map getX(){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ String currentMonth = defaultFormat.format(calendar.getTime());
+ Integer monthCounter = Integer.parseInt(currentMonth);
+ Map monthMap = new HashMap<>();
+ int i = NumConstant.ONE;
+ while(i <= NumConstant.TWELVE){
+
+ if(monthCounter.toString().endsWith("00")){
+ monthCounter -= NumConstant.EIGHTY_EIGHT;
+ }
+
+ String abscissa = monthCounter.toString().substring(monthCounter.toString().length() - NumConstant.TWO);
+ if(abscissa.startsWith("0")) {
+ abscissa = abscissa.replace("0","").concat("月");
+ }else{
+ abscissa = abscissa.concat("月");
+ }
+ monthMap.put(monthCounter.toString(),abscissa);
+ monthCounter-- ;
+ i++;
+ }
+
+ Map result = Maps.newLinkedHashMap();
+ monthMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+
+ return result;
+ }
+
+ public Map getXpro(){
+ Map xAxis = new HashMap<>();
+ LocalDate today = LocalDate.now();
+
+ for(int i = NumConstant.TWELVE;i >= NumConstant.ONE; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + "月";
+ xAxis.put(localDate.format(fmt),s);
+ }
+ Map result = Maps.newLinkedHashMap();
+ xAxis.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+ return result;
+ }
+
+ /**
+ * @Description 得到上个月的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 10:19
+ **/
+ public String getPreviousMonthId(){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ return format.format(calendar.getTime());
+ }
+
+ public String getPreviousMonthIdByDest(Date date,String dateStr){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar c = Calendar.getInstance();
+ if(null == date && StringUtils.isNotBlank(dateStr)){
+ try{
+ date = format.parse(dateStr);
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }else{
+ return null;
+ }
+ c.setTime(date);
+ c.add(Calendar.MONTH, NumConstant.ONE_NEG);
+ return format.format(c.getTime());
+ }
+
+ public static void main(String[] args) {
+ DateUtils util = new DateUtils();
+ Map result = util.getXpro();
+ result.forEach((k,v) -> {
+ System.out.print(k);
+ System.out.print(" -> ");
+ System.out.print(v);
+ System.out.println();
+ });
+
+ List xLine = result.values().stream().collect(Collectors.toList());
+ xLine.forEach(x -> {
+ System.out.println(x);
+ });
+
+ result.keySet().forEach(key -> System.out.println(key));
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
new file mode 100644
index 0000000000..9314d3ba3b
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
@@ -0,0 +1,24 @@
+package com.epmet.datareport.utils;
+
+public interface ModuleConstant {
+
+ String PARAM_BRANCH_CATEGORY_UNION = "ljgj";
+
+ String PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "ljdyzy";
+
+ String PARAM_BRANCH_CATEGORY_PARTY = "zbjs";
+
+ String KEY_BRANCH_CATEGORY_UNION = "union";
+
+ String KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "voluntaryservice";
+
+ String KEY_BRANCH_CATEGORY_PARTY = "party";
+
+ String SYMBOL_PERCENT = "%";
+
+ String PARAM_DIFFICULTY_TYPE_TIME_LONGEST = "timelongest";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_DEPTS = "mostdepts";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_HANDLED = "mosthandled";
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
index 19e6e4b584..d4db395aa8 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
@@ -24,9 +24,9 @@ spring:
druid:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
- url: @datasource.druid.url@
- username: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
cloud:
nacos:
discovery:
@@ -53,11 +53,11 @@ spring:
# 数据迁移工具flyway
flyway:
- enabled: false
+ enabled: @spring.flyway.enabled@
locations: classpath:db/migration
- url: @datasource.druid.url@
- user: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ user: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
baseline-on-migrate: true
baseline-version: 0
@@ -91,6 +91,20 @@ mybatis-plus:
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
+#动态数据源
+dynamic:
+ datasource:
+ stats:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
+ statsDisplay:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.statsdisplay.url@
+ username: @datasource.druid.statsdisplay.username@
+ password: @datasource.druid.statsdisplay.password@
+
feign:
hystrix:
enabled: true
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
index ad10364cb5..08a6a198d1 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
@@ -137,13 +137,14 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -156,13 +157,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
index b3b1faecd7..159a814a61 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
index 49333cc3e4..02266e7884 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
@@ -1,7 +1,7 @@
-
+
SELECT AGENCY_ID,
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
index 9ea5c548d6..21b472e4de 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
index 165aab88fa..1c0c5700d4 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCpcBaseDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCpcBaseDataDao.xml
new file mode 100644
index 0000000000..3fc9c990b3
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCpcBaseDataDao.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ SELECT
+ SUM( AGE_LEVEL_1 ) + SUM( AGE_LEVEL_2 ) AS under30Count,
+ SUM( AGE_LEVEL_3 ) + SUM( AGE_LEVEL_4 ) AS between31And50Count,
+ SUM( AGE_LEVEL_5 ) AS between51And60Count,
+ SUM( AGE_LEVEL_6 ) AS above61Count,
+ SUM( PARTY_MEMBER_COUNT) AS partyTotal
+ FROM
+ screen_cpc_base_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml
new file mode 100644
index 0000000000..cfdb8da6de
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+ SELECT
+ agency_name AS label,
+ agency_id AS value,
+ pids AS pids
+ FROM
+ screen_customer_agency
+ WHERE
+ del_flag = 0
+ AND pid = '0'
+ AND customer_id = #{customerId}
+
+
+
+
+ SELECT
+ agency_id AS value,
+ agency_name AS label,
+ pids AS pids
+ FROM
+ screen_customer_agency
+ WHERE
+ del_flag = '0'
+ AND pids = #{subAgencyPids}
+ ORDER BY
+ created_time DESC
+
+
+
+
+ SELECT
+ agency_id AS agencyId,
+ agency_name AS name,
+ area_marks AS areaMarks,
+ level AS level
+ FROM
+ screen_customer_agency
+ WHERE
+ del_flag = 0
+ AND agency_id = #{agencyId}
+
+
+
+
+ SELECT
+ agency_id AS subId,
+ agency_name AS subName,
+ area_marks AS subAreaMarks,
+ center_mark AS subCenterMark,
+ 'agency' AS type
+ FROM
+ screen_customer_agency
+ WHERE
+ del_flag = 0
+ AND pid = #{agencyId}
+
+
+
+
+ SELECT
+ sutd.org_id AS subId,
+ sca.center_mark AS centerMark,
+ sutd.user_total AS totalNum,
+ sca.area_marks AS areaMarks,
+ sca.agency_name AS subName,
+ sutd.org_type AS type
+ FROM
+ screen_user_total_data sutd
+ LEFT JOIN screen_customer_agency sca ON sca.agency_id = sutd.org_id
+ WHERE
+ sutd.del_flag = '0'
+ AND sca.del_flag = 0
+ AND sutd.parent_id = #{parentId}
+
+
+
+
+ SELECT
+ sutd.org_id AS subId,
+ sca.center_mark AS centerMark,
+ sutd.party_total AS totalNum,
+ sca.area_marks AS areaMarks,
+ sca.agency_name AS subName,
+ sutd.org_type AS type
+ FROM
+ screen_user_total_data sutd
+ LEFT JOIN screen_customer_agency sca ON sca.agency_id = sutd.org_id
+ WHERE
+ sutd.del_flag = '0'
+ AND sca.del_flag = 0
+ AND sutd.parent_id = #{parentId}
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerDeptDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerDeptDao.xml
new file mode 100644
index 0000000000..58e2171c3d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerDeptDao.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
new file mode 100644
index 0000000000..988e0b17cd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+ SELECT
+ grid_id AS subId,
+ grid_name AS subName,
+ area_marks AS subAreaMarks,
+ center_mark AS subCenterMark,
+ 'grid' AS type
+ FROM
+ screen_customer_grid
+ WHERE
+ del_flag = 0
+ AND parent_agency_id = #{agencyId}
+
+
+
+
+ SELECT
+ grid_id AS gridId,
+ grid_name AS gridName,
+ party_mark AS partyMark
+ FROM
+ screen_customer_grid
+ WHERE
+ del_flag = 0
+ AND parent_agency_id = #{agencyId}
+
+
+
+
+ SELECT
+ sutd.org_id AS subId,
+ scg.center_mark AS centerMark,
+ sutd.user_total AS totalNum,
+ scg.area_marks AS areaMarks,
+ scg.grid_name AS subName,
+ sutd.org_type AS type
+ FROM
+ screen_user_total_data sutd
+ LEFT JOIN screen_customer_grid scg ON scg.grid_id = sutd.org_id
+ WHERE
+ sutd.del_flag = '0'
+ AND scg.del_flag = 0
+ AND sutd.parent_id = #{parentId}
+
+
+
+
+ SELECT
+ sutd.org_id AS subId,
+ scg.center_mark AS centerMark,
+ sutd.party_total AS totalNum,
+ scg.area_marks AS areaMarks,
+ scg.grid_name AS subName,
+ sutd.org_type AS type
+ FROM
+ screen_user_total_data sutd
+ LEFT JOIN screen_customer_grid scg ON scg.grid_id = sutd.org_id
+ WHERE
+ sutd.del_flag = '0'
+ AND scg.del_flag = 0
+ AND sutd.parent_id = #{parentId}
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
new file mode 100644
index 0000000000..ab381cebba
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ SELECT
+ diff.EVENT_ID AS projectId,
+ eve.EVENT_TITLE AS title,
+ diff.EVENT_STATUS_CODE AS STATUS,
+ diff.EVENT_COST_TIME AS totalHours,
+ DATE_FORMAT( eve.EVENT_CREATE_TIME, '%Y-%m-%d %H:%i' ) AS createDateTime,
+ diff.EVENT_SOURCE AS gridName,
+ diff.EVENT_IMG_URL AS imgUrl,
+ diff.EVENT_CATEGORY_NAME AS categoryName,
+ diff.EVENT_RE_ORG AS handleDepts,
+ diff.EVENT_RE_ORG AS handleCount
+ FROM
+ screen_difficulty_data diff
+ LEFT JOIN screen_event_data eve ON diff.EVENT_ID = eve.EVENT_ID
+ AND eve.DEL_FLAG = '0'
+ WHERE
+ diff.DEL_FLAG = '0'
+ AND diff.ORG_TYPE = 'agency'
+ AND diff.ORG_ID = #{agencyId}
+ ORDER BY
+ CASE #{type} WHEN 'timelongest' THEN diff.EVENT_COST_TIME
+ WHEN 'mosthandled' THEN diff.EVENT_HANDLED_COUNT
+ ELSE diff.EVENT_RE_ORG END
+ DESC
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
new file mode 100644
index 0000000000..63cadbbd5e
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ SELECT
+ event_title AS projectTitle,
+ event_level AS color,
+ event_id AS projectId,
+ org_name AS orgName,
+ longitude AS longitude,
+ latitude AS latitude
+ FROM
+ screen_event_data
+ WHERE
+ del_flag = '0'
+ AND parent_id = #{parentId}
+
+
+
+
+ SELECT
+ event_content AS projectContent,
+ event_status_desc AS STATUS,
+ last_process_dept AS latestHandleDept,
+ last_process_date AS latestHandleTime,
+ latest_operate_desc AS operDesc
+ FROM
+ screen_event_data
+ WHERE
+ del_flag = '0'
+ AND event_id = #{projectId}
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventImgDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventImgDataDao.xml
new file mode 100644
index 0000000000..e5e3e636af
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventImgDataDao.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ SELECT
+ event_img_url AS eventImgUrl
+ FROM
+ screen_event_img_data
+ WHERE
+ del_flag = '0'
+ AND event_id = #{projectId}
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml
new file mode 100644
index 0000000000..3fb4174055
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ SELECT
+ ORG_NAME AS agencyName,
+ RESPONSE_RATIO,
+ RESOLVED_RATIO,
+ GOVERN_RATIO,
+ SATISFACTION_RATIO
+ FROM
+ screen_govern_rank_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+ AND MONTH_ID = #{monthId}
+ ORDER BY
+ (RESPONSE_RATIO + RESOLVED_RATIO + GOVERN_RATIO + SATISFACTION_RATIO) DESC,RESPONSE_RATIO DESC,RESOLVED_RATIO DESC,GOVERN_RATIO DESC,SATISFACTION_RATIO DESC
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml
new file mode 100644
index 0000000000..21293ad4c6
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ SELECT
+ service_ablity AS serviceAbility,
+ party_dev_ablity AS partyDevAbility,
+ govern_ablity AS governAbility
+ FROM
+ screen_index_data_monthly
+ WHERE
+ del_flag = '0'
+ AND org_type = 'agency'
+ AND org_id = #{agencyId}
+ AND month_id = DATE_FORMAT(NOW(),'%Y%m')
+
+
+
+
+ SELECT
+ month_id AS monthId,
+ service_ablity AS serviceAbility,
+ party_dev_ablity AS partyDevAbility,
+ govern_ablity AS governAbility,
+ index_total AS indexTotal
+ FROM
+ screen_index_data_monthly
+ WHERE
+ del_flag = '0'
+ AND org_id = #{agencyId}
+ AND customer_id = #{customerId}
+ ORDER BY MONTH_ID DESC
+ LIMIT 12
+
+
+
+
+ SELECT
+ org_name AS NAME,
+ index_total AS totalIndex,
+ govern_ablity AS governAbility,
+ party_dev_ablity AS partyDevAbility,
+ service_ablity AS serviceAbility
+ FROM
+ screen_index_data_yearly
+ WHERE
+ del_flag = '0'
+ AND parent_id = #{agencyId}
+ AND year_id = #{yearId}
+ ORDER BY index_total DESC
+ LIMIT #{topNum}
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataYearlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataYearlyDao.xml
new file mode 100644
index 0000000000..3d9329846d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataYearlyDao.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ SELECT
+ index_total AS yearAverageIndex,
+ service_ablity AS serviceAbility,
+ party_dev_ablity AS partyDevAbility,
+ govern_ablity AS governAbility
+ FROM
+ screen_index_data_yearly
+ WHERE
+ del_flag = '0'
+ AND org_type = 'agency'
+ AND org_id = #{agencyId}
+ AND year_id = DATE_FORMAT(NOW(),'%Y')
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
new file mode 100644
index 0000000000..f83ec244d7
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ SELECT
+ ORG_NAME AS NAME,
+ PARTY_TOTAL AS partyMemberNum,
+ GROUP_TOTAL AS branchNum,
+ ISSUE_TOTAL AS issueNum,
+ PROJECT_TOTAL AS projectNum,
+ CLOSE_PROJECT_RATIO AS closedProjectRatio,
+ SATISFACTION_RATIO AS satisfactionRatio
+ FROM
+ screen_org_rank_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'grid'
+ AND PARENT_ID = #{agencyId}
+ AND MONTH_ID = #{monthId}
+ ORDER BY
+ (PARTY_TOTAL + GROUP_TOTAL + ISSUE_TOTAL + PROJECT_TOTAL + CLOSE_PROJECT_RATIO + SATISFACTION_RATIO) DESC,
+ PARTY_TOTAL DESC,
+ GROUP_TOTAL DESC,
+ ISSUE_TOTAL DESC,
+ PROJECT_TOTAL DESC,
+ CLOSE_PROJECT_RATIO DESC,
+ SATISFACTION_RATIO DESC
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml
new file mode 100644
index 0000000000..8fbf102170
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+ SELECT DISTINCT
+ MEET_CATEGORY_NAME
+ FROM
+ screen_party_branch_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+ AND TYPE = #{type}
+
+
+
+
+ SELECT
+ MONTH_ID,
+ MEET_CATEGORY_NAME AS issue,
+ CASE #{type} WHEN 'organize' THEN ORGANIZE_COUNT
+ WHEN 'joinuser' THEN JOIN_USER_COUNT
+ WHEN 'averagejoinuser' THEN AVERAGE_JOIN_USER_COUNT
+ END AS data
+ FROM
+ screen_party_branch_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+ AND TYPE = #{category}
+ AND MONTH_ID = ]]> #{bottomMonthId}
+ ORDER BY
+ MONTH_ID DESC ,
+ MEET_CATEGORY_NAME
+
+
+
+
+ SELECT
+ ORG_NAME,
+ SUM( ORGANIZE_COUNT ) AS organizeData ,
+ SUM( JOIN_USER_COUNT ) AS joinData ,
+ SUM( ORGANIZE_COUNT + JOIN_USER_COUNT) AS total
+ FROM
+ screen_party_branch_data
+
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND PARENT_ID = #{agencyId}
+ AND TYPE = #{category}
+
+
+ AND MONTH_ID = #{monthId}
+
+
+
+ AND MONTH_ID = ]]> #{bottomMonthId}
+
+
+
+ GROUP BY ORG_NAME
+ ORDER BY
+ total DESC,
+ organizeData DESC,
+ joinData DESC
+
+
+
+
+ SELECT
+ month_id AS monthId,
+ organize_count AS organizeData,
+ join_user_count AS joinData,
+ average_join_user_count AS averageJoinUserData
+ FROM
+ screen_party_branch_data
+ WHERE
+ del_flag = '0'
+ AND org_id = #{agencyId}
+ ORDER BY MONTH_ID DESC
+ LIMIT 12
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyLinkMassesDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyLinkMassesDataDao.xml
new file mode 100644
index 0000000000..5643b1e31b
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyLinkMassesDataDao.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ SELECT
+ org_name AS orgName,
+ create_group_total AS groupTotal,
+ group_user_total AS userTotal
+ FROM
+ screen_party_link_masses_data
+ WHERE
+ del_flag = '0'
+ AND parent_id = #{agencyId}
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
new file mode 100644
index 0000000000..66fb4d6a80
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+ SELECT
+ concat( surname, CASE char_length( NAME ) WHEN 1 THEN '*' WHEN 2 THEN '**' ELSE '***' END ) AS name,
+ point_total AS point
+ FROM
+ screen_party_user_rank_data
+ WHERE
+ del_flag = '0'
+ AND org_id = #{agencyId}
+ ORDER BY
+ point_total DESC,
+ user_name
+
+
+
+
+
+
+ SELECT
+ USER_ID,
+ concat( surname, CASE char_length( NAME ) WHEN 1 THEN '*' WHEN 2 THEN '**' ELSE '***' END ) AS name,
+ POINT_TOTAL AS point
+ FROM
+ screen_party_user_rank_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_ID = #{agencyId}
+ AND PARTY_FLAG = '1'
+ ORDER BY
+ POINT_TOTAL DESC
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml
new file mode 100644
index 0000000000..5e509c8329
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPioneerDataDao.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ SELECT
+ issue_total AS issueTotal,
+ issue_ratio AS issueRatioA,
+ topic_total AS topicTotal,
+ topic_ratio AS topicRatioA,
+ shift_project_total AS shiftProjectTotal,
+ shift_project_Ratio AS shiftProjectRatioA,
+ resolved_project_total AS resolvedProjectTotal,
+ resolved_project_ratio AS resolvedProjectRatioA,
+ publish_issue_total AS publishIssueTotal,
+ publish_issue_ratio AS publishIssueRatioA
+ FROM
+ screen_pioneer_data
+ WHERE
+ del_flag = '0'
+ AND org_id = #{agencyId}
+ ORDER BY data_end_time DESC
+ LIMIT 1
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml
new file mode 100644
index 0000000000..8f17dc796a
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ SELECT
+ JOIN_TOTAL AS total,
+ AVG_JOIN AS averageJoin,
+ JOIN_TOTAL_UP_RATE AS monthIncr,
+ JOIN_TOTAL_UP_FLAG AS monthTrend,
+ AVG_ISSUE AS averageIssue,
+ AVG_ISSUE_UP_RATE AS issueCompareLatestMonth,
+ AVG_ISSUE_UP_FLAG AS issueCompareLatestTrend,
+ AGVG_JOIN_UP_RATE AS joinCompareLatestMonth,
+ AGVG_JOIN_UP_FLAG AS joinCompareLatestTrend
+ FROM
+ screen_user_join
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+ AND MONTH_ID = #{monthId}
+
+
+
+
+
+ /* SELECT
+ MONTH_ID,
+ ORGANIZE_TOTAL AS organizeNum,
+ JOIN_TOTAL AS joinUserNum,
+ AVG_JOIN_USER AS averageJoinNum
+ FROM
+ screen_user_join
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+ AND MONTH_ID = ]]> #{monthId}*/
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
new file mode 100644
index 0000000000..a1700b05a4
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ SELECT
+ SUM( PARTY_TOTAL ) AS partyMemberTotal,
+ SUM( USER_TOTAL ) AS platFormTotal
+ FROM
+ screen_user_total_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+
+
+
+
+ SELECT
+ user_total AS userNum,
+ party_total AS partyMemberNum,
+ group_total AS groupNum,
+ topic_total AS topicNum,
+ issue_total AS issueNum,
+ project_total AS projectNum
+ FROM
+ screen_user_total_data
+ WHERE
+ del_flag = '0'
+ AND org_type = 'agency'
+ AND org_id = #{agencyId}
+
+
+
+
+ SELECT
+ ROUND( ISSUE_TOTAL / USER_TOTAL, 2 )
+ FROM
+ screen_user_total_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND ORG_ID = #{agencyId}
+
+
+
+
+
+ SELECT
+ ORG_NAME AS NAME,
+ REG_USER_TOTAL AS regNum,
+ JOIN_USER_TOTAL AS joinNum,
+ TOPIC_TOTAL AS topicNum,
+ ISSUE_TOTAL AS issueNum,
+ PROJECT_TOTAL AS projectNum
+ FROM
+ screen_user_total_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_TYPE = 'agency'
+ AND PARENT_ID = #{agencyId}
+ ORDER BY
+ (REG_USER_TOTAL + JOIN_USER_TOTAL + TOPIC_TOTAL + ISSUE_TOTAL + PROJECT_TOTAL) DESC,
+ REG_USER_TOTAL desc,
+ JOIN_USER_TOTAL desc,
+ TOPIC_TOTAL desc,
+ ISSUE_TOTAL desc,
+ PROJECT_TOTAL desc
+
+
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
index 01d4a5d335..3b96ffc150 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml
index 29e482c554..8b967fa17d 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml
@@ -1,7 +1,7 @@
-
+
SELECT
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/CompareConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/CompareConstant.java
new file mode 100644
index 0000000000..119cd1ca31
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/CompareConstant.java
@@ -0,0 +1,26 @@
+package com.epmet.constant;
+
+/**
+ * 比较结果常量
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/8/19 10:28
+ */
+public interface CompareConstant {
+
+ /**
+ * 增加
+ */
+ String INCR_STR = "incr";
+
+ /**
+ * 下降
+ */
+ String DECR_STR = "decr";
+
+ /**
+ * 相等
+ */
+ String EQ_STR = "eq";
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/DeptGovrnAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/DeptGovrnAbilityFormDTO.java
new file mode 100644
index 0000000000..50cc040c44
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/DeptGovrnAbilityFormDTO.java
@@ -0,0 +1,77 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 8、治理能力-部门相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class DeptGovrnAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 上级组织id
+ */
+ private String deptId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * allRegion:全区;community:社区;street:街道
+ */
+ private String dataType;
+
+ /**
+ * 区直部门被吹哨次数
+ */
+ private Integer transferedCount;
+
+ /**
+ * 区直部门办结项目数
+ */
+ private Integer closedProjectCount;
+
+ /**
+ * 区直部门项目响应度 所有被吹哨后的滞留时间除以项目数
+ */
+ private BigDecimal respProjectRatio;
+
+ /**
+ * 区直部门办结项目的处理效率
+ */
+ private BigDecimal handleProjectRatio;
+
+ /**
+ * 区直部门项目办结率
+ */
+ private BigDecimal closedProjectRatio;
+
+ /**
+ * 办结项目满意度
+ */
+ private BigDecimal satisfactionRatio;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridGovrnAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridGovrnAbilityFormDTO.java
new file mode 100644
index 0000000000..ef4efd6a24
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridGovrnAbilityFormDTO.java
@@ -0,0 +1,82 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 6、治理能力-网格相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class GridGovrnAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * 网格总议题数
+ */
+ private Integer issueTotal;
+
+ /**
+ * 网格人均议题数目
+ */
+ private Integer avgIssueCount;
+
+ /**
+ * 网格总项目数
+ */
+ private Integer projectTotal;
+
+ /**
+ * 网格办结项目数
+ */
+ private Integer resolveProjectCount;
+
+ /**
+ * 网格吹哨部门准确率
+ */
+ private BigDecimal transferRightRatio;
+
+ /**
+ * 网格内解决的项目的满意度
+ */
+ private BigDecimal satisfactionRatio;
+
+ /**
+ * 网格议题转项目率
+ */
+ private BigDecimal avgShiftProjectRatio;
+
+ /**
+ * 网格自治项目数 统计期网格自身内办结的项目数目
+ */
+ private Integer selfSolveProjectCount;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyAbilityFormDTO.java
new file mode 100644
index 0000000000..8738c5c3f2
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyAbilityFormDTO.java
@@ -0,0 +1,107 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 2、党建能力-网格相关指标上报(按照月份) 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class GridPartyAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * 网格党员用户数
+ */
+ private Integer partyCount;
+
+ /**
+ * 网格党员人均提出的议题转项目数
+ */
+ private Integer partyAvgShiftProjectCount;
+
+ /**
+ * 网格活跃群众用户数
+ */
+ private Integer activeUserCount;
+
+ /**
+ * 网格活跃党员用户数
+ */
+ private Integer activePartyCount;
+
+ /**
+ * 网格党员人均提出话题数
+ */
+ private Integer partyAvgTopicCount;
+
+ /**
+ * 网格群众人均提出话题数
+ */
+ private Integer userAvgTopicCount;
+
+ /**
+ * 网格群众用户数
+ */
+ private Integer userCount;
+
+ /**
+ * 网格群众人均提出的议题转项目数
+ */
+ private Integer userAvgShiftProjectCount;
+
+ /**
+ * 建群党员数(累计值)
+ */
+ private Integer createGroupPartyCount;
+
+ /**
+ * 网格发文数
+ */
+ private Integer publishArticleCount;
+
+ /**
+ * 网格议题转项目率
+ */
+ private BigDecimal issueToProjectRatio;
+
+ /**
+ * 组织三会一课次数
+ */
+ private Integer createThreeMeetsCount;
+
+ /**
+ * 党员参加三会一课人次
+ */
+ private Integer joinThreeMeetsCount;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
new file mode 100644
index 0000000000..7993cb2355
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
@@ -0,0 +1,98 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 1、党建能力-党员相关指标上报(按照月份) 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class GridPartyMemberDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * 党员提出的话题数
+ */
+ private Integer createTopicCount;
+
+ /**
+ * 党员参与话题数(支持,反对,评论,浏览)
+ */
+ private Integer joinTopicCount;
+
+ /**
+ * 话题转议题数
+ */
+ private Integer shiftIssueCount;
+
+ /**
+ * 议题转项目数
+ */
+ private Integer shiftProjectCount;
+
+ /**
+ * 参加三会一课次数
+ */
+ private Integer joinThreeMeetsCount;
+
+ /**
+ * 自建群群众人数
+ */
+ private Integer groupUserCount;
+
+ /**
+ * 自建群活跃度-话题数
+ */
+ private Integer groupTopicCount;
+
+ /**
+ * 议题转项目率
+ */
+ private BigDecimal topicToIssueRatio;
+
+ /**
+ * 提出的议题转项目数
+ */
+ private Integer issueToProjectCount;
+
+ /**
+ * 用户id
+ */
+ private String userId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridServiceAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridServiceAbilityFormDTO.java
new file mode 100644
index 0000000000..02b7906a36
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridServiceAbilityFormDTO.java
@@ -0,0 +1,58 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 4、服务能力-网格相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class GridServiceAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * 网格活动组织次数 爱心活动
+ */
+ private Integer activityCount;
+
+ /**
+ * 网格志愿者占比
+ */
+ private Integer volunteerRatio;
+
+ /**
+ * 网格党员志愿者率
+ */
+ private BigDecimal partyVolunteerRatio;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgGovrnAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgGovrnAbilityFormDTO.java
new file mode 100644
index 0000000000..7ddb9e785a
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgGovrnAbilityFormDTO.java
@@ -0,0 +1,77 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 7、治理能力-街道及社区相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class OrgGovrnAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 上级组织id
+ */
+ private String parentId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * allRegion:全区;community:社区;street:街道
+ */
+ private String dataType;
+
+ /**
+ * 被吹哨次数
+ */
+ private Integer transferedCount;
+
+ /**
+ * 办结项目数
+ */
+ private Integer closedProjectCount;
+
+ /**
+ * 项目响应度 所有被吹哨后的滞留时间除以项目数
+ */
+ private BigDecimal respProjectRatio;
+
+ /**
+ * 办结项目率
+ */
+ private BigDecimal closedProjectRatio;
+
+ /**
+ * 办结项目满意度
+ */
+ private BigDecimal satisfactionRatio;
+
+ /**
+ * 超期项目率
+ */
+ private BigDecimal overdueProjectRatio;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgPartyAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgPartyAbilityFormDTO.java
new file mode 100644
index 0000000000..e5ad40ef3f
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgPartyAbilityFormDTO.java
@@ -0,0 +1,53 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 3、党建能力-街道及社区相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class OrgPartyAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 上级组织id
+ */
+ private String parentId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * allRegion:全区;community:社区;street:街道
+ */
+ private String dataType;
+
+ /**
+ * 发文数
+ */
+ private Integer publishArticleCount;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgServiceAbilityFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgServiceAbilityFormDTO.java
new file mode 100644
index 0000000000..6ef48c6fa4
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/OrgServiceAbilityFormDTO.java
@@ -0,0 +1,53 @@
+package com.epmet.dto.indexcollect.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 5、服务能力-组织(街道|社区|全区)相关指标 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class OrgServiceAbilityFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 机关id:网格所属的组织id
+ */
+ private String agencyId;
+
+ /**
+ * 上级组织id
+ */
+ private String parentId;
+
+ /**
+ * yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * yyyyQ1, yyyyQ2, yyyyQ3, yyyyQ4
+ */
+ private String quarterId;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * allRegion:全区;community:社区;street:街道
+ */
+ private String dataType;
+
+ /**
+ * 社区/街道活动组织次数 爱心活动
+ */
+ private Integer activityCount;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java
new file mode 100644
index 0000000000..49e30cdb21
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.screen.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * desc:初始化客户指标权重参数实体类
+ * @author liujianjun
+ */
+@Data
+public class IndexCalculateForm implements Serializable {
+ private static final long serialVersionUID = 3280392511156378209L;
+ /**
+ * desc:客户id
+ */
+ private String customerId;
+
+ /**
+ * desc:月份id
+ */
+ private String monthId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/InitCustomerIndexForm.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/InitCustomerIndexForm.java
new file mode 100644
index 0000000000..4016a9656e
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/InitCustomerIndexForm.java
@@ -0,0 +1,18 @@
+package com.epmet.dto.screen.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * desc:初始化客户指标权重参数实体类
+ * @author liujianjun
+ */
+@Data
+public class InitCustomerIndexForm implements Serializable {
+ private static final long serialVersionUID = 3280392511156378209L;
+ /**
+ * desc:客户id
+ */
+ private String customerId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/ImgDataListDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/ImgDataListDTO.java
new file mode 100644
index 0000000000..fb63116850
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/ImgDataListDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.screencoll;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 图片列表
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class ImgDataListDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 原始事件id
+ */
+ private String eventId;
+
+ /**
+ * 图片地址
+ */
+ private String imgUrl;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CpcBaseDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CpcBaseDataFormDTO.java
new file mode 100644
index 0000000000..ee1674ce96
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CpcBaseDataFormDTO.java
@@ -0,0 +1,86 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 2、党员基本情况 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class CpcBaseDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 注册用户数
+ */
+ private Integer registerUserCount;
+
+ /**
+ * 群众用户数
+ */
+ private Integer resiTotal;
+
+ /**
+ * 注册党员数
+ */
+ private Integer partyMemberCount;
+
+ /**
+ * 小于20岁
+ */
+ private Integer ageLevel1;
+
+ /**
+ * 20-30岁
+ */
+ private Integer ageLevel2;
+
+ /**
+ * 31-40岁
+ */
+ private Integer ageLevel3;
+
+ /**
+ * 41-50岁
+ */
+ private Integer ageLevel4;
+
+ /**
+ * 51-60岁
+ */
+ private Integer ageLevel5;
+
+ /**
+ * 60+岁
+ */
+ private Integer ageLevel6;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerAgencyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerAgencyFormDTO.java
new file mode 100644
index 0000000000..cebf258d31
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerAgencyFormDTO.java
@@ -0,0 +1,71 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 14、组织层级 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class CustomerAgencyFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织id
+ */
+ private String agencyId;
+
+ /**
+ * 组织名称
+ */
+ private String agencyName;
+
+ /**
+ * 父级id ,顶级,此列为0
+ */
+ private String pid;
+
+ /**
+ * 所有上级ID,用逗号分开
+ */
+ private String pids;
+
+ /**
+ * 所有组织名称以-链接
+ */
+ private String allParentNames;
+
+ /**
+ * 坐标区域
+ */
+ private String areaMarks;
+
+ /**
+ * 中心点位
+ */
+ private String centerMark;
+
+ /**
+ * 党工委|街道党委的位置,预留字段
+ */
+ private String partyMark;
+
+ /**
+ * 机关级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province)
+ */
+ private String level;
+
+ /**
+ * 行政地区编码
+ */
+ private String areaCode;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerDeptFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerDeptFormDTO.java
new file mode 100644
index 0000000000..a99713701a
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerDeptFormDTO.java
@@ -0,0 +1,51 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 16、部门信息上传 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class CustomerDeptFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 部门id
+ */
+ private String deptId;
+
+ /**
+ * 部门名称
+ */
+ private String deptName;
+
+ /**
+ * 部门所属组织id
+ */
+ private String parentAgencyId;
+
+ /**
+ * 坐标区域可空
+ */
+ private String areaMarks;
+
+ /**
+ * 中心点位
+ */
+ private String centerMark;
+
+ /**
+ * 部门所在位置
+ */
+ private String deptMark;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
new file mode 100644
index 0000000000..38094a105a
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
@@ -0,0 +1,51 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 15、网格信息上传 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class CustomerGridFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 网格id
+ */
+ private String gridId;
+
+ /**
+ * 网格名称
+ */
+ private String gridName;
+
+ /**
+ * 网格所属组织id
+ */
+ private String parentAgencyId;
+
+ /**
+ * 坐标区域可空
+ */
+ private String areaMarks;
+
+ /**
+ * 中心点位
+ */
+ private String centerMark;
+
+ /**
+ * 党支部的位置!!!
+ */
+ private String partyMark;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
new file mode 100644
index 0000000000..7d136c4b27
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
@@ -0,0 +1,102 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 3、难点赌点 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class DifficultyDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 事件原Id
+ */
+ private String eventId;
+
+ /**
+ * 事件图片 URL
+ */
+ private String eventImgUrl;
+
+ /**
+ * 事件来源 eg: XXX街道-xx社区-网格
+ */
+ private String eventSource;
+
+ /**
+ * 事件内容
+ */
+ private String eventContent;
+
+ /**
+ * 事件耗时单位:分钟
+ */
+ private Integer eventCostTime;
+
+ /**
+ * 事件设计部门数
+ */
+ private Integer eventReOrg;
+
+ /**
+ * 事件类别编码
+ */
+ private String eventCategoryCode;
+
+ /**
+ * 事件状态编码
+ */
+ private String eventStatusCode;
+
+ /**
+ * 事件类别名称
+ */
+ private String eventCategoryName;
+
+ /**
+ * 事件状态描述
+ */
+ private String eventStatusDesc;
+
+ /**
+ * 最近一次操作说明 eg: 转项目,结案,流转
+ */
+ private String latestOperateDesc;
+
+ /**
+ * 事件被处理次数(08-21新增)
+ */
+ private Integer eventHandledCount;
+
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
new file mode 100644
index 0000000000..21e8ee718e
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
@@ -0,0 +1,124 @@
+package com.epmet.dto.screencoll.form;
+
+import com.epmet.dto.screencoll.ImgDataListDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 4、事件数据(中央区-事件数据) 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class EventDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 原始事件Id
+ */
+ private String eventId;
+
+ /**
+ * 事件名称
+ */
+ private String eventTitle;
+
+ /**
+ * yyyy-MM-dd HH:mm:ss事件时间
+ */
+ private String eventCreateTime;
+
+ /**
+ * 联系人
+ */
+ private String linkMobile;
+
+ /**
+ * 事件内容
+ */
+ private String eventContent;
+
+ /**
+ * 事件图片(如果有图片,此列为第一张图片)
+ */
+ private String eventImgUrl;
+
+ /**
+ * 事件待处理级别 red:红;yellow:黄 , green绿色
+ */
+ private String eventLevel;
+
+ /**
+ * 事件发生的地址
+ */
+ private String eventAddress;
+
+ /**
+ * 经度
+ */
+ private BigDecimal longitude;
+
+ /**
+ * 维度
+ */
+ private BigDecimal latitude;
+
+ /**
+ * 最后处理的组织名称
+ */
+ private String lastProcessDept;
+
+ /**
+ * 最后处理的时间
+ */
+ private String lastProcessDate;
+
+ /**
+ * 图片列表
+ */
+ private List imgDataList;
+
+ /**
+ * 事件状态描述
+ */
+ private String eventStatusDesc;
+
+ /**
+ * 事件状态key
+ */
+ private String eventStatusCode;
+
+ /**
+ * 最近一次操作说明 eg: 转项目,结案,流转
+ */
+ private String latestOperateDesc;
+
+ /**
+ * 数据更新至: yyyy|yyyMM|yyyyMMdd 8.21增加字段
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/GovernRankDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/GovernRankDataFormDTO.java
new file mode 100644
index 0000000000..f12e196ab7
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/GovernRankDataFormDTO.java
@@ -0,0 +1,67 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 5、基层治理-治理能力数据 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class GovernRankDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 年Id :yyyy
+ */
+ private String yearId;
+
+ /**
+ * 月份Id :yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 响应率,最大值100,保留小数点后4位
+ */
+ private BigDecimal responseRatio;
+
+ /**
+ * 解决率 最大值100,保留小数点后4位
+ */
+ private BigDecimal resolvedRatio;
+
+ /**
+ * 自治率 最大值100,保留小数点后4位
+ */
+ private BigDecimal governRatio;
+
+ /**
+ * 满意率,最大值100,保留小数点后四位
+ */
+ private BigDecimal satisfactionRatio;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataMonthlyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataMonthlyFormDTO.java
new file mode 100644
index 0000000000..c27f75db87
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataMonthlyFormDTO.java
@@ -0,0 +1,67 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 1、指数_按月统计 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class IndexDataMonthlyFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * yyyyMM eg :202007
+ */
+ private String monthId;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 总指数
+ */
+ private BigDecimal indexTotal;
+
+ /**
+ * 党建能力指数
+ */
+ private BigDecimal partyDevAblity;
+
+ /**
+ * 服务能力指数
+ */
+ private BigDecimal serviceAblity;
+
+ /**
+ * 治理能力指数
+ */
+ private BigDecimal governAblity;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataYearlyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataYearlyFormDTO.java
new file mode 100644
index 0000000000..4eafd27be7
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/IndexDataYearlyFormDTO.java
@@ -0,0 +1,62 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 17、指数_按年统计 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class IndexDataYearlyFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * yyyy
+ */
+ private String yearId;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 总指数
+ */
+ private BigDecimal indexTotal;
+
+ /**
+ * 党建能力指数
+ */
+ private BigDecimal partyDevAblity;
+
+ /**
+ * 服务能力指数
+ */
+ private BigDecimal serviceAblity;
+
+ /**
+ * 治理能力指数
+ */
+ private BigDecimal governAblity;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
new file mode 100644
index 0000000000..8b0a753839
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
@@ -0,0 +1,82 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 6、党建引领-组织排行 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class OrgRankDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 年Id :yyyy
+ */
+ private String yearId;
+
+ /**
+ * 月份Id :yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 党员总数
+ */
+ private Integer partyTotal;
+
+ /**
+ * 小组(支部建设总数)
+ */
+ private Integer groupTotal;
+
+ /**
+ * 话题总数
+ */
+ private Integer topicTotal;
+
+ /**
+ * 议题总数
+ */
+ private Integer issueTotal;
+
+ /**
+ * 项目总数
+ */
+ private Integer projectTotal;
+
+ /**
+ * 结案率,最大值100,保留小数点后四位
+ */
+ private BigDecimal closeProjectRatio;
+
+ /**
+ * 满意率,最大值100,保留小数点后四位
+ */
+ private BigDecimal satisfactionRatio;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyBranchDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyBranchDataFormDTO.java
new file mode 100644
index 0000000000..21144c89ab
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyBranchDataFormDTO.java
@@ -0,0 +1,76 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 7、基层党建-建设情况数据(支部、联建、志愿) 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class PartyBranchDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 年Id :yyyy
+ */
+ private String yearId;
+
+ /**
+ * 月份Id :yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * 数据类别 party:支部建设;union:联合建设党员志愿服务:voluntaryservice
+ */
+ private String type;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 会议分类名称
+ */
+ private String meetCategoryName;
+
+ /**
+ * 会议分类id
+ */
+ private String meetCategoryId;
+
+ /**
+ * 组织次数
+ */
+ private Integer organizeCount;
+
+ /**
+ * 参加人数
+ */
+ private Integer joinUserCount;
+
+ /**
+ * 平均参加人数
+ */
+ private Integer averageJoinUserCount;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyLinkMassesDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyLinkMassesDataFormDTO.java
new file mode 100644
index 0000000000..c57728d3fc
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyLinkMassesDataFormDTO.java
@@ -0,0 +1,52 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 8、党建引领-党员联系群众数据 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class PartyLinkMassesDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 建群总数
+ */
+ private Integer createGroupTotal;
+
+ /**
+ * 群成员总数
+ */
+ private Integer groupUserTotal;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
new file mode 100644
index 0000000000..29b35aa147
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
@@ -0,0 +1,76 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 9、党建引领|基层治理-居民(党员)积分排行榜 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-21 09:59
+ */
+@Data
+public class PartyUserRankDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd
+ */
+ private String dataEndTime;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 用户所属网格id
+ */
+ private String gridId;
+
+ /**
+ * 用户所属网格名称
+ */
+ private String gridName;
+
+ /**
+ * 网格所属的组织id
+ */
+ private String orgId;
+
+ /**
+ * 网格所属的组织名称
+ */
+ private String orgName;
+
+ /**
+ * 是否是党员标志:1是。0不是党员
+ */
+ private String partyFlag;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 用户名称
+ */
+ private String userName;
+
+ /**
+ * 用户积分
+ */
+ private Integer pointTotal;
+
+ /**
+ * 姓
+ */
+ private String surname;
+
+ /**
+ * 名
+ */
+ private String name;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PioneerDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PioneerDataFormDTO.java
new file mode 100644
index 0000000000..7e79fce0b8
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PioneerDataFormDTO.java
@@ -0,0 +1,93 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 10、党建引领-先锋模范数据
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class PioneerDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 党员发布议题
+ */
+ private Integer publishIssueTotal;
+
+ /**
+ * 议事数
+ */
+ private Integer issueTotal;
+
+ /**
+ * 话题总数
+ */
+ private Integer topicTotal;
+
+ /**
+ * 议题转项目数
+ */
+ private Integer shiftProjectTotal;
+
+ /**
+ * 解决项目总数
+ */
+ private Integer resolvedProjectTotal;
+
+
+ /**
+ * 议事占比
+ */
+ private BigDecimal issueRatio;
+
+ /**
+ * 话题占比
+ */
+ private BigDecimal topicRatio;
+
+ /**
+ * 议题转项目占比
+ */
+ private BigDecimal shiftProjectRatio;
+
+ /**
+ * 解决项目占比
+ */
+ private BigDecimal resolvedProjectRatio;
+
+ /**
+ * 党员发布议题占比
+ */
+ private BigDecimal publishIssueRatio;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserJoinFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserJoinFormDTO.java
new file mode 100644
index 0000000000..9abd6012d6
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserJoinFormDTO.java
@@ -0,0 +1,61 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 11、基层治理-公众参与 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class UserJoinFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 年Id :yyyy
+ */
+ private String yearId;
+
+ /**
+ * 月份Id :yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * 人均议题
+ */
+ private Integer avgIssue;
+
+ /**
+ * 总的参与次数
+ */
+ private Integer joinTotal;
+
+ /**
+ * 平均参与度
+ */
+ private Integer avgJoin;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
new file mode 100644
index 0000000000..14f4df673d
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
@@ -0,0 +1,81 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 12、中央区各类总数 入参
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class UserTotalDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 组织类别 agency:组织;部门:department;网格:grid
+ */
+ private String orgType;
+
+ /**
+ * 组织Id 可以为网格,机关id
+ */
+ private String orgId;
+
+ /**
+ * 上级组织Id
+ */
+ private String parentId;
+
+ /**
+ * 组织名称
+ */
+ private String orgName;
+
+ /**
+ * 用户总数
+ */
+ private Integer userTotal;
+
+ /**
+ * 注册党员数
+ */
+ private Integer partyTotal;
+
+ /**
+ * 小组(党群)总数
+ */
+ private Integer groupTotal;
+
+ /**
+ * 话题总数
+ */
+ private Integer topicTotal;
+
+ /**
+ * 议题总数
+ */
+ private Integer issueTotal;
+
+ /**
+ * 项目总数
+ */
+ private Integer projectTotal;
+
+ /**
+ * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+ */
+ private String dataEndTime;
+
+ /**
+ * 注册人数(08-21新增)
+ */
+ private Integer regUserTotal;
+
+ /**
+ * 参与人数(08-21新增)
+ */
+ private Integer joinUserTotal;
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
index 0d7479b1ec..a34bca869d 100644
--- a/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-dev
- image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.42
+ image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.45
ports:
- "8108:8108"
network_mode: host # 使用现有网络
diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml
index 0dfdd97d91..70a64c3864 100644
--- a/epmet-module/data-statistical/data-statistical-server/pom.xml
+++ b/epmet-module/data-statistical/data-statistical-server/pom.xml
@@ -2,7 +2,7 @@
- 0.3.42
+ 0.3.45
data-statistical
com.epmet
@@ -68,6 +68,31 @@
2.0.0
compile
+
+ com.epmet
+ epmet-commons-extapp-auth
+ 2.0.0
+ compile
+
+
+
+
+
+ org.apache.poi
+ poi
+ 3.17
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 3.17
+
+
+ com.alibaba
+ easyexcel
+ 2.2.6
+
@@ -153,6 +178,12 @@
epmet_user_user
EpmEt-db-UsEr
+
+
+
+ epmet_data_stats_display_user
+ EpmEt-db-UsEr
+
0
192.168.1.130
@@ -160,8 +191,8 @@
123456
true
- 122.152.200.70:8848
- fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b
+ 192.168.1.130:8848
+ 6ceab336-d004-4acf-89c6-e121d06f4988
false
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
index ad4e2110fa..21b5ea51b7 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
@@ -3,13 +3,18 @@ package com.epmet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
+@EnableDiscoveryClient
+@EnableFeignClients
@SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
@EnableAsync
public class DataStatsApplication {
public static void main(String[] args) {
SpringApplication.run(DataStatsApplication.class ,args);
+ //HttpClientManager.getInstance().sendAlarmMsg("DataStatsApplication started!");
}
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactIndexCollectController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactIndexCollectController.java
new file mode 100644
index 0000000000..7c12fec411
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactIndexCollectController.java
@@ -0,0 +1,156 @@
+package com.epmet.controller;
+
+import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.indexcollect.form.*;
+import com.epmet.service.indexcollect.FactIndexCollectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 指标采集相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/20 9:38
+ */
+@RestController
+@RequestMapping("indexcollect")
+public class FactIndexCollectController {
+
+ @Autowired
+ private FactIndexCollectService factIndexCollectService;
+
+ /**
+ * 1、党建能力-党员相关指标上报(按照月份)
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("gridpartymemberdata")
+ public Result gridPartyMemberData(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertGridPartyMemberData(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 2、党建能力-网格相关指标上报(按照月份)
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("gridpartyability")
+ public Result gridPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertGridPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 3、党建能力-街道及社区相关指标
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("orgpartyability")
+ public Result orgPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertOrgPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 4、服务能力-网格相关指标
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("gridserviceability")
+ public Result gridServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertGridServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 5、服务能力-组织(街道|社区|全区)相关指标
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("orgserviceability")
+ public Result orgServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertOrgServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 6、治理能力-网格相关指标
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("gridgovrnability")
+ public Result gridGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+ factIndexCollectService.insertGridGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
+ return new Result();
+ }
+
+ /**
+ * 7、治理能力-街道及社区相关指标
+ *
+ * @param externalAppRequestParam
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 10:52 2020-08-20
+ **/
+ @ExternalAppRequestAuth
+ @PostMapping("orggovrnability")
+ public Result orgGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List