().ok(screenProjectService.projectDetail(projectDetailFormDTO));
+ }
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
index 233f31dc27..91edf636dd 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/topic/TopicController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/topic/TopicController.java
@@ -1,10 +1,10 @@
-package com.epmet.controller.topic;
+package com.epmet.datareport.controller.topic;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
index cceebbef37..dda6b177cf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/UserAnalysisController.java
@@ -1,4 +1,4 @@
-package com.epmet.controller.user;
+package com.epmet.datareport.controller.user;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@@ -7,7 +7,7 @@ import com.epmet.dto.form.user.UserSubAgencyFormDTO;
import com.epmet.dto.form.user.UserSubGridFormDTO;
import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.user.*;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.java
new file mode 100644
index 0000000000..e752fe40dd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCpcBaseDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 基层党建-党员基本情况
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCpcBaseDataDao{
+
+ /**
+ * @Description 查询党员年龄分布情况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:47
+ **/
+ PartymemberAgeDistributionResultDTO selectPartymemberAgeDistribution(@Param("agencyId") String agencyId);
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java
new file mode 100644
index 0000000000..17c48ae989
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 组织机构信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerAgencyDao {
+
+ /**
+ * @Description 查询客户根组织ID
+ * @param customerId
+ * @author zxc
+ * @date 2020/8/18 2:44 下午
+ */
+ TreeResultDTO selectRootAgencyId(@Param("customerId")String customerId);
+
+ /**
+ * @Description 查询下级机关的 名称和id
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:48 下午
+ */
+ List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids);
+
+ /**
+ * @Description 查询当前机关的区域信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 4:51 下午
+ */
+ CompartmentResultDTO getAgencyAreaInfo(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级区域分布信息【机关级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistributionAgency(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【机关级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java
new file mode 100644
index 0000000000..15ed670395
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerDeptDao.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 部门信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerDeptDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.java
new file mode 100644
index 0000000000..b6196411f8
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerGridDao.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 网格(党支部)信息
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenCustomerGridDao {
+
+ /**
+ * @Description 查询子级区域分布信息【网格级别】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/18 5:12 下午
+ */
+ List selectSubDistribution(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询党支部信息
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 9:13 上午
+ */
+ List selectBranch(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询子级用户分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 9:33 上午
+ */
+ List selectUserDistribution(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询子级党员分布【网格级别】
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 10:30 上午
+ */
+ List selectParymemberDistribution(@Param("parentId")String parentId);
+
+ /**
+ * @Description 查询机关下的网格
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/26 5:29 下午
+ */
+ List selectGridInfo(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.java
new file mode 100644
index 0000000000..8697ba9adf
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenDifficultyDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.DifficultProjectResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-难点堵点(耗时最长|设计部门最多|处理次数)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenDifficultyDataDao {
+
+ /**
+ * @Description 查询难点赌点-耗时最长|涉及部门最多|处理次数
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:26
+ **/
+ List selectDifficulty(@Param("agencyId")String agencyId,@Param("type")String type);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java
new file mode 100644
index 0000000000..16e023adff
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventDataDao.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 中央区-事件数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenEventDataDao{
+
+ /**
+ * @Description 查询事件
+ * @param parentId
+ * @author zxc
+ * @date 2020/8/19 2:09 下午
+ */
+ List selectEvent(@Param("parentId")String parentId);
+
+ /**
+ * @Description 3、项目详情
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO selectEventDetail(@Param("projectId")String projectId,@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.java
new file mode 100644
index 0000000000..f0da56ccd9
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenEventImgDataDao.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 中央区-事件数据图片数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenEventImgDataDao {
+
+ /**
+ * @Description 查询事件imgUrl集合
+ * @param projectId
+ * @author zxc
+ * @date 2020/8/19 5:11 下午
+ */
+ List selectEventImgList(@Param("projectId")String projectId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java
new file mode 100644
index 0000000000..e973aa85f3
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenGovernRankDataDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.GovernCapacityResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-治理能力排行数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenGovernRankDataDao{
+
+ /**
+ * @Description 查询政府治理能力各项指标
+ * @param monthId
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:34
+ **/
+ List selectGovernCapacityRatio(@Param("monthId") String monthId,@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java
new file mode 100644
index 0000000000..8f1e472b18
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AnNingSubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.SubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthBarchartResult;
+import com.epmet.evaluationindex.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 指数-指数数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenIndexDataMonthlyDao{
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ MonthPieChartResultDTO selectMonthPieChart(@Param("agencyId")String agencyId,@Param("monthId")String monthId);
+
+ /**
+ * @Description 查询近一年的指数值【不包括本月】
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 9:02 上午
+ */
+ List selectMonthBarchart(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List selectSubAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+ /**
+ * 5、下级部门指数排行(安宁数据段用) - 月(上一个月)
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 09:38 2020-09-08
+ **/
+ List selectAnNingSubAgencyIndexMonthlyRank(AnNingSubAgencyIndexRankFormDTO formDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java
new file mode 100644
index 0000000000..eced6fc1ff
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataYearlyDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AnNingSubAgencyIndexRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.YearAverageIndexResultDTO;
+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-19
+ */
+@Mapper
+public interface ScreenIndexDataYearlyDao{
+
+ /**
+ * @Description 1、年度平均指数
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 3:43 下午
+ */
+ YearAverageIndexResultDTO selectYearAverageIndex(@Param("agencyId")String agencyId);
+
+ /**
+ * 5、下级部门指数排行(安宁数据段用) - 年
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 09:38 2020-09-08
+ **/
+ List selectAnNingSubAgencyIndexYearlyRank(AnNingSubAgencyIndexRankFormDTO formDTO);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.java
new file mode 100644
index 0000000000..2b9bdba497
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenOrgRankDataDao.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.OrgRankDataResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领-组织排行榜
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenOrgRankDataDao{
+
+ /**
+ * @Description 查询指定机关的直属网格月度数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 13:58
+ **/
+ List selectGridDataMonthly(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.java
new file mode 100644
index 0000000000..fa2836e4fb
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyBranchDataDao.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildOrderByCountResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchIssueDataResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.VolunteerServiceResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层党建-建设情况数据(支部,联建)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyBranchDataDao {
+
+ /**
+ * @Description 根据agencyTd、type(数据类别 party:支部建设;union:联合建设)查出共有多少议题主题
+ * @param agencyId
+ * @param type
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:44
+ **/
+ List selectIssueGroup(@Param("agencyId") String agencyId , @Param("type") String type);
+
+ /**
+ * @Description 根据议题名称查找近12个月的数据
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.19 10:59
+ **/
+ List selectBranchDataByTypeAndTimeZone(@Param("agencyId") String agencyId , @Param("type") String type, @Param("category") String category, @Param("bottomMonthId") String bottomMonthId);
+
+ /**
+ * @Description 查询党员志愿服务
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 3:30 下午
+ */
+ List selectVolunteerServiceResult(@Param("agencyId")String agencyId);
+ /**
+ * @Description 查找指定组织的下一级组织的数据排行
+ * @param agencyId ..
+ * @return List
+ * @author wangc
+ * @date 2020.08.20 09:46
+ **/
+ List selectBranchDataByTypeOrder(@Param("agencyId")String agencyId,@Param("category")String category,@Param("monthId")String monthId,@Param("bottomMonthId")String bottomMonthId);
+
+ /**
+ * @Description 查询组织总数或者总参与人数
+ * @param category
+ * @param type
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.28 17:56
+ **/
+ Integer selectTotalOrganizationCount(@Param("category") String category,@Param("type") String type, @Param("agencyId") String agencyId,@Param("monthId") String monthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.java
new file mode 100644
index 0000000000..1ca974982f
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyLinkMassesDataDao.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.ContactMassLineChartResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领-党员联系群众数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyLinkMassesDataDao {
+
+ /**
+ * @Description 查询党员联系群众
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 2:48 下午
+ */
+ List selectContactMassLineChart(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java
new file mode 100644
index 0000000000..2c4358ce15
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartyUserPointResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.UserPointResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 党建引领|基层治理-市民(党员)积分排行榜
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPartyUserRankDataDao{
+
+ /**
+ * @Description 查询指定机关下的用户积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:11
+ **/
+ List selectUserPointOrder(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询指定机关所属网格的党员积分排名
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 14:32
+ **/
+ List selectPartymemberPointOrder(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java
new file mode 100644
index 0000000000..92177ec52c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPioneerDataDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.FineExampleResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 党建引领-先锋模范数据
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenPioneerDataDao{
+
+ /**
+ * @Description 查询先锋模范
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/20 5:22 下午
+ */
+ FineExampleResultDTO selectFineExample(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.java
new file mode 100644
index 0000000000..88c2aa0e77
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPublicPartiTotalDataDao.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PublicPartiRankResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 公众参与-各类(话题|议题|项目|注册人数|参与人数)总数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-24
+ */
+@Mapper
+public interface ScreenPublicPartiTotalDataDao{
+ /**
+ * @Description 查询公众参与各类总数
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 16:00
+ **/
+ List selectPublicPartiTotal(@Param("agencyId") String agencyId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java
new file mode 100644
index 0000000000..962691f625
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserJoinDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.UserJoinIndicatorGrowthRateResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.UserJoinMonthlyResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 基层治理-公众参与
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenUserJoinDao {
+
+ /**
+ * @Description 查询用户参与数据
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:07
+ **/
+ UserJoinIndicatorGrowthRateResultDTO selectUserJoinData(@Param("agencyId") String agencyId, @Param("monthId")String monthId);
+
+ /**
+ * @Description 查询月度用户参与数据
+ * @param agencyId
+ * @param monthId
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:54
+ **/
+ List selectUserJoinDataMonthly(@Param("agencyId")String agencyId,@Param("monthId") String monthId);
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java
new file mode 100644
index 0000000000..653cf3f606
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.datareport.dao.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TopProfileResultDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 中央区-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-18
+ */
+@Mapper
+public interface ScreenUserTotalDataDao {
+
+ /**
+ * @Description 党员基本情况-饼状图概况
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.18 15:17
+ **/
+ PartymemberPercentResultDTO selectAgencyPartymemberPercent(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 查询top区概况
+ * @param agencyId
+ * @author zxc
+ * @date 2020/8/19 2:13 下午
+ */
+ TopProfileResultDTO selectTopProfile(@Param("agencyId")String agencyId);
+
+ /**
+ * @Description 求出人均议题
+ * @param agencyId
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:54
+ **/
+ int selectAvgIssue(@Param("agencyId")String agencyId);
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
index e2a8410272..975b49ba5a 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/group/GroupDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.group;
+package com.epmet.datareport.dao.group;
import com.epmet.group.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
index abf2c4d350..53cab40c92 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/issue/IssueDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.issue;
+package com.epmet.datareport.dao.issue;
import com.epmet.issue.dto.result.IssueDataDTO;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
index 3ae53720f7..b8920580bf 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/project/ProjectDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.project;
+package com.epmet.datareport.dao.project;
import com.epmet.project.dto.FactAgencyProjectDailyDTO;
import com.epmet.project.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
index a4babe6039..b65c16b9a1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/publicity/PublicityDao.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.dao.publicity;
+package com.epmet.datareport.dao.publicity;
import com.epmet.publicity.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
index 2ab863ab78..4c0fb9d377 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/topic/TopicDao.java
@@ -1,6 +1,5 @@
-package com.epmet.dao.topic;
+package com.epmet.datareport.dao.topic;
-import com.epmet.group.dto.result.GroupIncrTrendResultDTO;
import com.epmet.topic.dto.result.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
index 2df268feb2..c0a69f82fc 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/user/UserAnalysisDao.java
@@ -1,4 +1,4 @@
-package com.epmet.dao.user;
+package com.epmet.datareport.dao.user;
import com.epmet.dto.DimAgencyDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/.gitignore
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/.gitignore
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java
new file mode 100644
index 0000000000..d633b94ea2
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java
@@ -0,0 +1,32 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+public interface AgencyService {
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam);
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java
new file mode 100644
index 0000000000..a73d1ccfcd
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/DistributionService.java
@@ -0,0 +1,56 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+public interface DistributionService {
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ List branch(BranchFormDTO formDTO);
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ UserResultDTO user(UserFormDTO userFormDTO);
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO);
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ List project(ProjectFormDTO projectFormDTO);
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java
new file mode 100644
index 0000000000..fecde12a9f
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassRootsGovernService.java
@@ -0,0 +1,77 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+public interface GrassRootsGovernService {
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ List difficultProject(AgencyNumTypeParamFormDTO param);
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param);
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ List publicPartiRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ List governCapacityRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java
new file mode 100644
index 0000000000..41c8fafc28
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/GrassrootsPartyDevService.java
@@ -0,0 +1,58 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ParymemberFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.BranchBuildTrendResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberAgeDistributionResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface GrassrootsPartyDevService {
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param);
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param);
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param);
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param);
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java
new file mode 100644
index 0000000000..e2191e20ec
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java
@@ -0,0 +1,61 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.MonthBarchartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.MonthPieChartResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.SubAgencyIndexRankResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.YearAverageIndexResultDTO;
+
+import java.util.List;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+public interface IndexService {
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO);
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO);
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO);
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO);
+
+ /**
+ * 5、下级部门指数排行(安宁数据段用)
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 09:38 2020-09-08
+ **/
+ List anNingSubAgencyIndexRank(AnNingSubAgencyIndexRankFormDTO formDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java
new file mode 100644
index 0000000000..5e75a3946c
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PartyMemberLeadService.java
@@ -0,0 +1,63 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.FineExampleFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+
+import java.util.List;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface PartyMemberLeadService {
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO);
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO);
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO);
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ List advancedBranchRank(AgencyAndNumFormDTO param);
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ List advancedPartymemberRank(AgencyAndNumFormDTO param);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java
new file mode 100644
index 0000000000..aea908ff15
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java
@@ -0,0 +1,22 @@
+package com.epmet.datareport.service.evaluationindex.screen;
+
+import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+public interface ScreenProjectService {
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO);
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java
new file mode 100644
index 0000000000..6d6632dbdf
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java
@@ -0,0 +1,140 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerGridDao;
+import com.epmet.datareport.service.evaluationindex.screen.AgencyService;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.AgencyDistributionResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO;
+import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 组织相关api
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:18
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class AgencyServiceImpl implements AgencyService {
+
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+
+ /**
+ * @Description 1、组织机构树
+ * @param
+ * @author zxc
+ * @date 2020/8/18 2:04 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) {
+ // 1. 查询客户根组织ID
+ String customerId = externalAppRequestParam.getCustomerId();
+
+
+ // 验签关闭,customerId无法获取,暂时写死
+ if(StringUtils.isBlank(customerId)){
+ customerId = "b09527201c4409e19d1dbc5e3c3429a1";
+ }
+ TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId);
+ if (null == rootAgency){
+ return new TreeResultDTO();
+ }
+ List centerMark = this.getCenterMark(rootAgency.getCenterMarkA());
+ rootAgency.setCenterMark(centerMark.size() == NumConstant.ZERO ? new ArrayList<>() : centerMark);
+ if (rootAgency.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List treeResultDTOS = screenCustomerGridDao.selectGridInfo(rootAgency.getValue());
+ rootAgency.setChildren(treeResultDTOS);
+ }else {
+ List departmentList = this.getDepartmentList(("".equals(rootAgency.getPids()) || rootAgency.getPids().equals(NumConstant.ZERO_STR)) ? rootAgency.getValue() : rootAgency.getPids().concat(",").concat(rootAgency.getValue()));
+ rootAgency.setChildren(departmentList);
+ }
+ return rootAgency;
+ }
+
+ /**
+ * @Description 处理centerMark
+ * @param centerMark
+ * @author zxc
+ * @date 2020/8/26 5:18 下午
+ */
+ public List getCenterMark(String centerMark){
+ if (centerMark.length() == NumConstant.ZERO || centerMark.equals(ScreenConstant.SQUARE_BRACKETS)) {
+ return new ArrayList<>();
+ }
+ List result = new ArrayList<>();
+ String substring = centerMark.substring(NumConstant.TWO, centerMark.length() - NumConstant.TWO);
+ String[] split = substring.split(ScreenConstant.COMMA);
+ for (String s : split) {
+ result.add(Double.valueOf(s));
+ }
+ return result;
+ }
+
+ /**
+ * @Description 递归查询填充下级
+ * @param subAgencyPids
+ * @author zxc
+ * @date 2020/8/18 4:42 下午
+ */
+ private List getDepartmentList(String subAgencyPids) {
+ List subAgencyList = screenCustomerAgencyDao.selectSubAgencyList(subAgencyPids);
+ if (subAgencyList.size() > NumConstant.ZERO) {
+ subAgencyList.forEach(sub -> {
+ List centerMark = this.getCenterMark(sub.getCenterMarkA());
+ sub.setCenterMark(centerMark.size() == NumConstant.ZERO ? new ArrayList<>() : centerMark);
+ if (sub.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List treeResultDTOS = screenCustomerGridDao.selectGridInfo(sub.getValue());
+ treeResultDTOS.forEach(tree -> {
+ List centerMarkTree = this.getCenterMark(tree.getCenterMarkA());
+ tree.setCenterMark(centerMarkTree.size() == NumConstant.ZERO ? new ArrayList<>() : centerMarkTree);
+ });
+ sub.setChildren(treeResultDTOS);
+ }else {
+ List subAgency = getDepartmentList(sub.getPids() + "," + sub.getValue());
+ sub.setChildren(subAgency);
+ }
+ });
+ }
+ return subAgencyList;
+ }
+
+ /**
+ * @Description 2、组织区域查询
+ * @param compartmentFormDTO
+ * @author zxc
+ * @date 2020/8/18 2:33 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO) {
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(compartmentFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return new CompartmentResultDTO();
+ }
+ if (agencyAreaInfo.getLevel().equals(ScreenConstant.COMMUNITY)){
+ // 当level为"community"时,查询screen_customer_grid表
+ List agencyDistributionResultDTOS = screenCustomerGridDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }else {
+ List agencyDistributionResultDTOS = screenCustomerAgencyDao.selectSubDistribution(compartmentFormDTO.getAgencyId());
+ agencyAreaInfo.setAgencyDistribution(agencyDistributionResultDTOS);
+ }
+ return agencyAreaInfo;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java
new file mode 100644
index 0000000000..b65c0fe059
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/DistributionServiceImpl.java
@@ -0,0 +1,134 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerGridDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.DistributionService;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 中央区相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:19
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class DistributionServiceImpl implements DistributionService {
+
+ @Autowired
+ private ScreenCustomerGridDao screenCustomerGridDao;
+ @Autowired
+ private ScreenCustomerAgencyDao screenCustomerAgencyDao;
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+
+ /**
+ * @Description 1、党支部
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/18 10:59 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List branch(BranchFormDTO formDTO) {
+ List branchResultDTOS = screenCustomerGridDao.selectBranch(formDTO.getAgencyId());
+ return branchResultDTOS;
+ }
+
+ /**
+ * @Description 2、用户分布
+ * @param userFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:10 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public UserResultDTO user(UserFormDTO userFormDTO) {
+ UserResultDTO userResult = new UserResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(userFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return userResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,userResult);
+ if (userResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List userDistributionResultDTOS = screenCustomerGridDao.selectUserDistribution(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }else {
+ List userDistributionResultDTOS = screenCustomerAgencyDao.selectUserDistributionAgency(userFormDTO.getAgencyId());
+ userResult.setUserDistribution(userDistributionResultDTOS);
+ }
+ return userResult;
+ }
+
+ /**
+ * @Description 3、党员分布
+ * @param parymemberFormDTO
+ * @author zxc
+ * @date 2020/8/18 11:20 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public ParymemberResultDTO parymember(ParymemberFormDTO parymemberFormDTO) {
+ ParymemberResultDTO parymemberResult = new ParymemberResultDTO();
+ CompartmentResultDTO agencyAreaInfo = screenCustomerAgencyDao.getAgencyAreaInfo(parymemberFormDTO.getAgencyId());
+ if (null == agencyAreaInfo){
+ return parymemberResult;
+ }
+ BeanUtils.copyProperties(agencyAreaInfo,parymemberResult);
+ if (parymemberResult.getLevel().equals(ScreenConstant.COMMUNITY)){
+ List parymemberDistributionResultDTOS = screenCustomerGridDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }else {
+ List parymemberDistributionResultDTOS = screenCustomerAgencyDao.selectParymemberDistribution(parymemberFormDTO.getAgencyId());
+ parymemberResult.setUserDistribution(parymemberDistributionResultDTOS);
+ }
+ return parymemberResult;
+ }
+
+ /**
+ * @Description 4、事件
+ * @param projectFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:29 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List project(ProjectFormDTO projectFormDTO) {
+ List projectResultDTOS = screenEventDataDao.selectEvent(projectFormDTO.getAgencyId());
+ if (projectResultDTOS.size() == NumConstant.ZERO){
+ return new ArrayList<>();
+ }
+ return projectResultDTOS;
+ }
+
+ /**
+ * @Description 5、top区概况
+ * @param topProfileFormDTO
+ * @author zxc
+ * @date 2020/8/19 1:52 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public TopProfileResultDTO topProfile(TopProfileFormDTO topProfileFormDTO) {
+ TopProfileResultDTO topProfileResultDTO = screenUserTotalDataDao.selectTopProfile(topProfileFormDTO.getAgencyId());
+ if (null == topProfileResultDTO){
+ return new TopProfileResultDTO();
+ }
+ return topProfileResultDTO;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java
new file mode 100644
index 0000000000..d750c1ee03
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java
@@ -0,0 +1,252 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.*;
+import com.epmet.datareport.service.evaluationindex.screen.GrassRootsGovernService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.AgencyNumTypeParamFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 基层治理相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:20
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
+
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+ @Autowired
+ private ScreenDifficultyDataDao screenDifficultyDataDao;
+ @Autowired
+ private ScreenUserJoinDao screenUserJoinDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenGovernRankDataDao screenGovernRankDataDao;
+ @Autowired
+ private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
+
+ /**
+ * @Description 1、热心市民积分排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 11:16
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param) {
+ //默认5
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List userPointList = screenPartyUserRankDataDao.selectUserPointOrder(param.getAgencyId());
+ UserPointRankResultDTO result = new UserPointRankResultDTO();
+ result.setNameData(userPointList.stream().map(UserPointResultDTO::getName).collect(Collectors.toList()));
+ result.setPointsData(userPointList.stream().map(UserPointResultDTO::getPoint).collect(Collectors.toList()));
+ return result;
+ }
+
+
+ /**
+ * @Description 2、难点赌点-耗时最长|涉及部门最多|处理次数
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 13:55
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List difficultProject(AgencyNumTypeParamFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.TWO);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenDifficultyDataDao.selectDifficulty(param.getAgencyId(),param.getType());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ /**
+ * @Description 3、公众参与概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 14:37
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param) {
+
+ String monthId = dateUtils.getCurrentMonthId();
+ UserJoinIndicatorGrowthRateResultDTO latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
+ //保证获取公众参与概率数据的最大可能性
+ int time = NumConstant.TWELVE;
+ while(null == latest && time > NumConstant.ONE)
+ {
+ time --;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
+ }
+
+ if(null == latest) return new PublicPartiProfileResultDTO();
+ PublicPartiProfileResultDTO result = ConvertUtils.sourceToTarget(latest,PublicPartiProfileResultDTO.class);
+ result.setMonthIncr(convertPercentStr(latest.getMonthIncr(),NumConstant.ZERO));
+ result.setJoinCompareLatestMonth(convertPercentStr(latest.getJoinCompareLatestMonth(),NumConstant.ZERO));
+ result.setIssueCompareLatestMonth(convertPercentStr(latest.getIssueCompareLatestMonth(),NumConstant.ZERO));
+ return result;
+ }
+
+ /**
+ * @Description 4、公众参与-排行榜
+ * @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 15:32
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List publicPartiRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.TWO);
+ }
+ if(NumConstant.ZERO == param.getTopNum()){
+ param.setTopNum(NumConstant.MAX);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenPublicPartiTotalDataDao.selectPublicPartiTotal(param.getAgencyId());
+ if(null == result) {
+ return new ArrayList<>();
+ }
+ return result;
+ }
+
+ /**
+ * @Description 5、治理能力榜单
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321627
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 17:46
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List governCapacityRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.FIVE);
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ String monthId = dateUtils.getCurrentMonthId();
+ List orderList =
+ screenGovernRankDataDao.selectGovernCapacityRatio(monthId,param.getAgencyId());
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null ,monthId);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ orderList =
+ screenGovernRankDataDao.selectGovernCapacityRatio(monthId,param.getAgencyId());
+ }
+ if(null == orderList || orderList.isEmpty()) return new ArrayList<>();
+ List result = new LinkedList<>();
+ orderList.forEach(o -> {
+ GovernCapacityRankResultDTO rank = new GovernCapacityRankResultDTO();
+ rank.setAgencyName(o.getAgencyName());
+ rank.setGovernRatio(convertPercentStr(o.getGovernRatio(),NumConstant.ONE));
+ rank.setResolvedRatio(convertPercentStr(o.getResolvedRatio(),NumConstant.ONE));
+ rank.setResponseRatio(convertPercentStr(o.getResponseRatio(),NumConstant.ONE));
+ rank.setSatisfactionRatio(convertPercentStr(o.getSatisfactionRatio(),NumConstant.ONE));
+ result.add(rank);
+ });
+ return result;
+ }
+
+ /**
+ * @Description 6、公众参与-柱状折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=322434
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 09:58
+ **/
+ @Override
+ public PublicPartiChartResultDTO publicPartiChart(AgencyFormDTO param) {
+ Map Xaxis = dateUtils.getXpro();
+ List monthlyData = screenUserJoinDao.selectUserJoinDataMonthly(param.getAgencyId(),Xaxis.keySet().iterator().next());
+ PublicPartiChartResultDTO result = new PublicPartiChartResultDTO();
+ result.setXAxis(Xaxis.values().stream().collect(Collectors.toList()));
+ List defaultData = new LinkedList<>();
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ defaultData.add(NumConstant.ZERO);
+ }
+ if(null == monthlyData || monthlyData.isEmpty()){
+ result.setAverageJoinNumList(defaultData);
+ result.setJoinUserNumList(defaultData);
+ result.setOrganizeNumList(defaultData);
+ return result;
+ }
+ result.setOrganizeNumList(new ArrayList<>());
+ result.setJoinUserNumList(new ArrayList<>());
+ result.setAverageJoinNumList(new ArrayList<>());
+ Map> dataMap = monthlyData.stream().collect(Collectors.groupingBy(UserJoinMonthlyResultDTO :: getMonthId));
+ Xaxis.keySet().stream().forEach(monthId -> {
+ List data = dataMap.get(monthId);
+ if(null == data || data.isEmpty()){
+ result.getOrganizeNumList().add(NumConstant.ZERO);
+ result.getJoinUserNumList().add(NumConstant.ZERO);
+ result.getAverageJoinNumList().add(NumConstant.ZERO);
+ }else{
+ Integer o = NumConstant.ZERO;
+ Integer j = NumConstant.ZERO;
+ Integer a = NumConstant.ZERO;
+ for(UserJoinMonthlyResultDTO unit : data){
+ o = null == unit.getOrganizeNum() ? NumConstant.ZERO : o + unit.getOrganizeNum();
+ j = null == unit.getJoinUserNum() ? NumConstant.ZERO : o + unit.getJoinUserNum();
+ a = null == unit.getAverageJoinNum() ? NumConstant.ZERO : o + unit.getAverageJoinNum();
+ }
+ result.getOrganizeNumList().add(o);
+ result.getJoinUserNumList().add(j);
+ result.getAverageJoinNumList().add(a);
+ }
+ });
+
+ return result;
+ }
+
+
+
+ private String convertPercentStr(BigDecimal percent,Integer digits){
+ if(null == percent) percent = BigDecimal.ZERO;
+ String percentStr = percent.setScale(digits, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java
new file mode 100644
index 0000000000..619eba4625
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassrootsPartyDevServiceImpl.java
@@ -0,0 +1,237 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenCpcBaseDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenPartyBranchDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.GrassrootsPartyDevService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildRankFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.BranchBuildTrendFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ParymemberFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 基层党建相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService {
+
+ private static final Logger logger = LoggerFactory.getLogger(GrassrootsPartyDevServiceImpl.class);
+
+ @Autowired
+ private ScreenUserTotalDataDao screenUserTotalDataDao;
+ @Autowired
+ private ScreenCpcBaseDataDao screenCpcBaseDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ @Autowired
+ private DateUtils dateUtils;
+
+ /**
+ * @Description 1、党员基本情况-饼状图概况
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321324
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 14:58
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PartymemberPercentResultDTO partymemberBaseInfo(ParymemberFormDTO param) {
+
+ PartymemberPercentResultDTO result = screenUserTotalDataDao.selectAgencyPartymemberPercent(param.getAgencyId());
+ if(null == result){
+ result = new PartymemberPercentResultDTO();
+ logger.warn("com.epmet.datareport.service.screen.impl.GrassrootsPartyDevServiceImpl.partymemberBaseInfo:未查询出指定agencyId下的党员基础信息数据,agencyId :: {}",param.getAgencyId());
+ result = new PartymemberPercentResultDTO();
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ return result;
+ }
+ //partymember / platform
+ if(null == result.getPlatFormTotal() || NumConstant.ZERO == result.getPlatFormTotal()){
+ result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));
+ }else{
+ result.setPercentInPlatForm(convertPercentStr(new BigDecimal((result.getPartyMemberTotal().doubleValue()/result.getPlatFormTotal().doubleValue()))));
+ }
+ return result;
+ }
+
+ /**
+ * @Description 2、党员基本情况-年龄分布
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321980
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.18 17:54
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public PartymemberAgeDistributionResultDTO partymemberAgeDistribution(ParymemberFormDTO param) {
+ return screenCpcBaseDataDao.selectPartymemberAgeDistribution(param.getAgencyId());
+ }
+
+ /**
+ * @Description 3、支部建设情况|联建共建情况-折线图
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321981
+ * @param param
+ * @return BranchBuildTrendResultDTO
+ * @author wangc
+ * @date 2020.08.19 11:02
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ BranchBuildTrendResultDTO result = new BranchBuildTrendResultDTO();
+ //生成近十二个月的横坐标数组
+ Map monthMap = dateUtils.getXpro();
+ result.setXAxis(monthMap.values().stream().collect(Collectors.toList()));
+
+ List dataArray = new LinkedList<>();
+ List yearlyDataList =
+ screenPartyBranchDataDao.selectBranchDataByTypeAndTimeZone(param.getAgencyId(),param.getType(),param.getCategory(),monthMap.keySet().iterator().next());
+
+
+ if(null != yearlyDataList && !yearlyDataList.isEmpty()){
+
+ Map> dataMapByIssue =
+ yearlyDataList.stream().collect(Collectors.groupingBy(BranchIssueDataResultDTO::getIssue));
+
+
+ result.setLegend(new LinkedList<>(dataMapByIssue.keySet()));
+
+ dataMapByIssue.forEach((issue,val) ->{
+ List issueYearlyDataList = val;
+ List numArray = new LinkedList<>();
+ BranchTrendSeriesDataResultDTO data = new BranchTrendSeriesDataResultDTO();
+ data.setName(issue);
+ if(null != issueYearlyDataList && !issueYearlyDataList.isEmpty()){
+ monthMap.keySet().forEach( monthId ->{
+ Optional optional
+ = issueYearlyDataList.stream().filter(yearly -> StringUtils.equals(monthId,yearly.getMonthId())).findAny();
+ if(optional.isPresent()){
+ numArray.add(optional.get().getData());
+ }else{
+ numArray.add(NumConstant.ZERO);
+ }
+ });
+ }else{
+ for(int i = NumConstant.ZERO ; i < NumConstant.TWELVE ; i++){
+ numArray.add(NumConstant.ZERO);
+ }
+ }
+ data.setData(numArray);
+ dataArray.add(data);
+ });
+ }
+
+ result.setSeriesData(dataArray);
+ result.setLegend(null == result.getLegend() ? new ArrayList<>() : result.getLegend());
+ List _ymList = monthMap.keySet().stream().collect(Collectors.toList());
+ //总组织次数
+ Integer totalOrganizationCount = screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,param.getAgencyId(),monthMap.keySet().iterator().next());
+ //自旋一次
+ totalOrganizationCount = Optional.ofNullable(totalOrganizationCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,param.getAgencyId(),_ymList.get(NumConstant.ONE))
+ );
+ //总参与人数
+ Integer totalJoinUserCount = screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,param.getAgencyId(),monthMap.keySet().iterator().next());
+ //自旋一次
+ totalJoinUserCount = Optional.ofNullable(totalJoinUserCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(param.getCategory(),ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,param.getAgencyId(),_ymList.get(NumConstant.ONE))
+ );
+
+ result.setTotalOrganizationCount(Optional.ofNullable(totalOrganizationCount).orElse(NumConstant.ZERO));
+ result.setTotalJoinUserCount(Optional.ofNullable(totalJoinUserCount).orElse(NumConstant.ZERO));
+ return result;
+ }
+
+ /**
+ * @Description 4、支部建设情况|联建共建情况-排行
+ * @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321982
+ * @param param
+ * @return BranchBuildRankResultDTO
+ * @author wangc
+ * @date 2020.08.19 15:25
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param) {
+ if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
+ //联建共建情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
+ }else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
+ //联建党员志愿服务情况
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
+ }else{
+ //默认支部建设
+ param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
+ }
+ if(StringUtils.isBlank(param.getMonthId())){
+ param.setMonthId(dateUtils.getCurrentMonthId());
+ }
+ if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List orderList =
+ screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
+
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(orderList) && time > NumConstant.ONE){
+ time --;
+ param.setMonthId(dateUtils.getPreviousMonthIdByDest(null,param.getMonthId()));
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ orderList =
+ screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
+ }
+
+
+ BranchBuildRankResultDTO result = new BranchBuildRankResultDTO();
+ result.setJoinData(new LinkedList<>());
+ result.setOrganizeData(new LinkedList<>());
+ result.setXAxis(new LinkedList<>());
+ for(BranchBuildOrderByCountResultDTO data : orderList){
+ result.getXAxis().add(data.getOrgName());
+ result.getOrganizeData().add(data.getOrganizeData());
+ result.getJoinData().add(data.getJoinData());
+ }
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
+ String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+
+
+
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
new file mode 100644
index 0000000000..4d23ca4bca
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
@@ -0,0 +1,196 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenIndexDataMonthlyDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenIndexDataYearlyDao;
+import com.epmet.datareport.service.evaluationindex.screen.IndexService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.*;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 指数相关相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:21
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class IndexServiceImpl implements IndexService {
+
+ @Autowired
+ private ScreenIndexDataYearlyDao screenIndexDataYearlyDao;
+ @Autowired
+ private ScreenIndexDataMonthlyDao screenIndexDataMonthlyDao;
+ @Autowired
+ private PartyMemberLeadServiceImpl partyMemberLeadServiceImpl;
+ @Autowired
+ private DateUtils dateUtils;
+
+ /**
+ * @Description 1、年度平均指数
+ * @param yearAverageIndexFormDTO
+ * @author zxc
+ * @date 2020/8/19 2:53 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public YearAverageIndexResultDTO yearAverageIndex(YearAverageIndexFormDTO yearAverageIndexFormDTO) {
+ YearAverageIndexResultDTO yearAverageIndexResultDTO = screenIndexDataYearlyDao.selectYearAverageIndex(yearAverageIndexFormDTO.getAgencyId());
+ if (null == yearAverageIndexResultDTO){
+ return new YearAverageIndexResultDTO();
+ }
+ return yearAverageIndexResultDTO;
+ }
+
+ /**
+ * @Description 2、月度指数分析-饼状图
+ * @param monthPieChartFormDTO
+ * @author zxc
+ * @date 2020/8/19 3:17 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public MonthPieChartResultDTO monthPieChart(MonthPieChartFormDTO monthPieChartFormDTO) {
+
+ MonthPieChartResultDTO monthPieChartResultDTO = screenIndexDataMonthlyDao.selectMonthPieChart(monthPieChartFormDTO.getAgencyId(),null);
+ String monthId = dateUtils.getCurrentMonthId();
+ int time = NumConstant.TWELVE;
+ //保证获取月度指数数据的最大可能性
+ while(null == monthPieChartResultDTO && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ monthPieChartResultDTO = screenIndexDataMonthlyDao.selectMonthPieChart(monthPieChartFormDTO.getAgencyId(),monthId);
+ }
+ if (null == monthPieChartResultDTO){
+ return new MonthPieChartResultDTO();
+ }
+ return monthPieChartResultDTO;
+ }
+
+ /**
+ * @Description 3、月度指数分析-柱状图
+ * @param monthBarchartFormDTO
+ * @author zxc
+ * @date 2020/8/19 5:27 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public MonthBarchartResultDTO monthBarchart(MonthBarchartFormDTO monthBarchartFormDTO) {
+ MonthBarchartResultDTO result = new MonthBarchartResultDTO();
+ List serviceAbilityData = new ArrayList<>();
+ List partyDevAbilityData = new ArrayList<>();
+ List governAbilityData = new ArrayList<>();
+ List totalIndexData = new ArrayList<>();
+ // 1. x轴
+ result.setXAxis(partyMemberLeadServiceImpl.getXPro());
+ // 2. 查询近一年的指数值【包括本月】
+ List monthBarchartResults = screenIndexDataMonthlyDao.selectMonthBarchart(monthBarchartFormDTO.getAgencyId());
+ if (monthBarchartResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ serviceAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ partyDevAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ governAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ totalIndexData.add(NumConstant.ZERO_DOT_ZERO);
+ }
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+ List collect = monthBarchartResults.stream().sorted(Comparator.comparing(MonthBarchartResult::getMonthId)).collect(Collectors.toList());
+ //升序 当前月份在队尾
+ List _ymList = dateUtils.getXpro().keySet().stream().collect(Collectors.toList());
+ //针对集合collect的游标
+ int cursor = NumConstant.ZERO;
+ //针对X轴,数据集合不全则进行数据填充
+ a:for(int i = NumConstant.ZERO; i < _ymList.size(); i++){
+ //这里的collect必须是有序且升序的
+ if(cursor >= collect.size()) break a;
+ //如果存在过期数据,即从数据库中查询出超出横坐标左边界的月份值
+ if(Integer.parseInt(collect.get(cursor).getMonthId()) < Integer.parseInt(_ymList.get(NumConstant.ZERO))) {
+ //控制当前循环重复进行
+ i--;
+ //忽略过期数据
+ cursor++;
+ continue ;
+ }
+ if(!StringUtils.equals(collect.get(cursor).getMonthId(),_ymList.get(i))){
+ //SET DEFAULT
+ serviceAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ partyDevAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ governAbilityData.add(NumConstant.ZERO_DOT_ZERO);
+ totalIndexData.add(NumConstant.ZERO_DOT_ZERO);
+ //保持cursor不变
+ }else{
+ MonthBarchartResult data = collect.get(cursor);
+ //SET DATA
+ serviceAbilityData.add(null == data.getServiceAbility() ? NumConstant.ZERO_DOT_ZERO : data.getServiceAbility());
+ partyDevAbilityData.add(null == data.getPartyDevAbility() ? NumConstant.ZERO_DOT_ZERO : data.getPartyDevAbility());
+ governAbilityData.add(null == data.getGovernAbility() ? NumConstant.ZERO_DOT_ZERO : data.getGovernAbility());
+ totalIndexData.add(null == data.getIndexTotal() ? NumConstant.ZERO_DOT_ZERO : data.getIndexTotal());
+ //统计日期一致后移动游标
+ cursor++;
+ }
+
+ }
+
+ /*collect.forEach(month -> {
+ serviceAbilityData.add(null == month.getServiceAbility() ? NumConstant.ZERO_DOT_ZERO : month.getServiceAbility());
+ partyDevAbilityData.add(null == month.getPartyDevAbility() ? NumConstant.ZERO_DOT_ZERO : month.getPartyDevAbility());
+ governAbilityData.add(null == month.getGovernAbility() ? NumConstant.ZERO_DOT_ZERO : month.getGovernAbility());
+ totalIndexData.add(null == month.getIndexTotal() ? NumConstant.ZERO_DOT_ZERO : month.getIndexTotal());
+ });*/
+ result.setServiceAbilityData(serviceAbilityData);
+ result.setPartyDevAbilityData(partyDevAbilityData);
+ result.setGovernAbilityData(governAbilityData);
+ result.setTotalIndexData(totalIndexData);
+ return result;
+ }
+
+ /**
+ * @Description 4、下级部门指数排行
+ * @param subAgencyIndexRankFormDTO
+ * @author zxc
+ * @date 2020/8/20 10:04 上午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List subAgencyIndexRank(SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO) {
+ LocalDate now = LocalDate.now().minusMonths(NumConstant.ONE);
+ int yearId = now.getYear();
+ subAgencyIndexRankFormDTO.setYearId(String.valueOf(yearId));
+ List subAgencyIndexRankResultDTOS = screenIndexDataMonthlyDao.selectSubAgencyIndexRank(subAgencyIndexRankFormDTO);
+ if (CollectionUtils.isEmpty(subAgencyIndexRankResultDTOS)){
+ return new ArrayList<>();
+ }
+ return subAgencyIndexRankResultDTOS;
+ }
+
+ @Override
+ public List anNingSubAgencyIndexRank(AnNingSubAgencyIndexRankFormDTO formDTO) {
+ List subAgencyIndexRankResultDTOS = new ArrayList<>();
+ if (ScreenConstant.YEAR_ID.equals(formDTO.getType())){
+ // 年 指数排行
+ subAgencyIndexRankResultDTOS = screenIndexDataYearlyDao.selectAnNingSubAgencyIndexYearlyRank(formDTO);
+ } else if (ScreenConstant.MONTH_ID.equals(formDTO.getType())){
+ // 月(上一个月) 指数排行
+ subAgencyIndexRankResultDTOS = screenIndexDataMonthlyDao.selectAnNingSubAgencyIndexMonthlyRank(formDTO);
+ }
+ return subAgencyIndexRankResultDTOS;
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java
new file mode 100644
index 0000000000..203b5cb456
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PartyMemberLeadServiceImpl.java
@@ -0,0 +1,261 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.*;
+import com.epmet.datareport.service.evaluationindex.screen.PartyMemberLeadService;
+import com.epmet.datareport.utils.DateUtils;
+import com.epmet.datareport.utils.ModuleConstant;
+import com.epmet.evaluationindex.screen.constant.ScreenConstant;
+import com.epmet.evaluationindex.screen.dto.form.AgencyAndNumFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.ContactMassLineChartFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.FineExampleFormDTO;
+import com.epmet.evaluationindex.screen.dto.form.VolunteerServiceFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.*;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+
+/**
+ * 党建引领相关各指标查询
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:22
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class PartyMemberLeadServiceImpl implements PartyMemberLeadService {
+
+ @Autowired
+ private ScreenPartyLinkMassesDataDao screenPartyLinkMassesDataDao;
+ @Autowired
+ private ScreenPartyBranchDataDao screenPartyBranchDataDao;
+ @Autowired
+ private ScreenPioneerDataDao screenPioneerDataDao;
+ @Autowired
+ private ScreenOrgRankDataDao screenOrgRankDataDao;
+ @Autowired
+ private DateUtils dateUtils;
+ @Autowired
+ private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
+
+ /**
+ * @Description 1、先锋模范
+ * @param fineExampleFormDTO
+ * @author zxc
+ * @date 2020/8/20 1:56 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public FineExampleResultDTO fineExample(FineExampleFormDTO fineExampleFormDTO) {
+ FineExampleResultDTO fineExampleResultDTO = screenPioneerDataDao.selectFineExample(fineExampleFormDTO.getAgencyId());
+ if (null == fineExampleResultDTO){
+ return new FineExampleResultDTO();
+ }
+ fineExampleResultDTO.setIssueRatio(this.getRatio(fineExampleResultDTO.getIssueRatioA()));
+ fineExampleResultDTO.setPublishIssueRatio(this.getRatio(fineExampleResultDTO.getPublishIssueRatioA()));
+ fineExampleResultDTO.setResolvedProjectRatio(this.getRatio(fineExampleResultDTO.getResolvedProjectRatioA()));
+ fineExampleResultDTO.setTopicRatio(this.getRatio(fineExampleResultDTO.getTopicRatioA()));
+ fineExampleResultDTO.setShiftProjectRatio(this.getRatio(fineExampleResultDTO.getShiftProjectRatioA()));
+ return fineExampleResultDTO;
+ }
+
+ /**
+ * @Description 小数转换百分比
+ * @param d
+ * @author zxc
+ * @date 2020/8/20 6:06 下午
+ */
+ public String getRatio(Double d){
+ BigDecimal bigDecimal = new BigDecimal(d);
+ return bigDecimal.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).toPlainString().concat(ScreenConstant.RATIO);
+ }
+
+ /**
+ * @Description 2、党员联系群众
+ * @param contactMassLineChartFormDTO
+ * @author zxc
+ * @date 2020/8/20 2:35 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public ContactMassLineChartResultDTO contactMassLineChart(ContactMassLineChartFormDTO contactMassLineChartFormDTO) {
+ ContactMassLineChartResultDTO result = new ContactMassLineChartResultDTO();
+ List contactMassLineChartResults = screenPartyLinkMassesDataDao.selectContactMassLineChart(contactMassLineChartFormDTO.getAgencyId());
+ if (contactMassLineChartResults.size() == NumConstant.ZERO){
+ result.setXAxis(new ArrayList<>());
+ result.setGroupMemberData(new ArrayList<>());
+ result.setGroupData(new ArrayList<>());
+ return result;
+ }
+ List xAxis = new ArrayList<>();
+ List groupData = new ArrayList<>();
+ List groupMemberData = new ArrayList<>();
+ contactMassLineChartResults.forEach(contact -> {
+ xAxis.add(contact.getOrgName());
+ groupData.add(contact.getGroupTotal());
+ groupMemberData.add(contact.getUserTotal());
+ });
+ result.setXAxis(xAxis);
+ result.setGroupData(groupData);
+ result.setGroupMemberData(groupMemberData);
+ result.setGroupTotal(groupData.stream().mapToInt(Integer :: intValue).sum());
+ result.setGroupMemberTotal(groupMemberData.stream().mapToInt(Integer :: intValue).sum());
+ return result;
+ }
+
+ /**
+ * @Description 3、党员志愿服务
+ * @param volunteerServiceFormDTO
+ * @author zxc
+ * @date 2020/8/20 3:19 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public VolunteerServiceResultDTO volunteerService(VolunteerServiceFormDTO volunteerServiceFormDTO) {
+ VolunteerServiceResultDTO result = new VolunteerServiceResultDTO();
+ List organizeData = new ArrayList<>();
+ List joinData = new ArrayList<>();
+ List averageJoinUserData = new ArrayList<>();
+ result.setXAxis(this.getXPro());
+ //创建缺省值对象
+ VolunteerServiceResult defaultObj = new VolunteerServiceResult();
+ defaultObj.setAverageJoinUserData(NumConstant.ZERO);
+ defaultObj.setJoinData(NumConstant.ZERO);
+ defaultObj.setOrganizeData(NumConstant.ZERO);
+
+ //倒叙取十二个月的数据,从本月开始,有可能取不到十二条,要对X轴空白的缺口进行填补
+ List volunteerServiceResults = screenPartyBranchDataDao.selectVolunteerServiceResult(volunteerServiceFormDTO.getAgencyId());
+ if (volunteerServiceResults.size() == NumConstant.ZERO){
+ for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
+ organizeData.add(NumConstant.ZERO);
+ joinData.add(NumConstant.ZERO);
+ averageJoinUserData.add(NumConstant.ZERO);
+ }
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ return result;
+ }
+
+ Set yyyyMMList = dateUtils.getXpro().keySet();
+ yyyyMMList.forEach(mm -> {
+ Optional opt = volunteerServiceResults.stream()
+ .filter(obj -> StringUtils.equals(mm,obj.getMonthId())).findAny();
+ VolunteerServiceResult find = opt.isPresent() ? opt.get() : defaultObj;
+ organizeData.add(find.getOrganizeData());
+ joinData.add(find.getJoinData());
+ averageJoinUserData.add(find.getAverageJoinUserData());
+ });
+
+
+ result.setOrganizeData(organizeData);
+ result.setJoinData(joinData);
+ result.setAverageJoinUserData(averageJoinUserData);
+ String bottomMonthId = yyyyMMList.iterator().next();
+ //总组织次数
+ Integer totalOrganizationCount = screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,volunteerServiceFormDTO.getAgencyId(),bottomMonthId);
+ //自旋一次
+ totalOrganizationCount = Optional.ofNullable(totalOrganizationCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,volunteerServiceFormDTO.getAgencyId(),dateUtils.getPreviousMonthIdByDest(null,bottomMonthId))
+ );
+ //总参与人数
+ Integer totalJoinUserCount = screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,volunteerServiceFormDTO.getAgencyId(),bottomMonthId);
+ //自旋一次
+ totalJoinUserCount = Optional.ofNullable(totalJoinUserCount).orElse(
+ screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_JOIN,volunteerServiceFormDTO.getAgencyId(),dateUtils.getPreviousMonthIdByDest(null,bottomMonthId))
+ );
+ result.setTotalOrganizationCount(null == totalOrganizationCount ? NumConstant.ZERO : totalOrganizationCount);
+ result.setTotalJoinUserCount(null == totalJoinUserCount ? NumConstant.ZERO : totalJoinUserCount);
+ return result;
+ }
+
+ /**
+ * @Description 获取之前的12个月份【包括当前月】
+ * @author zxc
+ * @date 2020/8/21 10:19 上午
+ */
+ public List getXPro(){
+ List xAxis = new ArrayList<>();
+ LocalDate today = LocalDate.now();
+ for(int i = NumConstant.ELEVEN;i >= NumConstant.ZERO; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + ScreenConstant.MONTH;
+ xAxis.add(s);
+ }
+ return xAxis;
+ }
+
+
+ /**
+ * @Description 4、先进排行榜单-先进支部排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321539
+ * @param param
+ * @return
+ * @author wangc
+ * @date 2020.08.21 11:05
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List advancedBranchRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()){
+ param.setTopNum(NumConstant.FIVE);
+ }else if(NumConstant.ZERO == param.getTopNum()){
+ param.setTopNum(NumConstant.MAX);
+ }
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ String monthId = dateUtils.getCurrentMonthId();
+ List gridData =
+ screenOrgRankDataDao.selectGridDataMonthly(param.getAgencyId(),monthId);
+ int time = NumConstant.TWELVE;
+ while(CollectionUtils.isEmpty(gridData) && time > NumConstant.ONE){
+ time--;
+ monthId = dateUtils.getPreviousMonthIdByDest(null,monthId);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ gridData = screenOrgRankDataDao.selectGridDataMonthly(param.getAgencyId(),monthId);
+ }
+ List result = new LinkedList<>();
+ if(null == gridData || gridData.isEmpty()) return result;
+ gridData.forEach( data -> {
+ AdvanceBranchRankResultDTO o = ConvertUtils.sourceToTarget(data,AdvanceBranchRankResultDTO.class);
+ o.setClosedProjectRatio(convertPercentStr(data.getClosedProjectRatio()));
+ o.setSatisfactionRatio(convertPercentStr(data.getSatisfactionRatio()));
+ result.add(o);
+ });
+
+ return result;
+ }
+
+ /**
+ * @Description 5、先进排行榜单-先进党员排行
+ * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321624
+ * @param param
+ * @return List
+ * @author wangc
+ * @date 2020.08.21 14:22
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
+ @Override
+ public List advancedPartymemberRank(AgencyAndNumFormDTO param) {
+ if(null == param.getTopNum()) param.setTopNum(NumConstant.TEN);
+ PageHelper.startPage(NumConstant.ONE,param.getTopNum());
+ List result = screenPartyUserRankDataDao.selectPartymemberPointOrder(param.getAgencyId());
+ if(null == result) return new ArrayList<>();
+ return result;
+ }
+
+
+ private String convertPercentStr(BigDecimal percent){
+ if(null == percent || BigDecimal.ZERO == percent) return "0.0%";
+ String percentStr = percent.setScale(NumConstant.ONE, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
+ return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
new file mode 100644
index 0000000000..2cf288cae9
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
@@ -0,0 +1,47 @@
+package com.epmet.datareport.service.evaluationindex.screen.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao;
+import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventImgDataDao;
+import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService;
+import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO;
+import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 项目
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/18 10:23
+ */
+@Service
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+public class ScreenProjectServiceImpl implements ScreenProjectService {
+
+ @Autowired
+ private ScreenEventDataDao screenEventDataDao;
+ @Autowired
+ private ScreenEventImgDataDao screenEventImgDataDao;
+
+ /**
+ * @Description 3、项目详情
+ * @param projectDetailFormDTO
+ * @author zxc
+ * @date 2020/8/19 4:36 下午
+ */
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true)
+ @Override
+ public ProjectDetailResultDTO projectDetail(ProjectDetailFormDTO projectDetailFormDTO) {
+ ProjectDetailResultDTO projectDetailResultDTO = screenEventDataDao.selectEventDetail(projectDetailFormDTO.getProjectId(),projectDetailFormDTO.getAgencyId());
+ if (null == projectDetailResultDTO){
+ return new ProjectDetailResultDTO();
+ }
+ List imgList = screenEventImgDataDao.selectEventImgList(projectDetailFormDTO.getProjectId());
+ projectDetailResultDTO.setImgList(imgList);
+ return projectDetailResultDTO;
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
index d644029bcf..66d57fc92c 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/GroupService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/GroupService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.group;
+package com.epmet.datareport.service.group;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
index d1be53ee85..be4faf115d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/group/impl/GroupServiceImpl.java
@@ -1,15 +1,15 @@
-package com.epmet.service.group.impl;
+package com.epmet.datareport.service.group.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.group.GroupDao;
+import com.epmet.datareport.dao.group.GroupDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.group.constant.GroupConstant;
import com.epmet.group.dto.form.GroupIncrTrendFormDTO;
import com.epmet.group.dto.result.*;
-import com.epmet.service.group.GroupService;
+import com.epmet.datareport.service.group.GroupService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
index c0d33b2a3b..d0b3b6156d 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/IssueService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/IssueService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.issue;
+package com.epmet.datareport.service.issue;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
index d44576202e..86953616b1 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/issue/impl/IssueServiceImpl.java
@@ -1,22 +1,20 @@
-package com.epmet.service.issue.impl;
+package com.epmet.datareport.service.issue.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.issue.IssueDao;
+import com.epmet.datareport.dao.issue.IssueDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.issue.constant.IssueConstant;
import com.epmet.issue.dto.form.IssueIncrtrendFormDTO;
import com.epmet.issue.dto.result.*;
-import com.epmet.service.issue.IssueService;
+import com.epmet.datareport.service.issue.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
similarity index 100%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/ProjectService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
index 6e5366827f..41af9351ac 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
@@ -1,10 +1,10 @@
-package com.epmet.service.project.impl;
+package com.epmet.datareport.service.project.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.project.ProjectDao;
+import com.epmet.datareport.dao.project.ProjectDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
index bec823066c..35b6fff93b 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/PublicityService.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity;
+package com.epmet.datareport.service.publicity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.publicity.dto.result.*;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
index b01f9339bc..9a8ceaca2f 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/publicity/impl/PublicityServiceImpl.java
@@ -15,16 +15,16 @@
* along with this program. If not, see .
*/
-package com.epmet.service.publicity.impl;
+package com.epmet.datareport.service.publicity.impl;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
-import com.epmet.dao.publicity.PublicityDao;
+import com.epmet.datareport.dao.publicity.PublicityDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.publicity.dto.result.*;
-import com.epmet.service.publicity.PublicityService;
+import com.epmet.datareport.service.publicity.PublicityService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
similarity index 96%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
index 584ac1b1dc..f0dd505cb4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/TopicService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/TopicService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.topic;
+package com.epmet.datareport.service.topic;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
similarity index 97%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
index 298dcae7a3..12889caaae 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/topic/impl/TopicServiceImpl.java
@@ -1,13 +1,12 @@
-package com.epmet.service.topic.impl;
+package com.epmet.datareport.service.topic.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
-import com.epmet.dao.topic.TopicDao;
+import com.epmet.datareport.dao.topic.TopicDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.group.constant.GroupConstant;
-import com.epmet.service.topic.TopicService;
+import com.epmet.datareport.service.topic.TopicService;
import com.epmet.topic.constant.TopicConstant;
import com.epmet.topic.dto.form.TopicIncrTrendFormDTO;
import com.epmet.topic.dto.result.*;
@@ -16,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
similarity index 98%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
index 2c658fc1da..47c304f1b2 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/UserAnalysisService.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user;
+package com.epmet.datareport.service.user;
import com.epmet.dto.form.user.UserIncrTrendFormDTO;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
similarity index 99%
rename from epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
rename to epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
index 3244076896..88e39067b4 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/UserAnalysisServiceImpl.java
@@ -1,4 +1,4 @@
-package com.epmet.service.user.impl;
+package com.epmet.datareport.service.user.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
@@ -7,7 +7,7 @@ import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserAnalysisConstant;
-import com.epmet.dao.user.UserAnalysisDao;
+import com.epmet.datareport.dao.user.UserAnalysisDao;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
@@ -19,7 +19,7 @@ import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.user.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.service.user.UserAnalysisService;
+import com.epmet.datareport.service.user.UserAnalysisService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
new file mode 100644
index 0000000000..b2d99c00f1
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
@@ -0,0 +1,141 @@
+package com.epmet.datareport.utils;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Description
+ * @ClassName DateUtils
+ * @Auth wangc
+ * @Date 2020-08-20 10:56
+ */
+@Component
+public class DateUtils {
+ private static SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyyMM");
+ private static DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMM");
+ /**
+ * @Description 返回当前月以及前十一个月,升序
+ * @param
+ * @return Map key:202001 value:1月
+ * @author wangc
+ * @date 2020.08.19 12:46
+ **/
+ public Map getX(){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ //calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ String currentMonth = defaultFormat.format(calendar.getTime());
+ Integer monthCounter = Integer.parseInt(currentMonth);
+ Map monthMap = new HashMap<>();
+ int i = NumConstant.ONE;
+ while(i <= NumConstant.TWELVE){
+
+ if(monthCounter.toString().endsWith("00")){
+ monthCounter -= NumConstant.EIGHTY_EIGHT;
+ }
+
+ String abscissa = monthCounter.toString().substring(monthCounter.toString().length() - NumConstant.TWO);
+ if(abscissa.startsWith("0")) {
+ abscissa = abscissa.replace("0","").concat("月");
+ }else{
+ abscissa = abscissa.concat("月");
+ }
+ monthMap.put(monthCounter.toString(),abscissa);
+ monthCounter-- ;
+ i++;
+ }
+
+ Map result = Maps.newLinkedHashMap();
+ monthMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+
+ return result;
+ }
+
+ public Map getXpro(){
+ Map xAxis = new HashMap<>();
+ LocalDate today = LocalDate.now();
+
+ for(int i = NumConstant.ELEVEN;i >= NumConstant.ZERO; i--){
+ LocalDate localDate = today.minusMonths(i);
+ String s = localDate.getMonth().getValue() + "月";
+ xAxis.put(localDate.format(fmt),s);
+ }
+ Map result = Maps.newLinkedHashMap();
+ xAxis.entrySet().stream().sorted(Map.Entry.comparingByKey())
+ .forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
+ return result;
+ }
+
+ /**
+ * @Description 得到上个月的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.20 10:19
+ **/
+ public String getPreviousMonthId(){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
+ return format.format(calendar.getTime());
+ }
+
+ public String getPreviousMonthIdByDest(Date date,String dateStr){
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
+ Calendar c = Calendar.getInstance();
+ if(null == date && StringUtils.isNotBlank(dateStr)){
+ try{
+ date = format.parse(dateStr);
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }else{
+ return null;
+ }
+ c.setTime(date);
+ c.add(Calendar.MONTH, NumConstant.ONE_NEG);
+ return format.format(c.getTime());
+ }
+
+ /**
+ * @Description 得到当前月份的monthId
+ * @param
+ * @return
+ * @author wangc
+ * @date 2020.08.27 13:43
+ **/
+ public String getCurrentMonthId(){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date()); // 设置为当前时间
+ return defaultFormat.format(calendar.getTime());
+ }
+
+ public static void main(String[] args) {
+ DateUtils util = new DateUtils();
+ Map result = util.getXpro();
+ result.forEach((k,v) -> {
+ System.out.print(k);
+ System.out.print(" -> ");
+ System.out.print(v);
+ System.out.println();
+ });
+
+ List xLine = result.values().stream().collect(Collectors.toList());
+ xLine.forEach(x -> {
+ System.out.println(x);
+ });
+
+ result.keySet().forEach(key -> System.out.println(key));
+ }
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
new file mode 100644
index 0000000000..7e3af9f112
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
@@ -0,0 +1,34 @@
+package com.epmet.datareport.utils;
+
+public interface ModuleConstant {
+
+ String PARAM_BRANCH_CATEGORY_UNION = "ljgj";
+
+ String PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "ljdyzy";
+
+ String PARAM_BRANCH_CATEGORY_PARTY = "zbjs";
+
+ String KEY_BRANCH_CATEGORY_UNION = "union";
+
+ String KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "voluntaryservice";
+
+ String KEY_BRANCH_CATEGORY_PARTY = "party";
+
+ String SYMBOL_PERCENT = "%";
+
+ String PARAM_DIFFICULTY_TYPE_TIME_LONGEST = "timelongest";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_DEPTS = "mostdepts";
+
+ String PARAM_DIFFICULTY_TYPE_MOST_HANDLED = "mosthandled";
+
+ /**
+ * 支部建设情况折线图 查询数据类型 组织次数
+ * */
+ String PARAM_BRANCH_DATA_TYPE_ORGAN = "organize";
+
+ /**
+ * 支部建设情况折线图 查询数据类型 参与人数
+ * */
+ String PARAM_BRANCH_DATA_TYPE_JOIN = "joinuser";
+}
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
index 19e6e4b584..d3ebec947d 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
@@ -10,7 +10,7 @@ spring:
name: data-report-server
#环境 dev|test|prod
profiles:
- active: dev
+ active: @spring.profiles.active@
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
@@ -24,9 +24,9 @@ spring:
druid:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
- url: @datasource.druid.url@
- username: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
cloud:
nacos:
discovery:
@@ -53,11 +53,11 @@ spring:
# 数据迁移工具flyway
flyway:
- enabled: false
+ enabled: @spring.flyway.enabled@
locations: classpath:db/migration
- url: @datasource.druid.url@
- user: @datasource.druid.username@
- password: @datasource.druid.password@
+ url: @datasource.druid.stats.url@
+ user: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
baseline-on-migrate: true
baseline-version: 0
@@ -91,6 +91,25 @@ mybatis-plus:
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
+#动态数据源
+dynamic:
+ datasource:
+ stats:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.stats.url@
+ username: @datasource.druid.stats.username@
+ password: @datasource.druid.stats.password@
+ statsDisplay:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.statsdisplay.url@
+ username: @datasource.druid.statsdisplay.username@
+ password: @datasource.druid.statsdisplay.password@
+ evaluationIndex:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: @datasource.druid.evaluationIndex.url@
+ username: @datasource.druid.evaluationIndex.username@
+ password: @datasource.druid.evaluationIndex.password@
+
feign:
hystrix:
enabled: true
@@ -116,4 +135,9 @@ ribbon:
#pageHelper分页插件
pagehelper:
helper-dialect: mysql
- reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
\ No newline at end of file
+ reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
+
+dingTalk:
+ robot:
+ webHook: @dingTalk.robot.webHook@
+ secret: @dingTalk.robot.secret@
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql b/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql
new file mode 100644
index 0000000000..7a51a3f595
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/db/migration/V0.0.1__demo.sql
@@ -0,0 +1 @@
+select 0;
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
index ad10364cb5..793be083a1 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
@@ -5,6 +5,8 @@
+
+
${appname}
@@ -125,11 +127,14 @@
15
-
-
+
+
ERROR
ACCEPT
DENY
+ ${webHook}
+ ${secret}
+ ${appname}
@@ -137,13 +142,14 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -156,13 +162,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
index b3b1faecd7..159a814a61 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
index 49333cc3e4..02266e7884 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
@@ -1,7 +1,7 @@
-
+
SELECT AGENCY_ID,
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
index 9ea5c548d6..21b472e4de 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
index 165aab88fa..1c0c5700d4 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
@@ -1,7 +1,7 @@
-
+
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..fa89221e37
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCpcBaseDataDao.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ 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 PARENT_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..22a62be6d0
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ SELECT
+ agency_name AS label,
+ agency_id AS value,
+ pids AS pids,
+ IFNULL(center_mark,'') AS centerMarkA,
+ level AS level
+ 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,
+ IFNULL(center_mark,'') AS centerMarkA,
+ level AS level
+ 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..cf939d024a
--- /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..6cafd96036
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+ 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 all_parent_ids LIKE concat('%', #{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}
+
+
+
+
+ SELECT
+ grid_id AS value,
+ grid_name AS label,
+ IFNULL(center_mark,'') AS centerMarkA
+ FROM
+ screen_customer_grid
+ WHERE
+ del_flag = '0'
+ AND parent_agency_id = #{agencyId}
+ ORDER BY
+ created_time DESC
+
+
\ 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..0bb479ed65
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ SELECT
+ diff.EVENT_ID AS projectId,
+ diff.EVENT_CONTENT AS title,
+ diff.EVENT_STATUS_CODE AS STATUS,
+ ROUND(diff.EVENT_COST_TIME/60,0) 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.ALL_PARENT_IDS LIKE CONCAT('%',#{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..b877ad611d
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ SELECT
+ IFNULL(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 all_parent_ids LIKE concat('%', #{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}
+ AND all_parent_ids LIKE concat('%', #{agencyId}, '%')
+
+
\ 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..ef20677ece
--- /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..7976de7ff1
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenGovernRankDataDao.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+ SELECT
+ ORG_NAME AS agencyName,
+ RESPONSE_RATIO,
+ RESOLVED_RATIO,
+ GOVERN_RATIO,
+ SATISFACTION_RATIO
+ FROM
+ screen_govern_rank_data
+ WHERE
+ DEL_FLAG = '0'
+ AND PARENT_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..7dcb6c526b
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ 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')
+
+
+ AND month_id = #{monthId}
+
+
+
+
+
+
+
+ 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}
+ 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}
+
+
+
+
+ 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_monthly
+ WHERE
+ del_flag = '0'
+ AND parent_id = #{agencyId}
+ AND month_id = left(replace(DATE_SUB( CURDATE(),INTERVAL 1 MONTH),'-',''),6)
+
+ ORDER BY index_total ASC
+
+
+ ORDER BY index_total DESC
+
+ LIMIT #{topNum}
+
+
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..60dc82b24b
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataYearlyDao.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+ 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')
+
+
+
+
+ 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 = YEAR(CURDATE())
+
+ ORDER BY index_total ASC
+
+
+ ORDER BY index_total DESC
+
+ LIMIT #{topNum}
+
+
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..310320029e
--- /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 ALL_PARENT_IDS LIKE CONCAT('%',#{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..0ee2a6a315
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ 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_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 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,
+ SUM(organize_count) AS organizeData,
+ SUM(join_user_count) AS joinData,
+ SUM(average_join_user_count) AS averageJoinUserData
+ FROM
+ screen_party_branch_data
+ WHERE
+ del_flag = '0'
+ AND org_id = #{agencyId}
+ AND type = 'voluntaryservice'
+ GROUP BY MONTH_ID
+ ORDER BY MONTH_ID DESC
+ LIMIT 12
+
+
+
+
+ SELECT
+
+ CASE #{type} WHEN 'organize' THEN SUM(ORGANIZE_COUNT)
+ ELSE SUM(JOIN_USER_COUNT)
+ END AS data
+ FROM
+ screen_party_branch_data
+ WHERE
+ DEL_FLAG = '0'
+ AND ORG_ID = #{agencyId}
+ AND TYPE = #{category}
+ 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/ScreenPartyLinkMassesDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyLinkMassesDataDao.xml
new file mode 100644
index 0000000000..2bbdece16c
--- /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..8d865b6341
--- /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 all_parent_ids LIKE CONCAT('%',#{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 ALL_PARENT_IDS LIKE CONCAT('%',#{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..992c347f9b
--- /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/ScreenPublicPartiTotalDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
new file mode 100644
index 0000000000..1a94210725
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ 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_public_parti_total_data
+ WHERE
+ DEL_FLAG = '0'
+ 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/screen/ScreenUserJoinDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml
new file mode 100644
index 0000000000..cbbc5fe211
--- /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_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..57b2959430
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+ SELECT
+ SUM( PARTY_TOTAL ) AS partyMemberTotal,
+ SUM( USER_TOTAL ) AS platFormTotal
+ FROM
+ screen_user_total_data
+ WHERE
+ DEL_FLAG = '0'
+ AND PARENT_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 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/constant/DataSourceConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java
index 920fc14e14..f89ede1ba6 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java
@@ -4,11 +4,13 @@ public interface DataSourceConstant {
String GOV_ORG = "govOrg";
String STATS = "stats";
+ String STATS_DISPLAY = "statsDisplay";
String GOV_ISSUE = "govIssue";
String GOV_PROJECT = "govProject";
String GOV_VOICE = "govVoice";
String OPER_CRM = "operCrm";
String RESI_GROUP = "resiGroup";
String EPMET_USER = "epmetuser";
+ String EVALUATION_INDEX = "evaluationIndex";
}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IndexCalConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IndexCalConstant.java
new file mode 100644
index 0000000000..f02185071f
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IndexCalConstant.java
@@ -0,0 +1,69 @@
+package com.epmet.constant;
+
+/**
+ * 描述一下
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/27 15:20
+ */
+public interface IndexCalConstant {
+
+ Integer PAGE_SIZE = 10;
+
+ String GRID_ID="GRID_ID";
+
+ String DEPT_ID="DEPT_ID";
+
+ String AGENCY_ID="AGENCY_ID";
+
+ String PARENT_AGENCY_ID = "parentAgencyId";
+
+ String PARENT_ID = "PARENT_ID";
+
+ String CUSTOMER_ID="CUSTOMER_ID";
+
+ String MONTH_ID="MONTH_ID";
+
+ String USER_ID="USER_ID";
+ String YEAR_ID = "YEAR_ID";
+
+ String COMMUNITY_LEVEL = "community";
+
+ String STREET_LEVEL = "street";
+
+ String DISTRICT_LEVEL = "district";
+
+ String COMMUNITY_RELATE = "shequxiangguan";
+
+
+
+
+ // 测试插入数据用
+ String customerId="b09527201c4409e19d1dbc5e3c3429a1";
+ //社区S1-C1
+ String SHE_QU_S1_C1="S1-C1";
+ //社区S1-C2
+ String SHE_QU_S1_C2="S1-C2";
+ //网格S1-C1-G1
+ String S1_C1_G1="S1-C1-G1";
+ //网格S1-C1-G2
+ String S1_C1_G2="S1-C1-G2";
+ //网格S1-C2-G1
+ String S1_C2_G1="S1-C2-G1";
+
+ String monthId="202008";
+ String insertUser="yinzuomei";
+
+ String INDEX_DETAIL_LIST_NULL = "指标明细查询集合为空";
+ String COMMUNITY_PARTY_AVG_NULL = "查询下属所有【社区】的党建能力平均值集合为空";
+ String GRID_PARTY_AVG_NULL = "查询下属所有【网格】的党建能力平均值集合为空";
+ String DISTRICT_PARTY_AVG_NULL = "查询【区县】的党建能力平均值集合为空";
+ String STREET_PUBLISH_ARTICLE_LIST_NULL = "查询【街道】名义发文数量集合为空";
+ String DISTRICT_PUBLISH_ARTICLE_LIST_NULL = "查询【区/县】名义发文数量集合为空";
+ String COMMUNITY_PUBLISH_ARTICLE_LIST_NULL = "查询【社区】名义发文数量集合为空";
+ String INDEX_CODE_NULL = "指标Code未查询出对应字段 【 %s 】";
+ String STREET_GOVERN_ABILITY_NULL = "查询【街道】治理能力的六个五级指标集合为空";
+ String COMMUNITY_GOVERN_ABILITY_NULL = "查询【社区】治理能力的六个五级指标集合为空";
+ String STREET_SERVICE_ABILITY_NULL = "查询街道活动组织次数集合为空";
+ String COMMUNITY_SERVICE_ABILITY_NULL = "查询社区活动组织次数集合为空";
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/AgencyScoreDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/AgencyScoreDTO.java
new file mode 100644
index 0000000000..dabf459123
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/AgencyScoreDTO.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *