Browse Source

Merge remote-tracking branch 'origin/dev_temp' into dev_temp

master
yinzuomei 4 years ago
parent
commit
b17a2d3837
  1. 2
      epmet-cloud-generator/src/main/resources/application.yml
  2. 2
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
  3. 38
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/AgencyGovrnFormDTO.java
  4. 33
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GovrnRatioFormDTO.java
  5. 41
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GridGovrnFormDTO.java
  6. 37
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/AgencyGovrnResultDTO.java
  7. 27
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GovrnRatioResultDTO.java
  8. 29
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridGovrnResultDTO.java
  9. 60
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  10. 64
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java
  11. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  12. 37
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java
  13. 41
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  14. 467
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  15. 18
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java
  16. 40
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java
  17. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml
  18. 39
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  19. 23
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml
  20. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java
  21. 17
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectPointDTO.java
  22. 132
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenGovernRankDataDailyDTO.java
  23. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  24. 33
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactAgencyGovernDailyDao.java
  25. 33
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactGridGovernDailyDao.java
  26. 53
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java
  27. 34
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
  28. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcScoreDao.java
  29. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java
  30. 68
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenGovernRankDataDailyDao.java
  31. 23
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java
  32. 174
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java
  33. 135
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java
  34. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java
  35. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/indexcal/GridSubScoreEntity.java
  36. 102
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenGovernRankDataDailyEntity.java
  37. 21
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/AvgOperationResultVO.java
  38. 46
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactAgencyGovernDailyService.java
  39. 44
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactGridGovernDailyService.java
  40. 52
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java
  41. 31
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
  42. 37
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java
  43. 74
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java
  44. 72
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java
  45. 44
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
  46. 44
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/GovernRankDataExtractService.java
  47. 294
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/GovernRankDataExtractServiceImpl.java
  48. 22
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
  49. 63
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java
  50. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyService.java
  51. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityGridMonthlyServiceImpl.java
  52. 121
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenGovernRankDataDailyService.java
  53. 170
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenGovernRankDataDailyServiceImpl.java
  54. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java
  55. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
  56. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__cpc_subscore_add_samplecount.sql
  57. 49
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__groupact_analysis.sql
  58. 8
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactAgencyGovernDailyDao.xml
  59. 7
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactGridGovernDailyDao.xml
  60. 188
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  61. 114
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  62. 10
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcScoreDao.xml
  63. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/GridSubScoreDao.xml
  64. 15
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml
  65. 80
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenGovernRankDataDailyDao.xml
  66. 10
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml
  67. 17
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml
  68. 11
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml

2
epmet-cloud-generator/src/main/resources/application.yml

@ -9,7 +9,7 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.1.130:3306/epmet_third?useUnicode=true&characterEncoding=UTF-8&useSSL=false
url: jdbc:mysql://192.168.1.130:3306/epmet_data_statistical?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: epmet_dba
password: EpmEt-dbA-UsEr
#oracle配置

2
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java

@ -28,4 +28,6 @@ public interface DataSourceConstant {
String OPER_CRM="opercrm";
String DATA_STATISTICAL="datastatistical";
String EVALUATION_INDEX = "evaluationIndex";
}

38
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/AgencyGovrnFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.dataaggre.dto.datastats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 治理实况-当前组织治理指数-接口入参
* @Auth sun
*/
@Data
public class AgencyGovrnFormDTO implements Serializable {
private static final long serialVersionUID = -3381286960911634231L;
/**
* 组织Id
*/
@NotBlank(message = "组织ID不能为空",groups = AgencyGovrnFormDTO.Agency.class)
private String agencyId;
/**
* 日维度Id
*/
private String dateId;
/**
* 排序类型字段
* 问题解决总数:problem
* 党群自治占比:party
* 网格自治占比:grid
* 社区解决占比:community
* 区直部门解决占比:dept
* 街道解决占比:street
*/
private String type;
public interface Agency extends CustomerClientShowGroup {}
}

33
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GovrnRatioFormDTO.java

@ -0,0 +1,33 @@
package com.epmet.dataaggre.dto.datastats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 治理实况-组织/网格下响应解决满意自治率-接口入参
* @Auth sun
*/
@Data
public class GovrnRatioFormDTO implements Serializable {
private static final long serialVersionUID = -3381286960911634231L;
/**
* 组织Id
*/
@NotBlank(message = "组织或网格Id不能为空", groups = GovrnRatioFormDTO.AgencyGrid.class)
private String orgId;
/**
* 组织:agency 网格:grid
*/
@NotBlank(message = "网格Id不能为空", groups = GovrnRatioFormDTO.AgencyGrid.class)
private String orgType;
/**
* 日维度Id[日期不传值默认查前一天的格式20210101]
*/
private String dateId;
public interface AgencyGrid extends CustomerClientShowGroup {}
}

41
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/GridGovrnFormDTO.java

@ -0,0 +1,41 @@
package com.epmet.dataaggre.dto.datastats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 治理实况-当前网格治理指数-接口入参
* @Auth sun
*/
@Data
public class GridGovrnFormDTO implements Serializable {
private static final long serialVersionUID = -3381286960911634231L;
/**
* 组织Id
*/
@NotBlank(message = "机关Id不能为空",groups = GridGovrnFormDTO.Agency.class)
private String agencyId;
/**
* 网格Id
*/
@NotBlank(message = "网格Id不能为空",groups = GridGovrnFormDTO.Grid.class)
private String gridId;
/**
* 日维度Id
*/
private String dateId;
/**
* 排序类型字段
* 问题解决总数:problem
* 党群自治占比:party
* 网格自治占比:grid
*/
private String type;
public interface Agency extends CustomerClientShowGroup {}
public interface Grid extends CustomerClientShowGroup {}
}

37
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/AgencyGovrnResultDTO.java

@ -0,0 +1,37 @@
package com.epmet.dataaggre.dto.datastats.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description 治理实况-当前组织治理指数-接口返参
* @Auth sun
*/
@Data
public class AgencyGovrnResultDTO implements Serializable {
private static final long serialVersionUID = 466974582608407121L;
@JsonIgnore
BigDecimal bi = new BigDecimal(0);
//组织Id
private String agencyId;
//组织名称
private String agencyName = "";
//agency_id所属的机关级别(社区级:community,乡(镇、街道)级:street, 区县级: district, 市级: city, 省级:province)
private String level = "";
//问题解决总数
private Integer problemResolvedCount = 0;
//党群自治占比
private BigDecimal groupSelfGovernRatio = bi;
//网格自治占比
private BigDecimal gridSelfGovernRatio = bi;
//社区解决占比
private BigDecimal communityResolvedRatio = bi;
//区直部门解决占比
private BigDecimal districtDeptResolvedRatio = bi;
//街道解决占比
private BigDecimal streetResolvedRatio = bi;
}

27
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GovrnRatioResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 治理实况-组织/网格下响应解决满意自治率-接口返参
* @Auth sun
*/
@Data
public class GovrnRatioResultDTO implements Serializable {
private static final long serialVersionUID = 466974582608407121L;
//组织或网格Id
private String orgId;
//组织:agency 网格:grid
private String orgType;
//响应率
private String responseRatio = "0%";
//解决率
private String resolvedRatio = "0%";
//自治率
private String governRatio = "0%";
//满意率
private String satisfactionRatio = "0%";
}

29
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridGovrnResultDTO.java

@ -0,0 +1,29 @@
package com.epmet.dataaggre.dto.datastats.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description 治理实况-当前网格治理指数-接口返参
* @Auth sun
*/
@Data
public class GridGovrnResultDTO implements Serializable {
private static final long serialVersionUID = 466974582608407121L;
@JsonIgnore
BigDecimal bi = new BigDecimal(0);
//网格Id
private String gridId;
//网格名称
private String gridName = "";
//问题解决总数
private Integer problemResolvedCount = 0;
//党群自治占比
private BigDecimal groupSelfGovernRatio = bi;
//网格自治占比
private BigDecimal gridSelfGovernRatio = bi;
}

60
epmet-module/data-aggregator/data-aggregator-server/pom.xml

@ -158,11 +158,18 @@
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- data_statistical -->
<datasource.druid.opercrm.url>
<datasource.druid.stats.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_data_statistical?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_data_statistical_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
</datasource.druid.stats.url>
<datasource.druid.stats.username>epmet_data_statistical_user</datasource.druid.stats.username>
<datasource.druid.stats.password>EpmEt-db-UsEr</datasource.druid.stats.password>
<!-- epmet_evaluation_index -->
<datasource.druid.evaluationIndex.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_evaluation_index?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.evaluationIndex.url>
<datasource.druid.evaluationIndex.username>epmet_evaluation_index_user</datasource.druid.evaluationIndex.username>
<datasource.druid.evaluationIndex.password>EpmEt-db-UsEr</datasource.druid.evaluationIndex.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
@ -246,11 +253,18 @@
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- data_statistical -->
<datasource.druid.opercrm.url>
<datasource.druid.stats.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_data_statistical?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_data_statistical_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
</datasource.druid.stats.url>
<datasource.druid.stats.username>epmet_data_statistical_user</datasource.druid.stats.username>
<datasource.druid.stats.password>EpmEt-db-UsEr</datasource.druid.stats.password>
<!-- epmet_evaluation_index -->
<datasource.druid.evaluationIndex.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_evaluation_index?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.evaluationIndex.url>
<datasource.druid.evaluationIndex.username>epmet_evaluation_index_user</datasource.druid.evaluationIndex.username>
<datasource.druid.evaluationIndex.password>EpmEt-db-UsEr</datasource.druid.evaluationIndex.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
@ -334,11 +348,18 @@
<datasource.druid.opercrm.password>elink@833066</datasource.druid.opercrm.password>
<!-- data_statistical -->
<datasource.druid.opercrm.url>
<datasource.druid.stats.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_data_statistical?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>elink@833066</datasource.druid.opercrm.password>
</datasource.druid.stats.url>
<datasource.druid.stats.username>epmet</datasource.druid.stats.username>
<datasource.druid.stats.password>elink@833066</datasource.druid.stats.password>
<!-- epmet_evaluation_index -->
<datasource.druid.evaluationIndex.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_evaluation_index?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.evaluationIndex.url>
<datasource.druid.evaluationIndex.username>epmet</datasource.druid.evaluationIndex.username>
<datasource.druid.evaluationIndex.password>elink@833066</datasource.druid.evaluationIndex.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
@ -422,11 +443,18 @@
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- data_statistical -->
<datasource.druid.opercrm.url>
<datasource.druid.stats.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_data_statistical?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_data_statistical_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
</datasource.druid.stats.url>
<datasource.druid.stats.username>epmet_data_statistical_user</datasource.druid.stats.username>
<datasource.druid.stats.password>EpmEt-db-UsEr</datasource.druid.stats.password>
<!-- epmet_evaluation_index -->
<datasource.druid.evaluationIndex.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_evaluation_index?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.evaluationIndex.url>
<datasource.druid.evaluationIndex.username>epmet_evaluation_index_user</datasource.druid.evaluationIndex.username>
<datasource.druid.evaluationIndex.password>EpmEt-db-UsEr</datasource.druid.evaluationIndex.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>

64
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java

@ -1,11 +1,9 @@
package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import org.springframework.beans.factory.annotation.Autowired;
@ -159,4 +157,62 @@ public class DataStatsController {
return new Result<List<SubGridProjectResultDTO>>().ok(dataStatsService.subGridProject(formDTO));
}
/**
* @Param formDTO
* @Description 治理实况-当前组织治理指数
* @author sun
*/
@PostMapping("agencygovrn")
public Result<AgencyGovrnResultDTO> agencyGovrn(@RequestBody AgencyGovrnFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, AgencyGovrnFormDTO.Agency.class);
return new Result<AgencyGovrnResultDTO>().ok(dataStatsService.agencyGovrn(formDTO));
}
/**
* @Param formDTO
* @Description 治理实况-组织直属下级治理指数列表
* @author sun
*/
@PostMapping("subagencygovrnlist")
public Result<List<AgencyGovrnResultDTO>> subAgencyGovrnList(@RequestBody AgencyGovrnFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, AgencyGovrnFormDTO.Agency.class);
return new Result<List<AgencyGovrnResultDTO>>().ok(dataStatsService.subAgencyGovrnList(formDTO));
}
/**
* @Param formDTO
* @Description 治理实况-当前网格治理指数
* @author sun
*/
@PostMapping("gridgovrn")
public Result<GridGovrnResultDTO> gridGovrn(@RequestBody GridGovrnFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GridGovrnFormDTO.Grid.class);
return new Result<GridGovrnResultDTO>().ok(dataStatsService.gridGovrn(formDTO));
}
/**
* @Param formDTO
* @Description 治理实况-组织直属网格治理指数列表
* @author sun
*/
@PostMapping("subgridgovrnlist")
public Result<List<GridGovrnResultDTO>> subGridGovrnList(@RequestBody GridGovrnFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GridGovrnFormDTO.Agency.class);
return new Result<List<GridGovrnResultDTO>>().ok(dataStatsService.subGridGovrnList(formDTO));
}
/**
* @Param formDTO
* @Description 治理实况-组织/网格下响应解决满意自治率
* @author sun
*/
@PostMapping("governratio")
public Result<GovrnRatioResultDTO> governRatio(@RequestBody GovrnRatioFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GovrnRatioFormDTO.AgencyGrid.class);
if (!"agency".equals(formDTO.getOrgType()) && !"grid".equals(formDTO.getOrgType())) {
throw new RenException(String.format("入参格式错误,错误的组织或网格类型:%s", formDTO.getOrgType()));
}
return new Result<GovrnRatioResultDTO>().ok(dataStatsService.governRatio(formDTO));
}
}

14
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java

@ -228,4 +228,18 @@ public interface DataStatsDao {
@Param("actCategoryDictDTOList") List<ActCategoryDictDTO> actCategoryDictDTOList);
DimAgencyEntity getAgencyInfo(@Param("agencyId") String agencyId);
/**
* @Param formDTO
* @Description 根据组织Id查询事件治理指数
* @author sun
*/
List<AgencyGovrnResultDTO> getAgencyGovern(@Param("agencyIds") List<String> agencyIds, @Param("dateId") String dateId);
/**
* @Param formDTO
* @Description 根据网格Id查询事件治理指数
* @author sun
*/
List<GridGovrnResultDTO> getGridGovern(@Param("gridIds") List<String> gridIds, @Param("dateId") String dateId);
}

37
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java

@ -0,0 +1,37 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.dao.evaluationindex;
import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author sun
* @Description 指标统计服务
*/
@Mapper
public interface EvaluationIndexDao {
/**
* @Param formDTO
* @Description 按类型日期查询治理指数下响应解决满意自治四个统计率
* @author sun
*/
GovrnRatioResultDTO getAgnecyOrGridGoverRatio(@Param("orgId") String orgId, @Param("orgType") String orgType, @Param("dateId") String dateId);
}

