Browse Source

Merge remote-tracking branch 'origin/dev'

master
yinzuomei 5 years ago
parent
commit
06d6c7d2fe
  1. 7
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  2. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  3. 3
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
  4. 22
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java
  5. 34
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java
  6. 27
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java
  7. 5
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java
  8. 56
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  9. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  10. 39
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java
  11. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
  12. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercrm/CustomerRelationDao.java
  13. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java
  14. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java
  15. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java
  16. 23
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java
  17. 78
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java
  18. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  19. 85
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  20. 13
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/CustomerRelation.java
  21. 30
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/impl/CustomerRelationImpl.java
  22. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml
  23. 57
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml
  24. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
  25. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercrm/CustomerRelationDao.xml
  26. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java
  27. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java
  28. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java
  29. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java
  30. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectOrgDailyResultDTO.java
  31. 11
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java
  32. 8
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java
  33. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java
  34. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java
  35. 11
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectOrgDailyDTO.java
  36. 18
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/TopicAttachmentDTO.java
  37. 24
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicAndImgResultDTO.java
  38. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java
  39. 31
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  40. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java
  41. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java
  42. 87
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
  43. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java
  44. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java
  45. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/IssueProjectCategoryDictDao.java
  46. 60
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/topic/TopicDao.java
  47. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java
  48. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java
  49. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java
  50. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueProjectCategoryDictService.java
  51. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueProjectCategoryDictServiceImpl.java
  52. 58
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java
  53. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java
  54. 147
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
  55. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java
  56. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java
  57. 178
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
  58. 49
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java
  59. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/ScreenGrassrootsGovernDataAbsorptionService.java
  60. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
  61. 329
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java
  62. 95
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java
  63. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java
  64. 184
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java
  65. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java
  66. 188
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java
  67. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/topic/TopicService.java
  68. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
  69. 13
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.11__add_origin.sql
  70. 47
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml
  71. 22
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  72. 169
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  73. 5
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml
  74. 28
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml
  75. 40
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml
  76. 7
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/IssueProjectCategoryDictDao.xml
  77. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml
  78. 5
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml
  79. 37
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/topic/TopicDao.xml
  80. 27
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AddAreaCodeFormDTO.java
  81. 10
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java
  82. 12
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java
  83. 4
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java
  84. 14
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java
  85. 4
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java
  86. 10
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java
  87. 70
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java
  88. 16
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml
  89. 32
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java
  90. 28
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java
  91. 10
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  92. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  93. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java
  94. 6
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java
  95. 7
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java
  96. 8
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java
  97. 40
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
  98. 17
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml
  99. 15
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml
  100. 20
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java

