projectDetail(@RequestBody ProjectDetailFormDTO projectDetailFormDTO){
         ValidatorUtils.validateEntity(projectDetailFormDTO, ProjectDetailFormDTO.ProjectDetail.class);
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPublicPartiTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPublicPartiTotalDataDao.java
new file mode 100644
index 0000000000..02d7e0c722
--- /dev/null
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPublicPartiTotalDataDao.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  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/screen/ScreenUserTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
index a03353e825..2230e636b9 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
@@ -18,7 +18,6 @@
 package com.epmet.datareport.dao.screen;
 
 import com.epmet.screen.dto.result.PartymemberPercentResultDTO;
-import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
 import com.epmet.screen.dto.result.TopProfileResultDTO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -60,12 +59,4 @@ public interface ScreenUserTotalDataDao {
     **/
     int selectAvgIssue(@Param("agencyId")String agencyId);
     
-    /**
-     * @Description 查询用户数据
-     * @param agencyId
-     * @return    
-     * @author wangc
-     * @date 2020.08.20 16:00
-    **/
-    List selectUserTotalData(@Param("agencyId") String agencyId);
 }
\ No newline at end of file
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
index 9ca543828c..cb7fd872a5 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
@@ -46,7 +46,11 @@ public class AgencyServiceImpl implements AgencyService {
         if (null == rootAgency){
             return new TreeResultDTO();
         }
-        List departmentList = this.getDepartmentList(("".equals(rootAgency.getPids()) ? "" : rootAgency.getPids() + ",") + rootAgency.getValue());
+        String sub = null;
+        if ("".equals(rootAgency.getPids()) || rootAgency.getPids().equals("0")){
+            sub = rootAgency.getValue();
+        }
+        List departmentList = this.getDepartmentList(sub);
         rootAgency.setChildren(departmentList);
         return rootAgency;
     }
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
index 8b0db2c65a..2dd8233800 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
@@ -44,6 +44,9 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
     private ScreenUserTotalDataDao screenUserTotalDataDao;
     @Autowired
     private ScreenGovernRankDataDao screenGovernRankDataDao;
+    @Autowired
+    private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
+
     /**
      * @Description 1、热心市民积分排行
      * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
@@ -122,11 +125,17 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
     @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
     @Override
     public List publicPartiRank(AgencyAndNumFormDTO param) {
-        if(null == param.getTopNum()) param.setTopNum(NumConstant.TWO);
-        if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
+        if(null == param.getTopNum()){
+            param.setTopNum(NumConstant.TWO);
+        }
+        if(NumConstant.ZERO == param.getTopNum()){
+            param.setTopNum(NumConstant.MAX);
+        }
         PageHelper.startPage(NumConstant.ONE,param.getTopNum());
-        List result = screenUserTotalDataDao.selectUserTotalData(param.getAgencyId());
-        if(null == result) return new ArrayList<>();
+        List result = screenPublicPartiTotalDataDao.selectPublicPartiTotal(param.getAgencyId());
+        if(null == result) {
+            return new ArrayList<>();
+        }
         return result;
     }
 
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
index 4b31a1e02a..3cbb95a0db 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
@@ -6,12 +6,12 @@ import com.epmet.constant.DataSourceConstant;
 import com.epmet.datareport.dao.screen.ScreenCpcBaseDataDao;
 import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao;
 import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
+import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
 import com.epmet.datareport.utils.ModuleConstant;
 import com.epmet.screen.dto.form.BranchBuildRankFormDTO;
 import com.epmet.screen.dto.form.BranchBuildTrendFormDTO;
 import com.epmet.screen.dto.form.ParymemberFormDTO;
 import com.epmet.screen.dto.result.*;
-import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
 import com.github.pagehelper.PageHelper;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
@@ -57,6 +57,7 @@ public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService
 
         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));
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 d4db395aa8..44b522b30b 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
@@ -130,4 +130,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/logback-spring.xml b/epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
index 08a6a198d1..ea81aca726 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} 
          
     
 
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..ff931885f6
--- /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-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
index 7993cb2355..3c7c7a5141 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
@@ -82,17 +82,17 @@ public class GridPartyMemberDataFormDTO implements Serializable {
     private BigDecimal topicToIssueRatio;
 
     /**
-     * 提出的议题转项目数
+     * 上级组织Id
      */
-    private Integer issueToProjectCount;
+    private String parentId;
 
     /**
-     * 用户id
-     */
-    private String userId;
+     * 党员自建群活跃群众人数(08-24)
+	 */
+    private Integer groupActiveUserCount;
 
     /**
-     * 上级组织Id
+     * 用户id
      */
-    private String parentId;
+    private String userId;
 }
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java
new file mode 100644
index 0000000000..49e30cdb21
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.screen.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * desc:初始化客户指标权重参数实体类
+ * @author liujianjun
+ */
+@Data
+public class IndexCalculateForm implements Serializable {
+    private static final long serialVersionUID = 3280392511156378209L;
+    /**
+     * desc:客户id
+     */
+    private String customerId;
+
+    /**
+     * desc:月份id
+     */
+    private String monthId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PublicPartiTotalDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PublicPartiTotalDataFormDTO.java
new file mode 100644
index 0000000000..df902a06a2
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PublicPartiTotalDataFormDTO.java
@@ -0,0 +1,67 @@
+package com.epmet.dto.screencoll.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 18、公众参与各类总数 入参
+ * 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+ * @Auther: zhangyong
+ * @Date: 2020-08-18 09:59
+ */
+@Data
+public class PublicPartiTotalDataFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 组织类别 agency:组织;网格:grid
+     */
+    private String orgType;
+
+    /**
+     * 组织Id 可以为网格,机关id
+     */
+    private String orgId;
+
+    /**
+     * 上级组织Id,如果是网格,传入网格所属的组织id
+     */
+    private String parentId;
+
+    /**
+     * 组织名称(可以是网格名称,也可以是组织名称)
+     */
+    private String orgName;
+
+    /**
+     * 话题总数
+     */
+    private Integer topicTotal;
+
+    /**
+     * 议题总数
+     */
+    private Integer issueTotal;
+
+    /**
+     * 注册人数
+     */
+    private Integer regUserTotal;
+
+    /**
+     * 项目总数
+     */
+    private Integer projectTotal;
+
+    /**
+     * 参与人数
+     */
+    private Integer joinUserTotal;
+
+    /**
+     * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
+     */
+    private String dataEndTime;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
index 14f4df673d..3111d5136d 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
@@ -68,14 +68,4 @@ public class UserTotalDataFormDTO implements Serializable {
      * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
      */
     private String dataEndTime;
-
-    /**
-     * 注册人数(08-21新增)
-     */
-    private Integer regUserTotal;
-
-    /**
-     * 参与人数(08-21新增)
-     */
-    private Integer joinUserTotal;
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml
index 95c74f75d1..cde679eba4 100644
--- a/epmet-module/data-statistical/data-statistical-server/pom.xml
+++ b/epmet-module/data-statistical/data-statistical-server/pom.xml
@@ -178,6 +178,12 @@
                 epmet_user_user 
                 EpmEt-db-UsEr 
 
+                
+                    
+                 
+                epmet_data_stats_display_user 
+                EpmEt-db-UsEr 
+
                 
                 0 
                 192.168.1.130 
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
index 21b5ea51b7..eee1f3bca7 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
@@ -1,5 +1,7 @@
 package com.epmet;
 
+import com.epmet.commons.tools.enums.EnvEnum;
+import com.epmet.commons.tools.utils.HttpClientManager;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -15,6 +17,6 @@ public class DataStatsApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(DataStatsApplication.class ,args);
-        //HttpClientManager.getInstance().sendAlarmMsg("DataStatsApplication started!");
+        HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() +" DataStatsApplication started!");
     }
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java
new file mode 100644
index 0000000000..cba12740c5
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java
@@ -0,0 +1,154 @@
+package com.epmet.controller;
+
+import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
+import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.screen.form.IndexCalculateForm;
+import com.epmet.service.screen.IndexCalculateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 指标计算controller
+ *
+ * @author liujianjun@elink-cn.com
+ * @date 2020/8/24 14:38
+ */
+@RestController
+@RequestMapping("indexcalculate")
+public class IndexCalculateController {
+
+    @Autowired
+    private IndexCalculateService indexCalculateService;
+
+    /**
+     * 1、党建能力-党员相关指标计算(按照月份)
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **/
+    @ExternalAppRequestAuth
+    @PostMapping("cpc")
+    public Result cpcIndexCalculate(ExternalAppRequestParam externalAppRequestParam, @RequestBody IndexCalculateForm formDTO) {
+        indexCalculateService.cpcIndexCalculate(formDTO);
+        return new Result();
+    }
+
+   /* *//**
+     * 2、党建能力-网格相关指标上报(按照月份)
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("gridpartyability")
+    public Result gridPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertGridPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 3、党建能力-街道及社区相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("orgpartyability")
+    public Result orgPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertOrgPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 4、服务能力-网格相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("gridserviceability")
+    public Result gridServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertGridServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 5、服务能力-组织(街道|社区|全区)相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("orgserviceability")
+    public Result orgServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertOrgServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 6、治理能力-网格相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("gridgovrnability")
+    public Result gridGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertGridGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 7、治理能力-街道及社区相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("orggovrnability")
+    public Result orgGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertOrgGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
+
+    *//**
+     * 8、治理能力-部门相关指标
+     *
+     * @param externalAppRequestParam
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 10:52 2020-08-20
+     **//*
+    @ExternalAppRequestAuth
+    @PostMapping("deptgovrnability")
+    public Result deptGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        factIndexCollectService.insertDeptGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }*/
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java
index 0d0b21befc..c26189717e 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java
@@ -70,6 +70,7 @@ public class IndexDictController {
     }
 
     /**
+     * url:http://localhost:8108/data/stats/indexdict/initCustomerIndex
      * desc: 初始化客户的评价指标数据
      * @param formDTO customerId
      * @return
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java
index 080ba5384b..60042f986b 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java
@@ -283,4 +283,21 @@ public class ScreenCollController {
         screenCollService.insertPioneerData(formDTO, externalAppRequestParam.getCustomerId());
         return new Result();
     }
+
+    /**
+     * 18、公众参与各类总数
+     * 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+     *
+     * @param formDTO
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 09:44 2020-08-25
+     **/
+    @ExternalAppRequestAuth
+    @PostMapping("publicpartitotaldata")
+    public Result publicPartiTotalData(ExternalAppRequestParam externalAppRequestParam, @RequestBody List formDTO) {
+        screenCollService.insertPublicPartiTotalData(formDTO, externalAppRequestParam.getCustomerId());
+        return new Result();
+    }
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/screen/ScreenPublicPartiTotalDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/screen/ScreenPublicPartiTotalDataDao.java
new file mode 100644
index 0000000000..a4fdc9f221
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/screen/ScreenPublicPartiTotalDataDao.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  {
+
+    /**
+     * 18、公众参与各类总数
+     *     公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+     *     1)  根据CUSTOMER_ID、ORG_ID进行查询,如果有数据,则先进行物理删除
+     *
+     * @param customerId
+     * @param orgIds  组织Id集合
+     * @Author zhangyong
+     * @Date 10:52 2020-08-25
+     **/
+    void deletePublicPartiTotalData(@Param("customerId") String customerId,
+                           @Param("orgIds") String[] orgIds);
+
+    /**
+     * 18、公众参与各类总数
+     *    2) 在批量新增
+     *
+     * @param list
+     * @param customerId
+     * @Author zhangyong
+     * @Date 10:52 2020-08-25
+     **/
+    void batchInsertPublicPartiTotalData(@Param("list") List list, @Param("customerId")String customerId);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java
index e6ec77f0fa..689c396b2a 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java
@@ -27,10 +27,10 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 /**
- * 党建能力-党员相关的事实表 
+ * 党建能力-党员相关的事实表
  *
  * @author generator generator@elink-cn.com
- * @since v1.0.0 2020-08-20
+ * @since v1.0.0 2020-08-24
  */
 @Data
 @EqualsAndHashCode(callSuper=false)
@@ -39,89 +39,89 @@ public class FactIndexPartyAblityCpcMonthlyEntity extends BaseEpmetEntity {
 
 	private static final long serialVersionUID = 1L;
 
-    /**
-     * 客户Id
-     */
+	/**
+	 * 客户Id
+	 */
 	private String customerId;
 
-    /**
-     * 机关Id
-     */
+	/**
+	 * 机关Id
+	 */
 	private String agencyId;
 
-    /**
-     * 上级组织Id
-     */
+	/**
+	 * 上级组织Id
+	 */
 	private String parentId;
 
-    /**
-     * 网格Id
-     */
+	/**
+	 * 网格Id
+	 */
 	private String gridId;
 
-    /**
-     * 用户Id: 
-     */
+	/**
+	 * 用户Id:
+	 */
 	private String userId;
 
-    /**
-     * 月维度Id: yyyMM
-     */
+	/**
+	 * 月维度Id: yyyMM
+	 */
 	private String monthId;
 
-    /**
-     * 季度Id: yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4
-     */
+	/**
+	 * 季度Id: yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4
+	 */
 	private String quarterId;
 
-    /**
-     * 年Id :  yyyy
-     */
+	/**
+	 * 年Id :  yyyy
+	 */
 	private String yearId;
 
-    /**
-     * 党员提出的话题数
-     */
+	/**
+	 * 党员提出的话题数
+	 */
 	private Integer createTopicCount;
 
-    /**
-     * 党员参与话题数(支持,反对,评论,浏览)
-     */
+	/**
+	 * 党员参与话题数(支持,反对,评论,浏览)
+	 */
 	private Integer joinTopicCount;
 
-    /**
-     * 话题转议题数
-     */
+	/**
+	 * 党员提出的话题转议题数
+	 */
 	private Integer shiftIssueCount;
 
-    /**
-     * 议题转项目数
-     */
+	/**
+	 * 党员提出的议题转项目数
+	 */
 	private Integer shiftProjectCount;
 
-    /**
-     * 参加三会一课次数
-     */
+	/**
+	 * 参加三会一课次数
+	 */
 	private Integer joinThreeMeetsCount;
 
-    /**
-     * 自建群群众人数
-     */
+	/**
+	 * 党员自建群群众人数
+	 */
 	private Integer groupUserCount;
 
-    /**
-     * 自建群活跃度-话题数
-     */
+	/**
+	 * 党员自建群活跃群众人数(08-24)
+	 */
+	private Integer groupActiveUserCount;
+
+	/**
+	 * 党员自建群活跃度——话题数
+	 */
 	private Integer groupTopicCount;
 
-    /**
-     * 议题转项目率
-     */
+	/**
+	 * 自建群活跃度——议题转项目率
+	 */
 	private BigDecimal topicToIssueRatio;
 
-    /**
-     * 提出的议题转项目数
-     */
-	private Integer issueToProjectCount;
-
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPublicPartiTotalDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPublicPartiTotalDataEntity.java
new file mode 100644
index 0000000000..56905509ad
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPublicPartiTotalDataEntity.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  formDTO, String customerId);
+
+    /**
+     * 18、公众参与各类总数
+     * 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
+     *   1)  根据CUSTOMER_ID、ORG_ID进行查询,如果有数据,则先进行物理删除
+     *   2) 在新增
+     * @param formDTO
+     * @param formDTO
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author zhangyong
+     * @Date 09:44 2020-08-25
+     **/
+    void insertPublicPartiTotalData(List formDTO, String customerId);
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
new file mode 100644
index 0000000000..7aff662edf
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
@@ -0,0 +1,16 @@
+package com.epmet.service.screen.impl;
+
+import com.epmet.dto.screen.form.IndexCalculateForm;
+import com.epmet.service.screen.IndexCalculateService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author liujianjun
+ */
+@Service
+public class IndexCalculateServiceImpl implements IndexCalculateService {
+    @Override
+    public void cpcIndexCalculate(IndexCalculateForm formDTO) {
+
+    }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java
index b5e65fd193..83162e601a 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java
@@ -80,6 +80,8 @@ public class ScreenCollServiceImpl implements ScreenCollService {
     private ScreenPioneerDataDao screenPioneerDataDao;
     @Autowired
     private ScreenIndexDataYearlyDao screenIndexDataYearlyDao;
+    @Autowired
+    private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
 
     @DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true)
     @Override
@@ -445,4 +447,19 @@ public class ScreenCollServiceImpl implements ScreenCollService {
             screenPioneerDataDao.batchInsertPioneerData(formDTO, customerId);
         }
     }
+
+    @DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true)
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void insertPublicPartiTotalData(List formDTO, String customerId) {
+        if (null != formDTO && formDTO.size() > NumConstant.ZERO){
+            String[] orgIds = new String[formDTO.size()];
+            for (int i = NumConstant.ZERO; i < formDTO.size(); i++){
+                orgIds[i] = formDTO.get(i).getOrgId();
+            }
+            screenPublicPartiTotalDataDao.deletePublicPartiTotalData(customerId, orgIds);
+
+            screenPublicPartiTotalDataDao.batchInsertPublicPartiTotalData(formDTO, customerId);
+        }
+    }
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/Correlation.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/Correlation.java
new file mode 100644
index 0000000000..f7a31b1436
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/Correlation.java
@@ -0,0 +1,17 @@
+package com.epmet.support.normalizing;
+
+/**
+ * 指标正负相关枚举
+ */
+public enum Correlation {
+    POSITIVE("positive","正相关"),
+    NEGATIVE("negative","负相关"),
+    ;
+
+    private String code;
+    private String desc;
+    Correlation(String code,String desc){
+        this.code = code;
+        this.desc = desc;
+    }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/DoubleScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/DoubleScoreCalculator.java
new file mode 100644
index 0000000000..01258d0f45
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/DoubleScoreCalculator.java
@@ -0,0 +1,52 @@
+package com.epmet.support.normalizing;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Double的分值计算
+ * 每一种数据类型的计算都要继承ScoreCalculator并且实现其抽象方法,实现数据类型的转换
+ */
+public class DoubleScoreCalculator extends ScoreCalculator {
+
+    /**
+     * 初始化double类型分值计算
+     * ☆☆☆ 务必在该构造方法最后调用父类的prepare()方法 ☆☆☆
+     * @param sourceArray 数据所在的数组
+     * @param minScore 分值区间的左边界
+     * @param maxScore 分值区间的右边界
+     * @param correlation 相关性
+     */
+    public DoubleScoreCalculator(Double[] sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
+        this.sourceArrary = sourceArray.clone();
+        this.minScore = minScore;
+        this.maxScore = maxScore;
+        this.correlation = correlation;
+        this.prepare();
+    }
+
+    public DoubleScoreCalculator(List sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
+        this.sourceArrary = sourceArray.toArray();
+        this.minScore = minScore;
+        this.maxScore = maxScore;
+        this.correlation = correlation;
+        this.prepare();
+    }
+
+    @Override
+    public BigDecimal getMaxFromSourceArray() {
+        Double[] doubleSourceArrary = (Double[]) this.sourceArrary;
+        return new BigDecimal(doubleSourceArrary[doubleSourceArrary.length - 1]);
+    }
+
+    @Override
+    public BigDecimal getMinFromSourceArray() {
+        Double[] intSourceArrary = (Double[]) this.sourceArrary;
+        return new BigDecimal(intSourceArrary[0]);
+    }
+
+    @Override
+    public BigDecimal convertValue2BigDecimal(Object sourceValue) {
+        return new BigDecimal((Double) sourceValue);
+    }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/IntegerScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/IntegerScoreCalculator.java
new file mode 100644
index 0000000000..98f837ab7e
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/IntegerScoreCalculator.java
@@ -0,0 +1,55 @@
+package com.epmet.support.normalizing;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Integer的分值计算
+ * 每一种数据类型的计算都要继承ScoreCalculator并且实现其抽象方法,实现数据类型的转换
+ */
+public class IntegerScoreCalculator extends ScoreCalculator {
+
+    /**
+     * 初始化整数分值计算
+     * ☆☆☆ 务必在该构造方法最后调用父类的prepare()方法 ☆☆☆
+     * @param sourceArray 数据所在的数组
+     * @param minScore 分值区间的左边界
+     * @param maxScore 分值区间的右边界
+     * @param correlation 相关性
+     */
+    public IntegerScoreCalculator(Integer[] sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
+        this.sourceArrary = sourceArray.clone();
+        this.minScore = minScore;
+        this.maxScore = maxScore;
+        this.correlation = correlation;
+        this.prepare();
+        System.out.println("最小值:"+minScore+";最大值:"+maxScore);
+
+    }
+
+    public IntegerScoreCalculator(List sourceList, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
+        this.sourceArrary = sourceList.toArray();
+        this.minScore = minScore;
+        this.maxScore = maxScore;
+        this.correlation = correlation;
+        this.prepare();
+        System.out.println("最小值:"+minScore+";最大值:"+maxScore);
+    }
+
+    @Override
+    public BigDecimal getMaxFromSourceArray() {
+        Integer[] intSourceArrary = (Integer[]) this.sourceArrary;
+        return new BigDecimal(intSourceArrary[intSourceArrary.length - 1]);
+    }
+
+    @Override
+    public BigDecimal getMinFromSourceArray() {
+        Integer[] intSourceArrary = (Integer[]) this.sourceArrary;
+        return new BigDecimal(intSourceArrary[0]);
+    }
+
+    @Override
+    public BigDecimal convertValue2BigDecimal(Object sourceValue) {
+        return new BigDecimal((Integer) sourceValue);
+    }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
new file mode 100644
index 0000000000..48692e92ce
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
@@ -0,0 +1,178 @@
+package com.epmet.support.normalizing;
+
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 所有数据类型计算器的父类,实现算法骨架,数据类型转换方法则由子类实现
+ * ☆☆☆ 如果需要保持传入的数组元素顺序不变,请在实现类的构造方法中将传入数组进行克隆 ☆☆☆
+ * @param  数据类型泛型
+ */
+public abstract class ScoreCalculator {
+
+    protected T[] sourceArrary;
+
+    protected BigDecimal minScore;
+    protected BigDecimal maxScore;
+
+    protected Correlation correlation;
+
+    private BigDecimal maxValue;
+    private BigDecimal minValue;
+    private BigDecimal coefficient;
+
+    /**
+     * 计算准备
+     */
+    protected void prepare() {
+        // 校验数组
+        if (!validSourceArray(sourceArrary)) {
+            throw new RuntimeException("入参数组错误:请设置非空数组");
+        }
+        Arrays.sort(sourceArrary);
+        maxValue = getMaxFromSourceArray();
+        minValue = getMinFromSourceArray();
+        //计算系数
+        System.out.println("最小值:"+minScore+";最大值:"+maxScore);
+        coefficient = getCoefficient(minValue, maxValue);
+    }
+
+    /**
+     * 单值归一算法
+     * @return
+     */
+    public BigDecimal normalize(T sourceValue) {
+
+        if (sourceValue == null) {
+            throw new RuntimeException("入参数组错误:请设置sourceValue");
+        }
+
+        if (!Arrays.asList(sourceArrary).contains(sourceValue)) {
+            throw new RuntimeException("请确认要计算的数组在数组中存在");
+        }
+
+        if (correlation == Correlation.POSITIVE) {
+            // 正相关
+            BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
+            BigDecimal score = minScore.add(x, MathContext.DECIMAL32);
+            return score;
+        } else if (correlation == Correlation.NEGATIVE) {
+            // 负相关
+            BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
+            BigDecimal score = minScore.add(x);
+            return maxScore.subtract(score, MathContext.DECIMAL32);
+        } else {
+            throw new RuntimeException("错误的相关性");
+        }
+    }
+
+    /**
+     * 单值归一算法,带权重
+     * @param sourceValue
+     * @param weight
+     * @return
+     */
+    public BigDecimal normalize(T sourceValue, BigDecimal weight) {
+        return normalize(sourceValue).multiply(weight);
+    }
+
+    /**
+     * 批量归一算法
+     * @param sourceValues
+     * @return
+     */
+    public BigDecimal[] normalize(T[] sourceValues) {
+
+        BigDecimal[] scores = new BigDecimal[sourceValues.length];
+
+        for (int i=0;i normalize(List sourceValues) {
+        return sourceValues.stream().map(s -> normalize(s)).collect(Collectors.toList());
+    }
+
+    /**
+     * 批量归一算法,带权重
+     * @param sourceValues
+     * @param weight
+     * @return
+     */
+    public BigDecimal[] normalize(T[] sourceValues, BigDecimal weight) {
+
+        BigDecimal[] scores = new BigDecimal[sourceValues.length];
+
+        for (int i=0;i normalize(List sourceValues, BigDecimal weight) {
+        return sourceValues.stream().map(s -> normalize(s).multiply(weight)).collect(Collectors.toList());
+    }
+
+    /**
+     * 校验数组
+     * @param sourceArray
+     * @param 
+     * @return
+     */
+    protected   boolean validSourceArray(T[] sourceArray) {
+        if (sourceArray == null || sourceArray.length == 0) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 计算系数
+     * @return
+     */
+    protected BigDecimal getCoefficient(BigDecimal min, BigDecimal max) {
+        BigDecimal fenmu = max.subtract(min);
+        if (fenmu.toString().equals("0"))return new BigDecimal(0);
+        BigDecimal fenzi = maxScore.subtract(minScore);
+        BigDecimal divide = fenzi.divide(fenmu, MathContext.DECIMAL32);
+        System.out.println("分子:"+fenzi+"分母:"+fenmu+"系数:"+divide.toString());
+        return divide;
+    }
+
+    /**
+     * 从源数组中获取最大值
+     * @return
+     */
+    protected abstract BigDecimal getMaxFromSourceArray();
+
+    /**
+     * 从源数组中获取最小值
+     * @return
+     */
+    protected abstract BigDecimal getMinFromSourceArray();
+
+    /**
+     * 将值转化为BigDecimal
+     * @param sourceValue
+     * @return
+     */
+    protected abstract BigDecimal convertValue2BigDecimal(T sourceValue);
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml
index 836adcdb03..c64ce8f35e 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml
@@ -9,7 +9,6 @@
         
@@ -44,7 +44,6 @@
         AGENCY_ID,
         PARENT_ID,
         GRID_ID,
-        USER_ID,
         MONTH_ID,
         QUARTER_ID,
         YEAR_ID,
@@ -56,13 +55,14 @@
         GROUP_USER_COUNT,
         GROUP_TOPIC_COUNT,
         TOPIC_TO_ISSUE_RATIO,
-        ISSUE_TO_PROJECT_COUNT,
+        GROUP_ACTIVE_USER_COUNT,
         DEL_FLAG,
         REVISION,
         CREATED_BY,
         CREATED_TIME,
         UPDATED_BY,
-        UPDATED_TIME
+        UPDATED_TIME,
+        USER_ID
         ) values
         
             (
@@ -71,7 +71,6 @@
             #{item.agencyId},
             #{item.parentId},
             #{item.gridId},
-            #{item.userId},
             #{item.monthId},
             #{item.quarterId},
             #{item.yearId},
@@ -83,13 +82,14 @@
             #{item.groupUserCount},
             #{item.groupTopicCount},
             #{item.topicToIssueRatio},
-            #{item.issueToProjectCount},
+            #{item.groupActiveUserCount},
             0,
             0,
             'APP_USER',
             now(),
             'APP_USER',
-            now()
+            now(),
+            #{item.userId}
             )
          
     
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
new file mode 100644
index 0000000000..c3a9200142
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+    
+         
+
+    
+        delete from screen_public_parti_total_data
+        where CUSTOMER_ID = #{customerId}
+        AND ORG_ID IN
+        
+            #{item}
+         
+     
+
+    
+        insert into screen_public_parti_total_data
+        (
+        ID,
+        CUSTOMER_ID,
+        ORG_TYPE,
+        ORG_ID,
+        PARENT_ID,
+        ORG_NAME,
+        DATA_END_TIME,
+        TOPIC_TOTAL,
+        ISSUE_TOTAL,
+        PROJECT_TOTAL,
+        REG_USER_TOTAL,
+        JOIN_USER_TOTAL,
+        DEL_FLAG,
+        REVISION,
+        CREATED_BY,
+        CREATED_TIME,
+        UPDATED_BY,
+        UPDATED_TIME
+        ) values
+        
+            (
+            (SELECT REPLACE(UUID(), '-', '') AS id),
+            #{customerId},
+            #{item.orgType},
+            #{item.orgId},
+            #{item.parentId},
+            #{item.orgName},
+            #{item.dataEndTime},
+            #{item.topicTotal},
+            #{item.issueTotal},
+            #{item.projectTotal},
+            #{item.regUserTotal},
+
+            #{item.joinUserTotal},
+            0,
+            0,
+            'APP_USER',
+            now(),
+            'APP_USER',
+            now()
+            )
+         
+     
+
+
+ 
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
index a3f29dd5a6..29cca7fc82 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
@@ -28,8 +28,6 @@
         TOPIC_TOTAL,
         ISSUE_TOTAL,
         PROJECT_TOTAL,
-        REG_USER_TOTAL,
-        JOIN_USER_TOTAL,
         DEL_FLAG,
         REVISION,
         CREATED_BY,
@@ -52,8 +50,6 @@
             #{item.topicTotal},
             #{item.issueTotal},
             #{item.projectTotal},
-            #{item.regUserTotal},
-            #{item.joinUserTotal},
             0,
             0,
             'APP_USER',