41
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -1,11 +1,7 @@
package com.epmet.dataaggre.service.datastats;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.PartyMemberVanguardFormDTO;
import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
@ -128,4 +124,39 @@ public interface DataStatsService {
List<FactGroupActDailyDTO> querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode);
List<GroupActRankDetailDTO> selectGroupActRankDetail(String customerId, String dateId, String orgId, List<ActCategoryDictDTO> actCategoryDictDTOList);
/**
* @Param formDTO
* @Description 治理实况-当前组织治理指数
* @author sun
*/
AgencyGovrnResultDTO agencyGovrn(AgencyGovrnFormDTO formDTO);
/**
* @Param formDTO
* @Description 治理实况-组织直属下级治理指数列表
* @author sun
*/
List<AgencyGovrnResultDTO> subAgencyGovrnList(AgencyGovrnFormDTO formDTO);
/**
* @Param formDTO
* @Description 治理实况-当前网格治理指数
* @author sun
*/
GridGovrnResultDTO gridGovrn(GridGovrnFormDTO formDTO);
/**
* @Param formDTO
* @Description 治理实况-组织直属网格治理指数列表
* @author sun
*/
List<GridGovrnResultDTO> subGridGovrnList(GridGovrnFormDTO formDTO);
/**
* @Param formDTO
* @Description 治理实况-组织/网格下响应解决满意自治率
* @author sun
*/
GovrnRatioResultDTO governRatio(GovrnRatioFormDTO formDTO);
}

467
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -7,17 +7,14 @@ import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.constant.OrgConstant;
import com.epmet.dataaggre.dao.datastats.DataStatsDao;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.PartyMemberVanguardFormDTO;
import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
import com.epmet.dataaggre.entity.datastats.DimGridEntity;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -43,6 +40,8 @@ import java.util.stream.Collectors;
public class DataStatsServiceImpl implements DataStatsService {
@Autowired
private DataStatsDao dataStatsDao;
@Autowired
private EvaluationIndexService indexService;
/**
@ -267,18 +266,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList());
//2.查询直属下级组织注册用户日统计数据,默认按用户总数降序
resultList = dataStatsDao.getSubAgencyUser(agencyIds, formDTO.getDateId());
List<SubAgencyUserResultDTO> list = dataStatsDao.getSubAgencyUser(agencyIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setPartyMemberRatio(re.getPartyMemberTotal() == 0 || re.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getPartyMemberTotal() / (float) re.getUserTotal())));
re.setResiRatio(re.getResiTotal() == 0 || re.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getResiTotal() / (float) re.getUserTotal())));
subAgencyList.forEach(sub -> {
if (re.getAgencyId().equals(sub.getId())) {
re.setAgencyName(sub.getAgencyName());
for (DimAgencyEntity sub : subAgencyList) {
SubAgencyUserResultDTO dto = new SubAgencyUserResultDTO();
dto.setAgencyId(sub.getId());
dto.setAgencyName(sub.getAgencyName());
for (SubAgencyUserResultDTO u : list) {
if (sub.getId().equals(u.getAgencyId())) {
dto.setUserTotal(u.getUserTotal());
dto.setPartyMemberTotal(u.getPartyMemberTotal());
dto.setResiTotal(u.getResiTotal());
}
});
});
}
dto.setPartyMemberRatio(dto.getPartyMemberTotal() == 0 || dto.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getPartyMemberTotal() / (float) dto.getUserTotal())));
dto.setResiRatio(dto.getResiTotal() == 0 || dto.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getResiTotal() / (float) dto.getUserTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubAgencyUserResultDTO>() {
@ -330,18 +335,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> gridIds = gridList.stream().map(DimGridEntity::getId).collect(Collectors.toList());
//2.查询网格层级注册用户日统计数据,默认按用户总数降序
resultList = dataStatsDao.getSubGridUser(gridIds, formDTO.getDateId());
List<SubGridUserResultDTO> list = dataStatsDao.getSubGridUser(gridIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setPartyMemberRatio(re.getPartyMemberTotal() == 0 || re.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getPartyMemberTotal() / (float) re.getUserTotal())));
re.setResiRatio(re.getResiTotal() == 0 || re.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getResiTotal() / (float) re.getUserTotal())));
gridList.forEach(sub -> {
if (re.getGridId().equals(sub.getId())) {
re.setGridName(sub.getGridName());
for (DimGridEntity gr : gridList) {
SubGridUserResultDTO dto = new SubGridUserResultDTO();
dto.setGridId(gr.getId());
dto.setGridName(gr.getGridName());
for (SubGridUserResultDTO re : list) {
if (gr.getId().equals(re.getGridId())) {
dto.setUserTotal(re.getUserTotal());
dto.setPartyMemberTotal(re.getPartyMemberTotal());
dto.setResiTotal(re.getResiTotal());
}
});
});
}
dto.setPartyMemberRatio(dto.getPartyMemberTotal() == 0 || dto.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getPartyMemberTotal() / (float) dto.getUserTotal())));
dto.setResiRatio(dto.getResiTotal() == 0 || dto.getUserTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getResiTotal() / (float) dto.getUserTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubGridUserResultDTO>() {
@ -391,18 +402,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList());
//2.查询直属下级组织小组日统计数据,默认按群组总数降序
resultList = dataStatsDao.getSubAgencyGroup(agencyIds, formDTO.getDateId());
List<SubAgencyGroupResultDTO> list = dataStatsDao.getSubAgencyGroup(agencyIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setOrdinaryRatio(re.getOrdinaryTotal() == 0 || re.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getOrdinaryTotal() / (float) re.getGroupTotal())));
re.setBranchRatio(re.getBranchTotal() == 0 || re.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getBranchTotal() / (float) re.getGroupTotal())));
subAgencyList.forEach(sub -> {
if (re.getAgencyId().equals(sub.getId())) {
re.setAgencyName(sub.getAgencyName());
for (DimAgencyEntity sub : subAgencyList) {
SubAgencyGroupResultDTO dto = new SubAgencyGroupResultDTO();
dto.setAgencyId(sub.getId());
dto.setAgencyName(sub.getAgencyName());
for (SubAgencyGroupResultDTO u : list) {
if (sub.getId().equals(u.getAgencyId())) {
dto.setGroupTotal(u.getGroupTotal());
dto.setOrdinaryTotal(u.getOrdinaryTotal());
dto.setBranchTotal(u.getBranchTotal());
}
});
});
}
dto.setOrdinaryRatio(dto.getOrdinaryTotal() == 0 || dto.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getOrdinaryTotal() / (float) dto.getGroupTotal())));
dto.setBranchRatio(dto.getBranchTotal() == 0 || dto.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getBranchTotal() / (float) dto.getGroupTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubAgencyGroupResultDTO>() {
@ -451,18 +468,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> gridIds = gridList.stream().map(DimGridEntity::getId).collect(Collectors.toList());
//2.查询网格层级小组日统计数据,默认按群组总数降序
resultList = dataStatsDao.getSubGridGroup(gridIds, formDTO.getDateId());
List<SubGridGroupResultDTO> list = dataStatsDao.getSubGridGroup(gridIds, formDTO.getDateId());
//3.封装数据并返回
resultList.forEach(re -> {
re.setOrdinaryRatio(re.getOrdinaryTotal() == 0 || re.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getOrdinaryTotal() / (float) re.getGroupTotal())));
re.setBranchRatio(re.getBranchTotal() == 0 || re.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getBranchTotal() / (float) re.getGroupTotal())));
gridList.forEach(sub -> {
if (re.getGridId().equals(sub.getId())) {
re.setGridName(sub.getGridName());
for (DimGridEntity gr : gridList) {
SubGridGroupResultDTO dto = new SubGridGroupResultDTO();
dto.setGridId(gr.getId());
dto.setGridName(gr.getGridName());
for (SubGridGroupResultDTO re : list) {
if (gr.getId().equals(re.getGridId())) {
dto.setGroupTotal(re.getGroupTotal());
dto.setOrdinaryTotal(re.getOrdinaryTotal());
dto.setBranchTotal(re.getBranchTotal());
}
});
});
}
dto.setOrdinaryRatio(dto.getOrdinaryTotal() == 0 || dto.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getOrdinaryTotal() / (float) dto.getGroupTotal())));
dto.setBranchRatio(dto.getBranchTotal() == 0 || dto.getGroupTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getBranchTotal() / (float) dto.getGroupTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubGridGroupResultDTO>() {
@ -518,15 +541,14 @@ public class DataStatsServiceImpl implements DataStatsService {
List<SubAgencyFormDTO.Topic> topicShiftIssue = dataStatsDao.getSubAgencyTopicShiftIssue(agencyIds, formDTO.getDateId());
//查询直属下级组织热议中话题-机关日统计数据
List<SubAgencyFormDTO.Topic> hotdiscuss = dataStatsDao.getSubAgencyTopicHotDiscuss(agencyIds, formDTO.getDateId());
agencyIds.forEach(agencyId -> {
subAgencyList.forEach(sub -> {
SubAgencyTopicResultDTO resultDTO = new SubAgencyTopicResultDTO();
AtomicInteger topicTotal = new AtomicInteger(0);
AtomicInteger closedTotal = new AtomicInteger(0);
AtomicInteger shiftIssueTotal = new AtomicInteger(0);
AtomicInteger hotdiscussTotal = new AtomicInteger(0);
AtomicReference<String> agencyName = new AtomicReference<>("");
topic.forEach(t -> {
if (t.getAgencyId().equals(agencyId)) {
if (t.getAgencyId().equals(sub.getId())) {
topicTotal.addAndGet(t.getTopicCount());
if (t.getTopicStatus().equals("closed")) {
closedTotal.set(t.getTopicCount());
@ -534,23 +556,18 @@ public class DataStatsServiceImpl implements DataStatsService {
}
});
topicShiftIssue.forEach(t -> {
if (t.getAgencyId().equals(agencyId)) {
if (t.getAgencyId().equals(sub.getId())) {
shiftIssueTotal.addAndGet(t.getShiftedIssueTotal());
}
});
hotdiscuss.forEach(t -> {
if (t.getAgencyId().equals(agencyId)) {
if (t.getAgencyId().equals(sub.getId())) {
hotdiscussTotal.addAndGet(t.getTopicCount());
}
});
subAgencyList.forEach(sub -> {
if (agencyId.equals(sub.getId())) {
agencyName.set(sub.getAgencyName());
}
});
resultDTO.setAgencyId(agencyId);
resultDTO.setAgencyName(agencyName.get());
resultDTO.setAgencyId(sub.getId());
resultDTO.setAgencyName(sub.getAgencyName());
resultDTO.setTopicTotal(topicTotal.get());
resultDTO.setDiscussingTotal(hotdiscussTotal.get());
resultDTO.setDiscussingRatio(resultDTO.getDiscussingTotal() == 0 || resultDTO.getTopicTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) resultDTO.getDiscussingTotal() / (float) resultDTO.getTopicTotal())));
@ -618,15 +635,14 @@ public class DataStatsServiceImpl implements DataStatsService {
List<SubGridFormDTO.Topic> topicShiftIssue = dataStatsDao.getSubGridTopicShiftIssue(gridIds, formDTO.getDateId());
//查询网格层级热议中话题-日统计数据
List<SubGridFormDTO.Topic> hotdiscuss = dataStatsDao.getSubGridTopicHotDiscuss(gridIds, formDTO.getDateId());
gridIds.forEach(gridId -> {
gridList.forEach(gr -> {
SubGridTopicResultDTO resultDTO = new SubGridTopicResultDTO();
AtomicInteger topicTotal = new AtomicInteger(0);
AtomicInteger closedTotal = new AtomicInteger(0);
AtomicInteger shiftIssueTotal = new AtomicInteger(0);
AtomicInteger hotdiscussTotal = new AtomicInteger(0);
AtomicReference<String> gridName = new AtomicReference<>("");
topic.forEach(t -> {
if (t.getGridId().equals(gridId)) {
if (t.getGridId().equals(gr.getId())) {
topicTotal.addAndGet(t.getTopicCount());
if (t.getTopicStatus().equals("closed")) {
closedTotal.set(t.getTopicCount());
@ -634,23 +650,18 @@ public class DataStatsServiceImpl implements DataStatsService {
}
});
topicShiftIssue.forEach(t -> {
if (t.getGridId().equals(gridId)) {
if (t.getGridId().equals(gr.getId())) {
shiftIssueTotal.addAndGet(t.getShiftedIssueTotal());
}
});
hotdiscuss.forEach(t -> {
if (t.getGridId().equals(gridId)) {
if (t.getGridId().equals(gr.getId())) {
hotdiscussTotal.addAndGet(t.getTopicCount());
}
});
gridList.forEach(sub -> {
if (gridId.equals(sub.getId())) {
gridName.set(sub.getGridName());
}
});
resultDTO.setGridId(gridId);
resultDTO.setGridName(gridName.get());
resultDTO.setGridId(gr.getId());
resultDTO.setGridName(gr.getGridName());
resultDTO.setTopicTotal(topicTotal.get());
resultDTO.setDiscussingTotal(hotdiscussTotal.get());
resultDTO.setDiscussingRatio(resultDTO.getDiscussingTotal() == 0 || resultDTO.getTopicTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) resultDTO.getDiscussingTotal() / (float) resultDTO.getTopicTotal())));
@ -711,19 +722,26 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList());
//2.查询直属下级组织议题日统计数据,默认按议题总数降序
resultList = dataStatsDao.getSubAgencyIssue(agencyIds, formDTO.getDateId());
List<SubAgencyIssueResultDTO> list = dataStatsDao.getSubAgencyIssue(agencyIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setVotingRatio(re.getVotingTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getVotingTotal() / (float) re.getIssueTotal())));
re.setClosedIssueRatio(re.getClosedIssueTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getClosedIssueTotal() / (float) re.getIssueTotal())));
re.setShiftProjectRatio(re.getShiftProjectTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getShiftProjectTotal() / (float) re.getIssueTotal())));
subAgencyList.forEach(sub -> {
if (re.getAgencyId().equals(sub.getId())) {
re.setAgencyName(sub.getAgencyName());
for (DimAgencyEntity sub : subAgencyList) {
SubAgencyIssueResultDTO dto = new SubAgencyIssueResultDTO();
dto.setAgencyId(sub.getId());
dto.setAgencyName(sub.getAgencyName());
for (SubAgencyIssueResultDTO u : list) {
if (sub.getId().equals(u.getAgencyId())) {
dto.setIssueTotal(u.getIssueTotal());
dto.setVotingTotal(u.getVotingTotal());
dto.setClosedIssueTotal(u.getClosedIssueTotal());
dto.setShiftProjectTotal(u.getShiftProjectTotal());
}
});
});
}
dto.setVotingRatio(dto.getVotingTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getVotingTotal() / (float) dto.getIssueTotal())));
dto.setClosedIssueRatio(dto.getClosedIssueTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getClosedIssueTotal() / (float) dto.getIssueTotal())));
dto.setShiftProjectRatio(dto.getShiftProjectTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getShiftProjectTotal() / (float) dto.getIssueTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubAgencyIssueResultDTO>() {
@ -774,19 +792,26 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> gridIds = gridList.stream().map(DimGridEntity::getId).collect(Collectors.toList());
//2.查询网格层级议题日统计数据,默认按议题总数降序
resultList = dataStatsDao.getSubGridIssue(gridIds, formDTO.getDateId());
List<SubGridIssueResultDTO> list = dataStatsDao.getSubGridIssue(gridIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setVotingRatio(re.getVotingTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getVotingTotal() / (float) re.getIssueTotal())));
re.setClosedIssueRatio(re.getClosedIssueTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getClosedIssueTotal() / (float) re.getIssueTotal())));
re.setShiftProjectRatio(re.getShiftProjectTotal() == 0 || re.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getShiftProjectTotal() / (float) re.getIssueTotal())));
gridList.forEach(sub -> {
if (re.getGridId().equals(sub.getId())) {
re.setGridName(sub.getGridName());
for (DimGridEntity gr : gridList) {
SubGridIssueResultDTO dto = new SubGridIssueResultDTO();
dto.setGridId(gr.getId());
dto.setGridName(gr.getGridName());
for (SubGridIssueResultDTO re : list) {
if (gr.getId().equals(re.getGridId())) {
dto.setIssueTotal(re.getIssueTotal());
dto.setVotingTotal(re.getVotingTotal());
dto.setClosedIssueTotal(re.getClosedIssueTotal());
dto.setShiftProjectTotal(re.getShiftProjectTotal());
}
});
});
}
dto.setVotingRatio(dto.getVotingTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getVotingTotal() / (float) dto.getIssueTotal())));
dto.setClosedIssueRatio(dto.getClosedIssueTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getClosedIssueTotal() / (float) dto.getIssueTotal())));
dto.setShiftProjectRatio(dto.getShiftProjectTotal() == 0 || dto.getIssueTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getShiftProjectTotal() / (float) dto.getIssueTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubGridIssueResultDTO>() {
@ -837,18 +862,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList());
//2.查询直属下级组织项目日统计数据,默认按项目总数降序
resultList = dataStatsDao.getSubAgencyProject(agencyIds, formDTO.getDateId());
List<SubAgencyProjectResultDTO> list = dataStatsDao.getSubAgencyProject(agencyIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setPendingRatio(re.getPendingTotal() == 0 || re.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getPendingTotal() / (float) re.getProjectTotal())));
re.setClosedProjectRatio(re.getClosedProjectTotal() == 0 || re.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getClosedProjectTotal() / (float) re.getProjectTotal())));
subAgencyList.forEach(sub -> {
if (re.getAgencyId().equals(sub.getId())) {
re.setAgencyName(sub.getAgencyName());
for (DimAgencyEntity sub : subAgencyList) {
SubAgencyProjectResultDTO dto = new SubAgencyProjectResultDTO();
dto.setAgencyId(sub.getId());
dto.setAgencyName(sub.getAgencyName());
for (SubAgencyProjectResultDTO u : list) {
if (sub.getId().equals(u.getAgencyId())) {
dto.setProjectTotal(u.getProjectTotal());
dto.setPendingTotal(u.getPendingTotal());
dto.setClosedProjectTotal(u.getClosedProjectTotal());
}
});
});
}
dto.setPendingRatio(dto.getPendingTotal() == 0 || dto.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getPendingTotal() / (float) dto.getProjectTotal())));
dto.setClosedProjectRatio(dto.getClosedProjectTotal() == 0 || dto.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getClosedProjectTotal() / (float) dto.getProjectTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubAgencyProjectResultDTO>() {
@ -897,18 +928,24 @@ public class DataStatsServiceImpl implements DataStatsService {
List<String> gridIds = gridList.stream().map(DimGridEntity::getId).collect(Collectors.toList());
//2.查询网格层级项目日统计数据,默认按项目总数降序
resultList = dataStatsDao.getSubGridProject(gridIds, formDTO.getDateId());
List<SubGridProjectResultDTO> list = dataStatsDao.getSubGridProject(gridIds, formDTO.getDateId());
//3.封装数据
resultList.forEach(re -> {
re.setPendingRatio(re.getPendingTotal() == 0 || re.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getPendingTotal() / (float) re.getProjectTotal())));
re.setClosedProjectRatio(re.getClosedProjectTotal() == 0 || re.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) re.getClosedProjectTotal() / (float) re.getProjectTotal())));
gridList.forEach(sub -> {
if (re.getGridId().equals(sub.getId())) {
re.setGridName(sub.getGridName());
for (DimGridEntity gr : gridList) {
SubGridProjectResultDTO dto = new SubGridProjectResultDTO();
dto.setGridId(gr.getId());
dto.setGridName(gr.getGridName());
for (SubGridProjectResultDTO re : list) {
if (gr.getId().equals(re.getGridId())) {
dto.setProjectTotal(re.getProjectTotal());
dto.setPendingTotal(re.getPendingTotal());
dto.setClosedProjectTotal(re.getClosedProjectTotal());
}
});
});
}
dto.setPendingRatio(dto.getPendingTotal() == 0 || dto.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getPendingTotal() / (float) dto.getProjectTotal())));
dto.setClosedProjectRatio(dto.getClosedProjectTotal() == 0 || dto.getProjectTotal() == 0 ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float) dto.getClosedProjectTotal() / (float) dto.getProjectTotal())));
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<SubGridProjectResultDTO>() {
@ -1014,4 +1051,228 @@ public class DataStatsServiceImpl implements DataStatsService {
return new ArrayList<>();
}
/**
* @Param formDTO
* @Description 治理实况-当前组织治理指数
* @author sun
*/
@Override
public AgencyGovrnResultDTO agencyGovrn(AgencyGovrnFormDTO formDTO) {
AgencyGovrnResultDTO resultDTO = new AgencyGovrnResultDTO();
resultDTO.setAgencyId(formDTO.getAgencyId());
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.THREE);
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
//1.按日期查询当前组织事件治理指数
List<String> agencyIds = new ArrayList<>();
agencyIds.add(formDTO.getAgencyId());
List<AgencyGovrnResultDTO> list = dataStatsDao.getAgencyGovern(agencyIds, formDTO.getDateId());
if (list.size() > NumConstant.ZERO) {
resultDTO = list.get(NumConstant.ZERO);
}
return resultDTO;
}
/**
* @Param formDTO
* @Description 治理实况-组织直属下级治理指数列表
* @author sun
*/
@Override
public List<AgencyGovrnResultDTO> subAgencyGovrnList(AgencyGovrnFormDTO formDTO) {
List<AgencyGovrnResultDTO> resultList = new ArrayList<>();
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.THREE);
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
//排序类型,默认按问题解决总数降序
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setType("problem");
}
//1.查询当前组织的直属下级组织信息【机关维度】
List<DimAgencyEntity> subAgencyList = dataStatsDao.getSubAgencyList(formDTO.getAgencyId());
if (subAgencyList.size() < NumConstant.ONE) {
return resultList;
}
List<String> agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList());
//2.按日期查询所有下级组织的事件治理指数
List<AgencyGovrnResultDTO> list = dataStatsDao.getAgencyGovern(agencyIds, formDTO.getDateId());
//3.封装数据
for (DimAgencyEntity sub : subAgencyList) {
AgencyGovrnResultDTO dto = new AgencyGovrnResultDTO();
dto.setAgencyId(sub.getId());
dto.setAgencyName(sub.getAgencyName());
dto.setLevel(sub.getLevel());
for (AgencyGovrnResultDTO re : list) {
if (sub.getId().equals(re.getAgencyId())) {
dto.setProblemResolvedCount(re.getProblemResolvedCount());
dto.setGroupSelfGovernRatio(re.getGroupSelfGovernRatio());
dto.setGridSelfGovernRatio(re.getGridSelfGovernRatio());
dto.setCommunityResolvedRatio(re.getCommunityResolvedRatio());
dto.setStreetResolvedRatio(re.getStreetResolvedRatio());
dto.setDistrictDeptResolvedRatio(re.getDistrictDeptResolvedRatio());
}
}
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<AgencyGovrnResultDTO>() {
@Override
public int compare(AgencyGovrnResultDTO o1, AgencyGovrnResultDTO o2) {
if ("party".equals(formDTO.getType())) {
return o2.getGroupSelfGovernRatio().compareTo(o1.getGroupSelfGovernRatio());
} else if ("grid".equals(formDTO.getType())) {
return o2.getGridSelfGovernRatio().compareTo(o1.getGridSelfGovernRatio());
} else if ("community".equals(formDTO.getType())) {
return o2.getCommunityResolvedRatio().compareTo(o1.getCommunityResolvedRatio());
} else if ("department".equals(formDTO.getType())) {
return o2.getDistrictDeptResolvedRatio().compareTo(o1.getDistrictDeptResolvedRatio());
} else if ("street".equals(formDTO.getType())) {
return o2.getStreetResolvedRatio().compareTo(o1.getStreetResolvedRatio());
} else {
return o2.getProblemResolvedCount().compareTo(o1.getProblemResolvedCount());
}
}
});
return resultList;
}
/**
* @Param formDTO
* @Description 治理实况-当前网格治理指数
* @author sun
*/
@Override
public GridGovrnResultDTO gridGovrn(GridGovrnFormDTO formDTO) {
GridGovrnResultDTO resultDTO = new GridGovrnResultDTO();
resultDTO.setGridId(formDTO.getGridId());
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.THREE);
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
//1.按日期查询网格事件治理指数
List<String> gridIds = new ArrayList<>();
gridIds.add(formDTO.getGridId());
List<GridGovrnResultDTO> list = dataStatsDao.getGridGovern(gridIds, formDTO.getDateId());
if (list.size() > NumConstant.ZERO) {
resultDTO = list.get(NumConstant.ZERO);
}
return resultDTO;
}
/**
* @Param formDTO
* @Description 治理实况-组织直属网格治理指数列表
* @author sun
*/
@Override
public List<GridGovrnResultDTO> subGridGovrnList(GridGovrnFormDTO formDTO) {
List<GridGovrnResultDTO> resultList = new ArrayList<>();
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.THREE);
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
//排序类型,默认按问题解决总数降序
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setType("problem");
}
//1.查询组织直属网格列表【网格维度】
List<DimGridEntity> gridList = dataStatsDao.getSubGridList(formDTO.getAgencyId());
if (gridList.size() < NumConstant.ONE) {
return resultList;
}
List<String> gridIds = gridList.stream().map(DimGridEntity::getId).collect(Collectors.toList());
//2.按日期查找组织直属网格事件治理指数列表
List<GridGovrnResultDTO> list = dataStatsDao.getGridGovern(gridIds, formDTO.getDateId());
//3.封装数据
for (DimGridEntity gr : gridList) {
GridGovrnResultDTO dto = new GridGovrnResultDTO();
dto.setGridId(gr.getId());
dto.setGridName(gr.getGridName());
for (GridGovrnResultDTO re : list) {
if (gr.getId().equals(re.getGridId())) {
dto.setProblemResolvedCount(re.getProblemResolvedCount());
dto.setGroupSelfGovernRatio(re.getGroupSelfGovernRatio());
dto.setGridSelfGovernRatio(re.getGridSelfGovernRatio());
}
}
resultList.add(dto);
}
//4.按要求排序并返回
Collections.sort(resultList, new Comparator<GridGovrnResultDTO>() {
@Override
public int compare(GridGovrnResultDTO o1, GridGovrnResultDTO o2) {
if ("party".equals(formDTO.getType())) {
return o2.getGroupSelfGovernRatio().compareTo(o1.getGroupSelfGovernRatio());
} else if ("grid".equals(formDTO.getType())) {
return o2.getGridSelfGovernRatio().compareTo(o1.getGridSelfGovernRatio());
} else {
return o2.getProblemResolvedCount().compareTo(o1.getProblemResolvedCount());
}
}
});
return resultList;
}
/**
* @Param formDTO
* @Description 治理实况-组织/网格下响应解决满意自治率
* @author sun
*/
@Override
public GovrnRatioResultDTO governRatio(GovrnRatioFormDTO formDTO) {
GovrnRatioResultDTO resultDTO = new GovrnRatioResultDTO();
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
//1.按类型、日期查询治理指数下响应解决满意自治四个统计率
GovrnRatioResultDTO dto = indexService.governRatio(formDTO);
if (null != dto) {
resultDTO.setResponseRatio(dto.getResponseRatio());
resultDTO.setResolvedRatio(dto.getResolvedRatio());
resultDTO.setGovernRatio(dto.getGovernRatio());
resultDTO.setSatisfactionRatio(dto.getSatisfactionRatio());
}
return resultDTO;
}
}