7
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -164,7 +164,12 @@ public enum RequirePermissionEnum {
MORE_BADGE_MANAGE_LIST("more_badge_manage_list","更多:徽章:徽章管理:列表","徽章列表"),
MORE_BADGE_MANAGE_CREATE("more_badge_manage_create","更多:徽章:徽章管理:添加","添加徽章"),
MORE_BADGE_MANAGE_EDIT("more_badge_manage_edit","更多:徽章:徽章管理:编辑","编辑徽章"),
MORE_BADGE_MANAGE_DELETE("more_badge_manage_delete","更多:徽章:徽章管理:删除","删除徽章");
MORE_BADGE_MANAGE_DELETE("more_badge_manage_delete","更多:徽章:徽章管理:删除","删除徽章"),
/**
* 项目立项
*/
WORK_PROJECT_APPROVAL("work_project_approval","政务管理:项目立项","项目立项");
private String key;
private String name;

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -70,6 +70,9 @@ public enum EpmetErrorCode {
NOT_DEL_AGENCY_PER(8205, "该机关存在工作人员,不允许删除"),
NOT_DEL_DEPARTMENT(8206, "该部门存在工作人员,不允许删除"),
NOT_DEL_AGENCY_GRID(8207, "该机关存在网格,不允许删除"),
AREA_CODE_ALREADY_EXISTS(8208,"组织区划已被占用,请重新选择"),
AGENCY_NAME_ALREADY_EXISTS(8209,"当前组织名称已存在,请重新修改"),
SET_PARENT_AREA_CODE(8210,"请先设置上级组织区划"),
REQUIRE_PERMISSION(8301, "您没有足够的操作权限"),
THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"),

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

@ -23,4 +23,7 @@ public interface DataSourceConstant {
*/
String EPMET_USER = "epmetuser";
String EPMET_COMMON_SERVICE="commonservice";
String OPER_CRM="opercrm";
}

22
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java

@ -114,17 +114,17 @@ public class CustomerAgencyDTO implements Serializable {
private Integer totalUser;
/**
* 省份
* 省份名称
*/
private String province;
private String province;
/**
* 城市
* 城市名称
*/
private String city;
private String city;
/**
* 区县
* 区县名称
*/
private String district;
@ -132,4 +132,14 @@ public class CustomerAgencyDTO implements Serializable {
* 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701
*/
private String parentAreaCode;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
}

34
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dataaggre.dto.govorg.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/12 15:55
*/
@Data
public class NextAreaCodeFormDTO implements Serializable {
private static final long serialVersionUID = -1974456701949979946L;
public interface AddUserInternalGroup {
}
@NotBlank(message = "parentAgencyId不能为空",groups = AddUserInternalGroup.class)
private String parentAgencyId;
private String areaCode;
/**
* 社区级community
* 街道:street,
* 区县级: district,
* 市级: city
* 省级:province
*/
@NotBlank(message = "level不能为空",groups = AddUserInternalGroup.class)
private String level;
}

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

@ -0,0 +1,27 @@
package com.epmet.dataaggre.dto.govorg.result;
import lombok.Data;
import java.io.Serializable;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/12 15:56
*/
@Data
public class NextAreaCodeResultDTO implements Serializable {
private static final long serialVersionUID = 9188265480821079966L;
private String areaCode;
private String areaName;
/**
* 社区级community
* 街道:street,
* 区县级: district,
* 市级: city
* 省级:province
*/
private String level;
}

5
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java

@ -65,6 +65,11 @@ public class ProjectDTO implements Serializable {
*/
private String title;
/**
* 项目背景
*/
private String backGround;
/**
* 状态:待处理 pending结案closed
*/

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

@ -144,6 +144,20 @@
<datasource.druid.epmetuser.username>epmet_user_user</datasource.druid.epmetuser.username>
<datasource.druid.epmetuser.password>EpmEt-db-UsEr</datasource.druid.epmetuser.password>
<!-- epmet_common_service -->
<datasource.druid.commonservice.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_common_service?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.commonservice.url>
<datasource.druid.commonservice.username>epmet_common_service_user</datasource.druid.commonservice.username>
<datasource.druid.commonservice.password>EpmEt-db-UsEr</datasource.druid.commonservice.password>
<!-- opercrm -->
<datasource.druid.opercrm.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_oper_crm_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.130</spring.redis.host>
@ -211,6 +225,20 @@
<datasource.druid.epmetuser.username>epmet_user_user</datasource.druid.epmetuser.username>
<datasource.druid.epmetuser.password>EpmEt-db-UsEr</datasource.druid.epmetuser.password>
<!-- epmet_common_service -->
<datasource.druid.commonservice.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_common_service?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.commonservice.url>
<datasource.druid.commonservice.username>epmet_common_service_user</datasource.druid.commonservice.username>
<datasource.druid.commonservice.password>EpmEt-db-UsEr</datasource.druid.commonservice.password>
<!-- opercrm -->
<datasource.druid.opercrm.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_oper_crm_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.130</spring.redis.host>
@ -278,6 +306,20 @@
<datasource.druid.epmetuser.username>epmet</datasource.druid.epmetuser.username>
<datasource.druid.epmetuser.password>elink@833066</datasource.druid.epmetuser.password>
<!-- epmet_common_service -->
<datasource.druid.commonservice.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_common_service?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.commonservice.url>
<datasource.druid.commonservice.username>epmet</datasource.druid.commonservice.username>
<datasource.druid.commonservice.password>elink@833066</datasource.druid.commonservice.password>
<!-- opercrm-->
<datasource.druid.opercrm.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_oper_crm?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>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com</spring.redis.host>
@ -345,6 +387,20 @@
<datasource.druid.epmetuser.username>epmet_user_user</datasource.druid.epmetuser.username>
<datasource.druid.epmetuser.password>EpmEt-db-UsEr</datasource.druid.epmetuser.password>
<!-- epmet_common_service-->
<datasource.druid.commonservice.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_common_service?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.commonservice.url>
<datasource.druid.commonservice.username>epmet_common_service_user</datasource.druid.commonservice.username>
<datasource.druid.commonservice.password>EpmEt-db-UsEr</datasource.druid.commonservice.password>
<!-- opercrm-->
<datasource.druid.opercrm.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.opercrm.url>
<datasource.druid.opercrm.username>epmet_oper_crm_user</datasource.druid.opercrm.username>
<datasource.druid.opercrm.password>EpmEt-db-UsEr</datasource.druid.opercrm.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com</spring.redis.host>

17
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java

@ -3,13 +3,19 @@ package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO;
import com.epmet.dataaggre.dto.govorg.result.AgencyGridListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author zxc
* @DateTime 2020/12/25 上午9:45
@ -34,4 +40,15 @@ public class GovOrgController {
return new Result<AgencyGridListResultDTO>().ok(agencyGridList);
}
/**
* @param formDTO
* @author yinzuomei
* @description 新增组织-查询下一级可选的组织区划
* @Date 2021/4/12 16:01
**/
@PostMapping("nextlevelareacodelist")
public Result<List<NextAreaCodeResultDTO>> queryNextLevelAreaCodeList(@RequestBody NextAreaCodeFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<List<NextAreaCodeResultDTO>>().ok(govOrgService.queryNextLevelAreaCodeList(formDTO));
}
}

39
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java

@ -0,0 +1,39 @@
/**
* 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.commonservice;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-01-07
*/
@Mapper
public interface AreaCodeDao {
List<NextAreaCodeResultDTO> selectCityList(String areaCode);
List<NextAreaCodeResultDTO> selectDistrictList(String areaCode);
List<NextAreaCodeResultDTO> selectStreetList(String areaCode);
List<NextAreaCodeResultDTO> selectCommunityList(String areaCode);
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java

@ -47,4 +47,6 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
* @date 2020/12/25 下午4:55
*/
String getAgencyIdByUserId(@Param("userId") String userId);
List<String> selectUsedAreaCodeList(@Param("parentAreaCode") String parentAreaCode);
}

16
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercrm/CustomerRelationDao.java

@ -0,0 +1,16 @@
package com.epmet.dataaggre.dao.opercrm;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/13 10:43
*/
@Mapper
public interface CustomerRelationDao {
List<String> selectUsedAreaCodeList(String areaCode);
}

16
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java

@ -80,17 +80,17 @@ public class CustomerAgencyEntity extends BaseEpmetEntity {
private Integer totalUser;
/**
* 省份
* 省份名称
*/
private String province;
/**
* 城市
* 城市名称
*/
private String city;
/**
* 区县
* 区县名称
*/
private String district;
@ -98,4 +98,14 @@ public class CustomerAgencyEntity extends BaseEpmetEntity {
* 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701
*/
private String parentAreaCode;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java

@ -60,4 +60,8 @@ public class CustomerDepartmentEntity extends BaseEpmetEntity {
*/
private Integer totalUser;
/**
* 部门所属的行政地区编码:实际就是所属组织的地区编码
*/
private String areaCode;
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java

@ -63,6 +63,11 @@ public class ProjectEntity extends BaseEpmetEntity {
*/
private String title;
/**
* 项目背景
*/
private String backGround;
/**
* 状态:待处理 pending结案closed
*/

23
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java

@ -0,0 +1,23 @@
package com.epmet.dataaggre.service.commonservice;
import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import java.util.List;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/12 15:45
*/
public interface AreaCodeService {
/**
* @return java.util.List<com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO>
* @param formDTO
* @author yinzuomei
* @description 新增组织-查询下一级可选的组织区划
* @Date 2021/4/12 16:02
**/
List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO);
}

78
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java

@ -0,0 +1,78 @@
package com.epmet.dataaggre.service.commonservice.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.commonservice.AreaCodeDao;
import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import com.epmet.dataaggre.service.commonservice.AreaCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/12 15:46
*/
@DataSource(DataSourceConstant.EPMET_COMMON_SERVICE)
@Slf4j
@Service
public class AreaCodeServiceImpl implements AreaCodeService {
@Autowired
private AreaCodeDao areaCodeDao;
/**
* @param formDTO
* @return java.util.List<com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO>
* @author yinzuomei
* @description 新增组织-查询下一级可选的组织区划
* @Date 2021/4/12 16:02
**/
@Override
public List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) {
List<NextAreaCodeResultDTO> list = new ArrayList<>();
NextAreaCodeResultDTO other = new NextAreaCodeResultDTO();
other.setAreaCode("other");
other.setAreaName("其它");
switch (formDTO.getLevel()) {
/**
* 社区级community
* 街道:street,
* 区县级: district,
* 市级: city
* 省级:province
*/
case "province":
list = areaCodeDao.selectCityList(formDTO.getAreaCode());
other.setLevel("city");
break;
case "city":
list = areaCodeDao.selectDistrictList(formDTO.getAreaCode());
other.setLevel("district");
break;
case "district":
list = areaCodeDao.selectStreetList(formDTO.getAreaCode());
other.setLevel("street");
break;
case "street":
list = areaCodeDao.selectCommunityList(formDTO.getAreaCode());
other.setLevel("community");
break;
default:
}
if (CollectionUtils.isEmpty(list)) {
list = new ArrayList<>();
}
if(!"province".equals(formDTO.getLevel())){
list.add(other);
}
return list;
}
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -1,8 +1,10 @@
package com.epmet.dataaggre.service.govorg;
import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO;
import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import java.util.List;
@ -42,4 +44,5 @@ public interface GovOrgService {
*/
String getAgencyIdByUserId(String userId);
List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO);
}

85
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -1,24 +1,32 @@
package com.epmet.dataaggre.service.govorg.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao;
import com.epmet.dataaggre.dao.govorg.CustomerGridDao;
import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao;
import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO;
import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO;
import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import com.epmet.dataaggre.service.commonservice.AreaCodeService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
@ -29,7 +37,6 @@ import java.util.List;
@DataSource(DataSourceConstant.GOV_ORG)
@Slf4j
public class GovOrgServiceImpl implements GovOrgService {
private static final Logger logger = LoggerFactory.getLogger(GovOrgServiceImpl.class);
@Autowired
private CustomerAgencyDao customerAgencyDao;
@ -37,7 +44,10 @@ public class GovOrgServiceImpl implements GovOrgService {
private CustomerStaffAgencyDao customerStaffAgencyDao;
@Autowired
private CustomerGridDao customerGridDao;
@Autowired
private AreaCodeService areaCodeService;
@Autowired
private CustomerRelation customerRelation;
/**
* @param staffId
@ -120,5 +130,72 @@ public class GovOrgServiceImpl implements GovOrgService {
return customerAgencyDao.getAgencyIdByUserId(userId);
}
@Override
public List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) {
CustomerAgencyEntity parent=customerAgencyDao.selectById(formDTO.getParentAgencyId());
if (null == parent || StringUtils.isBlank(parent.getAreaCode())) {
throw new RenException(EpmetErrorCode.SET_PARENT_AREA_CODE.getCode(),EpmetErrorCode.SET_PARENT_AREA_CODE.getMsg());
}
//全部下级
List<NextAreaCodeResultDTO> allList = areaCodeService.queryNextLevelAreaCodeList(formDTO);
if (CollectionUtils.isNotEmpty(allList)) {
//内部客户: 已经被使用过的areaCode
List<String> usedAreaCodeList1 = customerAgencyDao.selectUsedAreaCodeList(formDTO.getAreaCode());
//外部子客户:
List<String> usedAreaCodeList2 = customerRelation.selectUsedAreaCodeList(formDTO.getAreaCode());
//已经被使用的移除不显示
Iterator<NextAreaCodeResultDTO> iterator = allList.iterator();
while (iterator.hasNext()) {
NextAreaCodeResultDTO next = iterator.next();
for (String usedAreaCode1 : usedAreaCodeList1) {
if (next.getAreaCode().equals(usedAreaCode1)) {
iterator.remove();
}
}
for (String usedAreaCode2 : usedAreaCodeList2) {
if (next.getAreaCode().contains(usedAreaCode2)) {
iterator.remove();
}
}
}
}
return allList;
}
public static void main(String[] args) {
List<NextAreaCodeResultDTO> allList = new ArrayList<>();
NextAreaCodeResultDTO m1 = new NextAreaCodeResultDTO();
m1.setAreaCode("1");
m1.setAreaName("a");
allList.add(m1);
NextAreaCodeResultDTO m2 = new NextAreaCodeResultDTO();
m2.setAreaCode("2");
m2.setAreaName("b");
allList.add(m2);
NextAreaCodeResultDTO m3 = new NextAreaCodeResultDTO();
m3.setAreaCode("3");
m3.setAreaName("c");
allList.add(m3);
List<String> stringList = new ArrayList<>();
stringList.add("1");
stringList.add("2");
Iterator<NextAreaCodeResultDTO> iterator = allList.iterator();
while (iterator.hasNext()) {
NextAreaCodeResultDTO next = iterator.next();
for (String usedAreaCode : stringList) {
if (next.getAreaCode().equals(usedAreaCode)) {
iterator.remove();
}
}
}
System.out.println(JSON.toJSONString(allList, true));
}
}

13
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/CustomerRelation.java

@ -0,0 +1,13 @@
package com.epmet.dataaggre.service.opercrm;
import java.util.List;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/13 10:38
*/
public interface CustomerRelation {
List<String> selectUsedAreaCodeList(String areaCode);
}

30
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/impl/CustomerRelationImpl.java

@ -0,0 +1,30 @@
package com.epmet.dataaggre.service.opercrm.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.opercrm.CustomerRelationDao;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/13 10:38
*/
@DataSource(DataSourceConstant.OPER_CRM)
@Slf4j
@Service
public class CustomerRelationImpl implements CustomerRelation {
@Autowired
private CustomerRelationDao customerRelationDao;
@Override
public List<String> selectUsedAreaCodeList(String areaCode) {
return customerRelationDao.selectUsedAreaCodeList(areaCode);
}
}

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

@ -119,7 +119,16 @@ dynamic:
url: @datasource.druid.epmetuser.url@
username: @datasource.druid.epmetuser.username@
password: @datasource.druid.epmetuser.password@
commonservice:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.commonservice.url@
username: @datasource.druid.commonservice.username@
password: @datasource.druid.commonservice.password@
opercrm:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.opercrm.url@
username: @datasource.druid.opercrm.username@
password: @datasource.druid.opercrm.password@
feign:
hystrix:
enabled: true

57
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml

@ -0,0 +1,57 @@
<?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.commonservice.AreaCodeDao">
<select id="selectCityList" parameterType="java.lang.String" resultType="com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO">
SELECT DISTINCT
ac.CITY_CODE AS areaCode,
ac.CITY_NAME AS areaName,
'city' LEVEL
FROM
area_code ac
WHERE
ac.DEL_FLAG='0'
and ac.PROVINCE_CODE = #{areaCode}
ORDER BY
ac.CITY_CODE ASC
</select>
<select id="selectDistrictList" parameterType="java.lang.String" resultType="com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO">
SELECT DISTINCT
ac.COUNTY_CODE AS areaCode,
ac.COUNTY_NAME AS areaName,
'district' LEVEL
FROM
area_code ac
WHERE ac.DEL_FLAG='0'
and ac.CITY_CODE = #{areaCode}
ORDER BY
ac.COUNTY_CODE ASC
</select>
<select id="selectStreetList" parameterType="java.lang.String" resultType="com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO">
SELECT DISTINCT CODE AS areaCode,
NAME AS areaName,
'street' AS LEVEL
FROM
area_code_child acc
WHERE
acc.DEL_FLAG = '0'
AND acc.P_CODE = #{areaCode}
order by acc.CODE ASC
</select>
<select id="selectCommunityList" parameterType="java.lang.String" resultType="com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO">
SELECT DISTINCT CODE AS areaCode,
NAME AS areaName,
'community' AS LEVEL
FROM
area_code_child acc
WHERE
acc.DEL_FLAG = '0'
AND acc.P_CODE = #{areaCode}
ORDER BY
acc.CODE ASC
</select>
</mapper>

9
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml

@ -22,4 +22,13 @@
SELECT AGENCY_ID FROM customer_staff_agency WHERE DEL_FLAG = 0 AND USER_ID = #{userId}
</select>
<select id="selectUsedAreaCodeList" parameterType="java.lang.String" resultType="java.lang.String">
SELECT
distinct ca.AREA_CODE
FROM
customer_agency ca
WHERE
ca.DEL_FLAG = '0'
AND ca.PARENT_AREA_CODE = #{parentAreaCode}
</select>
</mapper>

17
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercrm/CustomerRelationDao.xml

@ -0,0 +1,17 @@
<?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.opercrm.CustomerRelationDao">
<select id="selectUsedAreaCodeList" parameterType="java.lang.String" resultType="java.lang.String">
SELECT
cr.AREA_CODE
FROM
customer_relation cr
WHERE
cr.DEL_FLAG = '0'
and cr.CUSTOMER_TYPE='external'
AND cr.AREA_CODE LIKE concat(#{areaCode}, '%')
AND cr.AREA_CODE != #{areaCode}
</select>
</mapper>

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

@ -103,6 +103,16 @@ public class FactOriginProjectMainDailyDTO implements Serializable {
*/
private String agencyId;
/**
* 来源议题issue
*/
private String origin;
/**
* 来源ID
*/
private String originId;
/**
* 状态
*/

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java

@ -16,4 +16,6 @@ public class ClosedIncrResultDTO implements Serializable {
private String gridId;
private Integer closedIncr;
private String orgId;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java

@ -17,4 +17,6 @@ public class EvaluateTotalResultDTO implements Serializable {
private String orgId;
private Integer evaluateCount = NumConstant.ZERO;
private String areaCode;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java

@ -16,4 +16,6 @@ public class ProjectIncrResultDTO implements Serializable {
private String gridId;
private Integer projectIncr;
private String orgId;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectOrgDailyResultDTO.java

@ -44,6 +44,8 @@ public class ProjectOrgDailyResultDTO implements Serializable {
*/
private Integer badTotal;
private String orgId;
public ProjectOrgDailyResultDTO() {
this.projectTotal = NumConstant.ZERO;
this.resolvedNum = NumConstant.ZERO;

11
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java

@ -13,6 +13,15 @@ public class ProjectTotalResultDTO implements Serializable {
private static final long serialVersionUID = 6071988402600005617L;
private String gridId;
private String orgId;
/**
* 项目总数
*/
private Integer projectTotal;
/**
* 行政区域编码
*/
private String areaCode;
}

8
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java

@ -13,6 +13,12 @@ public class ResolvedNumResultDTO implements Serializable {
private static final long serialVersionUID = 607198840261205617L;
private String gridId;
private String orgId;
/**
* 已解决的项目总数
*/
private Integer resolvedNum;
private String areaCode;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java

@ -16,4 +16,6 @@ public class UnClosedTotalResultDTO implements Serializable {
private String gridId;
private Integer projectCount;
private String orgId;
}

7
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java

@ -108,4 +108,11 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
*/
private Date updatedTime;
private String orgId;
/**
* 用在 项目分类 org 统计中记录本记录是否被计数
*/
private Boolean status = false;
}

11
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectOrgDailyDTO.java

@ -17,6 +17,7 @@
package com.epmet.dto.screen;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
@ -144,4 +145,14 @@ public class ScreenProjectOrgDailyDTO implements Serializable {
*/
private String areaCode;
public ScreenProjectOrgDailyDTO() {
this.projectTotal = NumConstant.ZERO;
this.resolvedNum = NumConstant.ZERO;
this.resolvedRatio = NumConstant.ZERO_DECIMAL;
this.evaluateTotal = NumConstant.ZERO;
this.goodTotal = NumConstant.ZERO;
this.badTotal = NumConstant.ZERO;
this.goodRatio = NumConstant.ZERO_DECIMAL;
this.badRatio = NumConstant.ZERO_DECIMAL;
}
}

18
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/TopicAttachmentDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.topic;
import lombok.Data;
/**
* desc:
*
* @author: LiuJanJun
* @date: 2021/4/13 5:33 下午
* @version: 1.0
*/
@Data
public class TopicAttachmentDTO {
private Integer sort;
private String attachmentUrl;
}

24
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicAndImgResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.topic.result;
import com.epmet.dto.topic.TopicAttachmentDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author liujianjun
* @Description -话题对象
* @ClassName ResiGroupTopicResultDTO
* @Auth wangc
* @Date 2020-06-20 17:23
*/
@Data
public class ResiTopicAndImgResultDTO implements Serializable {
private String topicId;
private String topicContent;
private List<TopicAttachmentDTO> topicImgList;
}

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -64,4 +64,7 @@ public interface ProjectConstant {
String XIA_JI = "xiaji";
String GRID_ID = "GRID_ID";
String AGENCY_ID = "AGENCY_ID";
String ISSUE = "issue";
}

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

@ -569,10 +569,7 @@ public class DemoController {
}
@PostMapping("gridgovern")
public void gridGovern(){
String customerId = "45687aa479955f9d06204d415238f7cc";
// String customerId = "epmettest";
String monthId = "202009";
public void gridGovern(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){
calGridIndexService.calGridIndexGovernAbility(customerId,monthId);
}
@ -725,10 +722,10 @@ public class DemoController {
/**
* @return com.epmet.commons.tools.utils.Result
* @param
* @param
* @author yinzuomei
* @description screen_index_data_monthly 赋值ALL_PARENT_IDS
* @Date 2020/10/10 17:59
* @Date 2020/10/10 17:59
**/
@DataSource(DataSourceConstant.EVALUATION_INDEX)
@PostMapping("updateDeptIndexMonthly")
@ -813,15 +810,6 @@ public class DemoController {
return new Result();
}
/*@Autowired
private ScreenGrassrootsGovernDataAbsorptionService ndddYhjfService;
@PostMapping("diff")
public Result diff(@RequestBody ScreenCentralZoneDataFormDTO param){
ndddYhjfService.difficultyDataHub(param);
return new Result();
}*/
@PostMapping("project-test")
public Result project(@RequestBody ScreenCentralZoneDataFormDTO param){
screenProjectSettleService.extractScreenData(param);
@ -869,4 +857,17 @@ public class DemoController {
return new Result();
}
@Autowired
private ScreenGrassrootsGovernDataAbsorptionService ndddYhjfService;
@PostMapping("diffOld")
public Result diff(@RequestBody ScreenCentralZoneDataFormDTO param){
ndddYhjfService.difficultyDataHub(param);
return new Result();
}
@PostMapping("testDiffNew")
public Result testDiff(@RequestBody ScreenCentralZoneDataFormDTO param){
return new Result().ok(ndddYhjfService.difficultyDataExtract(param));
}
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java

@ -43,4 +43,12 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao<FactOriginPro
* @Date 2021/3/23 9:58
**/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryGridDailyDTO(@Param("customerId") String customerId);
/**
* @Description 查询客户下组织直接立项的各项目分类下的项目数量筛选组织创建的项目fact_origin_project_main_daily表gridId为空
* @Param orgIds
* @author zxc
* @date 2021/4/13 下午4:36
*/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(@Param("orgIds")List<String> orgIds,@Param("customerId") String customerId);
}

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

@ -74,6 +74,14 @@ public interface FactOriginProjectLogDailyDao extends BaseDao<FactOriginProjectL
* @date 2020/9/18 5:25 下午
*/
List<AutoNoMyResultDTO> selectProjectAutoNoMy(@Param("customerId") String customerId,@Param("monthId") String monthId);
/**
* @Description 网格项目自治率查询 最新版
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/4/12 上午10:46
*/
List<AutoNoMyResultDTO> selectProjectAutoNoMyPlus(@Param("customerId") String customerId,@Param("monthId") String monthId);
/**
* 根据日期删除数据

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

@ -27,6 +27,7 @@ import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -72,13 +73,13 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
/**
* @Description 网格办结项目数
* @param customerId
* @param gridIds
* @param monthId
* @param status
* @author zxc
* @date 2020/9/18 2:06 下午
*/
List<GridProjectClosedTotalResultDTO> selectGridClosedProject(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("status") String status);
List<GridProjectClosedTotalResultDTO> selectGridClosedProject(@Param("gridIds") List<String> gridIds,@Param("monthId") String monthId,@Param("status") String status);
List<TransferRightRatioResultDTO> selectTransferRightRatio(@Param("customerId")String customerId, @Param("monthId")String monthId);
@ -188,7 +189,7 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
* @date 2020.09.28 10:19
*/
List<ScreenDifficultyDataEntity> selectDifficultyBaseInfo(@Param("customerId")String customerId,@Param("thresholdValue") Integer thresholdValue);
/**
* @Description 查询评价周期内新立的项目是为了增量新增难点赌点的图片库
* @param customerId
@ -229,6 +230,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ProjectTotalResultDTO> selectProjectTotal(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("monthId")String monthId);
/**
* @Description 组织查询项目总数
* @Param orgIds
* @Param dateId
* @Param monthId
* @author zxc
* @date 2021/4/13 上午9:31
*/
List<ProjectTotalResultDTO> selectProjectTotalByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId, @Param("monthId")String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
@ -238,6 +249,15 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ResolvedNumResultDTO> selectResolvedNum(@Param("customerId")String customerId, @Param("dateId")String dateId);
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:41
*/
List<ResolvedNumResultDTO> selectResolvedNumByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -247,6 +267,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("activeCodes") List<String> activeCodes);
/**
* @Description 组织 查询 满意度评价次数
* @Param orgIds
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:56
*/
List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId, @Param("activeCodes")List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId
@ -256,6 +286,15 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ProjectIncrResultDTO> selectProjectIncr(@Param("customerId")String customerId, @Param("monthId")String monthId);
/**
* @Description 组织查询本月新增项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:21
*/
List<ProjectIncrResultDTO> selectProjectIncrByOrg(@Param("orgIds") List<String> orgIds, @Param("monthId")String monthId);
/**
* @Description 根据状态查询项目数
* @Param customerId
@ -266,6 +305,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<UnClosedTotalResultDTO> selectProjectCount(@Param("customerId")String customerId, @Param("monthId")String monthId, @Param("status") String status);
/**
* @Description 组织根据状态查询项目数
* @Param orgIds
* @Param monthId
* @Param status
* @author zxc
* @date 2021/4/16 上午9:26
*/
List<UnClosedTotalResultDTO> selectProjectCountByOrg(@Param("orgIds") List<String> orgIds, @Param("monthId")String monthId, @Param("status") String status);
/**
* @Description 本月新增结案项目数
* @Param customerId
@ -275,6 +324,15 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ClosedIncrResultDTO> selectClosedIncr(@Param("customerId")String customerId, @Param("monthId")String monthId);
/**
* @Description 组织本月新增结案项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:35
*/
List<ClosedIncrResultDTO> selectClosedIncrByOrg(@Param("orgIds") List<String> orgIds, @Param("monthId")String monthId);
/**
* @Description 初始化screen_project_data数据
* 如果是dateId不为空则查询前一天的数据
@ -289,4 +347,25 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ScreenProjectDataDTO> initNewScreenProjectData(@Param("customerId")String customerId,@Param("dateId") String dateId,@Param("dataEndTime")String dataEndTime);
}
/**
* desc: 获取难点堵点项目数据
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity>
* @author LiuJanJun
* @date 2021/4/12 1:35 下午
*/
List<FactOriginProjectMainDailyEntity> getProjectForDiff(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* desc: 获取难点堵点项目数据耗时
*
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity>
* @author LiuJanJun
* @date 2021/4/12 1:35 下午
*/
List<FactOriginProjectOrgPeriodDailyEntity> getProjectPeriodForDiff(@Param("customerId") String customerId, @Param("dateId") String dateId);
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java

@ -47,4 +47,5 @@ public interface ScreenProjectOrgDailyDao extends BaseDao<ScreenProjectOrgDailyE
* @date 2021/2/1 下午3:51
*/
List<ProjectOrgDailyResultDTO> selectOrgProject(@Param("agencyInfos") List<ScreenProjectOrgDailyDTO> agencyInfos, @Param("dateId") String dateId);
List<ProjectOrgDailyResultDTO> selectOrgProjectByAgency(@Param("agencyInfos") List<ScreenProjectOrgDailyDTO> agencyInfos, @Param("dateId") String dateId);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java

@ -49,6 +49,7 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @date 2021/2/2 上午11:09
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
/**
* @Description 项目(事件)数量查询本月之前的累计
@ -58,6 +59,7 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @date 2021/2/2 下午3:03
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
}

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/IssueProjectCategoryDictDao.java

@ -37,5 +37,7 @@ public interface IssueProjectCategoryDictDao {
List<IssueProjectCategoryDictEntity> listByUpdatedTime(@Param("start") Date start, @Param("end") Date end);
IssueProjectCategoryDictEntity getById(@Param("customerId")String customerId, @Param("id")String id);;
IssueProjectCategoryDictEntity getById(@Param("customerId") String customerId, @Param("id") String id);
List<IssueProjectCategoryDictEntity> getAllByCId(@Param("customerId") String customerId);
}

60
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/topic/TopicDao.java

@ -15,6 +15,7 @@ import com.epmet.dto.topic.ResiTopicDTO;
import com.epmet.dto.extract.result.TopicInfoResultDTO;
import com.epmet.dto.topic.TopicOriginInfoDTO;
import com.epmet.dto.topic.result.ResiGroupTopicResultDTO;
import com.epmet.dto.topic.result.ResiTopicAndImgResultDTO;
import com.epmet.dto.topic.result.ResiTopicOperationResultDTO;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyImgDataEntity;
import org.apache.ibatis.annotations.Mapper;
@ -27,115 +28,118 @@ import java.util.List;
public interface TopicDao {
/**
* @Description 将组按照网格Id排序
* @param targetDate
* @param customerId
* @return List<ResiGroupTopicResultDTO>
* @Description 将组按照网格Id排序
* @author wangc
* @date 2020.06.22 11:05
**/
List<ResiGroupTopicResultDTO> selectGroupOrderByGrid(@Param("targetDate")Date targetDate, @Param("customerId")String customerId);
**/
List<ResiGroupTopicResultDTO> selectGroupOrderByGrid(@Param("targetDate") Date targetDate, @Param("customerId") String customerId);
/**
* @Description 查询话题的操作记录如果返回结果中没有对应Id的话题说明当日话题没有操作记录
* @param targetDate
* @return List<ResiTopicOperationResultDTO>
* @Description 查询话题的操作记录如果返回结果中没有对应Id的话题说明当日话题没有操作记录
* @author wangc
* @date 2020.06.22 11:07
**/
List<ResiTopicOperationResultDTO> selectTopicOperationRecord(@Param("targetDate")Date targetDate);
**/
List<ResiTopicOperationResultDTO> selectTopicOperationRecord(@Param("targetDate") Date targetDate);
/**
* @Description 将组按照网格Id排序
* @param
* @param customerId
* @return List<ResiGroupTopicResultDTO>
* @Description 将组按照网格Id排序
* @author wangc
* @date 2020.06.22 11:05
**/
List<ResiGroupTopicResultDTO> selectGroupOrderByGridBetweenTimeRange(@Param("startDate")Date startDate, @Param("endDate")Date endDate, @Param("customerId")String customerId);
List<ResiGroupTopicResultDTO> selectGroupOrderByGridBetweenTimeRange(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("customerId") String customerId);
/**
* @Description 查询话题的操作记录如果返回结果中没有对应Id的话题说明当日话题没有操作记录
* @param
* @return List<ResiTopicOperationResultDTO>
* @Description 查询话题的操作记录如果返回结果中没有对应Id的话题说明当日话题没有操作记录
* @author wangc
* @date 2020.06.22 11:07
**/
List<ResiTopicOperationResultDTO> selectTopicOperationRecordBetweenTimeRange(@Param("startDate")Date startDate, @Param("endDate")Date endDate);
List<ResiTopicOperationResultDTO> selectTopicOperationRecordBetweenTimeRange(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* 根据ids获取话题信息
* @author zhaoqifeng
* @date 2020/9/15 17:33
*
* @param ids
* @return java.util.List<com.epmet.dto.topic.ResiTopicDTO>
* @author zhaoqifeng
* @date 2020/9/15 17:33
*/
List<ResiTopicDTO> selectTopicByIds(@Param("ids") List<String> ids);
/**
* @Description 查询话题创建者信息
* @param topicIds
* @Description 查询话题创建者信息
* @author zxc
* @date 2020/9/15 4:55 下午
*/
List<TopicInfoResultDTO> selectTopicInfo(@Param("topicIds")List<String> topicIds);
List<TopicInfoResultDTO> selectTopicInfo(@Param("topicIds") List<String> topicIds);
/**
* @return java.util.List<com.epmet.dto.topic.TopicOriginInfoDTO>
* @param customerId
* @param dateId yyyyMMdd
* @param dateId yyyyMMdd
* @return java.util.List<com.epmet.dto.topic.TopicOriginInfoDTO>
* @author yinzuomei
* @description 根据日期查询resi_topic_operation返回当前日期这一天内所有话题相关的操作记录
* @description 根据日期查询resi_topic_operation返回当前日期这一天内所有话题相关的操作记录
* @Date 2020/9/15 18:14
**/
List<TopicOriginInfoDTO> selectListTopicOriginInfo(@Param("customerId")String customerId, @Param("dateId")String dateId);
List<TopicOriginInfoDTO> selectListTopicOriginInfo(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* @return java.util.List<com.epmet.dto.topic.TopicOriginInfoDTO>
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.topic.TopicOriginInfoDTO>
* @author yinzuomei
* @description 查询在这一天发生变化的话题记录
* @Date 2020/9/23 17:52
**/
List<TopicOriginInfoDTO> queryUpdateTopicOriginInfoList(@Param("customerId")String customerId, @Param("dateId")String dateId);
List<TopicOriginInfoDTO> queryUpdateTopicOriginInfoList(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* @Description 查询话题的图片
* @param list
* @return java.util.List<com.epmet.entity.evaluationindex.screen.ScreenDifficultyImgDataEntity>
* @Description 查询话题的图片
* @author wangc
* @date 2020.09.28 15:40
*/
List<ScreenDifficultyImgDataEntity> selectTopicImgs(@Param("list") List<ProjectSourceMapFormDTO> list);
/**
* @Description 得到话题项目内容
* @param list
* @return java.util.Map<java.lang.String,java.lang.String>
* @return java.util.Map<java.lang.String, java.lang.String>
* @Description 得到话题项目内容
* @author wangc
* @date 2020.09.28 16:28
*/
List<TopicContentResultDTO> selectTopicContent(@Param("list") List<ProjectSourceMapFormDTO> list);
/**
* @Description 根据话题Id查询大屏项目的相关信息
* @param list
* @return java.util.List<com.epmet.dto.screen.ScreenProjectDataDTO>
* @Description 根据话题Id查询大屏项目的相关信息
* @author wangc
* @date 2021.03.08 17:13
*/
*/
List<ScreenProjectDataDTO> selectScreenProjectData(@Param("list") List<ScreenProjectDataDTO> list);
/**
* @Description 初始化指定项目的图片
* @param customerId
* @param list
* @return java.util.List<com.epmet.dto.screen.ScreenProjectImgDataDTO>
* @Description 初始化指定项目的图片
* @author wangc
* @date 2021.03.09 14:19
*/
List<ScreenProjectImgDataDTO> initNewScreenProjectImgData(@Param("customerId")String customerId,@Param("list") List<ScreenProjectDataDTO> list);
*/
List<ScreenProjectImgDataDTO> initNewScreenProjectImgData(@Param("customerId") String customerId, @Param("list") List<ScreenProjectDataDTO> list);
ResiTopicAndImgResultDTO getTopicAndImgs(@Param("topicId") String topicId);
}

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

@ -103,6 +103,16 @@ public class FactOriginProjectMainDailyEntity extends BaseEpmetEntity {
*/
private String agencyId;
/**
* 来源议题issue
*/
private String origin;
/**
* 来源ID
*/
private String originId;
/**
* 状态
*/

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java

@ -80,17 +80,17 @@ public class CustomerAgencyEntity extends BaseEpmetEntity {
private Integer totalUser;
/**
* 省份
* 省份名称
*/
private String province;
/**
* 城市
* 城市名称
*/
private String city;
/**
* 区县
* 区县名称
*/
private String district;
@ -98,4 +98,14 @@ public class CustomerAgencyEntity extends BaseEpmetEntity {
* 当前组织的上级行政地区编码add0204;举例平阴县370124对应的是济南市3701
*/
private String parentAreaCode;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java

@ -60,6 +60,11 @@ public class ProjectEntity extends BaseEpmetEntity {
*/
private String title;
/**
* 项目背景
*/
private String backGround;
/**
* 状态:待处理 pending结案closed
*/

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueProjectCategoryDictService.java

@ -36,4 +36,6 @@ public interface IssueProjectCategoryDictService{
List<IssueProjectCategoryDictEntity> listByUpdatedTime(Date start, Date end);
IssueProjectCategoryDictEntity getById(String customerId,String id);
List<IssueProjectCategoryDictEntity> getAllByCId(String customerId);
}

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueProjectCategoryDictServiceImpl.java

@ -5,7 +5,6 @@ import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.issue.IssueProjectCategoryDictDao;
import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
import com.epmet.service.Issue.IssueProjectCategoryDictService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -39,4 +38,9 @@ public class IssueProjectCategoryDictServiceImpl implements IssueProjectCategory
return issueProjectCategoryDictDao.getById(customerId,id);
}
@Override
public List<IssueProjectCategoryDictEntity> getAllByCId(String customerId) {
return issueProjectCategoryDictDao.getAllByCId(customerId);
}
}

58
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java

@ -243,7 +243,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
}
//网格总议题数目,网格人均议题数目
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId);
//网格总项目数
//网格总项目数 从议题根据状态获取
List<GridProjectCountResultDTO> gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT);
//网格议题转项目率
List<GridIssueCountResultDTO> gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId));
@ -254,38 +254,20 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
if (!CollectionUtils.isEmpty(projectAutoNoMyList)){
Map<String, List<AutoNoMyResultDTO>> groupByGrid = projectAutoNoMyList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getGridId));
groupByGrid.forEach((gridId,projectList) -> {
Map<String, List<AutoNoMyResultDTO>> groupByProject = projectList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getProjectId));
AtomicReference<Boolean> autoSelf = new AtomicReference<>(true);
AtomicReference<Integer> count = new AtomicReference<>(NumConstant.ZERO);
groupByProject.forEach((projectId,projects) -> {
String disposeGrid = projects.get(NumConstant.ZERO).getGridId();
projects.forEach(p -> {
if (!disposeGrid.equals(p.getGridId())){
autoSelf.set(false);
}
});
if (autoSelf.get()) {
count.getAndSet(count.get() + NumConstant.ONE);
}
});
autoMap.put(gridId,count.get());
autoMap.put(gridId,projectList.size());
});
}
//网格办结项目数
List<GridProjectClosedTotalResultDTO> gridProjectClosedTotalList = projectMainService.selectGridClosedProject(customerId, monthId, ExtractConstant.CLOSED);
List<GridProjectClosedTotalResultDTO> gridProjectClosedTotalList = projectMainService.selectGridClosedProject(result.stream().map(m -> m.getGridId()).collect(Collectors.toList()), monthId, ExtractConstant.CLOSED);
//网格吹哨部门准确率 【没被退回的项目数/项目总数 】
List<TransferRightRatioResultDTO> transferRightRatioResultDTOS = projectMainService.selectTransferRightRatio(customerId, monthId);
List<TransferRightRatioResultDTO> transferRightRatioResultDTOS1 = projectLogService.selectNotReturn(customerId, monthId);
if (!CollectionUtils.isEmpty(transferRightRatioResultDTOS1)){
transferRightRatioResultDTOS.forEach(r -> {
transferRightRatioResultDTOS1.forEach(t -> {
r.setStatus(r.getProjectId().equals(t.getProjectId()) ? true : false);
});
});
transferRightRatioResultDTOS.forEach(r -> transferRightRatioResultDTOS1.forEach(t -> {
r.setStatus(r.getProjectId().equals(t.getProjectId()));
}));
}else {
transferRightRatioResultDTOS.forEach(r -> {
r.setStatus(false);
});
transferRightRatioResultDTOS.forEach(r -> r.setStatus(false));
}
Map<String, List<TransferRightRatioResultDTO>> groupByGridProject = transferRightRatioResultDTOS.stream().collect(Collectors.groupingBy(TransferRightRatioResultDTO::getGridId));
Map<String,BigDecimal> notReturnMap = new HashMap<>(16);
@ -303,9 +285,11 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
List<ProjectEvaluateResultDTO> projectEvaluateList = projectLogService.selectProjectEvaluate(customerId, monthId);
Map<String,BigDecimal> resultSatisfactionScore = new HashMap<>(16);
if (!CollectionUtils.isEmpty(projectEvaluateList)){
// 根据网格分组
Map<String, List<ProjectEvaluateResultDTO>> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId));
groupByGrid.forEach((gridId,projectEvaluateInfoList) -> {
Map<String,Integer> scoreMap = new HashMap<>(16);
// 根据项目分组
Map<String, List<ProjectEvaluateResultDTO>> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId));
groupByProject.forEach((projectId,projectList) -> {
projectList.forEach(project -> {
@ -374,17 +358,21 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
});
}
// 5. 网格内解决的项目的满意度
resultSatisfactionScore.forEach((k, v) -> {
if (r.getGridId().equals(k)) {
r.setSatisfactionRatio(v);
}
});
if (!CollectionUtils.isEmpty(resultSatisfactionScore)){
resultSatisfactionScore.forEach((k, v) -> {
if (r.getGridId().equals(k)) {
r.setSatisfactionRatio(v);
}
});
}
// 6. 网格自治项目数
autoMap.forEach((k, v) -> {
if (r.getGridId().equals(k)) {
r.setSelfSolveProjectCount(v);
}
});
if (!CollectionUtils.isEmpty(autoMap)){
autoMap.forEach((k, v) -> {
if (r.getGridId().equals(k)) {
r.setSelfSolveProjectCount(v);
}
});
}
});
delGovernAbility(customerId, monthId);
List<List<GovernAbilityGridMonthlyFormDTO>> resultList = ListUtils.partition(result, NumConstant.ONE_HUNDRED);

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

@ -47,4 +47,12 @@ public interface FactOriginProjectCategoryDailyService extends BaseService<FactO
* @Date 2021/3/23 9:56
**/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryGridDailyDTO(String customerId);
/**
* @Description 查询客户下组织直接立项的各项目分类下的项目数量筛选组织创建的项目fact_origin_project_main_daily表gridId为空
* @Param orgIds
* @author zxc
* @date 2021/4/13 下午4:36
*/
List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId);
}

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

@ -18,7 +18,6 @@
package com.epmet.service.evaluationindex.extract.todata;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.extract.FactOriginProjectMainDailyDTO;
import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO;
import com.epmet.dto.extract.result.OrgStatisticsResultDTO;
@ -27,11 +26,12 @@ import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO;
import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
import java.util.List;
import java.util.Map;
/**
* 项目主表_日统计
@ -41,66 +41,6 @@ import java.util.Map;
*/
public interface FactOriginProjectMainDailyService extends BaseService<FactOriginProjectMainDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactOriginProjectMainDailyDTO>
* @author generator
* @date 2020-09-16
*/
PageData<FactOriginProjectMainDailyDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactOriginProjectMainDailyDTO>
* @author generator
* @date 2020-09-16
*/
List<FactOriginProjectMainDailyDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactOriginProjectMainDailyDTO
* @author generator
* @date 2020-09-16
*/
FactOriginProjectMainDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-09-16
*/
void save(FactOriginProjectMainDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-09-16
*/
void update(FactOriginProjectMainDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-09-16
*/
void delete(String[] ids);
/**
* 获取客户下项目
* @author zhaoqifeng
@ -121,13 +61,13 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
/**
* @Description 网格办结项目数
* @param customerId
* @param gridIds
* @param monthId
* @param status
* @author zxc
* @date 2020/9/18 2:06 下午
*/
List<GridProjectClosedTotalResultDTO> selectGridClosedProject(String customerId,String monthId,String status);
List<GridProjectClosedTotalResultDTO> selectGridClosedProject(List<String> gridIds,String monthId,String status);
List<TransferRightRatioResultDTO> selectTransferRightRatio(String customerId,String monthId);
@ -275,6 +215,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ProjectTotalResultDTO> selectProjectTotal(String customerId,String dateId,String monthId);
/**
* @Description 组织查询项目总数
* @Param orgIds
* @Param dateId
* @Param monthId
* @author zxc
* @date 2021/4/12 下午5:12
*/
List<ProjectTotalResultDTO> selectProjectTotalByOrg(List<String> orgIds,String dateId,String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
@ -284,6 +234,15 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ResolvedNumResultDTO> selectResolvedNum(String customerId, String dateId);
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:28
*/
List<ResolvedNumResultDTO> selectResolvedNumByOrg(List<String> orgIds, String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -293,6 +252,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(String customerId, String dateId,List<String> activeCodes);
/**
* @Description 组织 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:52
*/
List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(List<String> orgIds, String dateId,List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId
@ -302,6 +271,15 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ProjectIncrResultDTO> selectProjectIncr(String customerId, String monthId);
/**
* @Description 组织查询本月新增项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:19
*/
List<ProjectIncrResultDTO> selectProjectIncrByOrg(List<String> orgIds, String monthId);
/**
* @Description 根据状态查询项目数
* @Param customerId
@ -312,6 +290,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<UnClosedTotalResultDTO> selectProjectCount(String customerId, String monthId, String status);
/**
* @Description 组织根据状态查询项目数
* @Param orgIds
* @Param monthId
* @Param status
* @author zxc
* @date 2021/4/16 上午9:24
*/
List<UnClosedTotalResultDTO> selectProjectCountByOrg(List<String> orgIds, String monthId, String status);
/**
* @Description 本月新增结案项目数
* @Param customerId
@ -321,6 +309,15 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ClosedIncrResultDTO> selectClosedIncr(String customerId, String monthId);
/**
* @Description 组织本月新增结案项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:33
*/
List<ClosedIncrResultDTO> selectClosedIncrByOrg(List<String> orgIds, String monthId);
/**
* @Description 初始化screen_project_data数据
* 如果是dateId不为空则查询前一天的数据
@ -340,4 +337,24 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
void computerIfExceed(List<ScreenProjectDataDTO> list,Integer exceedLimit,Integer about2exceedLimit);
}
/**
* desc: 条件获取项目数据
*
* @param param
* @return java.util.List<com.epmet.dto.extract.FactOriginProjectMainDailyEntity>
* @author LiuJanJun
* @date 2021/4/12 11:07 上午
*/
List<FactOriginProjectMainDailyEntity> getProjectForDiff(ScreenCentralZoneDataFormDTO param);
/**
* desc: 根据项目数据 获取相关连的项目耗时
*
* @param param
* @return java.util.List<com.epmet.dto.extract.FactOriginProjectOrgPeriodDailyEntity>
* @author LiuJanJun
* @date 2021/4/12 1:53 下午
*/
List<FactOriginProjectOrgPeriodDailyEntity> getProjectPeriod(ScreenCentralZoneDataFormDTO param);
}

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

@ -32,6 +32,7 @@ import com.epmet.service.Issue.IssueProjectCategoryDictService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectCategoryDailyService;
import com.epmet.service.project.ProjectService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -119,4 +120,18 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl<F
List<ScreenProjectCategoryGridDailyDTO> list=baseDao.selectListProjectCategoryGridDailyDTO(customerId);
return list;
}
/**
* @Description 查询客户下组织直接立项的各项目分类下的项目数量筛选组织创建的项目fact_origin_project_main_daily表gridId为空
* @Param orgIds
* @author zxc
* @date 2021/4/13 下午4:36
*/
@Override
public List<ScreenProjectCategoryGridDailyDTO> selectListProjectCategoryByOrg(List<String> orgIds,String customerId) {
if (!CollectionUtils.isEmpty(orgIds)){
return new ArrayList<>();
}
return baseDao.selectListProjectCategoryByOrg(orgIds,customerId);
}
}

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

@ -156,7 +156,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl<FactOr
*/
@Override
public List<AutoNoMyResultDTO> selectProjectAutoNoMy(String customerId, String monthId) {
return baseDao.selectProjectAutoNoMy(customerId, monthId);
// return baseDao.selectProjectAutoNoMy(customerId, monthId);
return baseDao.selectProjectAutoNoMyPlus(customerId, monthId);
}
@Override

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

@ -17,14 +17,9 @@
package com.epmet.service.evaluationindex.extract.todata.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.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant;
@ -39,17 +34,22 @@ import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.result.CostDayResultDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -58,6 +58,7 @@ import java.util.stream.Collectors;
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-16
*/
@Slf4j
@Service
@DataSource(DataSourceConstant.STATS)
public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactOriginProjectMainDailyDao, FactOriginProjectMainDailyEntity> implements FactOriginProjectMainDailyService {
@ -66,57 +67,6 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient;
@Autowired
private FactOriginProjectOrgPeriodDailyDao periodDao;
@Override
public PageData<FactOriginProjectMainDailyDTO> page(Map<String, Object> params) {
IPage<FactOriginProjectMainDailyEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, FactOriginProjectMainDailyDTO.class);
}
@Override
public List<FactOriginProjectMainDailyDTO> list(Map<String, Object> params) {
List<FactOriginProjectMainDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactOriginProjectMainDailyDTO.class);
}
private QueryWrapper<FactOriginProjectMainDailyEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<FactOriginProjectMainDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public FactOriginProjectMainDailyDTO get(String id) {
FactOriginProjectMainDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactOriginProjectMainDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactOriginProjectMainDailyDTO dto) {
FactOriginProjectMainDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactOriginProjectMainDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactOriginProjectMainDailyDTO dto) {
FactOriginProjectMainDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactOriginProjectMainDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public List<FactOriginProjectMainDailyDTO> getProjectByCustomer(String customerId) {
@ -135,15 +85,18 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
/**
* @Description 网格办结项目数
* @param customerId
* @param gridIds
* @param monthId
* @param status
* @author zxc
* @date 2020/9/18 2:06 下午
*/
@Override
public List<GridProjectClosedTotalResultDTO> selectGridClosedProject(String customerId, String monthId, String status) {
return baseDao.selectGridClosedProject(customerId, monthId,status);
public List<GridProjectClosedTotalResultDTO> selectGridClosedProject(List<String> gridIds, String monthId, String status) {
if (CollectionUtils.isEmpty(gridIds)){
return new ArrayList<>();
}
return baseDao.selectGridClosedProject(gridIds, monthId,status);
}
@Override
@ -288,6 +241,15 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
@Override
public List<ProjectTotalResultDTO> selectProjectTotalByOrg(List<String> orgIds, String dateId, String monthId) {
if (!CollectionUtils.isEmpty(orgIds)){
List<ProjectTotalResultDTO> projectTotalResultDTOS = baseDao.selectProjectTotalByOrg(orgIds, dateId, monthId);
return projectTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询已解决项目数
* @Param customerId
@ -304,6 +266,22 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:29
*/
@Override
public List<ResolvedNumResultDTO> selectResolvedNumByOrg(List<String> orgIds, String dateId) {
if (!CollectionUtils.isEmpty(orgIds)){
List<ResolvedNumResultDTO> resolvedNumResultDTOS = baseDao.selectResolvedNumByOrg(orgIds, dateId);
return resolvedNumResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -320,6 +298,23 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:54
*/
@Override
public List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(List<String> orgIds, String dateId, List<String> activeCodes) {
if (!CollectionUtils.isEmpty(orgIds)){
List<EvaluateTotalResultDTO> evaluateTotalResultDTOS = baseDao.selectEvaluateCountByOrg(orgIds, dateId, activeCodes);
return evaluateTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询本月新增项目数
* @Param customerId
@ -336,6 +331,22 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织查询本月新增项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:19
*/
@Override
public List<ProjectIncrResultDTO> selectProjectIncrByOrg(List<String> orgIds, String monthId) {
if (!CollectionUtils.isEmpty(orgIds) && StringUtils.isNotBlank(monthId)){
List<ProjectIncrResultDTO> projectIncrResultDTOS = baseDao.selectProjectIncrByOrg(orgIds, monthId);
return projectIncrResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 根据状态查询项目数
* @Param customerId
@ -353,6 +364,23 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织根据状态查询项目数
* @Param orgIds
* @Param monthId
* @Param status
* @author zxc
* @date 2021/4/16 上午9:24
*/
@Override
public List<UnClosedTotalResultDTO> selectProjectCountByOrg(List<String> orgIds, String monthId, String status) {
if (!CollectionUtils.isEmpty(orgIds) && StringUtils.isNotBlank(monthId)){
List<UnClosedTotalResultDTO> resultDTOS = baseDao.selectProjectCountByOrg(orgIds, monthId, status);
return resultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 本月新增结案项目数
* @Param customerId
@ -369,6 +397,22 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织本月新增结案项目数
* @Param orgIds
* @Param monthId
* @author zxc
* @date 2021/4/16 上午9:33
*/
@Override
public List<ClosedIncrResultDTO> selectClosedIncrByOrg(List<String> orgIds, String monthId) {
if (!CollectionUtils.isEmpty(orgIds) && StringUtils.isNotBlank(monthId)){
List<ClosedIncrResultDTO> result = baseDao.selectClosedIncrByOrg(orgIds, monthId);
return result;
}
return new ArrayList<>();
}
/**
* @Description 初始化screen_project_data数据
* 如果是dateId不为空则查询前一天的数据
@ -387,7 +431,8 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
@Override
public List<ScreenProjectDataDTO> initNewScreenProjectData(String customerId,Integer rows , String dateId,Integer exceedLimit,Integer about2exceedLimit) {
boolean ifBeforeYesterday = true;
if(Integer.parseInt(DateUtils.getBeforeNDay(NumConstant.ONE)) > Integer.parseInt(dateId)){
int beforeDate = Integer.parseInt(DateUtils.getBeforeNDay(NumConstant.ONE));
if(beforeDate > Integer.parseInt(dateId)){
ifBeforeYesterday = false;
}
List<ScreenProjectDataDTO> projects = baseDao.initNewScreenProjectData(customerId, rows <= NumConstant.ZERO ? "" : dateId, dateId);
@ -421,6 +466,15 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
}
}
@Override
public List<FactOriginProjectMainDailyEntity> getProjectForDiff(ScreenCentralZoneDataFormDTO param) {
return baseDao.getProjectForDiff(param.getCustomerId(),param.getDateId());
}
@Override
public List<FactOriginProjectOrgPeriodDailyEntity> getProjectPeriod(ScreenCentralZoneDataFormDTO param) {
return baseDao.getProjectPeriodForDiff(param.getCustomerId(),param.getDateId());
}
}

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

@ -128,7 +128,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
factOriginProjectMainDailyService.deleteByDate(customerId, dateString);
if (!CollectionUtils.isEmpty(projectList)) {
//提取议题ID
List<String> issueIds = projectList.stream().map(ProjectDTO::getOriginId).collect(Collectors.toList());
List<String> issueIds =
projectList.stream().filter(item -> ProjectConstant.ISSUE.equals(item.getOrigin())).map(ProjectDTO::getOriginId).collect(Collectors.toList());
//获取议题信息
List<IssueDTO> issueList = issueService.getIssueInfoByIds(issueIds);
//提取话题ID
@ -144,18 +145,28 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity();
entity.setId(project.getId());
entity.setAgencyId(project.getAgencyId());
entity.setOrigin(project.getOrigin());
entity.setOriginId(project.getOriginId());
entity.setCustomerId(customerId);
entity.setYearId(dimId.getYearId());
entity.setQuarterId(dimId.getQuarterId());
entity.setMonthId(dimId.getMonthId());
entity.setWeekId(dimId.getWeekId());
entity.setDateId(dimId.getDateId());
entity.setIssueId(project.getOriginId());
if (ProjectConstant.ISSUE.equals(project.getOrigin())) {
entity.setIssueId(project.getOriginId());
} else {
entity.setIssueId("");
}
entity.setProjectStatus(project.getStatus());
entity.setIsResolved(project.getClosedStatus());
entity.setCreatedTime(project.getCreatedTime());
entity.setUpdatedTime(project.getUpdatedTime());
entity.setPids(project.getOrgIdPath());
entity.setIssueCreatorId("");
entity.setTopicId("");
entity.setTopicCreatorId("");
entity.setGridId("");
String[] pIds = project.getOrgIdPath().split(StrConstant.COLON);
if (pIds.length > 1) {
entity.setPid(pIds[pIds.length - 2]);
@ -168,17 +179,23 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
entity.setIsOverdue(NumConstant.ZERO_STR);
return entity;
}).collect(Collectors.toList());
list.forEach(entity -> issueList.stream().filter(issueDTO -> issueDTO.getId().equals(entity.getIssueId())).forEach(issue -> {
entity.setIssueCreatorId(issue.getCreatedBy());
entity.setTopicId(issue.getSourceId());
}));
list.forEach(entity -> topicList.stream().filter(topicDTO -> topicDTO.getId().equals(entity.getTopicId())).forEach(topic -> {
entity.setTopicCreatorId(topic.getCreatedBy());
entity.setGridId(topic.getGridId());
}));
list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> {
entity.setIsParty(NumConstant.ONE_STR);
}));
if (CollectionUtils.isNotEmpty(issueList)) {
list.forEach(entity -> issueList.stream().filter(issueDTO -> issueDTO.getId().equals(entity.getIssueId())).forEach(issue -> {
entity.setIssueCreatorId(issue.getCreatedBy());
entity.setTopicId(issue.getSourceId());
}));
}
if (CollectionUtils.isNotEmpty(topicList)) {
list.forEach(entity -> topicList.stream().filter(topicDTO -> topicDTO.getId().equals(entity.getTopicId())).forEach(topic -> {
entity.setTopicCreatorId(topic.getCreatedBy());
entity.setGridId(topic.getGridId());
}));
}
if (CollectionUtils.isNotEmpty(partyMemberList)) {
list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> {
entity.setIsParty(NumConstant.ONE_STR);
}));
}
list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> {
String[] orgIds = dto.getPIdPath().split(StrConstant.COLON);
String org = "";
@ -228,6 +245,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
entity.setOrgId(process.getGridId());
entity.setPid(process.getAgencyId());
}else{
entity.setOrgType(OrgTypeConstant.AGENCY);
entity.setOrgId(process.getAgencyId());
if(!process.getPids().contains(StrConstant.COLON)){
entity.setPids("");
entity.setPid(NumConstant.ZERO_STR);
@ -278,6 +297,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
entity.setOrgId(process.getGridId());
entity.setPid(process.getAgencyId());
} else {
entity.setOrgType(OrgTypeConstant.AGENCY);
entity.setOrgId(process.getAgencyId());
if (!process.getPids().contains(StrConstant.COLON)) {
entity.setPids("");
entity.setPid(NumConstant.ZERO_STR);
@ -358,6 +379,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
entity.setOrgId(process.getGridId());
entity.setPid(process.getAgencyId());
}else{
entity.setOrgType(OrgTypeConstant.AGENCY);
entity.setOrgId(process.getAgencyId());
if(!process.getPids().contains(StrConstant.COLON)){
entity.setPids("");
entity.setPid(NumConstant.ZERO_STR);

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

@ -26,4 +26,14 @@ public interface ScreenGrassrootsGovernDataAbsorptionService {
* @date 2020.09.25 10:00
**/
void difficultyDataHub(ScreenCentralZoneDataFormDTO param);
/**
* desc: 新的难点堵点抽取
*
* @param param
* @return boolean
* @author LiuJanJun
* @date 2021/4/9 6:05 下午
*/
boolean difficultyDataExtract(ScreenCentralZoneDataFormDTO param);
}

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

@ -171,7 +171,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
}
ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO();
param.setCustomerId(customerId);param.setDateId(dateId);
param.setCustomerId(customerId);
param.setDateId(dateId);
//中央区 screen_user_total_data
try {
screenCentralZoneDataAbsorptionService.centralZoneDataHub(param);
@ -181,7 +182,12 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
//基层治理- 难点赌点 screen_difficulty_data | screen_difficulty_img_data
try {
log.info("【难点赌点数据上报开始------】 当前客户Id{}",param.getCustomerId());
screenGrassrootsGovernDataAbsorptionService.difficultyDataHub(param);
//screenGrassrootsGovernDataAbsorptionService.difficultyDataHub(param);
ScreenCentralZoneDataFormDTO param2 = new ScreenCentralZoneDataFormDTO();
param2.setCustomerId(customerId);
param2.setDateId(null);
screenGrassrootsGovernDataAbsorptionService.difficultyDataExtract(param2);
log.info("【难点赌点数据上报结束------】 当前客户Id{}",param.getCustomerId());
}catch (Exception e){
log.error("基层治理-难点赌点抽取到大屏失败,customerId为:"+customerId+"dateId为:"+dateId, e);

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

@ -4,13 +4,22 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.dto.ProjectCategoryDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.org.GridInfoDTO;
import com.epmet.dto.project.result.ProjectLatestOperationResultDTO;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO;
import com.epmet.dto.topic.result.ResiTopicAndImgResultDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyImgDataEntity;
import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity;
import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
import com.epmet.entity.stats.DimAgencyEntity;
import com.epmet.service.Issue.IssueProjectCategoryDictService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.extract.toscreen.ScreenGrassrootsGovernDataAbsorptionService;
import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService;
@ -20,6 +29,7 @@ import com.epmet.service.org.CustomerGridService;
import com.epmet.service.point.UserPointService;
import com.epmet.service.project.ProjectProcessService;
import com.epmet.service.project.ProjectService;
import com.epmet.service.stats.DimAgencyService;
import com.epmet.service.topic.TopicService;
import com.epmet.service.user.UserService;
import lombok.extern.slf4j.Slf4j;
@ -49,6 +59,8 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
@Autowired
private CustomerGridService customerGridService;
@Autowired
private DimAgencyService dimAgencyService;
@Autowired
private UserPointService userPointService;
@Autowired
private CpcIndexCalculateService cpcIndexCalculateService;
@ -64,10 +76,13 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
private TopicService topicService;
@Autowired
private ProjectService projectService;
@Autowired
private IssueProjectCategoryDictService issueProjectCategoryDictService;
/**
* @Description 用户积分党员分值数据中转站
* @param param
* @return
* @Description 用户积分党员分值数据中转站
* @author wangc
* @date 2020.09.25 09:53
**/
@ -79,16 +94,16 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
//2.查询出客户下网格的相关信息
List<GridInfoDTO> gridList = customerGridService.queryGridInfoList(param.getCustomerId());
// list 转 map,以gridId为key,a = gridList,作为value,(o,n)->o 是遇到相同的gridId舍弃,(o,n)->n 是覆盖原来的gridId
Map<String,GridInfoDTO> gridMap = gridList.stream().collect(Collectors.toMap(GridInfoDTO :: getGridId,a -> a,(o, n) -> o));
Map<String, GridInfoDTO> gridMap = gridList.stream().collect(Collectors.toMap(GridInfoDTO::getGridId, a -> a, (o, n) -> o));
//3.查询出客户下用户的累计积分(累计值,没有时间概念,否则需要查询积分明细计算出评价周期末的得分)
Map<String,Integer> pointMap = userPointService.getUserPointMap(param.getCustomerId());
Map<String, Integer> pointMap = userPointService.getUserPointMap(param.getCustomerId());
//4.查询出客户下党员的分值
String dateId = param.getDateId();
if(StringUtils.isEmpty(dateId)){
if (StringUtils.isEmpty(dateId)) {
//如果没有传月份,则使用当前时间的上一个月
dateId = DateUtils.getBeforeNMonth(NumConstant.ONE);
}else{
} else {
String dateType = DateUtils.identifyTimeDimension(dateId);
if (StringUtils.isEmpty(dateType) || !StringUtils.equalsAny(dateType, "date", "month")) {
dateId = DateUtils.getBeforeNMonth(NumConstant.ONE);
@ -98,21 +113,21 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
}
final String finalDateId = dateId;
// 查询党员积分
Map<String, BigDecimal> scoreMap = cpcIndexCalculateService.getCpcScore(param.getCustomerId(),dateId);
Map<String, BigDecimal> scoreMap = cpcIndexCalculateService.getCpcScore(param.getCustomerId(), dateId);
//剔除垃圾数据
registeredUsers.removeIf(user -> null == gridMap.get(user.getGridId()));
//5.整合数据
if(!CollectionUtils.isEmpty(registeredUsers)){
if (!CollectionUtils.isEmpty(registeredUsers)) {
registeredUsers.forEach(user -> {
GridInfoDTO gridInfo = gridMap.get(user.getGridId());
if(null != gridInfo){
if (null != gridInfo) {
user.setGridName(gridInfo.getGridName());
user.setOrgId(gridInfo.getAgencyId());
user.setOrgName(gridInfo.getOrgName());
//原始数据Pid使用英文:隔开,大屏数据要求按照英文,隔开
user.setAllParentIds(gridInfo.getPids().replaceAll(StrConstant.COLON,StrConstant.COMMA));
user.setAllParentIds(gridInfo.getPids().replaceAll(StrConstant.COLON, StrConstant.COMMA));
}
Integer point = pointMap.get(user.getUserId());
BigDecimal score = scoreMap.get(user.getUserId());
@ -127,21 +142,23 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
}
/**
* @Description 难点赌点数据中转站
* @param param
* @return
* @Description 难点赌点数据中转站
* @author wangc
* @date 2020.09.25 10:00
**/
@Override
public void difficultyDataHub(ScreenCentralZoneDataFormDTO param) {
//查询数据
List<ScreenDifficultyDataEntity> difficulties = factOriginProjectMainDailyService.getDifficultyBaseInfo(param.getCustomerId(),projectService.getOvertimeProjectByParameter(param.getCustomerId()));
if(CollectionUtils.isEmpty(difficulties)) return;
List<ScreenDifficultyDataEntity> difficulties = factOriginProjectMainDailyService.getDifficultyBaseInfo(param.getCustomerId(), projectService.getOvertimeProjectByParameter(param.getCustomerId()));
if (CollectionUtils.isEmpty(difficulties)) {
return;
}
//2.查询出客户下网格的相关信息
List<GridInfoDTO> gridList = customerGridService.queryGridInfoList(param.getCustomerId());
Map<String,GridInfoDTO> gridMap = gridList.stream().collect(Collectors.toMap(GridInfoDTO :: getGridId,a -> a,(o, n) -> o));
Map<String, GridInfoDTO> gridMap = gridList.stream().collect(Collectors.toMap(GridInfoDTO::getGridId, a -> a, (o, n) -> o));
//剔除垃圾数据(本次需要更新的数据集)
//for(Iterator<ScreenDifficultyDataEntity> iter = difficulties.iterator(); iter.hasNext();){
@ -150,33 +167,36 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
// iter.remove();
// }
//}
difficulties.removeIf( diff -> null == gridMap.get(diff.getOrgId()));
difficulties.removeIf(diff -> null == gridMap.get(diff.getOrgId()));
List<String> projectIds = difficulties.stream().map(ScreenDifficultyDataEntity :: getEventId).distinct().collect(Collectors.toList());
List<String> projectIds = difficulties.stream().map(ScreenDifficultyDataEntity::getEventId).distinct().collect(Collectors.toList());
//最近一次操作
Map<String, ProjectLatestOperationResultDTO> latestOperationMap = projectProcessService.getLatestOperation(projectIds,param.getCustomerId());
Map<String, ProjectLatestOperationResultDTO> latestOperationMap = projectProcessService.getLatestOperation(projectIds, param.getCustomerId());
//图片
List<ProjectSourceMapFormDTO> projectSourceMap = difficulties.stream().map(diff->{
ProjectSourceMapFormDTO map = new ProjectSourceMapFormDTO();map.setProjectId(diff.getEventId());map.setSourceId(diff.getEventImgUrl());return map;
List<ProjectSourceMapFormDTO> projectSourceMap = difficulties.stream().map(diff -> {
ProjectSourceMapFormDTO map = new ProjectSourceMapFormDTO();
map.setProjectId(diff.getEventId());
map.setSourceId(diff.getEventImgUrl());
return map;
}).collect(Collectors.toList());
//factOriginProjectMainDailyService.getNewProject(param.getCustomerId(),projectIds);
Map<String,List<ScreenDifficultyImgDataEntity>> imgMap = topicService.getTopicImgs(projectSourceMap);
Map<String, List<ScreenDifficultyImgDataEntity>> imgMap = topicService.getTopicImgs(projectSourceMap);
Map<String,String> contentMap = topicService.getTopicContent(projectSourceMap);
Map<String, String> contentMap = topicService.getTopicContent(projectSourceMap);
difficulties.forEach( diff -> {
difficulties.forEach(diff -> {
List<ScreenDifficultyImgDataEntity> figureList = CollectionUtils.isEmpty(imgMap) ? null : imgMap.get(diff.getEventId());
diff.setEventImgUrl(CollectionUtils.isEmpty(figureList) ? "" : figureList.get(NumConstant.ZERO).getEventImgUrl());
List<ScreenDifficultyImgDataEntity> figureList = CollectionUtils.isEmpty(imgMap) ? null : imgMap.get(diff.getEventId());
diff.setEventImgUrl(CollectionUtils.isEmpty(figureList) ? "" : figureList.get(NumConstant.ZERO).getEventImgUrl());
if(!CollectionUtils.isEmpty(contentMap)) {
if (!CollectionUtils.isEmpty(contentMap)) {
diff.setEventContent(contentMap.get(diff.getEventId()));
}
if(! CollectionUtils.isEmpty(latestOperationMap)){
if (!CollectionUtils.isEmpty(latestOperationMap)) {
ProjectLatestOperationResultDTO oper = latestOperationMap.get(diff.getEventId());
if(null != oper){
if (null != oper) {
diff.setLatestOperateDesc(oper.getOperationName());
diff.setEventTitle(oper.getTitle());
diff.setEventCostTime(oper.getCostTime());
@ -196,4 +216,261 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
screenDifficultyDataService.dataClean(param.getCustomerId(),difficulties,imgList);
log.info("【大屏数据抽取-难点赌点执行完毕】 客户Id{} 难点赌点数据{}",param.getCustomerId(),JSON.toJSONString(difficulties));
}
@Override
public boolean difficultyDataExtract(ScreenCentralZoneDataFormDTO param) {
//1.根据客户Id 获取所有项目数据
List<FactOriginProjectMainDailyEntity> difficultyBaseList = factOriginProjectMainDailyService.getProjectForDiff(param);
if (CollectionUtils.isEmpty(difficultyBaseList)) {
log.warn("difficultyDataExtract customerId:{} have any project", param.getCustomerId());
return false;
}
//获取业务库项目标题
List<ProjectDTO> bizProjectInfoList = projectService.getProjectInfo(param.getCustomerId(), null);
if (CollectionUtils.isEmpty(bizProjectInfoList)) {
log.warn("difficultyDataExtract customerId:{} have any project", param.getCustomerId());
return false;
}
Map<String, ProjectDTO> bizProjectInfoMap = bizProjectInfoList.stream().collect(Collectors.toMap(ProjectDTO::getId, o -> o, (o1, o2) -> o1));
//获取agency维度
List<DimAgencyEntity> agencyList = dimAgencyService.getAgencyListByCustomerId(param.getCustomerId());
Map<String, DimAgencyEntity> agencyMap = agencyList.stream().collect(Collectors.toMap(DimAgencyEntity::getId, o -> o, (o1, o2) -> o1));
//获取grid维度
List<GridInfoDTO> gridList = customerGridService.queryGridInfoList(param.getCustomerId());
Map<String, GridInfoDTO> gridMap = gridList.stream().collect(Collectors.toMap(GridInfoDTO::getGridId, o -> o, (o1, o2) -> o1));
//获取客户下所有项目分类
List<IssueProjectCategoryDictEntity> categoryList = issueProjectCategoryDictService.getAllByCId(param.getCustomerId());
//项目分类数据 todo 暂时查询所有
List<ProjectCategoryDTO> projectCategoryData = projectService.getProjectCategoryData(param.getCustomerId(), null);
//key projectId:categoryCode Set
Map<String, List<String>> projectCategoryMap = projectCategoryData.stream()
.collect(Collectors.groupingBy(ProjectCategoryDTO::getProjectId, Collectors.mapping(ProjectCategoryDTO::getCategoryCode, Collectors.toList())));
//2.获取项目的所有节点耗时数据
List<FactOriginProjectOrgPeriodDailyEntity> projectPeriodList = factOriginProjectMainDailyService.getProjectPeriod(param);
//处理部门数去重(只要流转到就算)
Map<String, Set<String>> orgCountMap = new HashMap<>();
//被处理次数
Map<String, Integer> handleCountMap = new HashMap<>();
Set<String> valideProjectIdSet = fillAnyCountAndValidProject(param, projectPeriodList, orgCountMap, handleCountMap);
List<ScreenDifficultyDataEntity> diffList = new ArrayList<>();
List<ScreenDifficultyImgDataEntity> imgDataEntities = new ArrayList<>();
for (FactOriginProjectMainDailyEntity project : difficultyBaseList) {
if (agencyMap.get(project.getAgencyId()) == null || bizProjectInfoMap.get(project.getId()) == null) {
log.warn("未获取到相关的项目信息或者项目的所属组织信息,agencyId:{},projectId:{}",project.getAgencyId(),project.getId());
continue;
}
//判断是否符合难点堵点条件
if (!valideProjectIdSet.contains(project.getId())) {
continue;
}
ScreenDifficultyDataEntity diffEntity = buildBaseDiffEntity(project, agencyMap, gridMap, bizProjectInfoMap);
Set<String> regCount = orgCountMap.get(project.getId());
if (regCount != null) {
diffEntity.setEventReOrg(regCount.size());
} else {
diffEntity.setEventReOrg(0);
}
Integer handleOrgCount = handleCountMap.get(project.getId());
if (handleOrgCount != null) {
diffEntity.setEventHandledCount(handleOrgCount);
} else {
diffEntity.setEventHandledCount(0);
}
diffEntity.setDataEndTime(StringUtils.isBlank(param.getDateId())?DateUtils.getBeforeNDay(NumConstant.ONE):param.getDateId());
setCategoryInfo(diffEntity, project.getId(), categoryList, projectCategoryMap);
if (StringUtils.isNotBlank(project.getTopicId())) {
//获取图片及话题内容
ResiTopicAndImgResultDTO topicInfo = topicService.getTopicAndImgs(project.getTopicId(), "image");
if (topicInfo != null) {
diffEntity.setEventImgUrl(topicInfo.getTopicImgList().get(NumConstant.ZERO).getAttachmentUrl());
diffEntity.setEventContent(topicInfo.getTopicContent());
topicInfo.getTopicImgList().forEach(img -> {
ScreenDifficultyImgDataEntity imgData = new ScreenDifficultyImgDataEntity();
imgData.setEventId(project.getId());
imgData.setEventImgUrl(img.getAttachmentUrl());
imgData.setSort(img.getSort());
imgDataEntities.add(imgData);
imgData.setCustomerId(param.getCustomerId());
});
log.info("projectId:{} imgs:{}", project.getId(), imgDataEntities.stream().filter(o -> o.getEventId().equals(project.getId())).count());
}
}
diffList.add(diffEntity);
}
List<ScreenDifficultyDataEntity> collect = diffList.stream().filter(o -> o.getEventCostTime() < 5 * 24 * 60).collect(Collectors.toList());
log.info("========:" + JSON.toJSONString(collect));
log.info("========:" + JSON.toJSONString(diffList));
log.info("========:" + JSON.toJSONString(imgDataEntities));
screenDifficultyDataService.dataClean(param.getCustomerId(),diffList,imgDataEntities);
log.info("【大屏数据抽取-难点赌点执行完毕】 客户Id{} 难点赌点数据{}", param.getCustomerId(), JSON.toJSONString(diffList));
//3.获取项目的最后操作记录
return true;
}
/**
* desc:筛选出符合条件的的项目超过超期时间的为超期项目和处理的部门数及处理次数
* @param param
* @param projectPeriodList
* @param orgCountMap
* @param handleCountMap
* @return
*/
private Set<String> fillAnyCountAndValidProject(ScreenCentralZoneDataFormDTO param, List<FactOriginProjectOrgPeriodDailyEntity> projectPeriodList, Map<String, Set<String>> orgCountMap, Map<String, Integer> handleCountMap) {
//已经结案的项目的结案时间
Set<String> valideProjectIdSet = new HashSet<>();
Map<String, Date> closeProjectDateMap = projectPeriodList.stream().filter(o -> ProjectConstant.CLOSE.equals(o.getOperation()))
.collect(Collectors.toMap(FactOriginProjectOrgPeriodDailyEntity::getProjectId, FactOriginProjectOrgPeriodDailyEntity::getHandledDate, (o1, o2) -> o1));
//超期项目阈值
Integer overtimeConfig = projectService.getOvertimeProjectByParameter(param.getCustomerId());
projectPeriodList.forEach(period -> {
Set<String> orgCount = orgCountMap.get(period.getProjectId());
if (orgCount == null) {
orgCount = new HashSet<>();
}
orgCount.add(period.getOrgId());
orgCountMap.put(period.getProjectId(), orgCount);
if (ProjectConstant.RESOLVED.equals(period.getIsResolved())) {
Integer handleCount = handleCountMap.getOrDefault(period.getProjectId(), 0);
handleCountMap.put(period.getProjectId(), ++handleCount);
}
//筛选出 项目的结案时间 未结案的为当前时间(结案只有一条记录)
if (period.getHandledDate() != null) {
if (period.getHandledDate().getTime() - period.getInformedDate().getTime() > overtimeConfig * 1000 * 60 * 60 * 24) {
valideProjectIdSet.add(period.getProjectId());
}
} else {
Date finishDate = closeProjectDateMap.getOrDefault(period.getProjectId(), new Date());
if (finishDate.getTime() - period.getInformedDate().getTime() > overtimeConfig * 1000 * 60 * 60 * 24) {
valideProjectIdSet.add(period.getProjectId());
}
}
});
return valideProjectIdSet;
}
/**
* desc设置项目类别
* @param diffEntity
* @param projectId
* @param categoryList
* @param projectCategoryMap
*/
private void setCategoryInfo(ScreenDifficultyDataEntity diffEntity, String projectId, List<IssueProjectCategoryDictEntity> categoryList, Map<String, List<String>> projectCategoryMap) {
List<String> categorySet = projectCategoryMap.get(projectId);
if (CollectionUtils.isEmpty(categorySet)) {
return;
}
projectCategoryMap.forEach((k, v) -> {
StringBuilder code = new StringBuilder();
StringBuilder name = new StringBuilder();
v.forEach(categoryCode -> {
List<IssueProjectCategoryDictEntity> childCategory = new ArrayList<>();
getParentNode(childCategory, categoryList, categoryCode);
String categoryCodes = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryCode).collect(Collectors.joining(StrConstant.HYPHEN));
String categoryNames = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryName).collect(Collectors.joining(StrConstant.HYPHEN));
code.append(categoryCodes).append(StrConstant.COMMA_ZH);
name.append(categoryNames).append(StrConstant.COMMA_ZH);
});
code.deleteCharAt(code.length() - NumConstant.ONE);
name.deleteCharAt(name.length() - NumConstant.ONE);
diffEntity.setEventCategoryCode(code.toString());
diffEntity.setEventCategoryName(name.toString());
log.info("code:{}",code.toString());
log.info("name:{}",name.toString());
});
}
/**
* desc:构建难点堵点基础数据
* @param project
* @param agencyMap
* @param gridMap
* @param bizProjectInfoMap
* @return
*/
private ScreenDifficultyDataEntity buildBaseDiffEntity(FactOriginProjectMainDailyEntity project, Map<String, DimAgencyEntity> agencyMap,
Map<String, GridInfoDTO> gridMap, Map<String, ProjectDTO> bizProjectInfoMap) {
ProjectDTO projectDTO = bizProjectInfoMap.get(project.getId());
ScreenDifficultyDataEntity diff = new ScreenDifficultyDataEntity();
diff.setCustomerId(project.getCustomerId());
//大屏的是逗号隔开的
String allPIds = project.getPids().replaceAll(StrConstant.COLON, StrConstant.COMMA);
DimAgencyEntity agencyInfoDTO = agencyMap.get(project.getAgencyId());
diff.setEventTitle(projectDTO.getTitle());
if (StringUtils.isBlank(project.getGridId())) {
diff.setOrgType("agency");
diff.setOrgId(project.getAgencyId());
diff.setParentId(project.getPid());
diff.setAllParentIds(allPIds.replace(StrConstant.COMMA + project.getAgencyId(), StrConstant.EPMETY_STR));
diff.setOrgName(agencyInfoDTO.getAgencyName());
if (StringUtils.isNotBlank(agencyInfoDTO.getAllParentName())) {
diff.setEventSource(agencyInfoDTO.getAllParentName().concat(StrConstant.HYPHEN.concat(diff.getOrgName())));
} else {
diff.setEventSource(agencyInfoDTO.getAgencyName());
}
//如果是组织的则 设置背景为内容
diff.setEventContent(projectDTO.getBackGround());
} else {
diff.setOrgType("grid");
diff.setOrgId(project.getGridId());
diff.setParentId(project.getAgencyId());
//所有上级id 即包含agencyId在内的所有pids
diff.setAllParentIds(allPIds);
GridInfoDTO gridInfoDTO = gridMap.get(project.getGridId());
diff.setOrgName(gridInfoDTO.getGridName());
String agencyAndGridName = agencyInfoDTO.getAgencyName().concat(StrConstant.HYPHEN.concat(diff.getOrgName()));
if (StringUtils.isNotBlank(agencyInfoDTO.getAllParentName())) {
diff.setEventSource(agencyInfoDTO.getAllParentName().concat(StrConstant.HYPHEN).concat(agencyAndGridName));
} else {
diff.setEventSource(agencyAndGridName);
}
}
diff.setEventId(project.getId());
String projectStatus = project.getProjectStatus();
diff.setEventStatusCode(projectStatus);
if (ProjectConstant.PENDING.equals(projectStatus)) {
diff.setEventStatusDesc("处理中");
//项目耗时 当前时间-项目创建时间
diff.setEventCostTime((int) ((System.currentTimeMillis() - projectDTO.getCreatedTime().getTime()) / 1000 / 60));
} else {
diff.setEventStatusDesc("已结案");
//项目耗时 更新时间-项目创建时间
diff.setEventCostTime((int) ((projectDTO.getUpdatedTime().getTime() - projectDTO.getCreatedTime().getTime()) / 1000 / 60));
}
//暂时不放内容 用不到
diff.setLatestOperateDesc("");
return diff;
}
/**
* 递归查询父节点
*
* @param childCategory
* @param categoryList
* @param categoryCode
*/
private void getParentNode(List<IssueProjectCategoryDictEntity> childCategory, List<IssueProjectCategoryDictEntity> categoryList, String categoryCode) {
categoryList.stream()
.filter(item -> Objects.nonNull(categoryCode) && Objects.equals(categoryCode, item.getCategoryCode()))
.forEach(menu -> {
getParentNode(childCategory, categoryList, menu.getParentCategoryCode());
childCategory.add(menu);
});
}
}

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

@ -31,12 +31,14 @@ import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryGridDailyDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryOrgDailyDao;
import com.epmet.dto.ScreenCustomerGridDTO;
import com.epmet.dto.extract.result.CustomerAgencyInfoResultDTO;
import com.epmet.dto.screen.ScreenProjectCategoryGridDailyDTO;
import com.epmet.dto.screen.ScreenProjectCategoryOrgDailyDTO;
import com.epmet.dto.screen.result.CategoryProjectResultDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.crm.CustomerRelationEntity;
import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryOrgDailyEntity;
import com.epmet.service.crm.CustomerRelationService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectCategoryDailyService;
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService;
import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService;
import com.epmet.service.evaluationindex.screen.ScreenProjectCategoryOrgDailyService;
@ -74,6 +76,8 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
private ScreenProjectCategoryGridDailyDao gridDailyDao;
@Autowired
private ScreenCustomerGridService gridService;
@Autowired
private FactOriginProjectCategoryDailyService factOriginProjectCategoryDailyService;
@Override
public PageData<ScreenProjectCategoryOrgDailyDTO> page(Map<String, Object> params) {
@ -194,23 +198,23 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
Map<String, List<CustomerAgencyInfoResultDTO>> groupByLevel = agencyIdList.stream().collect(Collectors.groupingBy(CustomerAgencyInfoResultDTO::getLevel));
if (groupByLevel.containsKey(ScreenConstant.COMMUNITY)){
// 社区级别
disposeOneCustomerSub(ScreenConstant.COMMUNITY,true,customerId,dateId);
disposeOneCustomerSub(ScreenConstant.COMMUNITY,true,customerId,dateId,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.STREET)){
// 街道级别
disposeOneCustomerSub(ScreenConstant.STREET,false,customerId,dateId);
disposeOneCustomerSub(ScreenConstant.STREET,false,customerId,dateId,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.DISTRICT)){
// 区级
disposeOneCustomerSub(ScreenConstant.DISTRICT,false,customerId,dateId);
disposeOneCustomerSub(ScreenConstant.DISTRICT,false,customerId,dateId,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.CITY)){
// 市级
disposeOneCustomerSub(ScreenConstant.CITY,false,customerId,dateId);
disposeOneCustomerSub(ScreenConstant.CITY,false,customerId,dateId,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.PROVINCE)){
// 省级
disposeOneCustomerSub(ScreenConstant.PROVINCE,false,customerId,dateId);
disposeOneCustomerSub(ScreenConstant.PROVINCE,false,customerId,dateId,agencyIdList);
}
}
}
@ -224,7 +228,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
* @author zxc
* @date 2021/3/25 上午10:44
*/
public void disposeOneCustomerSub(String level, Boolean isGrid, String customerId, String dateId){
public void disposeOneCustomerSub(String level, Boolean isGrid, String customerId, String dateId,List<CustomerAgencyInfoResultDTO> agencyIdList){
List<ScreenProjectCategoryOrgDailyEntity> result = new ArrayList<>();
if (isGrid){
// 是社区级别
@ -255,6 +259,38 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
}
result = ConvertUtils.sourceToTarget(categoryProjectResultDTOS,ScreenProjectCategoryOrgDailyEntity.class);
}
// 组织项目分类 项目数
Map<String, List<CustomerAgencyInfoResultDTO>> groupByLevel = agencyIdList.stream().collect(Collectors.groupingBy(CustomerAgencyInfoResultDTO::getLevel));
List<CustomerAgencyInfoResultDTO> levelAgencyInfo = groupByLevel.get(level);
if (!CollectionUtils.isEmpty(levelAgencyInfo)){
List<String> orgIds = levelAgencyInfo.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId);
if (!CollectionUtils.isEmpty(result)){
if (!CollectionUtils.isEmpty(screenProjectCategory)){
result.forEach(r -> {
screenProjectCategory.forEach(pc -> {
if (r.getOrgId().equals(pc.getOrgId()) && r.getCategoryCode().equals(pc.getCategoryCode())){
pc.setStatus(true);
r.setProjectTotal(r.getProjectTotal() + pc.getProjectTotal());
}
});
});
Map<Boolean, List<ScreenProjectCategoryGridDailyDTO>> groupByStatus = screenProjectCategory.stream().collect(Collectors.groupingBy(ScreenProjectCategoryGridDailyDTO::getStatus));
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategoryNoCal = groupByStatus.get(false);
if (!CollectionUtils.isEmpty(screenProjectCategoryNoCal)){
List<ScreenProjectCategoryOrgDailyEntity> noCalCategory = ConvertUtils.sourceToTarget(screenProjectCategoryNoCal, ScreenProjectCategoryOrgDailyEntity.class);
result.addAll(noCalCategory);
}
}
}else {
if (!CollectionUtils.isEmpty(screenProjectCategory)){
result = ConvertUtils.sourceToTarget(screenProjectCategory, ScreenProjectCategoryOrgDailyEntity.class);
}
}
if (!CollectionUtils.isEmpty(result)){
result.forEach(r -> {r.setOrgType(level);r.setDateId(dateId);});
}
}
deleteAndInsert(customerId,dateId,result);
}
@ -273,23 +309,23 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
Map<String, List<CustomerAgencyInfoResultDTO>> groupByLevel = agencyIdList.stream().collect(Collectors.groupingBy(CustomerAgencyInfoResultDTO::getLevel));
if (groupByLevel.containsKey(ScreenConstant.COMMUNITY)){
// 社区级别
disposeMoreCustomerSub(ScreenConstant.COMMUNITY,true,customerId,dateId,relationInfo);
disposeMoreCustomerSub(ScreenConstant.COMMUNITY,true,customerId,dateId,relationInfo,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.STREET)){
// 街道级别
disposeMoreCustomerSub(ScreenConstant.STREET,false,customerId,dateId,relationInfo);
disposeMoreCustomerSub(ScreenConstant.STREET,false,customerId,dateId,relationInfo,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.DISTRICT)){
// 区级
disposeMoreCustomerSub(ScreenConstant.DISTRICT,false,customerId,dateId,relationInfo);
disposeMoreCustomerSub(ScreenConstant.DISTRICT,false,customerId,dateId,relationInfo,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.CITY)){
// 市级
disposeMoreCustomerSub(ScreenConstant.CITY,false,customerId,dateId,relationInfo);
disposeMoreCustomerSub(ScreenConstant.CITY,false,customerId,dateId,relationInfo,agencyIdList);
}
if (groupByLevel.containsKey(ScreenConstant.PROVINCE)){
// 省级
disposeMoreCustomerSub(ScreenConstant.PROVINCE,false,customerId,dateId,relationInfo);
disposeMoreCustomerSub(ScreenConstant.PROVINCE,false,customerId,dateId,relationInfo,agencyIdList);
}
}
}
@ -304,7 +340,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
* @author zxc
* @date 2021/3/25 下午1:29
*/
private void disposeMoreCustomerSub(String level,Boolean isGrid,String customerId, String dateId, List<CustomerRelationEntity> relationInfo){
private void disposeMoreCustomerSub(String level,Boolean isGrid,String customerId, String dateId, List<CustomerRelationEntity> relationInfo,List<CustomerAgencyInfoResultDTO> agencyIdList){
List<ScreenProjectCategoryOrgDailyEntity> result = new ArrayList<>();
if (isGrid){
// community级别走这
@ -363,6 +399,41 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl<Sc
}
}
}
// 目前不考虑计算子客户组织直接创建的项目,只算内部客户
Map<String, List<CustomerAgencyInfoResultDTO>> groupByLevel = agencyIdList.stream().collect(Collectors.groupingBy(CustomerAgencyInfoResultDTO::getLevel));
List<CustomerAgencyInfoResultDTO> levelAgencyInfo = groupByLevel.get(level);
if (!CollectionUtils.isEmpty(levelAgencyInfo)) {
List<String> orgIds = levelAgencyInfo.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId);
if (!CollectionUtils.isEmpty(result)) {
if (!CollectionUtils.isEmpty(screenProjectCategory)) {
result.forEach(r -> {
screenProjectCategory.forEach(pc -> {
if (r.getOrgId().equals(pc.getOrgId()) && r.getCategoryCode().equals(pc.getCategoryCode())) {
pc.setStatus(true);
r.setProjectTotal(r.getProjectTotal() + pc.getProjectTotal());
}
});
});
Map<Boolean, List<ScreenProjectCategoryGridDailyDTO>> groupByStatus = screenProjectCategory.stream().collect(Collectors.groupingBy(ScreenProjectCategoryGridDailyDTO::getStatus));
List<ScreenProjectCategoryGridDailyDTO> screenProjectCategoryNoCal = groupByStatus.get(false);
if (!CollectionUtils.isEmpty(screenProjectCategoryNoCal)) {
List<ScreenProjectCategoryOrgDailyEntity> noCalCategory = ConvertUtils.sourceToTarget(screenProjectCategoryNoCal, ScreenProjectCategoryOrgDailyEntity.class);
result.addAll(noCalCategory);
}
}
} else {
if (!CollectionUtils.isEmpty(screenProjectCategory)) {
result = ConvertUtils.sourceToTarget(screenProjectCategory, ScreenProjectCategoryOrgDailyEntity.class);
}
}
if (!CollectionUtils.isEmpty(result)) {
result.forEach(r -> {
r.setOrgType(level);
r.setDateId(dateId);
});
}
}
deleteAndInsert(customerId,dateId,result);
}

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

@ -172,7 +172,7 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenPro
// 项目总数赋值
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(pt -> {
if (g.getGridId().equals(pt.getGridId())){
if (g.getGridId().equals(pt.getOrgId())){
g.setProjectTotal(pt.getProjectTotal());
}
});
@ -180,7 +180,7 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenPro
// 项目解决数赋值
if (!CollectionUtils.isEmpty(resolvedNum)){
resolvedNum.forEach(rn -> {
if (g.getGridId().equals(rn.getGridId())){
if (g.getGridId().equals(rn.getOrgId())){
g.setResolvedNum(rn.getResolvedNum());
}
});

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

@ -29,12 +29,17 @@ import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.PingYinConstants;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectOrgDailyDao;
import com.epmet.dto.pingyin.result.EvaluateTotalResultDTO;
import com.epmet.dto.pingyin.result.ProjectOrgDailyResultDTO;
import com.epmet.dto.pingyin.result.ProjectTotalResultDTO;
import com.epmet.dto.pingyin.result.ResolvedNumResultDTO;
import com.epmet.dto.screen.ScreenProjectOrgDailyDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.crm.CustomerRelationEntity;
import com.epmet.entity.evaluationindex.screen.ScreenProjectOrgDailyEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.service.crm.CustomerRelationService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectOrgDailyService;
import com.epmet.service.org.CustomerAgencyService;
import com.google.common.collect.Lists;
@ -51,6 +56,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 项目(事件)分析按组织_按天统计
@ -69,6 +75,8 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
private CustomerRelationService customerRelationService;
@Autowired
private CustomerAgencyService customerAgencyService;
@Autowired
private FactOriginProjectMainDailyService projectMainDailyService;
@Override
public PageData<ScreenProjectOrgDailyDTO> page(Map<String, Object> params) {
@ -146,7 +154,7 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
}
/**
* @Description 数据抽取机关-
* @Description 数据抽取机关-目前单客户和多客户处理是一样的只是查询sql不一样现在分开为了以后修改方便
* @Param customerId
* @Param dateId
* @author zxc
@ -154,31 +162,88 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
*/
@Override
public void extractionProjectOrgDaily(String customerId, String dateId) {
List<ScreenProjectOrgDailyDTO> agencyInfos = new ArrayList<>();
//如果有子客户要按照跟组织的area_code查询组织列表
if(customerRelationService.haveSubCustomer(customerId)){
//
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
agencyInfos=agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
// 多客户处理
extractionProjectOrgDailyMoreCustomer(customerId,dateId);
}else{
agencyInfos=agencyDao.selectAgencyByCustomer(customerId);
// 单客户处理
extractionProjectOrgDailyOneCustomer(customerId, dateId);
}
}
/**
* @Description 单客户处理
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/4/15 上午9:09
*/
public void extractionProjectOrgDailyOneCustomer(String customerId, String dateId){
List<ScreenProjectOrgDailyDTO> agencyInfos = agencyDao.selectAgencyByCustomer(customerId);
if (CollectionUtils.isEmpty(agencyInfos)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;
}
List<ProjectOrgDailyResultDTO> projectOrgDaily = baseDao.selectOrgProject(agencyInfos, dateId);
List<ProjectOrgDailyResultDTO> projectOrgDaily = baseDao.selectOrgProjectByAgency(agencyInfos, dateId);
if (CollectionUtils.isEmpty(projectOrgDaily)){
log.info(String.format(PingYinConstants.SELECT_GRID_INFO_BY_ORG_IS_NULL,customerId));
return;
}
projectOrgDaily.forEach(p -> {
p.setBadTotal(null == p.getBadTotal() ? NumConstant.ZERO : p.getBadTotal());
p.setEvaluateTotal(null == p.getEvaluateTotal() ? NumConstant.ZERO : p.getEvaluateTotal());
p.setGoodTotal(null == p.getGoodTotal() ? NumConstant.ZERO : p.getGoodTotal());
p.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal());
p.setResolvedNum(null == p.getResolvedNum() ? NumConstant.ZERO : p.getResolvedNum());
log.info(projectOrgDaily.toString());
List<ScreenProjectOrgDailyDTO> createProjects = disposeCreateProject(agencyInfos, dateId);
agencyInfos.forEach(a -> {
a.setDateId(dateId);
projectOrgDaily.forEach(p -> {
if (a.getAreaCode().equals(p.getAreaCode())){
a.setResolvedRatio(getRatio(p.getResolvedNum(),p.getProjectTotal()));
a.setBadRatio(getRatio(p.getBadTotal(),p.getEvaluateTotal()));
a.setGoodRatio(getRatio(p.getGoodTotal(),p.getEvaluateTotal()));
a.setBadTotal(p.getBadTotal());
a.setEvaluateTotal(p.getEvaluateTotal());
a.setGoodTotal(p.getGoodTotal());
a.setProjectTotal(p.getProjectTotal());
a.setResolvedNum(p.getResolvedNum());
}
});
});
agencyInfos.forEach(a -> {
createProjects.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setBadTotal(p.getBadTotal() + a.getBadTotal());
a.setEvaluateTotal(p.getEvaluateTotal() + a.getEvaluateTotal());
a.setGoodTotal(p.getGoodTotal() + a.getGoodTotal());
a.setProjectTotal(p.getProjectTotal() + a.getProjectTotal());
a.setResolvedNum(p.getResolvedNum() + a.getResolvedNum());
a.setResolvedRatio(getRatio(a.getResolvedNum(),a.getProjectTotal()));
a.setBadRatio(getRatio(a.getBadTotal(),a.getEvaluateTotal()));
a.setGoodRatio(getRatio(a.getGoodTotal(),a.getEvaluateTotal()));
}
});
});
log.info(agencyInfos.toString());
del(customerId, dateId);
insert(agencyInfos,customerId,dateId);
}
/**
* @Description 有子客户处理
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/4/16 上午9:15
*/
public void extractionProjectOrgDailyMoreCustomer(String customerId, String dateId){
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
List<ScreenProjectOrgDailyDTO> agencyInfos = agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
if (CollectionUtils.isEmpty(agencyInfos)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;
}
List<ProjectOrgDailyResultDTO> projectOrgDaily = baseDao.selectOrgProject(agencyInfos, dateId);
if (CollectionUtils.isEmpty(projectOrgDaily)){
log.info(String.format(PingYinConstants.SELECT_GRID_INFO_BY_ORG_IS_NULL,customerId));
return;
}
log.info(projectOrgDaily.toString());
agencyInfos.forEach(a -> {
a.setDateId(dateId);
@ -195,11 +260,102 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
}
});
});
// 父子客户只需处理父客户数据,暂时不管子客户
List<ScreenProjectOrgDailyDTO> parentAgencyInfos = agencyDao.selectAgencyByCustomer(customerId);
List<ScreenProjectOrgDailyDTO> createProjects = disposeCreateProject(parentAgencyInfos, dateId);
agencyInfos.forEach(a -> {
createProjects.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setBadTotal(p.getBadTotal() + a.getBadTotal());
a.setEvaluateTotal(p.getEvaluateTotal() + a.getEvaluateTotal());
a.setGoodTotal(p.getGoodTotal() + a.getGoodTotal());
a.setProjectTotal(p.getProjectTotal() + a.getProjectTotal());
a.setResolvedNum(p.getResolvedNum() + a.getResolvedNum());
a.setResolvedRatio(getRatio(a.getResolvedNum(),a.getProjectTotal()));
a.setBadRatio(getRatio(a.getBadTotal(),a.getEvaluateTotal()));
a.setGoodRatio(getRatio(a.getGoodTotal(),a.getEvaluateTotal()));
}
});
});
log.info(agencyInfos.toString());
del(customerId, dateId);
insert(agencyInfos,customerId,dateId);
}
/**
* @Description 组织直接立项处理
* @Param agencyInfos
* @Param dateId
* @author zxc
* @date 2021/4/16 上午9:15
*/
public List<ScreenProjectOrgDailyDTO> disposeCreateProject(List<ScreenProjectOrgDailyDTO> agencyInfos,String dateId){
List<String> orgIds = agencyInfos.stream().map(m -> m.getOrgId()).collect(Collectors.toList());
List<ProjectTotalResultDTO> projectTotal = projectMainDailyService.selectProjectTotalByOrg(orgIds, dateId, null);
List<ResolvedNumResultDTO> resolvedNum = projectMainDailyService.selectResolvedNumByOrg(orgIds, dateId);
//查询 参与满意度评价的总次数
String[] activeCodesAll = {PingYinConstants.EVALUATE_BAD,PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateTotal = projectMainDailyService.selectEvaluateCountByOrg(orgIds, dateId, getActiveCode(activeCodesAll));
//查询 满意+非常满意的总次数
String[] activeCodesGood = {PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateGood = projectMainDailyService.selectEvaluateCountByOrg(orgIds, dateId, getActiveCode(activeCodesGood));
agencyInfos.forEach(a -> {
// 项目总数
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setProjectTotal(p.getProjectTotal());
}
});
}
// 未解决项目数
if (!CollectionUtils.isEmpty(resolvedNum)){
resolvedNum.forEach(r -> {
if (a.getOrgId().equals(r.getOrgId())){
a.setResolvedNum(r.getResolvedNum());
}
});
}
// 参与满意度评价的总次数
if (!CollectionUtils.isEmpty(evaluateTotal)){
evaluateTotal.forEach(e -> {
if (a.getOrgId().equals(e.getOrgId())){
a.setEvaluateTotal(e.getEvaluateCount());
}
});
}
// 满意+非常满意的总次数
if (!CollectionUtils.isEmpty(evaluateGood)){
evaluateGood.forEach(e -> {
if (a.getOrgId().equals(e.getOrgId())){
a.setGoodTotal(e.getEvaluateCount());
}
});
}
// 解决率
a.setResolvedRatio(getRatio(a.getResolvedNum(),a.getProjectTotal()));
// 不满意总次数
a.setBadTotal(a.getEvaluateTotal()==NumConstant.ZERO ? NumConstant.ZERO : a.getEvaluateTotal() - a.getGoodTotal());
// 满意率
a.setGoodRatio(getRatio(a.getGoodTotal(),a.getEvaluateTotal()));
// 不满意率
a.setBadRatio(getRatio(a.getBadTotal(),a.getEvaluateTotal()));
});
return agencyInfos;
}
/**
* @Description activeCode处理
* @Param actCode
* @author zxc
* @date 2021/4/13 上午10:06
*/
public List<String> getActiveCode(String[] actCode){
List<String> activeCodes = Arrays.asList(actCode);
return activeCodes;
}
/**
* @Description
* @Param a

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

@ -183,7 +183,7 @@ public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl
// 截止到当前月份:累计项目总数
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
if (g.getGridId().equals(p.getOrgId())){
g.setProjectTotal(p.getProjectTotal());
}
});

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

@ -29,13 +29,14 @@ import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.PingYinConstants;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyDao;
import com.epmet.dto.pingyin.result.ProjectOrgMonthlyResultDTO;
import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.ScreenProjectOrgDailyDTO;
import com.epmet.dto.screen.ScreenProjectQuantityOrgMonthlyDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.service.crm.CustomerRelationService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyService;
import com.epmet.service.org.CustomerAgencyService;
import com.google.common.collect.Lists;
@ -51,6 +52,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 项目(事件)数量分析按组织_按月统计
@ -69,6 +71,9 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
private CustomerRelationService customerRelationService;
@Autowired
private CustomerAgencyService customerAgencyService;
@Autowired
private FactOriginProjectMainDailyService projectMainDailyService;
@Override
public PageData<ScreenProjectQuantityOrgMonthlyDTO> page(Map<String, Object> params) {
IPage<ScreenProjectQuantityOrgMonthlyEntity> page = baseDao.selectPage(
@ -144,7 +149,7 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
}
/**
* @Description 数据抽取组织-
* @Description 数据抽取组织-目前单客户和多客户处理是一样的只是查询sql不一样现在分开为了以后修改方便
* @Param customerId
* @Param monthId
* @author zxc
@ -152,14 +157,95 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
*/
@Override
public void extractionProjectOrgMonthly(String customerId, String monthId) {
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS = new ArrayList<>();
//如果有子客户要按照跟组织的area_code查询组织列表
if(customerRelationService.haveSubCustomer(customerId)){
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
screenProjectOrgDailyDTOS=agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
// 多客户处理
extractionProjectOrgMonthlyMoreCustomer(customerId, monthId);
}else{
screenProjectOrgDailyDTOS=agencyDao.selectAgencyByCustomer(customerId);
// 单客户处理
extractionProjectOrgMonthlyOneCustomer(customerId, monthId);
}
}
/**
* @Description 单客户处理
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/4/15 下午2:18
*/
public void extractionProjectOrgMonthlyOneCustomer(String customerId,String monthId){
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS=agencyDao.selectAgencyByCustomer(customerId);
if (CollectionUtils.isEmpty(screenProjectOrgDailyDTOS)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;
}
List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos = ConvertUtils.sourceToTarget(screenProjectOrgDailyDTOS, ScreenProjectQuantityOrgMonthlyDTO.class);
List<ProjectOrgMonthlyResultDTO> projectOrg = baseDao.selectQuantityOrgMonthlyByAgency(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectOrg)){
projectOrg.forEach(p -> {
p.setClosedIncr(p.getClosedIncr());
p.setProjectIncr(p.getProjectIncr());
});
}
List<ProjectOrgMonthlyResultDTO> projectGrandOrg = baseDao.selectQuantityGrandOrgMonthly(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectGrandOrg)){
projectGrandOrg.forEach(p -> {
p.setClosedTotal(p.getClosedTotal());
p.setProjectTotal(p.getProjectTotal());
p.setUnClosedTotal(p.getUnClosedTotal());
});
}
agencyInfos.forEach(a -> {
a.setMonthId(monthId);
if (!CollectionUtils.isEmpty(projectOrg)){
projectOrg.forEach(p -> {
if (a.getAreaCode().equals(p.getAreaCode())){
a.setClosedIncr(null == p.getClosedIncr() ? NumConstant.ZERO : p.getClosedIncr());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
}
});
}
if (!CollectionUtils.isEmpty(projectGrandOrg)){
projectGrandOrg.forEach(p -> {
if (a.getAreaCode().equals(p.getAreaCode())){
a.setClosedTotal(null == p.getClosedTotal() ? NumConstant.ZERO : p.getClosedTotal());
a.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal());
a.setUnClosedTotal(null == p.getUnClosedTotal() ? NumConstant.ZERO : p.getUnClosedTotal());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
}
});
}
});
// 直接立项处理
List<ScreenProjectQuantityOrgMonthlyDTO> agencyCreateProject = agencyCreateProject(agencyInfos, monthId);
agencyInfos.forEach(a -> {
agencyCreateProject.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setProjectIncr(a.getProjectIncr() + p.getProjectIncr());
a.setProjectTotal(a.getProjectTotal() + p.getProjectTotal());
a.setUnClosedTotal(a.getUnClosedTotal() + p.getUnClosedTotal());
a.setClosedTotal(a.getClosedTotal() + p.getClosedTotal());
a.setClosedIncr(a.getClosedIncr() + p.getClosedIncr());
}
});
});
log.info(agencyInfos.toString());
del(customerId, monthId);
insert(agencyInfos,customerId,monthId);
}
/**
* @Description 多客户处理
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/4/15 下午2:18
*/
public void extractionProjectOrgMonthlyMoreCustomer(String customerId,String monthId){
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS=agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
if (CollectionUtils.isEmpty(screenProjectOrgDailyDTOS)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;
@ -169,16 +255,16 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
List<ProjectOrgMonthlyResultDTO> projectOrg = baseDao.selectQuantityOrgMonthly(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectOrg)){
projectOrg.forEach(p -> {
p.setClosedIncr(null == p.getClosedIncr() ? NumConstant.ZERO : p.getClosedIncr());
p.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
p.setClosedIncr(p.getClosedIncr());
p.setProjectIncr(p.getProjectIncr());
});
}
List<ProjectOrgMonthlyResultDTO> projectGrandOrg = baseDao.selectQuantityGrandOrgMonthly(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectGrandOrg)){
projectGrandOrg.forEach(p -> {
p.setClosedTotal(null == p.getClosedTotal() ? NumConstant.ZERO : p.getClosedTotal());
p.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal());
p.setUnClosedTotal(null == p.getUnClosedTotal() ? NumConstant.ZERO : p.getUnClosedTotal());
p.setClosedTotal(p.getClosedTotal());
p.setProjectTotal(p.getProjectTotal());
p.setUnClosedTotal(p.getUnClosedTotal());
});
}
agencyInfos.forEach(a -> {
@ -203,11 +289,89 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
});
}
});
List<ScreenProjectOrgDailyDTO> parentAgency = agencyDao.selectAgencyByCustomer(customerId);
List<ScreenProjectQuantityOrgMonthlyDTO> parentAgencyInfos = ConvertUtils.sourceToTarget(parentAgency, ScreenProjectQuantityOrgMonthlyDTO.class);
List<ScreenProjectQuantityOrgMonthlyDTO> agencyCreateProject = agencyCreateProject(parentAgencyInfos, monthId);
agencyInfos.forEach(a -> {
agencyCreateProject.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setProjectIncr(a.getProjectIncr() + p.getProjectIncr());
a.setProjectTotal(a.getProjectTotal() + p.getProjectTotal());
a.setUnClosedTotal(a.getUnClosedTotal() + p.getUnClosedTotal());
a.setClosedTotal(a.getClosedTotal() + p.getClosedTotal());
a.setClosedIncr(a.getClosedIncr() + p.getClosedIncr());
}
});
});
log.info(agencyInfos.toString());
del(customerId, monthId);
insert(agencyInfos,customerId,monthId);
}
/**
* @Description 组织直接立项处理
* @Param agencyInfos
* @Param monthId
* @author zxc
* @date 2021/4/16 上午10:03
*/
public List<ScreenProjectQuantityOrgMonthlyDTO> agencyCreateProject(List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, String monthId){
List<String> orgIds = agencyInfos.stream().map(m -> m.getOrgId()).collect(Collectors.toList());
// 本月新增的项目数量 转项目日期在当前月份内
List<ProjectIncrResultDTO> projectIncr = projectMainDailyService.selectProjectIncrByOrg(orgIds, monthId);
// 截止到当前月份:累计项目总数
List<ProjectTotalResultDTO> projectTotal = projectMainDailyService.selectProjectTotalByOrg(orgIds, null, monthId);
// 截止到当前月份:累计未结项目总数
List<UnClosedTotalResultDTO> projectUnClosed = projectMainDailyService.selectProjectCountByOrg(orgIds, monthId, PingYinConstants.UN_CLOSED);
// 截止到当前月份:累计已结项目
List<UnClosedTotalResultDTO> projectClosed = projectMainDailyService.selectProjectCountByOrg(orgIds, monthId, PingYinConstants.CLOSED);
// 本月新增结案项目数
List<ClosedIncrResultDTO> closedIncr = projectMainDailyService.selectClosedIncrByOrg(orgIds, monthId);
agencyInfos.forEach(a -> {
a.setMonthId(monthId);
if (!CollectionUtils.isEmpty(projectIncr)){
projectIncr.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setProjectIncr(p.getProjectIncr());
}
});
}
// 截止到当前月份:累计项目总数
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setProjectTotal(p.getProjectTotal());
}
});
}
// 截止到当前月份:累计未结项目总数
if (!CollectionUtils.isEmpty(projectUnClosed)){
projectUnClosed.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setUnClosedTotal(p.getProjectCount());
}
});
}
// 截止到当前月份:累计已结项目
if (!CollectionUtils.isEmpty(projectClosed)){
projectClosed.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setClosedTotal(p.getProjectCount());
}
});
}
// 本月新增结案项目数
if (!CollectionUtils.isEmpty(closedIncr)){
closedIncr.forEach(p -> {
if (a.getOrgId().equals(p.getOrgId())){
a.setClosedIncr(p.getClosedIncr());
}
});
}
});
return agencyInfos;
}
@Transactional(rollbackFor = Exception.class)
public void del(String customerId,String monthId){
Integer flag;

12
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/topic/TopicService.java

@ -9,6 +9,7 @@ import com.epmet.dto.stats.DimTopicStatusDTO;
import com.epmet.dto.stats.topic.result.TopicStatisticalData;
import com.epmet.dto.topic.ResiTopicDTO;
import com.epmet.dto.topic.TopicOriginInfoDTO;
import com.epmet.dto.topic.result.ResiTopicAndImgResultDTO;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyImgDataEntity;
import com.epmet.util.DimIdGenerator;
@ -104,4 +105,15 @@ public interface TopicService {
* @date 2021.03.09 13:59
*/
List<ScreenProjectImgDataDTO> buildNewScreenProjectImgData(List<ScreenProjectDataDTO> list);
/**
* desc: 根据话题ID获取 话题内容及附件列表
*
* @param topicId
* @param attachmentType
* @return com.epmet.dto.topic.result.ResiTopicAndImgResultDTO
* @author LiuJanJun
* @date 2021/4/13 5:39 下午
*/
ResiTopicAndImgResultDTO getTopicAndImgs(String topicId,String attachmentType);
}

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java

@ -18,6 +18,7 @@ import com.epmet.dto.stats.topic.result.TopicStatisticalData;
import com.epmet.dto.topic.ResiTopicDTO;
import com.epmet.dto.topic.TopicOriginInfoDTO;
import com.epmet.dto.topic.result.ResiGroupTopicResultDTO;
import com.epmet.dto.topic.result.ResiTopicAndImgResultDTO;
import com.epmet.dto.topic.result.ResiTopicOperationResultDTO;
import com.epmet.dto.topic.result.ResiTopicResultDTO;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyImgDataEntity;
@ -35,7 +36,6 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
/**
@ -232,6 +232,11 @@ public class TopicServiceImpl implements TopicService {
)).collect(Collectors.toList());
}
@Override
public ResiTopicAndImgResultDTO getTopicAndImgs(String topicId,String attachmentType) {
return topicDao.getTopicAndImgs(topicId);
}
/**
* @Description 初始化机关-所有下级网格Map
* @param pid - 固定一个机关Id

13
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.11__add_origin.sql

@ -0,0 +1,13 @@
ALTER TABLE `fact_origin_project_main_daily`
ADD COLUMN `ORIGIN` varchar(32) NULL COMMENT '项目来源 来源:议题issue 组织agency' AFTER `AGENCY_ID`,
MODIFY COLUMN `GRID_ID` varchar(32) DEFAULT '' COMMENT '网格ID(立项时的网格Id)' AFTER `TOPIC_ID`,
ADD COLUMN `ORIGIN_ID` varchar(64) NULL COMMENT '项目来源ID' AFTER `ORIGIN`;
UPDATE fact_origin_project_main_daily t1
INNER JOIN ( SELECT ID, ISSUE_ID FROM fact_origin_project_main_daily ) t2 ON t1.ID = t2.ID
SET t1.ORIGIN = 'issue',
t1.ORIGIN_ID = t2.ISSUE_ID;
UPDATE fact_origin_project_log_daily t1
INNER JOIN ( SELECT ID, AGENCY_ID FROM fact_origin_project_log_daily ) t2 ON t1.ID = t2.ID AND t1.ORG_TYPE IS NULL
SET t1.ORG_TYPE = 'agency',
t1.ORG_ID = t2.AGENCY_ID;

47
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml

@ -27,11 +27,12 @@
count(1)as projectTotal
FROM
fact_origin_project_category_daily c
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0')
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '')
WHERE
c.DEL_FLAG = '0'
AND c.CUSTOMER_ID = #{customerId}
AND c.`LEVEL` = '2'
GROUP BY
c.CUSTOMER_ID,
c.CATEGORY_CODE,
@ -50,7 +51,7 @@
count(distinct c.project_id)as projectTotal
FROM
fact_origin_project_category_daily c
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0')
LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '')
WHERE
c.DEL_FLAG = '0'
AND c.CUSTOMER_ID = #{customerId}
@ -62,4 +63,46 @@
p.AGENCY_ID,
P.PIDS
</select>
<!-- 查询客户下,组织直接立项的,各项目分类下的项目数量 -->
<select id="selectListProjectCategoryByOrg" resultType="com.epmet.dto.screen.ScreenProjectCategoryGridDailyDTO">
SELECT
c.CUSTOMER_ID,
c.CATEGORY_CODE,
c.`LEVEL`,
p.AGENCY_ID AS orgId,
p.PID AS PID,
P.PIDS,
COUNT(DISTINCT p.ID) AS projectTotal
FROM fact_origin_project_main_daily p
LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '')
WHERE c.DEL_FLAG = '0'
AND c.CUSTOMER_ID = #{customerId}
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
p.AGENCY_ID = #{orgId}
</foreach>
)
AND c.`LEVEL` = '2'
GROUP BY c.CUSTOMER_ID, c.CATEGORY_CODE, c.`LEVEL`, p.AGENCY_ID, p.PID, P.PIDS
UNION ALL
SELECT
c.CUSTOMER_ID,
left(c.CATEGORY_CODE, 4) AS CATEGORY_CODE,
'1' AS `LEVEL`,
p.AGENCY_ID AS orgId,
p.PID AS PID,
P.PIDS,
COUNT(distinct p.ID) AS projectTotal
FROM fact_origin_project_main_daily p
LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '')
WHERE c.DEL_FLAG = '0'
AND c.CUSTOMER_ID = #{customerId}
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
p.AGENCY_ID = #{orgId}
</foreach>
)
GROUP BY c.CUSTOMER_ID, left(c.CATEGORY_CODE, 4), c.`LEVEL`, p.PID, p.AGENCY_ID, P.PIDS
</select>
</mapper>

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

@ -388,6 +388,7 @@
WHERE fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
) a
GROUP BY
GRID_ID
@ -530,4 +531,25 @@
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
</select>
<!-- 网格项目自治率查询 最新版 -->
<select id="selectProjectAutoNoMyPlus" resultType="com.epmet.dto.extract.result.AutoNoMyResultDTO">
SELECT
l.ACTION_CODE,
l.ORG_ID AS gridId,
l.PROJECT_ID
FROM fact_origin_project_log_daily l
WHERE l.DEL_FLAG = 0
AND l.CUSTOMER_ID = #{customerId}
AND (
l.ACTION_CODE = 'response'
OR l.ACTION_CODE = 'close'
OR l.ACTION_CODE = 'transfer'
OR l.ACTION_CODE = 'resolved'
OR l.ACTION_CODE = 'unresolved'
OR l.ACTION_CODE = 'created')
AND l.PROJECT_ID IN (SELECT ID FROM fact_origin_project_main_daily WHERE DEL_FLAG = 0 AND PROJECT_STATUS = 'closed' AND MONTH_ID = #{monthId})
GROUP BY PROJECT_ID
HAVING COUNT(DISTINCT(ORG_ID)) = 1
</select>
</mapper>

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

@ -92,15 +92,20 @@
<select id="selectGridClosedProject" resultType="com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO">
SELECT
COUNT(ID) AS resolveProjectCount,
GRID_ID
SUBSTRING_INDEX(FINISH_ORG_IDS,':',-1) AS gridId
FROM
fact_origin_project_main_daily
WHERE
DEL_FLAG = 0
AND PROJECT_STATUS = #{status}
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
GROUP BY GRID_ID
AND GRID_ID != ''
AND PROJECT_STATUS = #{status}
AND MONTH_ID = #{monthId}
AND (
<foreach collection="gridIds" item="gridId" separator=" OR ">
FINISH_ORG_IDS LIKE concat('%',#{gridId})
</foreach>
)
GROUP BY GRID_ID
</select>
<delete id="deleteByDate">
DELETE FROM
@ -121,6 +126,7 @@
fact_origin_project_main_daily t1
WHERE
t1.DEL_FLAG = '0'
AND t1.TOPIC_CREATOR_ID != ''
AND t1.CUSTOMER_ID = #{customerId}
AND t1.MONTH_ID = #{monthId}
AND ISNULL(T1.TOPIC_CREATOR_ID)=0
@ -269,6 +275,7 @@
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'close'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
GROUP BY
@ -281,6 +288,7 @@
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'close'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.IS_RESOLVED = 'resolved'
@ -297,6 +305,7 @@
1=1
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND GRID_ID != ''
GROUP BY GRID_ID
</select>
<select id="getOrgProjectCount" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
@ -450,11 +459,12 @@
<!-- 查询项目总数 -->
<select id="selectProjectTotal" resultType="com.epmet.dto.pingyin.result.ProjectTotalResultDTO">
SELECT
GRID_ID,
GRID_ID AS orgId,
COUNT(ID) AS projectTotal
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND GRID_ID != ''
<if test="dateId != null and dateId != '' ">
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
</if>
@ -467,7 +477,7 @@
<!-- 查询已解决项目数 -->
<select id="selectResolvedNum" resultType="com.epmet.dto.pingyin.result.ResolvedNumResultDTO">
SELECT
GRID_ID,
GRID_ID AS orgId,
COUNT(ID) AS resolvedNum
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
@ -475,6 +485,7 @@
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND PROJECT_STATUS = 'closed'
AND IS_RESOLVED = 'resolved'
AND GRID_ID != ''
GROUP BY GRID_ID
</select>
@ -506,6 +517,7 @@
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND GRID_ID != ''
GROUP BY GRID_ID
</select>
@ -518,6 +530,7 @@
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID <![CDATA[ <= ]]> #{monthId}
AND GRID_ID != ''
<if test="status == 'unClosed' ">
AND PROJECT_STATUS != 'closed'
</if>
@ -538,6 +551,7 @@
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND PROJECT_STATUS = 'closed'
AND GRID_ID != ''
GROUP BY GRID_ID
</select>
@ -574,5 +588,146 @@
</otherwise>
</choose>
</select>
<!--获取难点堵点项目数据-->
<select id="getProjectForDiff" resultType="com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity">
SELECT
id, date_id, customer_id, issue_id, topic_id, grid_id, pid, pids, agency_id, project_status, is_resolved,
topic_creator_id, is_party, is_overdue, finish_org_ids
FROM fact_origin_project_main_daily
WHERE
CUSTOMER_ID = #{customerId}
<if test="dateId != null and dateId != ''">
AND DATE_ID = #{dateId,jdbcType=VARCHAR}
</if>
</select>
<select id="getProjectPeriodForDiff" resultType="com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity">
SELECT
t.ID, t.CUSTOMER_ID, t.PROJECT_ID, t.ORG_ID, t.ORG_TYPE, t.PID,t. PIDS, t.INFORMED_DATE, t.HANDLED_DATE, t.TOTAL_PERIOD, t.PERIOD_TILL_REPLY_FIRSTLY, t.OPERATION, t.IS_RESOLVED
FROM fact_origin_project_org_period_daily t
WHERE CUSTOMER_ID = #{customerId}
</select>
<!-- 组织查询项目总数 -->
<select id="selectProjectTotalByOrg" resultType="com.epmet.dto.pingyin.result.ProjectTotalResultDTO">
SELECT
m.AGENCY_ID AS orgId,
IFNULL(COUNT(m.ID),0) AS projectTotal
FROM fact_origin_project_main_daily m
WHERE m.DEL_FLAG = 0
AND m.GRID_ID = ''
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
m.AGENCY_ID = #{orgId}
</foreach>
)
<if test="dateId != null and dateId != '' ">
AND m.DATE_ID <![CDATA[ <= ]]> #{dateId}
</if>
<if test="monthId != null and monthId != '' ">
AND m.MONTH_ID <![CDATA[ <= ]]> #{monthId}
</if>
GROUP BY m.AGENCY_ID
</select>
<!-- 组织查询已解决项目数 -->
<select id="selectResolvedNumByOrg" resultType="com.epmet.dto.pingyin.result.ResolvedNumResultDTO">
SELECT
AGENCY_ID AS orgId,
IFNULL(COUNT(ID),0) AS resolvedNum
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND PROJECT_STATUS = 'closed'
AND IS_RESOLVED = 'resolved'
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
AGENCY_ID = #{orgId}
</foreach>
)
AND GRID_ID = ''
GROUP BY AGENCY_ID
</select>
<!-- 组织 查询 满意度评价次数 -->
<select id="selectEvaluateCountByOrg" resultType="com.epmet.dto.pingyin.result.EvaluateTotalResultDTO">
SELECT
ORG_ID,
IFNULL(COUNT(PROJECT_ID),0) AS evaluateCount
FROM fact_origin_project_log_daily
WHERE DEL_FLAG = 0
AND ORG_TYPE = 'agency'
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
org_id = #{orgId}
</foreach>
)
AND IS_ACTIVE = 1
AND (
<foreach collection="activeCodes" item="code" separator=" OR ">
ACTION_CODE = #{code}
</foreach>
)
GROUP BY ORG_ID
</select>
<!-- 组织查询本月新增项目数 -->
<select id="selectProjectIncrByOrg" resultType="com.epmet.dto.pingyin.result.ProjectIncrResultDTO">
SELECT
AGENCY_ID AS orgId,
COUNT(ID) AS projectIncr
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
AGENCY_ID = #{orgId}
</foreach>
)
AND MONTH_ID = #{monthId}
AND GRID_ID = ''
GROUP BY AGENCY_ID
</select>
<!-- 组织根据状态查询项目数 -->
<select id="selectProjectCountByOrg" resultType="com.epmet.dto.pingyin.result.UnClosedTotalResultDTO">
SELECT
AGENCY_ID AS orgId,
COUNT(ID) AS projectCount
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND MONTH_ID <![CDATA[ <= ]]> #{monthId}
AND GRID_ID = ''
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
AGENCY_ID = #{orgId}
</foreach>
)
<if test="status == 'unClosed' ">
AND PROJECT_STATUS != 'closed'
</if>
<if test="status == 'closed' ">
AND PROJECT_STATUS = 'closed'
</if>
GROUP BY AGENCY_ID
</select>
<!-- 组织本月新增结案项目数 -->
<select id="selectClosedIncrByOrg" resultType="com.epmet.dto.pingyin.result.ClosedIncrResultDTO">
SELECT
AGENCY_ID,
COUNT( ID ) AS closedIncr
FROM fact_origin_project_main_daily
WHERE
DEL_FLAG = '0'
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
AGENCY_ID = #{orgId}
</foreach>
)
AND MONTH_ID = #{monthId}
AND PROJECT_STATUS = 'closed'
AND GRID_ID = ''
GROUP BY AGENCY_ID
</select>
</mapper>

5
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml

@ -410,10 +410,13 @@
(
select m.PARENT_AREA_CODE from screen_customer_agency m
where m.AGENCY_ID=#{agencyId}
and m.DEL_FLAG = '0'
)
and sca.DEL_FLAG = '0'
</select>
<select id="selectAgencyId" resultType="java.lang.String">
select sca.AGENCY_ID from screen_customer_agency sca
where sca.AREA_CODE= #{areaCode}
where sca.DEL_FLAG = '0'
and sca.AREA_CODE= #{areaCode}
</select>
</mapper>

28
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml

@ -112,11 +112,12 @@
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
SUM(PROJECT_TOTAL) AS projectTotal,
SUM(RESOLVED_NUM) AS resolvedNum,
SUM(EVALUATE_TOTAL) AS evaluateTotal ,
SUM(GOOD_TOTAL) AS goodTotal,
SUM(BAD_TOTAL) AS badTotal
#{a.orgId} AS orgId,
IFNULL(SUM(PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(RESOLVED_NUM),0) AS resolvedNum,
IFNULL(SUM(EVALUATE_TOTAL),0) AS evaluateTotal ,
IFNULL(SUM(GOOD_TOTAL),0) AS goodTotal,
IFNULL(SUM(BAD_TOTAL),0) AS badTotal
FROM screen_project_grid_daily g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
@ -124,6 +125,23 @@
AND g.DATE_ID <![CDATA[ = ]]> #{dateId}
</foreach>
</select>
<select id="selectOrgProjectByAgency" resultType="com.epmet.dto.pingyin.result.ProjectOrgDailyResultDTO">
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
#{a.orgId} AS orgId,
IFNULL(SUM(PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(RESOLVED_NUM),0) AS resolvedNum,
IFNULL(SUM(EVALUATE_TOTAL),0) AS evaluateTotal ,
IFNULL(SUM(GOOD_TOTAL),0) AS goodTotal,
IFNULL(SUM(BAD_TOTAL),0) AS badTotal
FROM screen_project_grid_daily g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
AND cg.PARENT_AGENCY_ID = #{a.orgId}
AND g.DATE_ID <![CDATA[ = ]]> #{dateId}
</foreach>
</select>
</mapper>

40
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml

@ -101,8 +101,8 @@
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
SUM(g.PROJECT_INCR) AS projectIncr,
SUM(g.CLOSED_INCR) AS closedIncr
IFNULL(SUM(g.PROJECT_INCR),0) AS projectIncr,
IFNULL(SUM(g.CLOSED_INCR),0) AS closedIncr
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
@ -116,9 +116,9 @@
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
SUM(g.PROJECT_TOTAL) AS projectTotal,
SUM(g.UN_CLOSED_TOTAL) AS unClosedTotal,
SUM(g.CLOSED_TOTAL) AS closedTotal
IFNULL(SUM(g.PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(g.UN_CLOSED_TOTAL),0) AS unClosedTotal,
IFNULL(SUM(g.CLOSED_TOTAL),0) AS closedTotal
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
@ -127,5 +127,35 @@
</foreach>
</select>
<select id="selectQuantityOrgMonthlyByAgency" resultType="com.epmet.dto.pingyin.result.ProjectOrgMonthlyResultDTO">
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
IFNULL(SUM(g.PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(g.UN_CLOSED_TOTAL),0) AS unClosedTotal,
IFNULL(SUM(g.CLOSED_TOTAL),0) AS closedTotal
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
AND cg.PARENT_AGENCY_ID = #{a.orgId}
AND g.MONTH_ID <![CDATA[ = ]]> #{monthId}
</foreach>
</select>
<select id="selectQuantityGrandOrgMonthlyByAgency" resultType="com.epmet.dto.pingyin.result.ProjectOrgMonthlyResultDTO">
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
IFNULL(SUM(g.PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(g.UN_CLOSED_TOTAL),0) AS unClosedTotal,
IFNULL(SUM(g.CLOSED_TOTAL),0) AS closedTotal
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
AND cg.PARENT_AGENCY_ID = #{a.orgId}
AND g.MONTH_ID <![CDATA[ = ]]> #{monthId}
</foreach>
</select>
</mapper>

7
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/IssueProjectCategoryDictDao.xml

@ -48,4 +48,11 @@
and customer_id = #{customerId}
and id = #{id}
</select>
<select id="getAllByCId" resultType="com.epmet.entity.issue.IssueProjectCategoryDictEntity">
SELECT
ID, CUSTOMER_ID, PID, PIDS, PARENT_CATEGORY_CODE, CATEGORY_CODE, CATEGORY_NAME
FROM issue_project_category_dict
where del_flag = '0'
and customer_id = #{customerId}
</select>
</mapper>

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

@ -24,7 +24,6 @@
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') <![CDATA[ <= ]]> #{date}
@ -41,7 +40,6 @@
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') = #{date}
@ -81,7 +79,10 @@
ID,
CUSTOMER_ID,
AGENCY_ID,
ORIGIN,
ORIGIN_ID,
TITLE,
BACK_GROUND,
STATUS,
CLOSED_STATUS,
ORG_ID_PATH,
@ -90,7 +91,6 @@
FROM project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'issue'
AND CUSTOMER_ID = #{customerId}
<if test="date != null and date.trim() != ''">
AND DATE_FORMAT(CREATED_TIME, '%Y%m%d') = #{date}

5
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml

@ -129,7 +129,8 @@
CUSTOMER_ID,
PID,
AGENCY_NAME,
LEVEL
LEVEL,
ALL_PARENT_NAME
FROM
dim_agency
WHERE
@ -332,4 +333,4 @@
AND LEVEL = #{level}
</select>
</mapper>
</mapper>

37
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/topic/TopicDao.xml

@ -15,6 +15,15 @@
<id property="incrFlag" column="incrFlag" />
</collection>
</resultMap>
<!--获取话题内容及图片信息-->
<resultMap id="topicImgResultMap" type="com.epmet.dto.topic.result.ResiTopicAndImgResultDTO">
<id property="topicId" column="ID" />
<result property="topicContent" column="TOPIC_CONTENT" />
<collection property="topicImgList" ofType="com.epmet.dto.topic.TopicAttachmentDTO">
<id property="sort" column="SORT"/>
<id property="attachmentUrl" column="ATTACHMENT_URL" />
</collection>
</resultMap>
<!-- 将组按照网格Id排序,并取出组Id、话题Id等相关信息,incrFlag代表是否是在当日创建 -->
<select id="selectGroupOrderByGrid" resultMap="groupTopic">
@ -272,4 +281,30 @@
TOPIC_ID = #{project.topicId}
</foreach>
</select>
</mapper>
<select id="getTopicAttachment" resultType="com.epmet.dto.topic.TopicAttachmentDTO">
SELECT
ATTACHMENT_URL AS eventImgUrl,
SORT
FROM
`resi_topic_attachment`
WHERE
del_flag = '0'
<!-- AND ATTACHMENT_TYPE = #{attachmentType}-->
AND ATTACHMENT_TYPE = 'image'
and TOPIC_ID = #{topicId}
</select>
<select id="getTopicAndImgs" resultMap="topicImgResultMap">
SELECT
t.ID,
t.TOPIC_CONTENT,
a.ATTACHMENT_URL,
a.SORT
from resi_topic t
LEFT JOIN resi_topic_attachment a ON t.ID = a.TOPIC_ID
WHERE
t.del_flag = '0'
AND ATTACHMENT_TYPE = 'image'
and TOPIC_ID = #{topicId}
</select>
</mapper>

27
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AddAreaCodeFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/13 14:36
*/
@Data
public class AddAreaCodeFormDTO implements Serializable {
@NotBlank(message = "currentAreaLevel不能为空")
private String currentAreaLevel;
@NotBlank(message = "parentAreaCode不能为空")
private String parentAreaCode;
/**
* 新增的街道或者社区名称
*/
@NotBlank(message = "name不能为空")
private String name;
}

10
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java

@ -113,4 +113,14 @@ public interface EpmetCommonServiceOpenFeignClient {
**/
@PostMapping(value = "commonservice/areacode/addstreetcommareacode", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> addStreetCommAreaCode(@RequestBody AddAreaCodeDictFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.lang.String>
* @author yinzuomei
* @description 自定义行政地区编码
* @Date 2021/4/13 14:31
**/
@PostMapping(value = "commonservice/areacode/addareacode", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> addAreaCode(AddAreaCodeFormDTO formDTO);
}

12
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java

@ -89,4 +89,16 @@ public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonSer
public Result<String> addStreetCommAreaCode(AddAreaCodeDictFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "addStreetCommAreaCode", formDTO);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.lang.String>
* @author yinzuomei
* @description 自定义行政地区编码
* @Date 2021/4/13 14:31
**/
@Override
public Result<String> addAreaCode(AddAreaCodeFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "addAreaCode", formDTO);
}
}

4
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java

@ -26,4 +26,8 @@ public interface AreaCodeConstant {
String LEVEL_ERROR = "RootAreaLevel填写错误【%s】";
String FIRST_THREE_UD="001_UD";
String FIRST_TOW_UD="01_UD";
String UD="_UD";
}

14
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java

@ -26,6 +26,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.AreaCodeDTO;
import com.epmet.dto.form.AddAreaCodeDictFormDTO;
import com.epmet.dto.form.AddAreaCodeFormDTO;
import com.epmet.dto.form.AreaCodeDictFormDTO;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.service.AreaCodeService;
@ -107,4 +108,17 @@ public class AreaCodeController {
ValidatorUtils.validateEntity(formDTO);
return new Result<String>().ok(areaCodeService.addStreetCommAreaCode(formDTO));
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.lang.String>
* @author yinzuomei
* @description 自定义行政地区编码-产品自身使用
* @Date 2021/4/13 14:40
**/
@PostMapping(value = "addareacode")
Result<String> addAreaCode(@RequestBody AddAreaCodeFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<String>().ok(areaCodeService.addAreaCode(formDTO));
}
}

4
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java

@ -36,4 +36,8 @@ public interface AreaCodeDao extends BaseDao<AreaCodeEntity> {
List<AreaCodeDTO> selectAllArea();
AreaCodeDTO selectByCountyCode(String countyCode);
AreaCodeDTO selectByCityCode(String cityCode);
AreaCodeDTO selectMaxCounty(String cityCode);
}

10
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.AreaCodeDTO;
import com.epmet.dto.form.AddAreaCodeDictFormDTO;
import com.epmet.dto.form.AddAreaCodeFormDTO;
import com.epmet.dto.form.AreaCodeDictFormDTO;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.entity.AreaCodeEntity;
@ -113,4 +114,13 @@ public interface AreaCodeService extends BaseService<AreaCodeEntity> {
* @Date 2021/2/5 17:39
**/
String addStreetCommAreaCode(AddAreaCodeDictFormDTO formDTO);
/**
* @return java.lang.String
* @param formDTO
* @author yinzuomei
* @description 自定义行政地区编码
* @Date 2021/4/13 14:40
**/
String addAreaCode(AddAreaCodeFormDTO formDTO);
}

70
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java

@ -34,6 +34,7 @@ import com.epmet.dao.AreaCodeDao;
import com.epmet.dto.AreaCodeChildDTO;
import com.epmet.dto.AreaCodeDTO;
import com.epmet.dto.form.AddAreaCodeDictFormDTO;
import com.epmet.dto.form.AddAreaCodeFormDTO;
import com.epmet.dto.form.AreaCodeDictFormDTO;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.entity.AreaCodeEntity;
@ -588,7 +589,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
**/
@Override
public String addStreetCommAreaCode(AddAreaCodeDictFormDTO formDTO) {
String originalParentCode = formDTO.getParentAreaCode().replaceAll("_UD", "");
String originalParentCode = formDTO.getParentAreaCode().replaceAll(AreaCodeConstant.UD, "");
if (originalParentCode.length() < NumConstant.SIX) {
throw new RenException("目前只允许添加街道或社区");
}
@ -624,13 +625,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
//如果是增加街道
areaCodeChildDTO.setLevel(NumConstant.FOUR);
} else {
areaCodeChildDTO.setLevel(null != parent && null != parent.getLevel() ? parent.getLevel() + 1 : null);
areaCodeChildDTO.setLevel(null != parent && null != parent.getLevel() ? parent.getLevel() + NumConstant.ONE : null);
}
//获取子级中最大的编码
AreaCodeChildDTO maxChildDto = childDao.selectMaxChild(formDTO.getParentAreaCode().trim());
if (null == maxChildDto) {
//默认添加001
areaCodeChildDTO.setCode(formDTO.getParentAreaCode().concat("001_UD"));
areaCodeChildDTO.setCode(formDTO.getParentAreaCode().concat(AreaCodeConstant.FIRST_THREE_UD));
} else {
//去掉_UD +1赋值;370124001225_UD 锦源社区
/*String[] codeArr = maxChildDto.getCode().split(StrConstant.UNDER_LINE);
@ -641,14 +642,14 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
long num = Long.parseLong(codeArr[NumConstant.ZERO]) + NumConstant.ONE;
String numStr = String.valueOf(num);
String temp = "";
if (numStr.length() == 2) {
temp = "0".concat(numStr);
} else if (numStr.length() == 1) {
if (numStr.length() == NumConstant.TWO) {
temp = NumConstant.ZERO_STR.concat(numStr);
} else if (numStr.length() == NumConstant.ONE) {
temp = "00".concat(numStr);
} else {
temp = numStr;
}
areaCodeChildDTO.setCode(formDTO.getParentAreaCode().concat(temp).concat("_UD"));
areaCodeChildDTO.setCode(formDTO.getParentAreaCode().concat(temp).concat(AreaCodeConstant.UD));
/*log.info("最大="+maxChildDto.getCode()+";去初父级("+formDTO.getParentAreaCode()+"):"+subStr);
log.info("数字位+1="+num);
log.info("temp="+temp);*/
@ -657,4 +658,59 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
areaCodeChildService.save(areaCodeChildDTO);
return areaCodeChildDTO.getCode();
}
/**
* @param formDTO
* @return java.lang.String
* @author yinzuomei
* @description 自定义行政地区编码
* @Date 2021/4/13 14:40
**/
@Transactional(rollbackFor = Exception.class)
@Override
public String addAreaCode(AddAreaCodeFormDTO formDTO) {
String areaCode = "";
switch (formDTO.getCurrentAreaLevel()) {
case AreaCodeConstant.DISTRICT:
areaCode = addDistrictAreaCode(formDTO.getParentAreaCode(),formDTO.getName());
break;
case AreaCodeConstant.STREET:
areaCode = addStreetCommAreaCode(ConvertUtils.sourceToTarget(formDTO,AddAreaCodeDictFormDTO.class));
break;
case AreaCodeConstant.COMMUNITY:
areaCode = addStreetCommAreaCode(ConvertUtils.sourceToTarget(formDTO,AddAreaCodeDictFormDTO.class));
break;
default:
log.info("currentAreaLevel值为"+formDTO.getCurrentAreaLevel());
}
return areaCode;
}
private String addDistrictAreaCode(String cityCode, String countyName) {
AreaCodeDTO city = baseDao.selectByCityCode(cityCode);
AreaCodeEntity insert = ConvertUtils.sourceToTarget(city, AreaCodeEntity.class);
insert.setCityName(countyName);
AreaCodeDTO maxCountyDTO = baseDao.selectMaxCounty(cityCode);
if (null == maxCountyDTO) {
insert.setCountyCode(cityCode.concat(AreaCodeConstant.FIRST_TOW_UD));
} else {
//山东省37
//济南市3701
//济南高新技术产业开发区370171
//370172_UD
if (NumConstant.SIX == maxCountyDTO.getCountyCode().length()) {
long maxCountyCode = Long.parseLong(maxCountyDTO.getCountyCode());
long newCountyCode = maxCountyCode + NumConstant.ONE;
insert.setCountyCode(String.valueOf(newCountyCode).concat(AreaCodeConstant.UD));
} else {
String countyCode = maxCountyDTO.getCountyCode().replace(AreaCodeConstant.UD, StrConstant.EPMETY_STR);
long maxCountyCode = Long.parseLong(countyCode);
long newCountyCode = maxCountyCode + NumConstant.ONE;
insert.setCountyCode(String.valueOf(newCountyCode).concat(AreaCodeConstant.UD));
}
}
baseDao.insert(insert);
return insert.getCountyCode();
}
}

16
epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml

@ -11,4 +11,20 @@
<select id="selectByCountyCode" resultType="com.epmet.dto.AreaCodeDTO">
select * from area_code m where m.COUNTY_CODE=#{countyCode}
</select>
<select id="selectByCityCode" resultType="com.epmet.dto.AreaCodeDTO" parameterType="java.lang.String">
select distinct ac.PROVINCE_CODE,ac.PROVINCE_NAME,ac.CITY_CODE,ac.CITY_NAME
from area_code ac
where ac.DEL_FLAG='0'
and ac.CITY_CODE=#{cityCode}
</select>
<select id="selectMaxCounty" resultType="com.epmet.dto.AreaCodeDTO" parameterType="java.lang.String">
select *
from area_code ac
where ac.DEL_FLAG='0'
and ac.CITY_CODE=#{cityCode}
order by ac.COUNTY_CODE desc
limit 1
</select>
</mapper>

32
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java

@ -0,0 +1,32 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 根据分类标签Id集合查询对应数据信息--接口入参
* @Author sun
*/
@Data
public class CategoryTagListFormDTO implements Serializable {
private static final long serialVersionUID = 2599592072265715951L;
/**
* 客户ID
*/
private String customerId;
/**
* 分类Id
*/
private List<String> categoryIdList;
/**
* 标签Id
*/
private List<String> tagIdList;
}

28
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.result;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.IssueProjectTagDictDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 根据分类标签Id集合查询对应数据信息--接口返参
* @Author sun
*/
@Data
public class CategoryTagResultDTO implements Serializable {
private static final long serialVersionUID = 5957826616179876849L;
/**
* 分类对象
*/
private List<IssueProjectCategoryDictDTO> categoryList;
/**
* 标签对象
*/
private List<IssueProjectTagDictDTO> tagList;
}

10
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java

@ -222,7 +222,7 @@ public interface GovIssueOpenFeignClient {
* @author sun
**/
@PostMapping(value = "/gov/issue/issueprojectcategorydict/getprojectandcategoryinfo")
Result<ProjectIssueCategoryResultDTO> getProjectAndCategoryInfo(ProjectSaveCategoryFormDTO formDTO);
Result<ProjectIssueCategoryResultDTO> getProjectAndCategoryInfo(@RequestBody ProjectSaveCategoryFormDTO formDTO);
/**
* @Description 更新标签热度 数据库/缓存
@ -293,4 +293,12 @@ public interface GovIssueOpenFeignClient {
@PostMapping(value = "/gov/issue/manage/votingissuedetail")
Result<GovIssueDetailResultDTO> votingissuedetail(@RequestBody IssueDetailFormDTO issueDetail);
/**
* @param formDTO
* @Description 根据分类标签Id集合查询对应数据信息
* @Author sun
**/
@PostMapping(value = "/gov/issue/issueprojectcategorydict/getcategorytaglist")
Result<CategoryTagResultDTO> getCategoryTagList(@RequestBody CategoryTagListFormDTO formDTO);
}

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java

@ -251,4 +251,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result<GovIssueDetailResultDTO> votingissuedetail(IssueDetailFormDTO issueDetail) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingissuedetail", issueDetail);
}
@Override
public Result<CategoryTagResultDTO> getCategoryTagList(CategoryTagListFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryTagList", formDTO);
}
}