18
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java

@ -0,0 +1,18 @@
package com.epmet.dataaggre.service.evaluationindex;
import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO;
import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO;
/**
* @Author sun
* @Description 指标统计服务
*/
public interface EvaluationIndexService {
/**
* @Param formDTO
* @Description 治理实况-组织/网格下响应解决满意自治率
* @author sun
*/
GovrnRatioResultDTO governRatio(GovrnRatioFormDTO formDTO);
}

40
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java

@ -0,0 +1,40 @@
package com.epmet.dataaggre.service.evaluationindex.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.datastats.DataStatsDao;
import com.epmet.dataaggre.dao.evaluationindex.EvaluationIndexDao;
import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO;
import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author sun
* @Description 指标统计服务
*/
@Service
@DataSource(DataSourceConstant.EVALUATION_INDEX)
@Slf4j
public class EvaluationIndexServiceImpl implements EvaluationIndexService {
@Autowired
private EvaluationIndexDao evaluationIndexDao;
/**
* @Param formDTO
* @Description 按类型日期查询治理指数下响应解决满意自治四个统计率
* @author sun
*/
@Override
public GovrnRatioResultDTO governRatio(GovrnRatioFormDTO formDTO) {
return evaluationIndexDao.getAgnecyOrGridGoverRatio(formDTO.getOrgId(),formDTO.getOrgType(),formDTO.getDateId());
}
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml

@ -131,9 +131,14 @@ dynamic:
password: @datasource.druid.opercrm.password@
datastatistical:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.opercrm.url@
username: @datasource.druid.opercrm.username@
password: @datasource.druid.opercrm.password@
url: @datasource.druid.stats.url@
username: @datasource.druid.stats.username@
password: @datasource.druid.stats.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

39
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -612,4 +612,43 @@
WHERE
ID = #{agencyId}
</select>
<select id="getAgencyGovern" resultType="com.epmet.dataaggre.dto.datastats.result.AgencyGovrnResultDTO">
SELECT
agency_id AS agencyId,
`level` AS level,
problem_resolved_count AS problemResolvedCount,
ROUND(group_self_govern_ratio, 3) AS groupSelfGovernRatio,
ROUND(grid_self_govern_ratio, 3) AS gridSelfGovernRatio,
ROUND(community_closed_ratio, 3) AS communityResolvedRatio,
ROUND(street_closed_ratio, 3) AS streetResolvedRatio,
ROUND(district_dept_closed_ratio, 3) AS districtDeptResolvedRatio
FROM
fact_agency_govern_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyIds" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
ORDER BY problem_resolved_count DESC
</select>
<select id="getGridGovern" resultType="com.epmet.dataaggre.dto.datastats.result.GridGovrnResultDTO">
SELECT
grid_id AS gridId,
problem_resolved_count AS problemResolvedCount,
ROUND(group_self_govern_ratio, 3) AS groupSelfGovernRatio,
ROUND(grid_self_govern_ratio, 3) AS gridSelfGovernRatio
FROM
fact_grid_govern_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="gridId" collection="gridIds" open="AND (" separator="or" close=")" index="">
grid_id = #{gridId}
</foreach>
ORDER BY problem_resolved_count DESC
</select>
</mapper>

23
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.evaluationindex.EvaluationIndexDao">
<select id="getAgnecyOrGridGoverRatio" resultType="com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO">
SELECT
org_id AS orgId,
org_type AS orgType,
CONCAT(ROUND(response_ratio, 1), '%') AS responseRatio,
CONCAT(ROUND(resolved_ratio, 1) , '%')AS resolvedRatio,
CONCAT(ROUND(govern_ratio, 1), '%') AS governRatio,
CONCAT(ROUND(satisfaction_ratio, 1), '%') AS satisfactionRatio
FROM
screen_govern_rank_data_daily
WHERE
del_flag = '0'
AND org_id = #{orgId}
AND org_type = #{orgType}
AND date_id = #{dateId}
</select>
</mapper>

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java

@ -138,6 +138,11 @@ public class FactOriginProjectMainDailyDTO implements Serializable {
*/
private String isOverdue;
/**
* 是否满意 1:
*/
private Integer isSatisfied;
/**
* 办结组织Ids:隔开有可能是社区id可能是网格id无需区分级别在统计时模糊查询
*/

17
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectPointDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.project;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/5/21 10:53
*/
@Data
public class ProjectPointDTO implements Serializable {
private static final long serialVersionUID = -592430619162380664L;
private String projectId;
private Integer point;
}

132
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenGovernRankDataDailyDTO.java

@ -0,0 +1,132 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.screen;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 基层治理-治理能力排行数据(按月统计)
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Data
public class ScreenGovernRankDataDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID 主键
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 年Id
*/
private String yearId;
/**
* 月份Id
*/
private String monthId;
/**
* 数据更新至yyyyMMdd
*/
private String dateId;
/**
* 组织类别 agency组织部门department网格grid
*/
private String orgType;
/**
* 组织Id 可以为网格机关id
*/
private String orgId;
/**
* 上级组织Id
*/
private String parentId;
/**
* 组织名称
*/
private String orgName;
/**
* 响应率
*/
private BigDecimal responseRatio;
/**
* 解决率
*/
private BigDecimal resolvedRatio;
/**
* 自治率
*/
private BigDecimal governRatio;
/**
* 满意率
*/
private BigDecimal satisfactionRatio;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -669,6 +669,15 @@ public class DemoController {
return new Result();
}
@PostMapping("governRankDaily")
public Result governRankDaily(@RequestBody CustomerIdAndDateIdFormDTO formDTO){
governRankDataExtractService.extractGridDataDaily(formDTO.getCustomerId(), formDTO.getDateId());
governRankDataExtractService.extractCommunityDataDaily(formDTO.getCustomerId(), formDTO.getDateId());
governRankDataExtractService.extractStreetDataDaily(formDTO.getCustomerId(), formDTO.getDateId());
governRankDataExtractService.extractDistrictDataDaily(formDTO.getCustomerId(), formDTO.getDateId());
return new Result();
}
@Autowired
private PioneerDataExtractService pioneerDataExtractService;
@Autowired

33
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactAgencyGovernDailyDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.evaluationindex.extract;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.evaluationindex.extract.FactAgencyGovernDailyEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 组织的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Mapper
public interface FactAgencyGovernDailyDao extends BaseDao<FactAgencyGovernDailyEntity> {
}

33
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactGridGovernDailyDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.evaluationindex.extract;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.evaluationindex.extract.FactGridGovernDailyEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 网格的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Mapper
public interface FactGridGovernDailyDao extends BaseDao<FactGridGovernDailyEntity> {
}

53
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java

@ -182,6 +182,28 @@ public interface FactOriginProjectLogDailyDao extends BaseDao<FactOriginProjectL
*/
List<OrgStatisticsResultDTO> selectGridResponse(@Param("customerId") String customerId, @Param("monthId") String monthId);
/**
* 组织项目响应度
* @author zhaoqifeng
* @date 2020/9/25 10:01
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectOrgResponseDaily(@Param("customerId") String customerId, @Param("dateId") String dateId,
@Param("level")String level);
/**
* 网格项目响应度
* @author zhaoqifeng
* @date 2020/9/25 10:01
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectGridResponseDaily(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* 组织项目响应度
* @author zhaoqifeng
@ -215,6 +237,27 @@ public interface FactOriginProjectLogDailyDao extends BaseDao<FactOriginProjectL
List<OrgStatisticsResultDTO> selectOrgSatisfaction(@Param("customerId") String customerId, @Param("monthId") String monthId,
@Param("level")String level);
/**
* 网格满意率
* @author zhaoqifeng
* @date 2020/9/27 15:52
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectGridSatisfactionDaily(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* 组织满意率
* @author zhaoqifeng
* @date 2020/9/27 15:52
* @param customerId
* @param level
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectOrgSatisfactionDaily(@Param("customerId") String customerId, @Param("level")String level, @Param("dateId") String dateId);
/**
* 获取部门办结项目数
* @author zhaoqifeng
@ -245,4 +288,14 @@ public interface FactOriginProjectLogDailyDao extends BaseDao<FactOriginProjectL
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectGridClosed(@Param("customerId") String customerId, @Param("monthId") String monthId);
/**
* 网格自治率统计--按天
* @author zhaoqifeng
* @date 2021/5/24 17:53
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectGridSelfDaily(@Param("customerId") String customerId, @Param("dateId") String dateId);
}

34
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java

@ -157,6 +157,18 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
List<OrgStatisticsResultDTO> getSelfProject(@Param("customerId") String customerId, @Param("monthId")String monthId,
@Param("level") String level);
/**
* 组织自治项目数
* @author zhaoqifeng
* @date 2020/9/25 15:16
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getSelfProjectDaily(@Param("customerId") String customerId, @Param("dateId")String dateId,
@Param("level") String level);
/**
* 组织解决项目数
@ -170,6 +182,18 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
List<OrgStatisticsResultDTO> getResolveProject(@Param("customerId") String customerId, @Param("monthId")String monthId,
@Param("level") String level);
/**
* 组织解决项目数
* @author zhaoqifeng
* @date 2020/9/25 15:16
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getResolveProjectDaily(@Param("customerId") String customerId, @Param("dateId")String dateId,
@Param("level") String level);
/**
* 网格解决项目数
* @author zhaoqifeng
@ -180,6 +204,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<OrgStatisticsResultDTO> getGridResolveProject(@Param("customerId") String customerId, @Param("monthId")String monthId);
/**
* 网格解决项目数
* @author zhaoqifeng
* @date 2020/9/25 15:16
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridResolveProjectDaily(@Param("customerId") String customerId, @Param("dateId")String dateId);
/**
* @Description 查询难点赌点的基本信息要排除之前已经结案过的项目
* @param customerId

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcScoreDao.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.indexcal.CalculateCommonFormDTO;
import com.epmet.dto.indexcal.CpcScoreResultDTO;
import com.epmet.entity.evaluationindex.indexcal.CpcScoreEntity;
import com.epmet.model.AvgOperationResultVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -46,9 +47,9 @@ public interface CpcScoreDao extends BaseDao<CpcScoreEntity> {
* @description 获取网格内党员的联系群众能力考评分平均值
* @Date 2020/8/31 10:56
**/
BigDecimal selectGridContactMassesAvgValue(@Param("customerId") String customerId,
@Param("monthId") String monthId,
@Param("gridId") String gridId);
AvgOperationResultVO selectGridContactMassesAvgValue(@Param("customerId") String customerId,
@Param("monthId") String monthId,
@Param("gridId") String gridId);
/**
* @param formDTO
@ -77,7 +78,7 @@ public interface CpcScoreDao extends BaseDao<CpcScoreEntity> {
* @description 组织内党员的参与议事能力考评分平均值
* @Date 2020/8/31 15:51
**/
BigDecimal selectGridJoinIssueAvgValue(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("gridId") String gridId);
AvgOperationResultVO selectGridJoinIssueAvgValue(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("gridId") String gridId);
int deleteByMonthId(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("indexCode") String indexCode, @Param("deleteSize") Integer deleteSize, @Param("isTotal") String isTotal);

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java

@ -123,4 +123,14 @@ public interface FactIndexGovrnAblityGridMonthlyDao extends BaseDao<FactIndexGov
* @return java.util.List<com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity>
*/
List<FactIndexGovrnAblityGridMonthlyEntity> selectGridByCustomer(@Param("customerId")String customerId, @Param("monthId")String monthId);
/**
* 查询客户下网格治理能力
* @author zhaoqifeng
* @date 2020/9/24 15:26
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity>
*/
List<FactIndexGovrnAblityGridMonthlyEntity> selectGridByCustomerDaily(@Param("customerId")String customerId, @Param("dateId")String dateId);
}

68
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenGovernRankDataDailyDao.java

@ -0,0 +1,68 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.evaluationindex.screen;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 基层治理-治理能力排行数据(按月统计)
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Mapper
public interface ScreenGovernRankDataDailyDao extends BaseDao<ScreenGovernRankDataDailyEntity> {
/**
* 组织级别初始化数据
* @author zhaoqifeng
* @date 2020/9/24 14:52
* @param customerId
* @param level
* @return java.util.List<com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity>
*/
List<ScreenGovernRankDataDailyEntity> initAgencyDataList(@Param("customerId") String customerId, @Param("level") String level);
/**
* 网格级别初始化数据
* @author zhaoqifeng
* @date 2020/9/24 14:52
* @param customerId
* @return java.util.List<com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity>
*/
List<ScreenGovernRankDataDailyEntity> initGridDataList(@Param("customerId") String customerId);
/**
* 删除旧数据
* @author zhaoqifeng
* @date 2020/9/25 10:38
* @param customerId
* @param orgType
* @param dateId
* @param deleteSize
* @param orgIds
* @return java.lang.Integer
*/
Integer deleteRankData(@Param("customerId") String customerId, @Param("orgType") String orgType, @Param("dateId") String dateId,
@Param("deleteSize") Integer deleteSize,
@Param("orgIds")List<String> orgIds);
}

23
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java

@ -18,12 +18,16 @@
package com.epmet.dao.project;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomerProjectParameterDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.project.ProjectAgencyDTO;
import com.epmet.dto.project.ProjectCategoryDTO;
import com.epmet.dto.project.ProjectGridDTO;
import com.epmet.dto.project.ProjectPointDTO;
import com.epmet.dto.project.result.ProjectExceedParamsResultDTO;
import com.epmet.dto.screen.ScreenProjectProcessAttachmentDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.project.ProjectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -135,4 +139,23 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
List<ProjectCategoryDTO> selectProjectCategory(@Param("list")List<String> list);
List<com.epmet.dto.ProjectCategoryDTO> getProjectCategoryData(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* 获取项目满意度
* @author zhaoqifeng
* @date 2021/5/21 10:06
* @param customerId
* @return java.util.List<com.epmet.dto.ProjectSatisfactionStatisticsDTO>
*/
List<ProjectPointDTO> selectProjectSatisfaction(@Param("customerId") String customerId);
/**
* 根据key查找value
* @author zhaoqifeng
* @date 2021/5/21 10:58
* @param customerId
* @param parameterKey
* @return java.lang.String
*/
String selectValueByKey(@Param("customerId") String customerId, @Param("parameterKey") String parameterKey);
}

174
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java

@ -0,0 +1,174 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.evaluationindex.extract;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 组织的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_agency_govern_daily")
public class FactAgencyGovernDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 组织id
*/
private String agencyId;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 界面展示问题解决总数=1+2+3+4+5+6+7+8
*/
private Integer problemResolvedCount;
/**
* 界面展示党群自治占比=9+10/PROBLEM_RESOLVED_COUNT; 此列存储的是小数
*/
private BigDecimal groupSelfGovernRatio;
/**
* 界面展示网格自治占比=GRID_SELF_GOVERN_PROJECT_TOTAL/PROBLEM_RESOLVED_COUNT此列存储的是小数
*/
private BigDecimal gridSelfGovernRatio;
/**
* 界面展示社区解决占比=COMMUNITY_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT此列存储的是小数
*/
private BigDecimal communityClosedRatio;
/**
* 界面展示街道解决占比=STREET_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT此列存储的是小数
*/
private BigDecimal streetClosedRatio;
/**
* 界面展示区直部门解决占比=DISTRICT_DEPT_CLOSED_COUNT/PROBLEM_RESOLVED_COUNT此列存储的是小数
*/
private BigDecimal districtDeptClosedRatio;
/**
* 1当前组织内话题关闭已解决数
*/
private Integer topicResolvedCount;
/**
* 2当前组织内话题关闭无需解决数
*/
private Integer topicUnResolvedCount;
/**
* 3当前组织内议题关闭已解决数
*/
private Integer issueResolvedCount;
/**
* 4当前组织内议题关闭无需解决数
*/
private Integer issueUnResolvedCount;
/**
* 5当前组织内来源于议题的项目结案已解决数
*/
private Integer issueProjectResolvedCount;
/**
* 6当前组织内来源于议题的项目结案无需解决数
*/
private Integer issueProjectUnResolvedCount;
/**
* 7当前组织内项目立项结案已解决数默认为0
*/
private Integer approvalProjectResolvedCount;
/**
* 8当前组织内项目立项结案无需解决数默认为0
*/
private Integer approvalProjectUnResolvedCount;
/**
* 9当前组织内未出小组即未转议题的话题关闭已解决数
*/
private Integer inGroupTopicResolvedCount;
/**
* 10当前组织内未出小组即未转议题的话题关闭无需解决数
*/
private Integer inGroupTopicUnResolvedCount;
/**
* 未出当前网格的结案项目数
*/
private Integer gridSelfGovernProjectTotal;
/**
* 当前组织内结案的项目中由社区结案的项目总数
*/
private Integer communityClosedCount;
/**
* 当前组织内结案的项目中由街道结案的项目总数
*/
private Integer streetClosedCount;
/**
* 当前组织内结案的项目中由区直部门结案的项目总数
*/
private Integer districtDeptClosedCount;
}

135
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java

@ -0,0 +1,135 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.evaluationindex.extract;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 网格的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_grid_govern_daily")
public class FactGridGovernDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 界面展示问题解决总数=1+2+3+4+5+6+7+8
*/
private Integer problemResolvedCount;
/**
* 界面展示党群自治占比=9+10/PROBLEM_RESOLVED_COUNT; 此列存储的是小数
*/
private BigDecimal groupSelfGovernRatio;
/**
* 界面展示网格自治占比=GRID_SELF_GOVERN_PROJECT_TOTAL/PROBLEM_RESOLVED_COUNT此列存储的是小数
*/
private BigDecimal gridSelfGovernRatio;
/**
* 1当前网格内话题关闭已解决数
*/
private Integer topicResolvedCount;
/**
* 2当前网格内话题关闭无需解决数
*/
private Integer topicUnResolvedCount;
/**
* 3当前网格内议题关闭已解决数
*/
private Integer issueResolvedCount;
/**
* 4当前网格内议题关闭无需解决数
*/
private Integer issueUnResolvedCount;
/**
* 5当前网格内来源于议题的项目结案已解决数
*/
private Integer issueProjectResolvedCount;
/**
* 6当前网格内来源于议题的项目结案无需解决数
*/
private Integer issueProjectUnResolvedCount;
/**
* 7当前网格内项目立项结案已解决数默认为0
*/
private Integer approvalProjectResolvedCount;
/**
* 8当前网格内项目立项结案无需解决数默认为0
*/
private Integer approvalProjectUnResolvedCount;
/**
* 9当前网格内未出小组即未转议题的话题关闭已解决数
*/
private Integer inGroupTopicResolvedCount;
/**
* 10当前网格内未出小组即未转议题的话题关闭无需解决数
*/
private Integer inGroupTopicUnResolvedCount;
/**
* 未出当前网格的结案项目数
*/
private Integer gridSelfGovernProjectTotal;
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java