12
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java

@ -32,6 +32,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CategoryTagResultDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.CustomerCategoryResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
@ -256,5 +257,16 @@ public class IssueProjectCategoryDictController {
}
return new Result<List<CustomerCategoryResultDTO>>().ok(issueProjectCategoryDictService.customerCategoryList(map.get(FieldConstant.CUSTOMER_ID_HUMP)));
}
/**
* @param formDTO
* @Description 根据分类标签Id集合查询对应数据信息
* @Author sun
**/
@PostMapping("getcategorytaglist")
public Result<CategoryTagResultDTO> getCategoryTagList(@RequestBody CategoryTagListFormDTO formDTO) {
return new Result<CategoryTagResultDTO>().ok(issueProjectCategoryDictService.getCategoryTagList(formDTO));
}
}

6
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java

@ -167,4 +167,10 @@ public interface IssueProjectCategoryDictDao extends BaseDao<IssueProjectCategor
* @Date 09:53 2021-03-30
**/
int updateIssueProjectCategoryDict(IssueProjectCategoryDictEntity entity);
/**
* @Description 批量查询客户分类信息
* @Author sun
**/
List<IssueProjectCategoryDictDTO> getCategoryList(@Param("customerId") String customerId, @Param("categoryIdList") List<String> categoryIdList);
}