@ -138,6 +138,11 @@ public class FactOriginProjectMainDailyEntity extends BaseEpmetEntity {
*/
private String isOverdue;
/**
* 是否满意 1:
*/
private Integer isSatisfied;
/**
* 办结组织Ids:隔开有可能是社区id可能是网格id无需区分级别在统计时模糊查询
*/

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/indexcal/GridSubScoreEntity.java

@ -101,4 +101,9 @@ public class GridSubScoreEntity extends BaseEpmetEntity {
* 权重同一组权重总和=1
*/
private BigDecimal weight;
/**
* 样本总量
*/
private Integer sampleCount;
}

102
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenGovernRankDataDailyEntity.java

@ -0,0 +1,102 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.evaluationindex.screen;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
/**
* 基层治理-治理能力排行数据(按月统计)
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("screen_govern_rank_data_daily")
public class ScreenGovernRankDataDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 年Id
*/
private String yearId;
/**
* 月份Id
*/
private String monthId;
/**
* 数据更新至yyyyMMdd
*/
private String dateId;
/**
* 组织类别 agency组织部门department网格grid
*/
private String orgType;
/**
* 组织Id 可以为网格机关id
*/
private String orgId;
/**
* 上级组织Id
*/
private String parentId;
/**
* 组织名称
*/
private String orgName;
/**
* 响应率
*/
private BigDecimal responseRatio;
/**
* 解决率
*/
private BigDecimal resolvedRatio;
/**
* 自治率
*/
private BigDecimal governRatio;
/**
* 满意率
*/
private BigDecimal satisfactionRatio;
}

21
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/AvgOperationResultVO.java

@ -0,0 +1,21 @@
package com.epmet.model;
import lombok.Data;
import java.math.BigDecimal;
/**
* 平均值运算结果vo
*/
@Data
public class AvgOperationResultVO {
/**
* 样本量
*/
private Integer sampleCount;
/**
* 平均值
*/
private BigDecimal avgValue;
}

46
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactAgencyGovernDailyService.java

@ -0,0 +1,46 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.extract.todata;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.entity.evaluationindex.extract.FactAgencyGovernDailyEntity;
/**
* 组织的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
public interface FactAgencyGovernDailyService extends BaseService<FactAgencyGovernDailyEntity> {
// 问题解决总数:当前组织下,话题关闭(已解决+无需解决)总数、议题关闭(已解决+无需解决)总数和项目结案(议题转为项目的结案数+项目立项结案数)总数之和
// 党群自治占比:当前组织下,所有小组内关闭(已解决+无需解决)的话题数与问题解决总数之比(未出小组:未转议题的)
// 网格自治占比:当前组织下,所有网格内结案项目数与问题解决总数之比(未出网格)
// 参考:fact_index_govrn_ablity_grid_monthly的SELF_SOLVE_PROJECT_COUNT计算
// 社区解决占比:当前组织下,由社区结案的项目数与问题解决总数之比
// 区直部门解决占比:当前组织下,由区级部门结案的项目数与问题解决总数之比
// 街道解决占比:当前组织下,由街道结案的项目数与问题解决总数之比
// 自下而上的项目解决:结案时操作人所代表的的处理部门(可以是网格、街道、组织)
// 自上而下的项目解决:向下吹哨,谁立项谁解决(后期在讨论哪样更合理)
//
// 究竟是谁解决!!:
// A社区→A街道→B社区(结案)——A街道解决(自下而上吹(饱含立项往上吹/从话题来的项目),看往上吹的最高层级)
// A社区→B社区→C社区(结案)——C社区解决(平级协助解决,看最后结案)
// A街道→A社区→B社区(结案)——A街道解决(自上而下吹,谁立项谁解决)
// 注:A社区→A街道→(退回)A社区→B社区(结案),A街道不算处理项目,仍是平级协助解决,看最后谁结案
}

44
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactGridGovernDailyService.java

@ -0,0 +1,44 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.extract.todata;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.entity.evaluationindex.extract.FactGridGovernDailyEntity;
/**
* 网格的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
public interface FactGridGovernDailyService extends BaseService<FactGridGovernDailyEntity> {
// 指标解释:
// 1、问题解决总数:当前网格内,话题关闭(已解决+无需解决)总数、议题关闭(已解决+无需解决)总数和项目结案(议题转为项目的结案数+项目立项结案数)总数之和
// 2、党群自治占比:当前网格内,所有小组内关闭(已解决+无需解决)的话题数与问题解决总数之比(未出小组:未转议题的)
// 3、网格自治占比:当前组织下,所有网格内结案项目数与问题解决总数之比(未出网格)
/**
* 治理指数-网格相关问题解决总数党群自治占比网格自治占比
*
*
* @param customerId
* @param dateId
* @return
*/
void extractFactGridGovernDaily(String customerId, String dateId);
}

52
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java

@ -218,6 +218,27 @@ public interface FactOriginProjectLogDailyService extends BaseService<FactOrigin
*/
List<OrgStatisticsResultDTO> getOrgResponse(String customerId, String monthId, String level);
/**
* 网格项目响应度
* @author zhaoqifeng
* @date 2020/9/25 9:56
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridResponseDaily(String customerId, String dateId);
/**
* 组织项目响应度
* @author zhaoqifeng
* @date 2020/9/25 9:56
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getOrgResponseDaily(String customerId, String dateId, String level);
/**
* 网格满意率
* @author zhaoqifeng
@ -239,6 +260,27 @@ public interface FactOriginProjectLogDailyService extends BaseService<FactOrigin
*/
List<OrgStatisticsResultDTO> getOrgSatisfaction(String customerId, String monthId, String level);
/**
* 网格满意率
* @author zhaoqifeng
* @date 2020/9/27 16:06
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridSatisfactionDaily(String customerId, String dateId);
/**
* 组织满意率
* @author zhaoqifeng
* @date 2020/9/27 16:06
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getOrgSatisfactionDaily(String customerId, String dateId, String level);
/**
* 获取部门办结项目数
* @author zhaoqifeng
@ -268,4 +310,14 @@ public interface FactOriginProjectLogDailyService extends BaseService<FactOrigin
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridClosed(String customerId, String monthId);
/**
* 网格自制率统计-按天
* @author zhaoqifeng
* @date 2021/5/24 17:52
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridSelfDaily(String customerId, String dateId);
}

31
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java

@ -146,6 +146,17 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getSelfProject(String customerId, String monthId, String level);
/**
* 自治项目数
* @author zhaoqifeng
* @date 2020/9/25 15:34
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getSelfProjectDaily(String customerId, String dateId, String level);
/**
* 已解决项目数
* @author zhaoqifeng
@ -156,6 +167,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getResolveProject(String customerId, String monthId, String level);
/**
* 已解决项目数
* @author zhaoqifeng
* @date 2020/9/25 15:34
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getResolveProjectDaily(String customerId, String dateId, String level);
/**
* 网格已解决项目数
@ -167,6 +188,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<OrgStatisticsResultDTO> getGridResolveProject(String customerId, String monthId);
/**
* 网格已解决项目数
* @author zhaoqifeng
* @date 2020/9/25 15:34
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> getGridResolveProjectDaily(String customerId, String dateId);
/**
* 网格项目数
* @author zhaoqifeng

37
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java

@ -0,0 +1,37 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.extract.todata.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.dao.evaluationindex.extract.FactAgencyGovernDailyDao;
import com.epmet.entity.evaluationindex.extract.FactAgencyGovernDailyEntity;
import com.epmet.service.evaluationindex.extract.todata.FactAgencyGovernDailyService;
import org.springframework.stereotype.Service;
/**
* 组织的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Service
public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl<FactAgencyGovernDailyDao, FactAgencyGovernDailyEntity> implements FactAgencyGovernDailyService {
}

74
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java

@ -0,0 +1,74 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.extract.todata.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.dao.evaluationindex.extract.FactGridGovernDailyDao;
import com.epmet.dto.org.GridInfoDTO;
import com.epmet.entity.evaluationindex.extract.FactGridGovernDailyEntity;
import com.epmet.service.evaluationindex.extract.todata.FactGridGovernDailyService;
import com.epmet.service.group.GroupDataService;
import com.epmet.service.org.CustomerAgencyService;
import com.epmet.service.org.CustomerGridService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 网格的治理指数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Slf4j
@Service
public class FactGridGovernDailyServiceImpl extends BaseServiceImpl<FactGridGovernDailyDao, FactGridGovernDailyEntity> implements FactGridGovernDailyService {
@Autowired
private GroupDataService groupDataService;
@Autowired
private CustomerAgencyService customerAgencyService;
@Autowired
private CustomerGridService customerGridService;
// 指标解释:
// 1、问题解决总数:当前网格内,话题关闭(已解决+无需解决)总数、议题关闭(已解决+无需解决)总数和项目结案(议题转为项目的结案数+项目立项结案数)总数之和
// 2、党群自治占比:当前网格内,所有小组内关闭(已解决+无需解决)的话题数与问题解决总数之比(未出小组:未转议题的)
// 3、网格自治占比:当前组织下,所有网格内结案项目数与问题解决总数之比(未出网格)
/**
* 治理指数-网格相关问题解决总数党群自治占比网格自治占比
*
* @param customerId
* @param dateId
* @return
*/
@Override
public void extractFactGridGovernDaily(String customerId, String dateId) {
//客户id, dateId不能为空
if(StringUtils.isBlank(customerId)||StringUtils.isBlank(dateId)){
return;
}
// 2、当前客户下所有的网格
List<GridInfoDTO> gridInfoDTOList=customerGridService.queryGridInfoList(customerId);
//todo
// List<FactGridGovernDailyEntity>
}
}

72
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java

@ -290,6 +290,35 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
return baseDao.selectOrgResponse(customerId, monthId, level);
}
/**
* 网格项目响应度
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/25 9:56
*/
@Override
public List<OrgStatisticsResultDTO> getGridResponseDaily(String customerId, String dateId) {
return baseDao.selectGridResponseDaily(customerId, dateId);
}
/**
* 组织项目响应度
*
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/25 9:56
*/
@Override
public List<OrgStatisticsResultDTO> getOrgResponseDaily(String customerId, String dateId, String level) {
return baseDao.selectOrgResponseDaily(customerId, dateId, level);
}
@Override
public List<OrgStatisticsResultDTO> getGridSatisfaction(String customerId, String monthId) {
return baseDao.selectGridSatisfaction(customerId, monthId);
@ -300,6 +329,35 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
return baseDao.selectOrgSatisfaction(customerId, monthId, level);
}
/**
* 网格满意率
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/27 16:06
*/
@Override
public List<OrgStatisticsResultDTO> getGridSatisfactionDaily(String customerId, String dateId) {
return baseDao.selectGridSatisfactionDaily(customerId, dateId);
}
/**
* 组织满意率
*
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/27 16:06
*/
@Override
public List<OrgStatisticsResultDTO> getOrgSatisfactionDaily(String customerId, String dateId, String level) {
return baseDao.selectOrgSatisfactionDaily(customerId, dateId, level);
}
/**
* 获取部门办结项目数
*
@ -342,5 +400,19 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
return baseDao.selectGridClosed(customerId, monthId);
}
/**
* 网格自制率统计-按天
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2021/5/24 17:52
*/
@Override
public List<OrgStatisticsResultDTO> getGridSelfDaily(String customerId, String dateId) {
return baseDao.selectGridSelfDaily(customerId, dateId);
}
}

44
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java