7
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java

@ -18,6 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IssueProjectTagDictDTO;
import com.epmet.dto.form.IsDisableCategoryFormDTO;
import com.epmet.dto.form.IssueTagFormDTO;
import com.epmet.dto.result.IssueCategoryTagResultDTO;
@ -140,4 +141,10 @@ public interface IssueProjectTagDictDao extends BaseDao<IssueProjectTagDictEntit
* @author sun
*/
int updateCustomerTag(IsDisableCategoryFormDTO formDTO);
/**
* @Description 批量查询客户分类信息
* @Author sun
**/
List<IssueProjectTagDictDTO> getTagList(@Param("customerId") String customerId, @Param("tagIdList") List<String> tagIdList);
}

8
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java

@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CategoryTagResultDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.CustomerCategoryResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
@ -208,4 +209,11 @@ public interface IssueProjectCategoryDictService extends BaseService<IssueProjec
* @Date 16:30 2021-03-23
**/
List<CustomerCategoryResultDTO> customerCategoryList(String customerId);
/**
* @param formDTO
* @Description 根据分类标签Id集合查询对应数据信息
* @Author sun
**/
CategoryTagResultDTO getCategoryTagList(CategoryTagListFormDTO formDTO);
}

40
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java

@ -31,10 +31,7 @@ import com.epmet.dao.IssueCategoryDao;
import com.epmet.dao.IssueProjectCategoryDictDao;
import com.epmet.dao.IssueProjectRelationDao;
import com.epmet.dao.IssueProjectTagDictDao;
import com.epmet.dto.IssueCategoryDTO;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.ProjectCategoryDTO;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueProjectCategoryDictEntity;
@ -168,12 +165,15 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr
@Override
public ProjectIssueCategoryResultDTO getProjectAndCategoryInfo(ProjectSaveCategoryFormDTO formDTO) {
ProjectIssueCategoryResultDTO resultDTO = new ProjectIssueCategoryResultDTO();
//1.根据项目id查询对应的议题基本信息
IssueDTO dto = issueProjectRelationDao.selectProjectToIssue(formDTO.getProjectId());
if (null == dto) {
throw new RenException(String.format("保存项目分类信息,获取项目对应的议题基本信息失败,projectId->%s", formDTO.getProjectId()));
ProjectIssueDTOResultDTO issueDTO = new ProjectIssueDTOResultDTO();
if("issue".equals(formDTO.getOrigin())){
//1.根据项目id查询对应的议题基本信息
IssueDTO dto = issueProjectRelationDao.selectProjectToIssue(formDTO.getProjectId());
if (null == dto) {
throw new RenException(String.format("保存项目分类信息,获取项目对应的议题基本信息失败,projectId->%s", formDTO.getProjectId()));
}
issueDTO = ConvertUtils.sourceToTarget(dto,ProjectIssueDTOResultDTO.class);
}
ProjectIssueDTOResultDTO issueDTO = ConvertUtils.sourceToTarget(dto,ProjectIssueDTOResultDTO.class);
resultDTO.setIssueDTO(issueDTO);
//2.批量查询分类信息
List<String> categoryIdList = formDTO.getCategoryList().stream().map(SaveIssueCategoryFormDTO::getId).collect(Collectors.toList());
@ -450,4 +450,26 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr
}
return parentCategoryDict;
}
/**
* @param formDTO
* @Description 根据分类标签Id集合查询对应数据信息
* @Author sun
**/
@Override
public CategoryTagResultDTO getCategoryTagList(CategoryTagListFormDTO formDTO) {
CategoryTagResultDTO resultDTO = new CategoryTagResultDTO();
//1.批量查询客户分类信息
if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getCategoryIdList())) {
List<IssueProjectCategoryDictDTO> categoryList = baseDao.getCategoryList(formDTO.getCustomerId(), formDTO.getCategoryIdList());
resultDTO.setCategoryList(categoryList);
}
//2.批量查询客户标签信息
if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getTagIdList())) {
List<IssueProjectTagDictDTO> tagList = issueProjectTagDictDao.getTagList(formDTO.getCustomerId(), formDTO.getTagIdList());
resultDTO.setTagList(tagList);
}
return resultDTO;
}
}

17
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml

@ -213,6 +213,23 @@
ORDER BY SORT, CATEGORY_CODE ASC
</select>
<select id="getCategoryList" resultType="com.epmet.dto.IssueProjectCategoryDictDTO">
SELECT
*
FROM
issue_project_category_dict
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<if test="categoryIdList != null and categoryIdList.size() > 0">
<foreach collection="categoryIdList" item="id" open="AND( " separator=" OR " index="index" close=")">
id = #{id}
</foreach>
</if>
ORDER BY
sort ASC
</select>
<update id="updateIssueProjectCategoryDict">
UPDATE issue_project_category_dict
SET

15
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml

@ -203,6 +203,21 @@
</if>
</select>
<select id="getTagList" resultType="com.epmet.dto.IssueProjectTagDictDTO">
SELECT
*
FROM
issue_project_tag_dict
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<if test="null != tagIdList and tagIdList.size() > 0">
<foreach collection="tagIdList" item="tagId" open=" AND (" separator=" OR " close=" )">
id = #{tagId}
</foreach>
</if>
</select>
<update id="updateCustomerTag">
UPDATE issue_project_tag_dict
SET is_disable = #{type},

20
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java

@ -114,15 +114,15 @@ public class CustomerAgencyDTO implements Serializable {
private Integer totalUser;
/**
*
*
*/
private String province;
private String province;
/**
*
*
*/
private String city;
private String city;
/**
* 区县
*/
@ -132,4 +132,14 @@ public class CustomerAgencyDTO implements Serializable {
* 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701
*/
private String parentAreaCode;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String community;
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save