@ -180,16 +180,60 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return baseDao.getSelfProject(customerId, monthId, level);
}
/**
* 自治项目数
*
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/25 15:34
*/
@Override
public List<OrgStatisticsResultDTO> getSelfProjectDaily(String customerId, String dateId, String level) {
return baseDao.getSelfProjectDaily(customerId, dateId, level);
}
@Override
public List<OrgStatisticsResultDTO> getResolveProject(String customerId, String monthId, String level) {
return baseDao.getResolveProject(customerId, monthId, level);
}
/**
* 已解决项目数
*
* @param customerId
* @param dateId
* @param level
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/25 15:34
*/
@Override
public List<OrgStatisticsResultDTO> getResolveProjectDaily(String customerId, String dateId, String level) {
return baseDao.getResolveProjectDaily(customerId, dateId, level);
}
@Override
public List<OrgStatisticsResultDTO> getGridResolveProject(String customerId, String monthId) {
return baseDao.getGridResolveProject(customerId, monthId);
}
/**
* 网格已解决项目数
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
* @author zhaoqifeng
* @date 2020/9/25 15:34
*/
@Override
public List<OrgStatisticsResultDTO> getGridResolveProjectDaily(String customerId, String dateId) {
return baseDao.getGridResolveProjectDaily(customerId, dateId);
}
@Override
public List<OrgStatisticsResultDTO> getGridProjectCount(String customerId, String monthId) {
return baseDao.getGridProjectCount(customerId, monthId);

44
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/GovernRankDataExtractService.java

@ -49,4 +49,48 @@ public interface GovernRankDataExtractService {
* @date 2020/9/24 15:17
*/
void extractDistrictData(String customerId, String monthId);
/**
* 网格治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:16
*/
void extractGridDataDaily(String customerId, String dateId);
/**
* 社区治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
void extractCommunityDataDaily(String customerId, String dateId);
/**
* 街道治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
void extractStreetDataDaily(String customerId, String dateId);
/**
* 全区治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
void extractDistrictDataDaily(String customerId, String dateId);
}

294
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/GovernRankDataExtractServiceImpl.java

@ -5,12 +5,14 @@ import com.epmet.constant.IndexCalConstant;
import com.epmet.constant.OrgTypeConstant;
import com.epmet.dto.extract.result.OrgStatisticsResultDTO;
import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectLogDailyService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.extract.toscreen.GovernRankDataExtractService;
import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyService;
import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService;
import com.epmet.service.evaluationindex.screen.ScreenGovernRankDataDailyService;
import com.epmet.service.evaluationindex.screen.ScreenGovernRankDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -30,6 +32,8 @@ public class GovernRankDataExtractServiceImpl implements GovernRankDataExtractSe
@Autowired
private ScreenGovernRankDataService screenGovernRankDataService;
@Autowired
private ScreenGovernRankDataDailyService screenGovernRankDataDailyService;
@Autowired
private FactIndexGovrnAblityOrgMonthlyService factIndexGovrnAblityOrgMonthlyService;
@Autowired
private FactIndexGovrnAblityGridMonthlyService factIndexGovrnAblityGridMonthlyService;
@ -283,4 +287,294 @@ public class GovernRankDataExtractServiceImpl implements GovernRankDataExtractSe
}
screenGovernRankDataService.delAndSaveRankData(customerId, OrgTypeConstant.AGENCY, monthId, IndexCalConstant.DELETE_SIZE, list);
}
/**
* 网格治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:16
*/
@Override
public void extractGridDataDaily(String customerId, String dateId) {
List<ScreenGovernRankDataDailyEntity> list = screenGovernRankDataDailyService.initList(customerId, OrgTypeConstant.GRID, null);
if (CollectionUtils.isEmpty(list)) {
return;
}
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
list.forEach(entity -> {
entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR));
entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX));
entity.setDateId(dateId);
});
//满意率 满意和非常满意占比
List<OrgStatisticsResultDTO> satisfactionList = factOriginProjectLogDailyService.getGridSatisfactionDaily(customerId, dateId);
if (!CollectionUtils.isEmpty(satisfactionList)) {
list.forEach(entity -> satisfactionList.stream().filter(item -> item.getOrgId().equals(entity.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setSatisfactionRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//自治率
List<OrgStatisticsResultDTO> gridList = factOriginProjectLogDailyService.getGridSelfDaily(customerId, dateId);
if (CollectionUtils.isNotEmpty(gridList)) {
list.forEach(entity -> gridList.stream().filter(gridAbility -> entity.getOrgId().equals(gridAbility.getOrgId())).forEach(grid -> {
BigDecimal resolveCount = new BigDecimal(grid.getSum());
BigDecimal selfCount = new BigDecimal(grid.getCount());
if (grid.getSum() != NumConstant.ZERO) {
entity.setGovernRatio(selfCount.multiply(hundred).divide(resolveCount, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//响应率 响应次数/流转到网格的次数
List<OrgStatisticsResultDTO> responseList = factOriginProjectLogDailyService.getGridResponseDaily(customerId, dateId);
if (CollectionUtils.isNotEmpty(responseList)) {
list.forEach(entity -> responseList.stream().filter(response -> entity.getOrgId().equals(response.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResponseRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//解决率 已解决项目数/办结项目数
List<OrgStatisticsResultDTO> resolveList = factOriginProjectMainDailyService.getGridResolveProjectDaily(customerId, dateId);
if (CollectionUtils.isNotEmpty(resolveList)) {
list.forEach(entity -> resolveList.stream().filter(resolve -> entity.getOrgId().equals(resolve.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResolvedRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
screenGovernRankDataDailyService.delAndSaveRankData(customerId, OrgTypeConstant.GRID, dateId, IndexCalConstant.DELETE_SIZE, list);
}
/**
* 社区治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
@Override
public void extractCommunityDataDaily(String customerId, String dateId) {
List<ScreenGovernRankDataDailyEntity> list = screenGovernRankDataDailyService.initList(customerId, OrgTypeConstant.AGENCY,
OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isEmpty(list)) {
return;
}
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
list.forEach(entity -> {
entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR));
entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX));
entity.setDateId(dateId);
});
//满意率 满意和非常满意占比
List<OrgStatisticsResultDTO> satisfactionList = factOriginProjectLogDailyService.getOrgSatisfactionDaily(customerId, dateId,
OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isNotEmpty(satisfactionList)) {
list.forEach(entity -> satisfactionList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setSatisfactionRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//响应率 响应次数/流转到网格的次数
List<OrgStatisticsResultDTO> responseList = factOriginProjectLogDailyService.getOrgResponseDaily(customerId, dateId, OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isNotEmpty(responseList)) {
list.forEach(entity -> responseList.stream().filter(response -> entity.getOrgId().equals(response.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResponseRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setGovernRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//解决率 已解决项目数/办结项目数
List<OrgStatisticsResultDTO> resolveList = factOriginProjectMainDailyService.getResolveProjectDaily(customerId, dateId,
OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isNotEmpty(resolveList)) {
list.forEach(entity -> resolveList.stream().filter(resolve -> entity.getOrgId().equals(resolve.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResolvedRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
screenGovernRankDataDailyService.delAndSaveRankData(customerId, OrgTypeConstant.AGENCY, dateId, IndexCalConstant.DELETE_SIZE, list);
}
/**
* 街道治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
@Override
public void extractStreetDataDaily(String customerId, String dateId) {
List<ScreenGovernRankDataDailyEntity> list = screenGovernRankDataDailyService.initList(customerId, OrgTypeConstant.AGENCY,
OrgTypeConstant.STREET);
if (CollectionUtils.isEmpty(list)) {
return;
}
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
list.forEach(entity -> {
entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR));
entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX));
entity.setDateId(dateId);
});
//满意率 满意和非常满意占比
List<OrgStatisticsResultDTO> satisfactionList = factOriginProjectLogDailyService.getOrgSatisfactionDaily(customerId, dateId,
OrgTypeConstant.STREET);
if (CollectionUtils.isNotEmpty(satisfactionList)) {
list.forEach(entity -> satisfactionList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setSatisfactionRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//响应率 响应次数/流转到网格的次数
List<OrgStatisticsResultDTO> responseList = factOriginProjectLogDailyService.getOrgResponseDaily(customerId, dateId, OrgTypeConstant.STREET);
if (CollectionUtils.isNotEmpty(responseList)) {
list.forEach(entity -> responseList.stream().filter(response -> entity.getOrgId().equals(response.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResponseRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.STREET);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setGovernRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//解决率 已解决项目数/办结项目数
List<OrgStatisticsResultDTO> resolveList = factOriginProjectMainDailyService.getResolveProjectDaily(customerId, dateId,
OrgTypeConstant.STREET);
if (CollectionUtils.isNotEmpty(resolveList)) {
list.forEach(entity -> resolveList.stream().filter(resolve -> entity.getOrgId().equals(resolve.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResolvedRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
screenGovernRankDataDailyService.delAndSaveRankData(customerId, OrgTypeConstant.AGENCY, dateId, IndexCalConstant.DELETE_SIZE, list);
}
/**
* 全区治理能力
*
* @param customerId
* @param dateId
* @return void
* @author zhaoqifeng
* @date 2020/9/24 15:17
*/
@Override
public void extractDistrictDataDaily(String customerId, String dateId) {
List<ScreenGovernRankDataDailyEntity> list = screenGovernRankDataDailyService.initList(customerId, OrgTypeConstant.AGENCY,
OrgTypeConstant.DISTRICT);
if (CollectionUtils.isEmpty(list)) {
return;
}
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
list.forEach(entity -> {
entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR));
entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX));
entity.setDateId(dateId);
});
//满意率 满意和非常满意占比
List<OrgStatisticsResultDTO> satisfactionList = factOriginProjectLogDailyService.getOrgSatisfactionDaily(customerId, dateId,
OrgTypeConstant.DISTRICT);
if (CollectionUtils.isNotEmpty(satisfactionList)) {
list.forEach(entity -> satisfactionList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setSatisfactionRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//响应率 响应次数/流转到网格的次数
List<OrgStatisticsResultDTO> responseList = factOriginProjectLogDailyService.getOrgResponseDaily(customerId, dateId, OrgTypeConstant.DISTRICT);
if (CollectionUtils.isNotEmpty(responseList)) {
list.forEach(entity -> responseList.stream().filter(response -> entity.getOrgId().equals(response.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResponseRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.DISTRICT);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setGovernRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
//解决率 已解决项目数/办结项目数
List<OrgStatisticsResultDTO> resolveList = factOriginProjectMainDailyService.getResolveProjectDaily(customerId, dateId,
OrgTypeConstant.DISTRICT);
if (CollectionUtils.isNotEmpty(resolveList)) {
list.forEach(entity -> resolveList.stream().filter(resolve -> entity.getOrgId().equals(resolve.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
BigDecimal sum = new BigDecimal(dto.getSum());
BigDecimal count = new BigDecimal(dto.getCount());
entity.setResolvedRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP));
}
}));
}
screenGovernRankDataDailyService.delAndSaveRankData(customerId, OrgTypeConstant.AGENCY, dateId, IndexCalConstant.DELETE_SIZE, list);
}
}

22
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java

@ -221,6 +221,28 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
log.error("按天统计:组织内各个分类下的项目总数,customerId为:"+customerId+"dateId为:"+dateId, e);
}
//治理能力排行screen_govern_rank_data
try {
governRankDataExtractService.extractGridDataDaily(customerId, dateId);
}catch (Exception e){
log.error("治理能力排行【网格】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
try {
governRankDataExtractService.extractCommunityDataDaily(customerId, dateId);
}catch (Exception e){
log.error("治理能力排行【社区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
try {
governRankDataExtractService.extractStreetDataDaily(customerId, dateId);
}catch (Exception e){
log.error("治理能力排行【街道】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
try {
governRankDataExtractService.extractDistrictDataDaily(customerId, dateId);
}catch (Exception e){
log.error("治理能力排行【全区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
}
extractPartData(customerId, dateId);
log.info("===== extractDaily method end ======");
}

63
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java

@ -26,6 +26,7 @@ import com.epmet.entity.evaluationindex.indexcal.GridSelfSubScoreEntity;
import com.epmet.entity.evaluationindex.indexcal.GridSubScoreEntity;
import com.epmet.entity.evaluationindex.screen.IndexGroupDetailEntity;
import com.epmet.eum.IndexCodeEnum;
import com.epmet.model.AvgOperationResultVO;
import com.epmet.service.evaluationindex.indexcal.GridCorreLationService;
import com.epmet.service.evaluationindex.indexcal.IndexCodeFieldReService;
import com.epmet.service.evaluationindex.screen.IndexGroupDetailService;
@ -185,6 +186,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
**/
@Transactional(rollbackFor = Exception.class)
public void calculateGridDangJian(CalculateCommonFormDTO formDTO) {
// 该客户下的指标列表及权重
List<IndexGroupDetailEntity> indexList = indexGroupDetailService.getDetailListByParentCode(formDTO.getCustomerId(),
IndexCodeEnum.WANG_GE_XIANG_GUAN.getCode(),
IndexCodeEnum.DANG_JIAN_NENG_LI.getCode());
@ -192,7 +194,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
log.error("calculateGridDangJian customerId:{} have not any indexGroupDetail", formDTO.getCustomerId());
throw new RenException("客户【网格相关:党建能力】指标权重信息不存在");
}
//查询总记录数
//查询总记录数(该客户下,该月份,每个网格一条,有多少条)
int total = factIndexPartyAblityGridMonthlyDao.selectCount(formDTO);
if (NumConstant.ZERO == total) {
log.warn(String.format("customerId=%s,monthId=%s,没有上传网格相关-党建能力-五级指标数据", formDTO.getCustomerId(), formDTO.getMonthId()));
@ -210,10 +212,12 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
//指标集合
Map<String, IndexInputVO<BigDecimal>> indexMap = buildGridCorrelationIndexInputVO(formDTO, indexList, minAndMaxMap);
List<HashMap<String, CalculateResult>> resultMapList = new ArrayList<>();
// 平均值计算结果,内含平均值,样本总量
HashMap<String, AvgOperationResultVO> gridAvgOpeResultMap = new HashMap<>();
//分页查询采集记录
for (int pageNo = 1; pageNo <= totalPage; pageNo++) {
int pageIndex = (pageNo - NumConstant.ONE) * IndexCalConstant.PAGE_SIZE;
//前10条
//前10条。每个网格的党建能力的数据
List<Map<String, Object>> recordList = queryListPartyAblityGrid(new PageQueryGridFormDTO(formDTO.getCustomerId(),
formDTO.getMonthId(),
pageIndex,
@ -231,8 +235,10 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
// log.info("组织内党员的联系群众能力考评分(平均值) 单独处理");
//网格内党员的联系群众能力考评分(平均值)
String gridId = (String) recordMap.get(IndexCalConstant.GRID_ID);
BigDecimal contactMassesAvgValue = getGridContactMassesAvgValue(formDTO, gridId);
SampleValue<BigDecimal> contactMassesAblityValue = new SampleValue((String) recordMap.get(IndexCalConstant.GRID_ID), contactMassesAvgValue);
String monthId = (String) recordMap.get(IndexCalConstant.MONTH_ID);
AvgOperationResultVO contactMassesAvgVo = getGridContactMassesAvgValue(formDTO, gridId);
gridAvgOpeResultMap.put(gridId.concat(":").concat(monthId), contactMassesAvgVo);
SampleValue<BigDecimal> contactMassesAblityValue = new SampleValue((String) recordMap.get(IndexCalConstant.GRID_ID), contactMassesAvgVo.getAvgValue());
value.getIndexValueVOs().add(contactMassesAblityValue);
}else if (StringUtils.isNotBlank(indexCodeFieldReService.getFieldNameByIndexCode(key))) {
//对应的数值
@ -251,7 +257,11 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
saveGridCorreLationResult(formDTO,
resultMapList,
IndexCodeEnum.DANG_JIAN_NENG_LI.getCode(),
NumConstant.ZERO_STR);
NumConstant.ZERO_STR,
gridAvgOpeResultMap);
// 清理map
gridAvgOpeResultMap.clear();
}
/**
@ -312,10 +322,11 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
* @description 获取网格组织内党员的联系群众能力考评分平均值
* @Date 2020/8/31 9:50
**/
private BigDecimal getGridContactMassesAvgValue(CalculateCommonFormDTO calculateCommonFormDTO, String gridId) {
BigDecimal result = cpcScoreDao.selectGridContactMassesAvgValue(calculateCommonFormDTO.getCustomerId(), calculateCommonFormDTO.getMonthId(), gridId);
private AvgOperationResultVO getGridContactMassesAvgValue(CalculateCommonFormDTO calculateCommonFormDTO, String gridId) {
AvgOperationResultVO result = cpcScoreDao.selectGridContactMassesAvgValue(calculateCommonFormDTO.getCustomerId(), calculateCommonFormDTO.getMonthId(), gridId);
if (null == result) {
return new BigDecimal(NumConstant.ZERO_STR);
result.setAvgValue(new BigDecimal(0));
result.setSampleCount(0);
}
//FOR TEST
/*BigDecimal result=null;
@ -337,10 +348,12 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
* @description 组织内党员的参与议事能力考评分平均值
* @Date 2020/8/31 15:51
**/
private BigDecimal getGridJoinIssueAvgValue(CalculateCommonFormDTO formDTO, String gridId) {
BigDecimal result = cpcScoreDao.selectGridJoinIssueAvgValue(formDTO.getCustomerId(), formDTO.getMonthId(), gridId);
private AvgOperationResultVO getGridJoinIssueAvgValue(CalculateCommonFormDTO formDTO, String gridId) {
AvgOperationResultVO result = cpcScoreDao.selectGridJoinIssueAvgValue(formDTO.getCustomerId(), formDTO.getMonthId(), gridId);
if (null == result) {
return new BigDecimal(NumConstant.ZERO_STR);
//return new BigDecimal(NumConstant.ZERO_STR);
result.setSampleCount(0);
result.setAvgValue(new BigDecimal(0));
}
//FOR TEST
/*BigDecimal result=null;
@ -411,7 +424,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
/**
* @param formDTO 客户id 月份id: yyyyMM
* @param resultMapList
* @param resultMapList key网格idvalue该网格各项指标的计算结果
* @param indexCode 指标编码: 党建能力dangjiannengli治理能力zhilinengli服务能力fuwunengli
* @param isTotal 1总分0不是
* @return void
@ -422,7 +435,8 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
private void saveGridCorreLationResult(CalculateCommonFormDTO formDTO,
List<HashMap<String, CalculateResult>> resultMapList,
String indexCode,
String isTotal) {
String isTotal,
HashMap<String, AvgOperationResultVO> avgOpeResultVo) {
String quarterId = DateUtils.getQuarterId(formDTO.getMonthId());
String yearId = DateUtils.getYearId(formDTO.getMonthId());
//三大能力结果表
@ -463,6 +477,14 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
gridSubScoreEntity.setScore(detail.getScore());
gridSubScoreEntity.setWeight(detail.getWeight());
gridSubScoreEntity.setOriginValue(detail.getOriginValue());
// 为平均值类型的指标赋值样本总量
AvgOperationResultVO avgOperationResultVO = avgOpeResultVo.get(gridSubScoreEntity.getGridId().concat(":").concat(gridSubScoreEntity.getMonthId()));
if (avgOperationResultVO != null) {
gridSubScoreEntity.setSampleCount(avgOperationResultVO.getSampleCount());
} else {
gridSubScoreEntity.setSampleCount(0);
}
gridSubScoreList.add(gridSubScoreEntity);
}
});
@ -621,6 +643,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
//指标集合
Map<String, IndexInputVO<BigDecimal>> indexMap = buildGridCorrelationIndexInputVO(formDTO, indexList, minAndMaxMap);
List<HashMap<String, CalculateResult>> resultMapList = new ArrayList<>();
HashMap<String, AvgOperationResultVO> avgOperationResultVo = new HashMap<>();
//分页查询采集记录
for (int pageNo = 1; pageNo <= totalPage; pageNo++) {
int pageIndex = (pageNo - NumConstant.ONE) * IndexCalConstant.PAGE_SIZE;
@ -639,8 +662,11 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
if (IndexCodeEnum.ZUZHINEIDANGYDSYYSNLKPFPJZ.getCode().equals(key)) {
// log.info("组织内党员的参与议事能力考评分(平均值) 单独处理");
String gridId = (String) recordMap.get(IndexCalConstant.GRID_ID);
BigDecimal joinAvgValue = getGridJoinIssueAvgValue(formDTO, gridId);
SampleValue<BigDecimal> contactMassesAblityValue = new SampleValue((String) recordMap.get(IndexCalConstant.GRID_ID), joinAvgValue);
String monthId = (String) recordMap.get(IndexCalConstant.MONTH_ID);
AvgOperationResultVO joinAvgValue = getGridJoinIssueAvgValue(formDTO, gridId);
avgOperationResultVo.put(gridId.concat(":").concat(monthId), joinAvgValue);
SampleValue<BigDecimal> contactMassesAblityValue = new SampleValue((String) recordMap.get(IndexCalConstant.GRID_ID), joinAvgValue.getAvgValue());
value.getIndexValueVOs().add(contactMassesAblityValue);
}else if (StringUtils.isNotBlank(indexCodeFieldReService.getFieldNameByIndexCode(key))) {
//对应的数值
@ -659,7 +685,8 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
saveGridCorreLationResult(formDTO,
resultMapList,
IndexCodeEnum.ZHI_LI_NENG_LI.getCode(),
NumConstant.ZERO_STR);
NumConstant.ZERO_STR,
avgOperationResultVo);
}
@ -696,6 +723,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
//指标集合
Map<String, IndexInputVO<BigDecimal>> indexMap = buildGridCorrelationIndexInputVO(formDTO, indexList, minAndMaxMap);
List<HashMap<String, CalculateResult>> resultMapList = new ArrayList<>();
HashMap<String, AvgOperationResultVO> avgOperationResultVO = new HashMap<>();
//分页查询采集记录
for (int pageNo = 1; pageNo <= totalPage; pageNo++) {
int pageIndex = (pageNo - NumConstant.ONE) * IndexCalConstant.PAGE_SIZE;
@ -730,7 +758,8 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
saveGridCorreLationResult(formDTO,
resultMapList,
IndexCodeEnum.FU_WU_NENG_LI.getCode(),
NumConstant.ZERO_STR);
NumConstant.ZERO_STR,
avgOperationResultVO);
}
/**

11
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyService.java

@ -21,4 +21,15 @@ public interface FactIndexGovrnAblityGridMonthlyService extends BaseService<Fact
* @date 2020/9/24 15:41
*/
List<FactIndexGovrnAblityGridMonthlyEntity> getGridByCustomer(String customerId, String monthId);
/**
* 查询客户下网格治理能力
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity>
* @author zhaoqifeng
* @date 2020/9/24 15:41
*/
List<FactIndexGovrnAblityGridMonthlyEntity> getGridByCustomerDaily(String customerId, String dateId);
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityGridMonthlyServiceImpl.java

@ -22,4 +22,18 @@ public class FactIndexGovrnAblityGridMonthlyServiceImpl extends BaseServiceImpl<
public List<FactIndexGovrnAblityGridMonthlyEntity> getGridByCustomer(String customerId, String monthId) {
return baseDao.selectGridByCustomer(customerId, monthId);
}
/**
* 查询客户下网格治理能力
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity>
* @author zhaoqifeng
* @date 2020/9/24 15:41
*/
@Override
public List<FactIndexGovrnAblityGridMonthlyEntity> getGridByCustomerDaily(String customerId, String dateId) {
return baseDao.selectGridByCustomerDaily(customerId, dateId);
}
}

121
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenGovernRankDataDailyService.java

@ -0,0 +1,121 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.screen;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.screen.ScreenGovernRankDataDailyDTO;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 基层治理-治理能力排行数据(按月统计)
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
public interface ScreenGovernRankDataDailyService extends BaseService<ScreenGovernRankDataDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<ScreenGovernRankDataDailyDTO>
* @author generator
* @date 2021-05-24
*/
PageData<ScreenGovernRankDataDailyDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<ScreenGovernRankDataDailyDTO>
* @author generator
* @date 2021-05-24
*/
List<ScreenGovernRankDataDailyDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return ScreenGovernRankDataDailyDTO
* @author generator
* @date 2021-05-24
*/
ScreenGovernRankDataDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2021-05-24
*/
void save(ScreenGovernRankDataDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2021-05-24
*/
void update(ScreenGovernRankDataDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2021-05-24
*/
void delete(String[] ids);
/**
* 构造screen_govern_rank_data 初始数据先赋值为0
*
* @param customerId
* @param orgType
* @param agencyLevel
* @return java.util.List<com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity>
* @author zhaoqifeng
* @date 2020/9/24 14:41
*/
List<ScreenGovernRankDataDailyEntity> initList(String customerId, String orgType, String agencyLevel);
/**
* 保存抽取结果
*
* @param customerId
* @param orgType
* @param dateId
* @param deleteSize
* @param entityList
* @return void
* @author zhaoqifeng
* @date 2020/9/25 10:32
*/
void delAndSaveRankData(String customerId, String orgType, String dateId, Integer deleteSize, List<ScreenGovernRankDataDailyEntity> entityList);
}

170
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenGovernRankDataDailyServiceImpl.java

@ -0,0 +1,170 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.evaluationindex.screen.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.OrgTypeConstant;
import com.epmet.dao.evaluationindex.screen.ScreenGovernRankDataDailyDao;
import com.epmet.dto.screen.ScreenGovernRankDataDailyDTO;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity;
import com.epmet.service.evaluationindex.screen.ScreenGovernRankDataDailyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 基层治理-治理能力排行数据(按月统计)
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-24
*/
@Service
@Slf4j
@DataSource(DataSourceConstant.EVALUATION_INDEX)
public class ScreenGovernRankDataDailyServiceImpl extends BaseServiceImpl<ScreenGovernRankDataDailyDao, ScreenGovernRankDataDailyEntity> implements ScreenGovernRankDataDailyService {
@Override
public PageData<ScreenGovernRankDataDailyDTO> page(Map<String, Object> params) {
IPage<ScreenGovernRankDataDailyEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ScreenGovernRankDataDailyDTO.class);
}
@Override
public List<ScreenGovernRankDataDailyDTO> list(Map<String, Object> params) {
List<ScreenGovernRankDataDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ScreenGovernRankDataDailyDTO.class);
}
private QueryWrapper<ScreenGovernRankDataDailyEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<ScreenGovernRankDataDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ScreenGovernRankDataDailyDTO get(String id) {
ScreenGovernRankDataDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ScreenGovernRankDataDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ScreenGovernRankDataDailyDTO dto) {
ScreenGovernRankDataDailyEntity entity = ConvertUtils.sourceToTarget(dto, ScreenGovernRankDataDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ScreenGovernRankDataDailyDTO dto) {
ScreenGovernRankDataDailyEntity entity = ConvertUtils.sourceToTarget(dto, ScreenGovernRankDataDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 构造screen_govern_rank_data 初始数据先赋值为0
*
* @param customerId
* @param orgType
* @param agencyLevel
* @return java.util.List<com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataEntity>
* @author zhaoqifeng
* @date 2020/9/24 14:41
*/
@Override
public List<ScreenGovernRankDataDailyEntity> initList(String customerId, String orgType, String agencyLevel) {
List<ScreenGovernRankDataDailyEntity> list = new ArrayList<>();
switch (orgType) {
case OrgTypeConstant.AGENCY:
log.info("组织级别统计");
list = baseDao.initAgencyDataList(customerId, agencyLevel);
break;
case OrgTypeConstant.GRID:
log.info("网格级别统计");
list = baseDao.initGridDataList(customerId);
break;
default:
log.info("部门级别统计");
break;
}
return list;
}
/**
* 保存抽取结果
*
* @param customerId
* @param orgType
* @param dateId
* @param deleteSize
* @param entityList
* @return void
* @author zhaoqifeng
* @date 2020/9/25 10:32
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void delAndSaveRankData(String customerId, String orgType, String dateId, Integer deleteSize,
List<ScreenGovernRankDataDailyEntity> entityList) {
if (CollectionUtils.isEmpty(entityList)) {
return;
}
List<String> orgIds = new ArrayList<>();
for (ScreenGovernRankDataDailyEntity entity : entityList) {
orgIds.add(entity.getOrgId());
}
int deleteNum;
do {
deleteNum = baseDao.deleteRankData(customerId, orgType, dateId, deleteSize, orgIds);
} while (deleteNum != NumConstant.ZERO);
insertBatch(entityList);
}
}

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java

@ -23,6 +23,7 @@ import com.epmet.dto.ProjectDTO;
import com.epmet.dto.project.ProjectAgencyDTO;
import com.epmet.dto.project.ProjectGridDTO;
import com.epmet.dto.project.result.ProjectExceedParamsResultDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.project.ProjectEntity;
import org.apache.ibatis.annotations.Param;
@ -152,4 +153,13 @@ public interface ProjectService extends BaseService<ProjectEntity> {
*/
List<ProjectCategoryDTO> getProjectCategoryData(String customerId, String dateId);
/**
* 获取项目满意度
* @author zhaoqifeng
* @date 2021/5/21 10:04
* @param customerId
* @return java.util.List<com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity>
*/
List<FactOriginProjectMainDailyEntity> getProjectSatisfaction(String customerId);
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java

@ -26,17 +26,16 @@ import com.epmet.dto.ProjectDTO;
import com.epmet.dto.project.ProjectAgencyDTO;
import com.epmet.dto.project.ProjectCategoryDTO;
import com.epmet.dto.project.ProjectGridDTO;
import com.epmet.dto.project.ProjectPointDTO;
import com.epmet.dto.project.result.ProjectExceedParamsResultDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.project.ProjectEntity;
import com.epmet.service.project.ProjectService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -163,5 +162,39 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return baseDao.getProjectCategoryData(customerId,dateId);
}
/**
* 获取项目满意度
*
* @param customerId
* @return java.util.List<com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity>
* @author zhaoqifeng
* @date 2021/5/21 10:04
*/
@Override
public List<FactOriginProjectMainDailyEntity> getProjectSatisfaction(String customerId) {
List<ProjectPointDTO> list = baseDao.selectProjectSatisfaction(customerId);
if (org.apache.commons.collections4.CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
//获取项目满意指标
String value = baseDao.selectValueByKey(customerId, "satisfaction");
if (null == value) {
//客户没有自定义配置的话取默认配置
value = baseDao.selectValueByKey("default", "satisfaction");
}
String finalValue = value;
return list.stream().map(item -> {
FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity();
entity.setId(item.getProjectId());
if (item.getPoint() < Integer.parseInt(finalValue)) {
entity.setIsSatisfied(NumConstant.ZERO);
} else {
entity.setIsSatisfied(NumConstant.ONE);
}
return entity;
}).collect(Collectors.toList());
}
}

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__cpc_subscore_add_samplecount.sql

@ -0,0 +1 @@
alter table fact_index_grid_sub_score add column SAMPLE_COUNT int(10) comment '样本量' after ORIGIN_VALUE;

49
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.14__groupact_analysis.sql

@ -0,0 +1,49 @@
-- epmet_data_statistical 库执行以下脚本
-- CREATE TABLE `fact_group_act_daily` (
-- `ID` varchar(64) NOT NULL COMMENT '主键',
-- `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID',
-- `DATE_ID` varchar(8) NOT NULL COMMENT '数据更新至日期Id:yyyyMMdd',
-- `ORG_ID` varchar(64) NOT NULL COMMENT '网格id',
-- `ORG_TYPE` varchar(10) NOT NULL COMMENT '网格:grid;组织:agency',
-- `PID` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pid=网格所属组织id;\r\n2)orgType=agency: pid=当前组织的上级组织',
-- `PIDS` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pids=网格所有上级组织,包括pid;\r\n2)orgType=agency: pids=当前组织的所有上级组织,包括pid.',
-- `CATEGORY_CODE` varchar(255) NOT NULL COMMENT '活动分类编码',
-- `PARENT_CODE` varchar(255) NOT NULL COMMENT '上级分类编码',
-- `LEVEL` int(11) NOT NULL COMMENT '分类等级',
-- `ORGANIZE_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 组织次数;包含dateId这一天的数据',
-- `PARTICIPATE_USER_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 参加人数;包含dateId这一天的数据',
-- `AVG_PARTICIPATE_USER_TOTAL` int(11) NOT NULL COMMENT '截止到dateId: 平均参加人数;包含dateId这一天的数据',
-- `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除',
-- `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁',
-- `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
-- `CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
-- `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
-- `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
-- PRIMARY KEY (`ID`) USING BTREE
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='组织活动(参加人数、组织次数、平均参加人数)按天累计值分析';
-- CREATE TABLE `fact_group_act_monthly` (
-- `ID` varchar(64) NOT NULL COMMENT '主键',
-- `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID',
-- `MONTH_ID` varchar(8) NOT NULL COMMENT '数据维度:yyyyMM',
-- `ORG_ID` varchar(64) NOT NULL COMMENT '网格id',
-- `ORG_TYPE` varchar(10) NOT NULL COMMENT '网格:grid;组织:agency',
-- `PID` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pid=网格所属组织id;\r\n2)orgType=agency: pid=当前组织的上级组织',
-- `PIDS` varchar(255) DEFAULT NULL COMMENT '1)orgType=grid: pids=网格所有上级组织,包括pid;\r\n2)orgType=agency: pids=当前组织的所有上级组织,包括pid.',
-- `CATEGORY_CODE` varchar(255) NOT NULL COMMENT '活动分类编码',
-- `PARENT_CODE` varchar(255) NOT NULL COMMENT '上级分类编码',
-- `LEVEL` int(11) NOT NULL COMMENT '分类等级',
-- `ORGANIZE_INCR` int(11) NOT NULL COMMENT '本月内:活动组织次数',
-- `PARTICIPATE_USER__INCR` int(11) NOT NULL COMMENT '本月内:活动签到人数参加人数',
-- `AVG_PARTICIPATE_USER_INCR` int(11) NOT NULL COMMENT '本月内:平均参加人数',
-- `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除',
-- `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁',
-- `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
-- `CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
-- `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
-- `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
-- PRIMARY KEY (`ID`) USING BTREE
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='专项组活动(参加人数、组织次数、平均参加人数)按月增量分析';

8
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactAgencyGovernDailyDao.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.evaluationindex.extract.FactAgencyGovernDailyDao">
</mapper>

7
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactGridGovernDailyDao.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.evaluationindex.extract.FactGridGovernDailyDao">
</mapper>

188
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

@ -313,8 +313,7 @@
COUNT( ID ) AS "count"
FROM fact_origin_project_log_daily
WHERE ORG_TYPE = 'grid'
AND ( ACTION_CODE = 'response'
OR ACTION_CODE = 'close'
AND (ACTION_CODE = 'close'
OR ACTION_CODE = 'transfer'
OR ACTION_CODE = 'resolved'
OR ACTION_CODE = 'unresolved'
@ -347,8 +346,7 @@
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
( ACTION_CODE = 'response'
OR ACTION_CODE = 'close'
( ACTION_CODE = 'close'
OR ACTION_CODE = 'transfer'
OR ACTION_CODE = 'resolved'
OR ACTION_CODE = 'unresolved'
@ -362,33 +360,22 @@
<select id="selectGridSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
GRID_ID AS "orgId",
COUNT( score &gt;= 80 OR NULL ) AS 'count',
SUM( score ) AS 'count',
COUNT( ID ) AS 'sum'
FROM
(
SELECT
fm.GRID_ID,
fm.ID,
IFNULL( fl.score, 80 ) AS "score"
IFNULL( IS_SATISFIED, 1 ) AS "score"
FROM
fact_origin_project_main_daily fm
LEFT JOIN (
SELECT
f.PROJECT_ID,
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM
fact_origin_project_log_daily f
WHERE
( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' )
AND f.CUSTOMER_ID = #{customerId}
AND f.MONTH_ID = #{monthId}
GROUP BY
PROJECT_ID
) fl ON fm.ID = fl.PROJECT_ID
WHERE fm.CUSTOMER_ID = #{customerId}
fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.ORIGIN = 'issue'
) a
GROUP BY
GRID_ID
@ -396,36 +383,20 @@
<select id="selectOrgSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
AGENCY_ID,
COUNT( score &gt;= 80 OR NULL ) AS 'count',
SUM( score ) AS 'count',
COUNT( ID ) AS 'sum'
FROM
(
SELECT
fm.AGENCY_ID,
fm.ID,
IFNULL( fl.score, 80 ) AS "score"
IFNULL( IS_SATISFIED, 1 ) AS "score"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
LEFT JOIN (
SELECT
f.PROJECT_ID,
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM
fact_origin_project_log_daily f
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' )
AND f.CUSTOMER_ID = #{customerId}
AND f.MONTH_ID = #{monthId}
GROUP BY
PROJECT_ID
) fl ON fm.ID = fl.PROJECT_ID
WHERE fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.PROJECT_STATUS = 'closed'
AND fm.ORIGIN = 'issue'
) a
GROUP BY
AGENCY_ID
@ -552,4 +523,145 @@
GROUP BY PROJECT_ID
HAVING COUNT(DISTINCT(ORG_ID)) = 1
</select>
<select id="selectGridSatisfactionDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
GRID_ID AS "orgId",
SUM( score ) AS 'count',
COUNT( ID ) AS 'sum'
FROM
(
SELECT
fm.GRID_ID,
fm.ID,
IFNULL( IS_SATISFIED, 1 ) AS "score"
FROM
fact_origin_project_main_daily fm
WHERE
fm.CUSTOMER_ID = #{customerId}
AND fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.ORIGIN = 'issue'
) a
GROUP BY
GRID_ID
</select>
<select id="selectOrgSatisfactionDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
AGENCY_ID,
SUM( score ) AS 'count',
COUNT( ID ) AS 'sum'
FROM
(
SELECT
fm.AGENCY_ID,
fm.ID,
IFNULL( IS_SATISFIED, 1 ) AS "score"
FROM
fact_origin_project_main_daily fm
WHERE fm.CUSTOMER_ID = #{customerId}
AND fm.PROJECT_STATUS = 'closed'
AND fm.ORIGIN = 'issue'
) a
GROUP BY
AGENCY_ID
</select>
<select id="selectOrgResponseDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT a.AGENCY_ID,
a.count AS "sum",
IFNULL( b.count,
0 ) AS "count"
FROM
(SELECT f.AGENCY_ID,
COUNT( f.ID ) AS "count"
FROM fact_origin_project_log_daily f
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE f.IS_ACTIVE = 0
AND f.CUSTOMER_ID = #{customerId}
AND f.DATE_ID &lt;= #{dateId}
GROUP BY f.AGENCY_ID ) a
LEFT JOIN
(SELECT f.AGENCY_ID,
COUNT( f.ID ) AS "count"
FROM fact_origin_project_log_daily f
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
(ACTION_CODE = 'close'
OR ACTION_CODE = 'transfer'
OR ACTION_CODE = 'resolved'
OR ACTION_CODE = 'unresolved'
OR ACTION_CODE = 'created' )
AND f.IS_ACTIVE = 1
AND f.CUSTOMER_ID = #{customerId}
AND f.DATE_ID &lt;= #{dateId}
GROUP BY f.AGENCY_ID ) b
ON a.AGENCY_ID = b.AGENCY_ID
</select>
<select id="selectGridResponseDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT a.ORG_ID,
a.count AS "sum",
IFNULL( b.count,
0 ) AS "count"
FROM
(SELECT ORG_ID,
COUNT( ID ) AS "count"
FROM fact_origin_project_log_daily
WHERE ORG_TYPE = 'grid'
AND IS_ACTIVE = 0
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
GROUP BY ORG_ID ) a
LEFT JOIN
(SELECT ORG_ID,
COUNT( ID ) AS "count"
FROM fact_origin_project_log_daily
WHERE ORG_TYPE = 'grid'
AND ( ACTION_CODE = 'close'
OR ACTION_CODE = 'transfer'
OR ACTION_CODE = 'created' )
AND IS_ACTIVE = 1
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
GROUP BY ORG_ID ) b
ON a.ORG_ID = b.ORG_ID
</select>
<select id="selectGridSelfDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
GRID_ID AS "orgId",
COUNT( ID ) AS "sum",
IFNULL(a.count,0) AS "count"
FROM
fact_origin_project_main_daily fm
LEFT JOIN (
SELECT
orgId,
COUNT( PROJECT_ID ) AS "count"
FROM
(
SELECT
ORG_ID AS orgId,
PROJECT_ID
FROM
fact_origin_project_log_daily
WHERE
DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND ( ACTION_CODE = 'response' OR ACTION_CODE = 'close' OR ACTION_CODE = 'transfer' OR ACTION_CODE = 'created' )
AND PROJECT_ID IN ( SELECT ID FROM fact_origin_project_main_daily WHERE DEL_FLAG = 0 AND PROJECT_STATUS = 'closed' AND ORIGIN = "issue")
GROUP BY
PROJECT_ID
HAVING
COUNT(DISTINCT ( ORG_ID )) = 1) a
GROUP BY
orgId
) a ON fm.GRID_ID = a.orgId
WHERE
PROJECT_STATUS = 'closed'
AND ORIGIN = "issue"
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
GROUP BY
GRID_ID
</select>
</mapper>

114
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -240,7 +240,7 @@
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'close'
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
GROUP BY
@ -254,7 +254,7 @@
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'close'
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.IS_RESOLVED = 'resolved'
@ -274,7 +274,7 @@
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'close'
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
@ -287,7 +287,7 @@
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'close'
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
@ -807,5 +807,111 @@
AND ORIGIN = 'issue'
GROUP BY GRID_ID
</select>
<select id="getGridResolveProjectDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.GRID_ID AS "orgId",
a.count AS "sum",
IFNULL(b.count,0) AS "count"
FROM
(SELECT
fm.GRID_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
GROUP BY
fm.GRID_ID) a
LEFT JOIN
(SELECT
fm.GRID_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
fm.GRID_ID) b
ON a.GRID_ID = b.GRID_ID
</select>
<select id="getSelfProjectDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.AGENCY_ID,
a.count AS "sum",
IFNULL(b.count,0) AS "count"
FROM
(SELECT
fm.AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
GROUP BY
fm.AGENCY_ID) a
LEFT JOIN
(SELECT
fm.AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
AND fm.FINISH_ORG_IDS LIKE CONCAT('%', fm.AGENCY_ID,'%')
GROUP BY
fm.AGENCY_ID) b
ON a.AGENCY_ID = b.AGENCY_ID
</select>
<select id="getResolveProjectDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.AGENCY_ID,
a.count AS "sum",
IFNULL(b.count,0) AS "count"
FROM
(SELECT
fm.AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
GROUP BY
fm.AGENCY_ID) a
LEFT JOIN
(SELECT
fm.AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID &lt;= #{dateId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
fm.AGENCY_ID) b
ON a.AGENCY_ID = b.AGENCY_ID
</select>
</mapper>

10
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcScoreDao.xml

@ -46,9 +46,10 @@
<!-- 获取网格内党员的联系群众能力考评分(平均值) -->
<select id="selectGridContactMassesAvgValue" parameterType="map" resultType="java.math.BigDecimal">
<select id="selectGridContactMassesAvgValue" parameterType="map" resultType="com.epmet.model.AvgOperationResultVO">
SELECT
round(AVG( SCORE ),6) AS AVG_CONTACT_MASSES_SCORE
round(AVG( SCORE ),6) AS AVG_VALUE,
count(1) AS SAMPLE_COUNT
FROM
fact_index_cpc_score m
WHERE
@ -90,9 +91,10 @@
</select>
<!-- -->
<select id="selectGridJoinIssueAvgValue" parameterType="map" resultType="java.math.BigDecimal">
<select id="selectGridJoinIssueAvgValue" parameterType="map" resultType="com.epmet.model.AvgOperationResultVO">
SELECT
round(AVG( SCORE ),6) AS AVG_CONTACT_MASSES_SCORE
round(AVG( SCORE ),6) AS AVG_VALUE,
count(1) AS SAMPLE_COUNT
FROM
fact_index_cpc_score m
WHERE

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/GridSubScoreDao.xml

@ -24,7 +24,8 @@
`CREATED_BY`,
`CREATED_TIME`,
`UPDATED_BY`,
`UPDATED_TIME`
`UPDATED_TIME`,
`SAMPLE_COUNT`
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
@ -47,7 +48,8 @@
'APP_USER',
now(),
'APP_USER',
now()
now(),
#{item.sampleCount}
)
</foreach>
</insert>

15
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml

@ -256,6 +256,21 @@
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
</select>
<select id="selectGridByCustomerDaily" resultType="com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity">
SELECT
GRID_ID,
MONTH_ID,
YEAR_ID,
PROJECT_TOTAL,
SELF_SOLVE_PROJECT_COUNT,
RESOLVE_PROJECT_COUNT,
SATISFACTION_RATIO
FROM
fact_index_govrn_ablity_grid_daily
WHERE
CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
</select>
<!-- 批量插入治理能力 -->
<insert id="insertGovernAbilityRecord">

80
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenGovernRankDataDailyDao.xml

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.evaluationindex.screen.ScreenGovernRankDataDailyDao">
<resultMap type="com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity" id="screenGovernRankDataDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="yearId" column="YEAR_ID"/>
<result property="monthId" column="MONTH_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="orgType" column="ORG_TYPE"/>
<result property="orgId" column="ORG_ID"/>
<result property="parentId" column="PARENT_ID"/>
<result property="orgName" column="ORG_NAME"/>
<result property="responseRatio" column="RESPONSE_RATIO"/>
<result property="resolvedRatio" column="RESOLVED_RATIO"/>
<result property="governRatio" column="GOVERN_RATIO"/>
<result property="satisfactionRatio" column="SATISFACTION_RATIO"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteRankData">
delete from screen_govern_rank_data_daily
where CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
<if test='null != orgType and "" != orgType'>
and ORG_TYPE=#{orgType}
</if>
<if test='null!=orgIds and orgIds.size()>0'>
and
(
<foreach collection="orgIds" item="orgId" separator=" OR ">
ORG_ID = #{orgId}
</foreach>
)
</if>
limit #{deleteSize}
</delete>
<select id="initAgencyDataList" resultType="com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity">
SELECT DISTINCT
CUSTOMER_ID,
'agency' AS ORG_TYPE,
AGENCY_ID AS ORG_ID,
PID AS PARENT_ID,
AGENCY_NAME AS ORG_NAME,
0 AS RESPONSE_RATIO,
0 AS RESOLVED_RATIO,
0 AS GOVERN_RATIO,
0 AS SATISFACTION_RATIO
FROM
screen_customer_agency
WHERE
CUSTOMER_ID = #{customerId}
AND `LEVEL` = #{level}
</select>
<select id="initGridDataList" resultType="com.epmet.entity.evaluationindex.screen.ScreenGovernRankDataDailyEntity">
SELECT DISTINCT
CUSTOMER_ID,
'grid' AS ORG_TYPE,
GRID_ID AS ORG_ID,
PARENT_AGENCY_ID AS PARENT_ID,
GRID_NAME AS ORG_NAME,
0 AS RESPONSE_RATIO,
0 AS RESOLVED_RATIO,
0 AS GOVERN_RATIO,
0 AS SATISFACTION_RATIO
FROM
screen_customer_grid
WHERE
CUSTOMER_ID = #{customerId}
</select>
</mapper>

10
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml

@ -26,7 +26,7 @@
COUNT(rgm.id) AS gridGroupPeopleTotal
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rmg.DEL_FLAG = 0
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rgm.DEL_FLAG = 0
WHERE
rg.DEL_FLAG = 0
AND rg.state = #{state}
@ -45,7 +45,7 @@
COUNT( rgm.id ) AS groupCount
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rmg.DEL_FLAG = 0
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rgm.DEL_FLAG = 0
WHERE
rg.DEL_FLAG = 0
AND rg.state = #{state}
@ -94,7 +94,7 @@
COUNT(rgm.id) AS gridGroupPeopleTotal
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rmg.DEL_FLAG = 0
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rgm.DEL_FLAG = 0
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'
@ -112,7 +112,7 @@
COUNT( rgm.id ) AS groupCount
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rmg.DEL_FLAG = 0
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rgm.DEL_FLAG = 0
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'
@ -145,7 +145,7 @@
COUNT( rgm.id ) AS groupCount
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rmg.DEL_FLAG = 0
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id AND rgm.DEL_FLAG = 0
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'

17
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml

@ -145,4 +145,21 @@
AND DATE_FORMAT(CREATED_TIME,'%Y%m%d')=#{dateId}
</if>
</select>
<select id="selectProjectSatisfaction" resultType="com.epmet.dto.project.ProjectPointDTO">
SELECT
PROJECT_ID,
( PERFECT_COUNT * 100 + (SHOULD_EVALUATE_COUNT-PERFECT_COUNT-BAD_COUNT) * 80 + BAD_COUNT * 60 ) DIV SHOULD_EVALUATE_COUNT AS point
FROM
project_satisfaction_statistics
WHERE CUSTOMER_ID = #{customerId}
</select>
<select id="selectValueByKey" resultType="java.lang.String">
select
PARAMETER_VALUE
from
customer_project_parameter
where DEL_FLAG = '0'
and CUSTOMER_ID = #{customerId}
and PARAMETER_KEY = #{parameterKey}
</select>
</mapper>

11
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml

@ -131,6 +131,17 @@
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
</select>
<select id="selectGridUserCountByCustomerDaily" resultType="com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO">
SELECT
GRID_ID,
PARTYMEMBER_TOTAL
FROM
fact_reg_user_grid_daily
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
</select>
</mapper>
Loading…
Cancel
Save