wangxianzhang 3 years ago
parent
commit
93c7a3a094
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  2. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java
  3. 7
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  4. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
  5. 59
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java
  6. 46
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java
  7. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java
  8. 28
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  9. 62
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java
  10. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java
  11. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
  12. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java
  13. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java
  14. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  15. 31
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java
  16. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java
  17. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java
  18. 68
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java
  19. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java
  20. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  21. 117
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  22. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  23. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  24. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java
  25. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  26. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  27. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  28. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  29. 24
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java
  30. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java
  31. 29
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java
  32. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml
  33. 40
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml
  34. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
  35. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml
  36. 44
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml
  37. 49
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
  38. 46
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml
  39. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java
  40. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
  41. 14
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml
  42. 131
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogDTO.java
  43. 89
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogFileDTO.java
  44. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogController.java
  45. 82
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogFileController.java
  46. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
  47. 39
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogDao.java
  48. 26
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogFileDao.java
  49. 79
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogEntity.java
  50. 54
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogFileEntity.java
  51. 45
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogExcel.java
  52. 57
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogFileExcel.java
  53. 30
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogFileRedis.java
  54. 30
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogRedis.java
  55. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogFileService.java
  56. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogService.java
  57. 95
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogFileServiceImpl.java
  58. 226
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogServiceImpl.java
  59. 67
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.42__add_work_log.sql
  60. 1
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.43__alter_work_log.sql
  61. BIN
      epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx
  62. 14
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
  63. 118
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml
  64. 30
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml
  65. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java
  66. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java
  67. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java
  68. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java
  69. 1
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java
  70. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java
  71. 4
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java
  72. 7
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java
  73. 17
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  74. 18
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml
  75. 17
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  76. 7
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java
  77. 6
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java
  78. 5
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java
  79. 27
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java
  80. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  81. 79
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java
  82. 19
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  83. 10
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java
  84. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java
  85. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
  86. 15
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java
  87. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java
  88. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java
  89. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java
  90. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java
  91. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  92. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  93. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java
  94. 1
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql
  95. BIN
      epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java

@ -28,6 +28,7 @@ public enum DictTypeEnum {
IC_SERVICE_TYPE("ic_service_type","服务类别",20),
IC_DANGER_TYPE("ic_danger_type","危化品种类",24),
POLICY_LEVEL("policy_level","政策级别",25),
LOG_TYPE("log_type", "日志类型", 33),
;
private final String code;

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java

@ -18,7 +18,8 @@ public enum ResiCategoryEnum {
IS_CJ("IS_CJ", "残疾"),
IS_DB("IS_DB", "大病"),
IS_MB("IS_MB", "慢病"),
IS_SPECIAL("IS_SPECIAL", "特殊人群");
IS_SPECIAL("IS_SPECIAL", "特殊人群"),
IS_XJC("IS_XJC", "新阶层人士");
private String colName;
private String label;

7
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -849,4 +849,11 @@ public class RedisKeys {
public static String getServiceOrgNameKey(String customerId,String serviceOrgType,String serviceOrgId){
return rootPrefix.concat("serviceOrgName:").concat(serviceOrgType).concat(":").concat(customerId).concat(":").concat(serviceOrgId);
}
public static String getUserBaseInfoKey(String userId) {
if (StringUtils.isBlank(userId)){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误");
}
return rootPrefix.concat("staffbaseinfo:")+userId;
}
}

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

@ -38,4 +38,5 @@ public interface DataSourceConstant {
String EPMET_T_DUCK = "epmettduck";
String EPMETTDUCK="epmettduck";
String EPMET_HEART="heart";
String RESI_PARTYMEMBER="partymember";
}

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

@ -0,0 +1,59 @@
package com.epmet.dataaggre.dto.datastats.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Description 数据统计页面查询-接口入参
*/
@Data
public class NowStatsDataFormDTO implements Serializable {
private static final long serialVersionUID = 6462094914874831738L;
public interface CustomerDataManageForm{}
/**
* 客户ID
*/
@NotBlank(message = "客户ID不能为空",groups = CustomerDataManageForm.class)
private String customerId;
/**
* 组织ID
*/
@NotBlank(message = "组织ID不能为空",groups = CustomerDataManageForm.class)
private String agencyId;
/**
* 区间:Interval 截止:end
*/
@NotBlank(message = "type不能为空",groups = CustomerDataManageForm.class)
private String type;
/**
* 开始时间 精确到秒yyyy-MM-dd HH:mm:ss
*/
private String startTime;
/**
* 结束时间 精确到秒yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class)
private String endTime;
//组织或网格Id集合
private List<String> idList;
//数据类型【组织agency 网格grid】
private String dataType;
/**
* desc:是否是导出
*/
private boolean export = false;
}

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

@ -0,0 +1,46 @@
package com.epmet.dataaggre.dto.datastats.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Description 数据统计页面查询-接口返参
*/
@Data
public class NowStatsDataResultDTO {
//组织、网格Id
private String orgId;
//组织、网格名称
private String orgName;
//注册居民数
private Integer resiUserCount = 0;
//注册党员数
private Integer partyMemberCount = 0;
//事件总数
private Integer icEventCount = 0;
//居民上报事件数【小程序端随手拍随时讲】
private Integer resiEventCount = 0;
//平台录入事件数【数字平台录入的事件数】
private Integer pcEventCount = 0;
//项目总数
private Integer projectCount = 0;
//议题转项目数
private Integer issueProjectCount = 0;
//事件立项数
private Integer icEventProjectCount = 0;
//直接立项项目数
private Integer agencyProjectCount = 0;
//组织的pids
private String pids;
//事件来源,0代表居民点 其他代表数字平台
private String sourceType;
//项目来源 issue议题 agency立项 ic_event事件
private String origin;
}

10
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java

@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格Id (customer_grid.id)
*/

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

@ -259,6 +259,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://192.168.1.140:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.140</spring.redis.host>
@ -390,6 +397,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://192.168.1.140:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.140</spring.redis.host>
@ -522,6 +536,13 @@
<datasource.druid.heart.username>epmet</datasource.druid.heart.username>
<datasource.druid.heart.password>elink@833066</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet</datasource.druid.partymember.username>
<datasource.druid.partymember.password>elink@833066</datasource.druid.partymember.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.10.150</spring.redis.host>
@ -654,6 +675,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com</spring.redis.host>

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

@ -1,11 +1,25 @@
package com.epmet.dataaggre.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.excel.NowStatsDataExcel;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -13,13 +27,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
/**
* @Author sun
* @Description 数据统计服务
*/
@Slf4j
@RestController
@RequestMapping("datastats")
public class DataStatsController {
@ -243,4 +261,48 @@ public class DataStatsController {
return new Result<CustomerDataManageResultDTO>().ok(dataStatsService.operateExport(formDTO));
}
/**
* @Description 数据统计页面查询用户项目事件一些数据的实时统计查询
* 需求数据统计页面查询注册居民数注册党员数事件总数居民上报事件数平台录入事件数项目总数议题转项目数事件立项数立项数
* 可根据组织只选组织查询直属下级数据选择统计类型截止累计值/区间新增值截止累计选择一天区间选择时间段精确到时分秒筛选
* 可点击查看总计可导出打开页面默认选中当前工作人员所在组织页面参考灵山卫-人房信息统计页面
* @author sun
*/
@PostMapping("nowstatsdata")
public Result<List<NowStatsDataResultDTO>> nowStatsData(@RequestBody NowStatsDataFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, NowStatsDataFormDTO.CustomerDataManageForm.class);
formDTO.setExport(false);
return new Result<List<NowStatsDataResultDTO>>().ok(dataStatsService.nowStatsData(formDTO));
}
@PostMapping("nowstatsdataexport")
public void nowStatsDataExport(@RequestBody NowStatsDataFormDTO formDTO, HttpServletResponse response) throws IOException {
formDTO.setExport(true);
ExcelWriter excelWriter = null;
try {
String fileName = "数据统计" + DateUtils.format(new Date()) + ".xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), NowStatsDataExcel.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
List<NowStatsDataResultDTO> data = null;
List<NowStatsDataExcel> list = null;
data = dataStatsService.nowStatsData(formDTO);
list = ConvertUtils.sourceToTarget(data, NowStatsDataExcel.class);
excelWriter.write(list, writeSheet);
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java

@ -18,9 +18,13 @@
package com.epmet.dataaggre.dao.epmetuser;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 注册关系表 用于统计客户网格的注册居民数
*
@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> {
List<NowStatsDataResultDTO> selectNowResiUser(NowStatsDataFormDTO formDTO);
}

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

@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.govorg;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.result.*;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import org.apache.ibatis.annotations.Mapper;
@ -108,4 +109,5 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
List<String> getSubAgencyList(@Param("agencyId") String agencyId);
List<ScreenCustomerAgencyDTO> getSubAgencyListByAgency(@Param("customerId") String customerId, @Param("agencyId") String agencyId);
}

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

@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.govorg;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
@ -84,4 +85,5 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
*/
CustomerGridDTO getGridInfo(@Param("gridId") String gridId);
List<ScreenCustomerGridDTO> getSubGridList(@Param("customerId") String customerId, @Param("agencyId") String agencyId);
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.dao.govproject;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO;
import com.epmet.dataaggre.entity.govproject.IcEventEntity;
@ -25,4 +27,5 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
*/
List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO);
List<NowStatsDataResultDTO> getIcEvent(NowStatsDataFormDTO formDTO);
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java

@ -18,6 +18,8 @@
package com.epmet.dataaggre.dao.govproject;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO;
import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO;
@ -132,4 +134,6 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
List<OrgCountDTO> getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO);
}

31
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java

@ -0,0 +1,31 @@
/**
* 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.resipartymember;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ResiPartymemberDao {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

15
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java

@ -215,6 +215,21 @@ public class IcResiUserEntity extends BaseEpmetEntity {
*/
private String isSpecial;
/**
* 是否租户:1 :0
*/
private String isTenant;
/**
* 是否流动人口:1 :0
*/
private String isFloating;
/**
* 是否新阶层人士:1 :0
*/
private String isXjc;
/**
* 文化程度字典表
*/

10
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java

@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格Id (customer_grid.id)
*/

68
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java

@ -0,0 +1,68 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
public class NowStatsDataExcel {
//组织、网格名称
@ExcelProperty(value = "组织名称")
@ColumnWidth(25)
private String orgName;
//注册居民数
@ExcelProperty(value = "注册居民数")
@ColumnWidth(20)
private Integer resiUserCount;
//注册党员数
@ExcelProperty(value = "注册党员数")
@ColumnWidth(20)
private Integer partyMemberCount;
//事件总数
@ExcelProperty(value = "事件总数")
@ColumnWidth(20)
private Integer icEventCount;
//居民上报事件数【小程序端随手拍随时讲】
@ExcelProperty(value = "居民上报事件数")
@ColumnWidth(20)
private Integer resiEventCount;
//平台录入事件数【数字平台录入的事件数】
@ExcelProperty(value = "平台录入事件数")
@ColumnWidth(20)
private Integer pcEventCount;
//项目总数
@ExcelProperty(value = "项目总数")
@ColumnWidth(20)
private Integer projectCount;
//议题转项目数
@ExcelProperty(value = "议题转项目数")
@ColumnWidth(20)
private Integer issueProjectCount;
//事件立项数
@ExcelProperty(value = "事件立项数")
@ColumnWidth(20)
private Integer icEventProjectCount;
//直接立项项目数
@ExcelProperty(value = "立项数")
@ColumnWidth(20)
private Integer agencyProjectCount;
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java

@ -0,0 +1,12 @@
package com.epmet.dataaggre.service;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import java.util.List;
public interface PartymemberService {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

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

@ -306,4 +306,6 @@ public interface DataStatsService {
Map<String, Integer> getMemberMap(String agencyId);
PageData<MemberProjectInfoResultDTO> getMemberList(OrgStatisticsFormDTO formDTO);
List<NowStatsDataResultDTO> nowStatsData(NowStatsDataFormDTO formDTO);
}

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

@ -40,10 +40,13 @@
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity;
import com.epmet.dataaggre.excel.CustomerDataManageExcel;
import com.epmet.dataaggre.service.PartymemberService;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.govproject.GovProjectService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -86,6 +89,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService;
@Autowired
private GovOrgService govOrgService;
@Autowired
private EpmetUserService epmetUserService;
@Autowired
private GovProjectService govProjectService;
@Autowired
private PartymemberService partymemberService;
/**
* @Param formDTO
@ -2310,4 +2319,112 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
PageInfo<MemberProjectInfoResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<NowStatsDataResultDTO> nowStatsData(NowStatsDataFormDTO formDTO) {
//1.必要参数校验及处理
String startTimeForm = formDTO.getStartTime();
if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(startTimeForm)) {
throw new RenException("请选择开始时间或查询累计值");
}
//2.查询组织信息,判断要查询下级是组织还是网格数据
ScreenAgencyOrGridListDTO agencyGrid = govOrgService.getSubAgencyOrGridList(formDTO.getCustomerId(), formDTO.getAgencyId());
if (null == agencyGrid) {
return new ArrayList<>();
}
//组织或网格Id集合
List<String> idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList());
formDTO.setDataType(!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) ? OrgTypeEnum.AGENCY.getCode() : OrgTypeEnum.GRID.getCode());
formDTO.setIdList(idList);
//3.按条件分别查询统计各业务实时数据
//3-1.注册居民、注册党员数
List<NowStatsDataResultDTO> user = epmetUserService.getNowResiUser(formDTO);
List<NowStatsDataResultDTO> party = partymemberService.getNowPart(formDTO);
//3-2.事件总数、居民上报事件数、平台录入事件数
List<NowStatsDataResultDTO> event = govProjectService.getNowIcEvent(formDTO);
//3-3.项目总数、议题转项目数、事件立项数、组织立项数
List<NowStatsDataResultDTO> project = govProjectService.getNowProject(formDTO);
Map<String, NowStatsDataResultDTO> userMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> partyMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> eventMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> projectMap = new HashMap<>();
if ("grid".equals(formDTO.getDataType())) {
userMap = CollectionUtils.isEmpty(user) ? new HashMap<>() : user.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
partyMap = CollectionUtils.isEmpty(party) ? new HashMap<>() : party.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
eventMap = CollectionUtils.isEmpty(event) ? new HashMap<>() : event.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
projectMap = CollectionUtils.isEmpty(project) ? new HashMap<>() : project.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
}
//4.封装数据
List<NowStatsDataResultDTO> resultDTOList = new ArrayList<>();
NowStatsDataResultDTO export = new NowStatsDataResultDTO();
export.setOrgName("合计");
for (ScreenAgencyOrGridListDTO.AgencyGrid org : agencyGrid.getAgencyGridList()) {
NowStatsDataResultDTO dto = new NowStatsDataResultDTO();
dto.setOrgId(org.getOrgId());
dto.setOrgName(org.getOrgName());
//网格数据sql已统计好
if ("grid".equals(formDTO.getDataType())) {
if (userMap.containsKey(org.getOrgId())) {
dto.setResiUserCount(userMap.get(org.getOrgId()).getResiUserCount());
}
if (partyMap.containsKey(org.getOrgId())) {
dto.setPartyMemberCount(partyMap.get(org.getOrgId()).getPartyMemberCount());
}
if (eventMap.containsKey(org.getOrgId())) {
dto.setIcEventCount(eventMap.get(org.getOrgId()).getIcEventCount());
dto.setResiEventCount(eventMap.get(org.getOrgId()).getResiEventCount());
dto.setPcEventCount(eventMap.get(org.getOrgId()).getPcEventCount());
}
if (projectMap.containsKey(org.getOrgId())) {
dto.setProjectCount(projectMap.get(org.getOrgId()).getProjectCount());
dto.setIssueProjectCount(projectMap.get(org.getOrgId()).getIssueProjectCount());
dto.setIcEventProjectCount(projectMap.get(org.getOrgId()).getIcEventProjectCount());
dto.setAgencyProjectCount(projectMap.get(org.getOrgId()).getAgencyProjectCount());
}
} else {
//组织数据 需要java计算结果
int resiUserCount = (int) user.stream().filter(u -> u.getPids().contains(org.getOrgId())).count();
dto.setResiUserCount(resiUserCount);
int partyMemberCount = (int) party.stream().filter(p -> p.getPids().contains(org.getOrgId())).count();
dto.setPartyMemberCount(partyMemberCount);
int resiEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && "0".equals(e.getSourceType())).count();
int pcEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && !"0".equals(e.getSourceType())).count();
int icEventCount = resiEventCount + pcEventCount;
dto.setIcEventCount(icEventCount);
dto.setResiEventCount(resiEventCount);
dto.setPcEventCount(pcEventCount);
int issueProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "issue".equals(p.getOrigin())).count();
int icEventProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "ic_event".equals(p.getOrigin())).count();
int agencyProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "agency".equals(p.getOrigin())).count();
int projectCount = issueProjectCount + icEventProjectCount + agencyProjectCount;
dto.setProjectCount(projectCount);
dto.setIssueProjectCount(issueProjectCount);
dto.setIcEventProjectCount(icEventProjectCount);
dto.setAgencyProjectCount(agencyProjectCount);
}
resultDTOList.add(dto);
if (formDTO.isExport()) {
export.setResiUserCount(export.getResiUserCount() + dto.getResiUserCount());
export.setPartyMemberCount(export.getPartyMemberCount() + dto.getPartyMemberCount());
export.setIcEventCount(export.getIcEventCount() + dto.getIcEventCount());
export.setResiEventCount(export.getResiEventCount() + dto.getResiEventCount());
export.setPcEventCount(export.getPcEventCount() + dto.getPcEventCount());
export.setProjectCount(export.getProjectCount() + dto.getProjectCount());
export.setIssueProjectCount(export.getIssueProjectCount() + dto.getIssueProjectCount());
export.setIcEventProjectCount(export.getIcEventProjectCount() + dto.getIcEventProjectCount());
export.setAgencyProjectCount(export.getAgencyProjectCount() + dto.getAgencyProjectCount());
}
}
if (formDTO.isExport()) {
resultDTOList.add(export);
}
return resultDTOList;
}
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.service.epmetuser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.epmetuser.form.*;
import com.epmet.dataaggre.dto.epmetuser.result.*;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
@ -236,4 +238,6 @@ public interface EpmetUserService {
Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory);
List<IcResiUserEntity> listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory);
List<NowStatsDataResultDTO> getNowResiUser(NowStatsDataFormDTO formDTO);
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -15,6 +15,8 @@ import com.epmet.constant.BadgeConstant;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.epmetuser.*;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO;
import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO;
import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO;
@ -90,6 +92,8 @@ public class EpmetUserServiceImpl implements EpmetUserService {
private IcResiUserDao icResiUserDao;
@Resource
private CustomerFootBarService customerFootBarService;
@Resource
private RegisterRelationDao registerRelationDao;
/**
* @Description 根据UserIds查询
@ -912,4 +916,11 @@ public class EpmetUserServiceImpl implements EpmetUserService {
return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory);
}
}
@Override
public List<NowStatsDataResultDTO> getNowResiUser(NowStatsDataFormDTO formDTO) {
//实时统计组织/网格下小程序端注册居民数
List<NowStatsDataResultDTO> list = registerRelationDao.selectNowResiUser(formDTO);
return list;
}
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java

@ -118,6 +118,8 @@ public class IcResiServiceImpl implements IcResiService {
query.eq(IcResiUserEntity::getIsMb, true);
} else if (ResiCategoryEnum.IS_SPECIAL.getColName().equals(categoryKey)) {
query.eq(IcResiUserEntity::getIsSpecial, true);
} else if(ResiCategoryEnum.IS_XJC.getColName().equals(categoryKey)){
query.eq(IcResiUserEntity::getIsXjc, true);
}
if (StringUtils.isNotBlank(search)) {

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

@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO;
import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
@ -289,4 +290,6 @@ public interface GovOrgService {
List<ResourceInfoResultDTO> getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO);
Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO);
ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId);
}

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

@ -14,6 +14,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -39,6 +40,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.*;
import com.epmet.dataaggre.dto.govorg.form.*;
import com.epmet.dataaggre.dto.govorg.result.*;
@ -1467,4 +1471,43 @@ public class GovOrgServiceImpl implements GovOrgService {
public Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO) {
return cityManagementDao.getEnterpriseInfosCount(formDTO);
}
@Override
public ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId) {
ScreenAgencyOrGridListDTO resultDTO = new ScreenAgencyOrGridListDTO();
List<ScreenAgencyOrGridListDTO.AgencyGrid> agencyGridList = new ArrayList<>();
//1.查询组织信息
CustomerAgencyEntity dto = customerAgencyDao.selectById(agencyId);
if (dto == null) {
log.error(String.format("组织信息不存在,组织Id->%s", agencyId));
return new ScreenAgencyOrGridListDTO();
}
//2.根据组织级别判断查询直属组织或网格列表
List<ScreenCustomerAgencyDTO> agencyList = new ArrayList<>();
List<ScreenCustomerGridDTO> gridList = new ArrayList<>();
if (!"community".equals(dto.getLevel())) {
//2-1.直属下级组织列表
agencyList = customerAgencyDao.getSubAgencyListByAgency(customerId, agencyId);
agencyList.forEach(gr->{
ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid();
org.setOrgId(gr.getAgencyId());
org.setOrgName(gr.getAgencyName());
agencyGridList.add(org);
});
} else {
//2-2.直属下级网格列表
gridList = customerGridDao.getSubGridList(customerId, agencyId);
gridList.forEach(gr->{
ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid();
org.setOrgId(gr.getGridId());
org.setOrgName(gr.getGridName());
agencyGridList.add(org);
});
}
resultDTO.setLevel(dto.getLevel());
resultDTO.setAgencyGridList(agencyGridList);
return resultDTO;
}
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.service.govproject;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
@ -180,4 +182,7 @@ public interface GovProjectService {
*/
List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO);
List<NowStatsDataResultDTO> getNowIcEvent(NowStatsDataFormDTO formDTO);
List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO);
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java

@ -21,8 +21,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govproject.IcEventDao;
import com.epmet.dataaggre.dao.govproject.ProjectDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
@ -797,4 +799,14 @@ public class GovProjectServiceImpl implements GovProjectService {
return icEventDao.getEventInfos(formDTO);
}
@Override
public List<NowStatsDataResultDTO> getNowIcEvent(NowStatsDataFormDTO formDTO) {
return icEventDao.getIcEvent(formDTO);
}
@Override
public List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO) {
return projectDao.getNowProject(formDTO);
}
}

24
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java

@ -0,0 +1,24 @@
package com.epmet.dataaggre.service.impl;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.service.PartymemberService;
import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class PartymemberServiceImpl implements PartymemberService {
@Autowired
private ResiPartymemberService resiPartymemberService;
@Override
public List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO) {
return resiPartymemberService.getNowPart(formDTO);
}
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java

@ -0,0 +1,12 @@
package com.epmet.dataaggre.service.resipartymember;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import java.util.List;
public interface ResiPartymemberService {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

29
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java

@ -0,0 +1,29 @@
package com.epmet.dataaggre.service.resipartymember.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.resipartymember.ResiPartymemberDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
@DataSource(DataSourceConstant.RESI_PARTYMEMBER)
public class ResiPartymemberServiceImpl implements ResiPartymemberService {
@Autowired
private ResiPartymemberDao resiPartymemberDao;
@Override
public List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO) {
return resiPartymemberDao.getNowPart(formDTO);
}
}

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

@ -161,6 +161,11 @@ dynamic:
url: @datasource.druid.heart.url@
username: @datasource.druid.heart.username@
password: @datasource.druid.heart.password@
partymember:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.partymember.url@
username: @datasource.druid.partymember.username@
password: @datasource.druid.partymember.password@
feign:
hystrix:
enabled: true

40
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml

@ -3,4 +3,44 @@
<mapper namespace="com.epmet.dataaggre.dao.epmetuser.RegisterRelationDao">
<select id="selectNowResiUser" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
agency_id_path pids
FROM register_relation
WHERE del_flag = '0'
AND first_register = '1'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
SUM(first_register = '1') resiUserCount
FROM
register_relation
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper>

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

@ -309,4 +309,21 @@
OR PIDS LIKE CONCAT('%', #{agencyId}, '%'))
</select>
<select id="getSubAgencyListByAgency" resultType="com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO">
SELECT
customer_id AS customerId,
id AS agencyId,
organization_name AS agencyName,
level AS level,
area_code AS areaCode,
parent_area_code AS parentAreaCode,
pids
FROM
customer_agency
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND pid = #{agencyId}
</select>
</mapper>

15
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml

@ -181,4 +181,19 @@
AND cg.DEL_FLAG = '0'
</select>
<select id="getSubGridList" resultType="com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO">
SELECT
customer_id AS customerId,
id AS gridId,
grid_name AS gridName,
pid AS parentAgencyId,
pids AS allParentIds
FROM
customer_grid
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND pid = #{agencyId}
</select>
</mapper>

44
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml

@ -27,4 +27,48 @@
AND EVENT_CONTENT LIKE CONCAT('%',#{name},'%')
</if>
</select>
<select id="getIcEvent" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
grid_pids pids,
source_type sourceType
FROM ic_event
WHERE del_flag = '0'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
COUNT(id) icEventCount,
SUM(source_type = '0') resiEventCount,
SUM(source_type != '0') pcEventCount
FROM
ic_event
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper>

49
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

@ -470,6 +470,9 @@
<if test="'grid' == orgType">
AND GRID_ID = #{orgId}
</if>
<if test="'agency' == orgType">
AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%')
</if>
<if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if>
@ -492,6 +495,9 @@
<if test="'grid' == orgType">
AND GRID_ID = #{orgId}
</if>
<if test="'agency' == orgType">
AND ORG_ID_PATH LIKE concat('%', #{orgId}, '%')
</if>
<if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if>
@ -539,4 +545,47 @@
AGENCY_ID
</select>
<select id="getNowProject" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
org_id_path pids,
origin origin
FROM project
WHERE del_flag = '0'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
COUNT(id) projectCount,
SUM(origin = 'issue') issueProjectCount,
SUM(origin = 'ic_event') icEventProjectCount,
SUM(origin = 'agency') agencyProjectCount
FROM
project
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper>

46
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml

@ -0,0 +1,46 @@
<?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.resipartymember.ResiPartymemberDao">
<select id="getNowPart" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
agency_id_path pids
FROM partymember_register_relation
WHERE del_flag = '0'
AND first_register = '1'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
SUM(first_register = '1') partyMemberCount
FROM
partymember_register_relation
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper>

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java

@ -225,6 +225,11 @@ public class IcResiUserEntity extends BaseEpmetEntity {
*/
private String isFloating;
/**
* 是否新阶层人士:1 :0
*/
private String isXjc;
/**
* 文化程度字典表
*/

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java

@ -386,7 +386,6 @@ public class DataReportingServiceImpl implements DataReportingService {
case ProjectConstant.PENDING:
return "01";
case ProjectConstant.CLOSED:
return "02";
case ProjectConstant.CLOSED_CASE:
return "03";
default:

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

@ -61,15 +61,19 @@
<select id="selectCategoryList" resultType="com.epmet.dto.IssueProjectCategoryDictDTO">
SELECT
*
a.*,
b.CATEGORY_NAME as parentCategoryName
FROM
issue_project_category_dict
issue_project_category_dict a
LEFT JOIN issue_project_category_dict b ON a.PID = b.ID
AND b.del_flag = '0'
AND b.customer_id = #{customerId}
WHERE
del_flag = '0'
AND customer_id = #{customerId}
a.del_flag = '0'
AND a.customer_id = #{customerId}
<if test="cstegoryIdList != null and cstegoryIdList.size() > 0">
<foreach collection="cstegoryIdList" item="id" open="AND( " separator=" OR " index="index" close=")">
id = #{id}
a.id = #{id}
</foreach>
</if>
ORDER BY

131
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogDTO.java

@ -0,0 +1,131 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import lombok.Data;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
public class IcWorkLogDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 组织Id
*/
private String agencyId;
/**
* 组织Id
*/
private String allAgencyName;
/**
* agency_id的所有上级
*/
private String pids;
/**
* 网格Id场所区域
*/
private String gridId;
/**
* 网格Id场所区域
*/
private String gridName;
/**
* 标题
*/
private String title;
/**
* 日志类型admin库sys_dict_data表value值
*/
private String logType;
/**
* 日志日期
*/
private String logDate;
/**
* 内容
*/
private String content;
/**
* 备注
*/
private String remark;
/**
* 手机
*/
private String mobile;
/**
* 删除标识0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 创建人名称
*/
private String createdUser;
/**
* url
*/
private String url;
/**
* 附件
*/
private List<IcWorkLogFileDTO> fileList;
}

89
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogFileDTO.java

@ -0,0 +1,89 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
public class IcWorkLogFileDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 日志Id
*/
private String logId;
/**
* 地址
*/
private String url;
/**
* 文件名
*/
private String fileName;
/**
* 文件名
*/
private String name;
/**
* 文件类型0图片
*/
private String fileType;
/**
* 内容
*/
private Integer sort;
/**
* 删除标识0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

88
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogController.java

@ -0,0 +1,88 @@
package com.epmet.controller;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.IcWorkLogDTO;
import com.epmet.excel.IcWorkLogExcel;
import com.epmet.service.IcWorkLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@RestController
@RequestMapping("icWorkLog")
public class IcWorkLogController {
@Autowired
private IcWorkLogService icWorkLogService;
@RequestMapping("page")
public Result<PageData<IcWorkLogDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcWorkLogDTO> page = icWorkLogService.page(params);
return new Result<PageData<IcWorkLogDTO>>().ok(page);
}
@RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
public Result<IcWorkLogDTO> get(@PathVariable("id") String id){
IcWorkLogDTO data = icWorkLogService.get(id);
return new Result<IcWorkLogDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping
public Result save(@RequestBody IcWorkLogDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icWorkLogService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PutMapping
public Result update(@RequestBody IcWorkLogDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icWorkLogService.update(dto);
return new Result();
}
@RequestMapping(value = "delete", method = {RequestMethod.POST, RequestMethod.DELETE})
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icWorkLogService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<IcWorkLogDTO> list = icWorkLogService.list4Export(params);
if(CollectionUtils.isEmpty(list)){
IcWorkLogDTO dto = new IcWorkLogDTO();
dto.setId("");
list.add(dto);
}
ExcelUtils.exportExcelToTarget(response, null, list, IcWorkLogExcel.class);
}
}

82
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogFileController.java

@ -0,0 +1,82 @@
package com.epmet.controller;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.IcWorkLogFileDTO;
import com.epmet.excel.IcWorkLogFileExcel;
import com.epmet.service.IcWorkLogFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@RestController
@RequestMapping("icWorkLogFile")
public class IcWorkLogFileController {
@Autowired
private IcWorkLogFileService icWorkLogFileService;
@RequestMapping("page")
public Result<PageData<IcWorkLogFileDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcWorkLogFileDTO> page = icWorkLogFileService.page(params);
return new Result<PageData<IcWorkLogFileDTO>>().ok(page);
}
@RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
public Result<IcWorkLogFileDTO> get(@PathVariable("id") String id){
IcWorkLogFileDTO data = icWorkLogFileService.get(id);
return new Result<IcWorkLogFileDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcWorkLogFileDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icWorkLogFileService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcWorkLogFileDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icWorkLogFileService.update(dto);
return new Result();
}
@RequestMapping(value = "delete", method = {RequestMethod.POST, RequestMethod.DELETE})
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icWorkLogFileService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<IcWorkLogFileDTO> list = icWorkLogFileService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, IcWorkLogFileExcel.class);
}
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java

@ -376,5 +376,13 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
CustomerAgencyEntity getAreaRootAgency(@Param("customerId") String customerId);
/**
* @Description 根据人查询所在组织
* @Param userId
* @author zhy
* @date 2021/8/5 10:08 上午
*/
CustomerAgencyEntity getAgencyByUserId(@Param("userId") String userId, @Param("customerId") String customerId);
}

39
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogDao.java

@ -0,0 +1,39 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcWorkLogDTO;
import com.epmet.entity.IcWorkLogEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Mapper
public interface IcWorkLogDao extends BaseDao<IcWorkLogEntity> {
/**
* 分页列表
*
* @param params
* @return java.util.List<com.epmet.dto.IcWorkLogDTO>
* @author zhy
* @date 2022/8/9 17:23
*/
List<IcWorkLogDTO> listPage(Map<String, Object> params);
/**
* 导出列表
*
* @param params
* @return java.util.List<com.epmet.dto.IcWorkLogDTO>
* @author zhy
* @date 2022/8/9 17:23
*/
List<IcWorkLogDTO> list4Export(Map<String, Object> params);
}

26
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogFileDao.java

@ -0,0 +1,26 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcWorkLogFileEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Mapper
public interface IcWorkLogFileDao extends BaseDao<IcWorkLogFileEntity> {
/**
* 删除
*
* @param logId
* @return void
* @author generator
* @date 2022-08-05
*/
void deleteByLogId(@Param("logId") String logId);
}

79
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogEntity.java

@ -0,0 +1,79 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_work_log")
public class IcWorkLogEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 组织Id
*/
private String agencyId;
/**
* agency_id的所有上级
*/
private String pids;
/**
* 网格Id场所区域
*/
private String gridId;
/**
* 标题
*/
private String title;
/**
* 日志类型admin库sys_dict_data表value值
*/
private String logType;
/**
* 日志日期
*/
private String logDate;
/**
* 内容
*/
private String content;
/**
* 备注
*/
private String remark;
/**
* 手机
*/
private String mobile;
/**
* 创建人名称
*/
private String createdUser;
}

54
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogFileEntity.java

@ -0,0 +1,54 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_work_log_file")
public class IcWorkLogFileEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 日志Id
*/
private String logId;
/**
* 地址
*/
private String url;
/**
* 文件名
*/
private String fileName;
/**
* 文件类型0图片
*/
private String fileType;
/**
* 内容
*/
private Integer sort;
}

45
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogExcel.java

@ -0,0 +1,45 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
public class IcWorkLogExcel {
@Excel(name = "网格员", width = 15)
private String createdUser;
@Excel(name = "联系电话", width = 20)
private String mobile;
@Excel(name = "所属镇街", width = 25)
private String allAgencyName;
@Excel(name = "所属网格", width = 25)
private String gridName;
@Excel(name = "标题", width = 25)
private String title;
@Excel(name = "日志时间", width = 15)
private String logDate;
@Excel(name = "日志类型", width = 15)
private String logType;
@Excel(name = "内容", width = 100)
private String content;
@Excel(name = "备注", width = 50)
private String remark;
@Excel(name = "照片", width = 50)
private String url;
}

57
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogFileExcel.java

@ -0,0 +1,57 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Data
public class IcWorkLogFileExcel {
@Excel(name = "唯一标识")
private String id;
@Excel(name = "客户Id")
private String customerId;
@Excel(name = "日志Id")
private String logId;
@Excel(name = "地址")
private String url;
@Excel(name = "文件名")
private String fileName;
@Excel(name = "文件类型,0图片")
private String fileType;
@Excel(name = "内容")
private Integer sort;
@Excel(name = "删除标识:0.未删除 1.已删除")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

30
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogFileRedis.java

@ -0,0 +1,30 @@
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Component
public class IcWorkLogFileRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

30
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogRedis.java

@ -0,0 +1,30 @@
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Component
public class IcWorkLogRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

88
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogFileService.java

@ -0,0 +1,88 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcWorkLogFileDTO;
import com.epmet.entity.IcWorkLogFileEntity;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
public interface IcWorkLogFileService extends BaseService<IcWorkLogFileEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcWorkLogFileDTO>
* @author generator
* @date 2022-08-05
*/
PageData<IcWorkLogFileDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcWorkLogFileDTO>
* @author generator
* @date 2022-08-05
*/
List<IcWorkLogFileDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcWorkLogFileDTO
* @author generator
* @date 2022-08-05
*/
IcWorkLogFileDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-08-05
*/
void save(IcWorkLogFileDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-08-05
*/
void update(IcWorkLogFileDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-08-05
*/
void delete(String[] ids);
/**
* 删除
*
* @param logId
* @return void
* @author generator
* @date 2022-08-05
*/
void deleteByLogId(String logId);
}

88
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogService.java

@ -0,0 +1,88 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcWorkLogDTO;
import com.epmet.entity.IcWorkLogEntity;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
public interface IcWorkLogService extends BaseService<IcWorkLogEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcWorkLogDTO>
* @author generator
* @date 2022-08-05
*/
PageData<IcWorkLogDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcWorkLogDTO>
* @author generator
* @date 2022-08-05
*/
List<IcWorkLogDTO> list(Map<String, Object> params);
/**
* 查询
*
* @param params
* @return java.util.List<IcWorkLogDTO>
* @author generator
* @date 2022-08-05
*/
List<IcWorkLogDTO> list4Export(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcWorkLogDTO
* @author generator
* @date 2022-08-05
*/
IcWorkLogDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-08-05
*/
void save(IcWorkLogDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-08-05
*/
void update(IcWorkLogDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-08-05
*/
void delete(String[] ids);
}

95
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogFileServiceImpl.java

@ -0,0 +1,95 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.IcWorkLogFileDao;
import com.epmet.dto.IcWorkLogFileDTO;
import com.epmet.entity.IcWorkLogFileEntity;
import com.epmet.redis.IcWorkLogFileRedis;
import com.epmet.service.IcWorkLogFileService;
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 java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志附件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Service
public class IcWorkLogFileServiceImpl extends BaseServiceImpl<IcWorkLogFileDao, IcWorkLogFileEntity> implements IcWorkLogFileService {
@Autowired
private IcWorkLogFileRedis icWorkLogFileRedis;
@Override
public PageData<IcWorkLogFileDTO> page(Map<String, Object> params) {
IPage<IcWorkLogFileEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcWorkLogFileDTO.class);
}
@Override
public List<IcWorkLogFileDTO> list(Map<String, Object> params) {
List<IcWorkLogFileEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcWorkLogFileDTO.class);
}
private QueryWrapper<IcWorkLogFileEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
String logId = (String)params.get("logId");
QueryWrapper<IcWorkLogFileEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(logId), "LOG_ID", logId);
return wrapper;
}
@Override
public IcWorkLogFileDTO get(String id) {
IcWorkLogFileEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcWorkLogFileDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcWorkLogFileDTO dto) {
IcWorkLogFileEntity entity = ConvertUtils.sourceToTarget(dto, IcWorkLogFileEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcWorkLogFileDTO dto) {
IcWorkLogFileEntity entity = ConvertUtils.sourceToTarget(dto, IcWorkLogFileEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteByLogId(String id) {
baseDao.deleteByLogId(id);
}
}

226
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogServiceImpl.java

@ -0,0 +1,226 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.enums.DictTypeEnum;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.CustomerAgencyDao;
import com.epmet.dao.CustomerGridDao;
import com.epmet.dao.IcWorkLogDao;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.IcWorkLogDTO;
import com.epmet.dto.IcWorkLogFileDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.result.GridDetailResultDTO;
import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.entity.CustomerGridEntity;
import com.epmet.entity.IcWorkLogEntity;
import com.epmet.entity.IcWorkLogFileEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.IcWorkLogRedis;
import com.epmet.service.IcWorkLogFileService;
import com.epmet.service.IcWorkLogService;
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 javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 网格员工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-05
*/
@Service
public class IcWorkLogServiceImpl extends BaseServiceImpl<IcWorkLogDao, IcWorkLogEntity> implements IcWorkLogService {
@Autowired
private IcWorkLogRedis icWorkLogRedis;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private IcWorkLogFileService icWorkLogFileService;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Resource
private CustomerGridDao customerGridDao;
@Resource
private CustomerAgencyDao customerAgencyDao;
@Override
public PageData<IcWorkLogDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
params.put("createdBy", loginUserUtil.getLoginUserId());
IPage<IcWorkLogDTO> page = getPage(params);
List<IcWorkLogDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<IcWorkLogDTO> list(Map<String, Object> params) {
List<IcWorkLogEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcWorkLogDTO.class);
}
@Override
public List<IcWorkLogDTO> list4Export(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
params.put("createdBy", loginUserUtil.getLoginUserId());
List<IcWorkLogDTO> list = baseDao.list4Export(params);
Result<Map<String, String>> result = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.LOG_TYPE.getCode());
if (!result.success() || null == result.getData()) {
throw new EpmetException("查询字典信息失败" + JSON.toJSONString(result));
} else {
Map<String, String> logTypeMap = result.getData();
list.forEach(item -> item.setLogType(logTypeMap.get(item.getLogType())));
}
return list;
}
private QueryWrapper<IcWorkLogEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcWorkLogEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcWorkLogDTO get(String id) {
IcWorkLogEntity entity = baseDao.selectById(id);
IcWorkLogDTO dto = ConvertUtils.sourceToTarget(entity, IcWorkLogDTO.class);
if (StringUtils.isNotBlank(entity.getGridId())) {
CustomerGridEntity grid = customerGridDao.selectById(entity.getGridId());
dto.setGridName(grid.getGridName());
}
Map<String, Object> params = new HashMap<>(2);
params.put("logId", id);
List<IcWorkLogFileDTO> files = icWorkLogFileService.list(params);
files.forEach(item -> item.setName(item.getFileName()));
dto.setFileList(files);
return dto;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcWorkLogDTO dto) {
dto.setCustomerId(loginUserUtil.getLoginUserCustomerId());
//查询当前申请用户的基本信息
CustomerStaffDTO customerStaffParam = new CustomerStaffDTO();
customerStaffParam.setUserId(loginUserUtil.getLoginUserId());
Result<CustomerStaffDTO> staffInfo = epmetUserFeignClient.getCustomerStaffInfoByUserId(customerStaffParam);
if (!staffInfo.success() || null == staffInfo.getData()) {
throw new EpmetException("查询用户信息失败" + JSON.toJSONString(customerStaffParam));
} else {
dto.setCreatedUser(staffInfo.getData().getRealName());
dto.setMobile(staffInfo.getData().getMobile());
}
// 组织机构处理
orgHandle(dto);
IcWorkLogEntity entity = ConvertUtils.sourceToTarget(dto, IcWorkLogEntity.class);
insert(entity);
// 处理附件
fileHandle(dto.getFileList(), entity.getId());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcWorkLogDTO dto) {
// 组织机构处理
orgHandle(dto);
IcWorkLogEntity entity = ConvertUtils.sourceToTarget(dto, IcWorkLogEntity.class);
updateById(entity);
// 处理附件
icWorkLogFileService.deleteByLogId(entity.getId());
fileHandle(dto.getFileList(), entity.getId());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 附件处理
*
* @param fileList
* @param logId
* @return void
* @author zhy
* @date 2022/8/9 17:24
*/
private void fileHandle(List<IcWorkLogFileDTO> fileList, String logId) {
if (!fileList.isEmpty()) {
fileList.forEach(item -> {
item.setLogId(logId);
item.setCustomerId(loginUserUtil.getLoginUserCustomerId());
item.setFileType(NumConstant.ZERO_STR);
});
List<IcWorkLogFileEntity> fileEntityList = ConvertUtils.sourceToTarget(fileList, IcWorkLogFileEntity.class);
icWorkLogFileService.insertBatch(fileEntityList);
}
}
/**
* 组织机构处理
*
* @param dto
* @return
* @author zhy
* @date 2022/8/12 17:30
*/
private void orgHandle(IcWorkLogDTO dto) {
if (StringUtils.isNotBlank(dto.getGridId())) {
// 查询网格信息
CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO();
customerGridFormDTO.setGridId(dto.getGridId());
GridDetailResultDTO gridDetailResultDTO = customerGridDao.griddetail(customerGridFormDTO);
if (gridDetailResultDTO != null) {
dto.setAgencyId(gridDetailResultDTO.getAgencyId());
dto.setPids(gridDetailResultDTO.getPIds());
}
} else {
CustomerAgencyEntity agency = customerAgencyDao.getAgencyByUserId(loginUserUtil.getLoginUserId(), loginUserUtil.getLoginUserCustomerId());
if (agency != null) {
dto.setAgencyId(agency.getId());
dto.setPids(agency.getPids());
}
}
}
}

67
epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.42__add_work_log.sql

@ -0,0 +1,67 @@
/*
Navicat Premium Data Transfer
Source Server : epmet_cloud_dev_gov
Source Server Type : MySQL
Source Server Version : 50726
Source Host : 192.168.1.140:3306
Source Schema : epmet_gov_org
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 09/08/2022 10:41:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ic_work_log
-- ----------------------------
DROP TABLE IF EXISTS `ic_work_log`;
CREATE TABLE `ic_work_log` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一标识',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户Id',
`AGENCY_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织Id',
`PIDS` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'agency_id的所有上级',
`GRID_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格Id【场所区域】',
`TITLE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
`LOG_TYPE` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志类型【admin库sys_dict_data表value值】',
`LOG_DATE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志日期',
`CONTENT` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容',
`REMARK` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`MOBILE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机',
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
`CREATED_USER` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人名称',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网格员工作日志' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for ic_work_log_file
-- ----------------------------
DROP TABLE IF EXISTS `ic_work_log_file`;
CREATE TABLE `ic_work_log_file` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一标识',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户Id',
`LOG_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志Id',
`URL` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '地址',
`FILE_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名',
`FILE_TYPE` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '文件类型,0图片',
`SORT` int(11) NOT NULL DEFAULT 0 COMMENT '内容',
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网格员工作日志附件' ROW_FORMAT = COMPACT;
SET FOREIGN_KEY_CHECKS = 1;

1
epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.43__alter_work_log.sql

@ -0,0 +1 @@
ALTER TABLE epmet_gov_org.ic_work_log MODIFY COLUMN GRID_ID varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '网格Id【场所区域】';

BIN
epmet-module/gov-org/gov-org-server/src/main/resources/excel/public_service_template.xlsx

Binary file not shown.

14
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -982,4 +982,18 @@
</if>
</select>
<!-- 根据人查询所在组织 -->
<select id="getAgencyByUserId" resultType="com.epmet.entity.CustomerAgencyEntity">
SELECT
a.*
FROM
customer_staff_agency sa
LEFT JOIN customer_agency a ON sa.AGENCY_ID = a.ID
WHERE
sa.del_flag = '0'
AND a.DEL_FLAG = '0'
AND sa.USER_ID = #{userId} AND sa.CUSTOMER_ID = #{customerId} AND a.CUSTOMER_ID = #{customerId}
LIMIT 1
</select>
</mapper>

118
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.IcWorkLogDao">
<resultMap type="com.epmet.entity.IcWorkLogEntity" id="icWorkLogMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="pids" column="PIDS"/>
<result property="gridId" column="GRID_ID"/>
<result property="title" column="TITLE"/>
<result property="logType" column="LOG_TYPE"/>
<result property="logDate" column="LOG_DATE"/>
<result property="content" column="CONTENT"/>
<result property="remark" column="REMARK"/>
<result property="mobile" column="MOBILE"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="listPage" resultType="com.epmet.dto.IcWorkLogDTO">
SELECT
*
FROM
ic_work_log wl
WHERE
wl.DEL_FLAG = '0'
AND wl.CUSTOMER_ID = #{customerId}
<if test="logType != null and logType != '' ">
AND wl.LOG_TYPE = #{logType}
</if>
<if test="createdUser != null and createdUser != '' ">
AND wl.created_user = #{createdUser}
</if>
<if test="gridId != null and gridId != '' ">
AND wl.GRID_ID = #{gridId}
</if>
<if test="agencyId != null and agencyId != '' ">
AND (wl.AGENCY_ID = #{agencyId}
OR wl.PIDS LIKE concat('%',#{agencyId}, '%' ))
</if>
<if test="mobile != null and mobile != '' ">
AND wl.MOBILE = #{mobile}
</if>
<if test="isSelf != null and isSelf != ''">
<if test="isSelf == '1' or isSelf == 1">
AND wl.CREATED_BY = #{createdBy}
</if>
</if>
<if test="startTime != null and startTime != '' ">
AND DATE_FORMAT( wl.CREATED_TIME, '%Y-%m-%d' ) >= #{startTime}
</if>
<if test="endTime != null and endTime != '' ">
AND DATE_FORMAT( wl.CREATED_TIME, '%Y-%m-%d' ) &lt;= #{endTime}
</if>
ORDER BY wl.CREATED_TIME DESC
</select>
<select id="list4Export" resultType="com.epmet.dto.IcWorkLogDTO">
SELECT
wl.CREATED_USER,
wl.MOBILE,
IF
(
a.ALL_PARENT_NAME = '',
a.ORGANIZATION_NAME,
CONCAT( a.ALL_PARENT_NAME, '-', a.ORGANIZATION_NAME )) AS allAgencyName,
g.GRID_NAME,
wl.TITLE,
wl.LOG_DATE,
wl.LOG_TYPE,
wl.CONTENT,
wl.REMARK,
GROUP_CONCAT( f.URL ) AS url
FROM
ic_work_log wl
LEFT JOIN customer_grid g ON wl.GRID_ID = g.id
LEFT JOIN customer_agency a ON wl.AGENCY_ID = a.id
LEFT JOIN ic_work_log_file f ON f.LOG_ID = wl.id
WHERE
wl.DEL_FLAG = '0'
AND wl.CUSTOMER_ID = #{customerId}
<if test="logType != null and logType != '' ">
AND wl.LOG_TYPE = #{logType}
</if>
<if test="createdUser != null and createdUser != '' ">
AND wl.created_user = #{createdUser}
</if>
<if test="gridId != null and gridId != '' ">
AND wl.GRID_ID = #{gridId}
</if>
<if test="agencyId != null and agencyId != '' ">
AND (wl.AGENCY_ID = #{agencyId}
OR wl.PIDS LIKE concat('%',#{agencyId}, '%' ))
</if>
<if test="mobile != null and mobile != '' ">
AND wl.MOBILE = #{mobile}
</if>
<if test="isSelf != null and isSelf != '' and isSelf == '1' ">
AND wl.CREATED_BY = #{createdBy}
</if>
<if test="startTime != null and startTime != '' ">
AND DATE_FORMAT( wl.CREATED_TIME, '%Y-%m-%d' ) >= #{startTime}
</if>
<if test="endTime != null and endTime != '' ">
AND DATE_FORMAT( wl.CREATED_TIME, '%Y-%m-%d' ) &lt;= #{endTime}
</if>
GROUP BY
wl.id, wl.CREATED_TIME
ORDER BY wl.CREATED_TIME DESC
</select>
</mapper>

30
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.IcWorkLogFileDao">
<resultMap type="com.epmet.entity.IcWorkLogFileEntity" id="icWorkLogFileMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="logId" column="LOG_ID"/>
<result property="url" column="URL"/>
<result property="fileName" column="FILE_NAME"/>
<result property="fileType" column="FILE_TYPE"/>
<result property="sort" column="SORT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByLogId">
DELETE
FROM
ic_work_log_file
WHERE
LOG_ID = #{logId}
</delete>
</mapper>

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java

@ -84,5 +84,10 @@ public class IcEventListFormDTO implements Serializable {
* 操作类型 0:取消标记 1:标记
*/
private String type;
/**
* 事件分类 一类二类Id集合
*/
private List<String> firstIdList;
private List<String> secondIdList;
}

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java

@ -3,7 +3,6 @@ package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ -46,6 +45,10 @@ public class OrgProjectListFormDTO extends PageFormDTO implements Serializable {
* 事件状态 处理中 pending已结案 closed
*/
private String status;
/**
* 解决状态 已解决 resolved无需解决 unresolved
*/
private String closedStatus;
/**
* 起始上报时间 精确到秒
*/

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java

@ -3,6 +3,7 @@ package com.epmet.dto.form;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -29,6 +30,7 @@ public class ProjectResponseFormDTO implements Serializable {
/**
* 公开答复内容
*/
@NotBlank(message = "公开答复不能为空")
@Length(max = 1000, message = "公开答复不能超过1000个字符")
private String publicReply;
/**

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java

@ -3,6 +3,7 @@ package com.epmet.dto.form;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -30,6 +31,7 @@ public class ReturnFromDTO implements Serializable {
/**
* 公开答复内容
*/
@NotBlank(message = "公开答复不能为空")
@Length(max = 1000, message = "公开答复不能超过1000个字符")
private String publicReply;
/**

1
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java

@ -22,6 +22,7 @@ public class TransferFormDTO implements Serializable {
@NotBlank(message = "项目人员关联Id不能为空")
private String projectStaffId;
// @NotBlank(message = "公开答复不能为空")
@Length(max=1000,message = "公开答复内容不能超过1000位")
private String publicReply;

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java

@ -98,6 +98,8 @@ public class OrgProjectListResultDTO implements Serializable {
*/
private String status;
private String statusValue;
private String closedStatus;
private String closedStatusValue;
/**
* 是否需要自己处理 true:需要 false:不需要
*/

4
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/IcEventExcel.java

@ -20,6 +20,10 @@ public class IcEventExcel {
@ColumnWidth(20)
private String gridName;
@ExcelProperty(value = "事件分类")
@ColumnWidth(25)
private String categoryName;
@ExcelProperty(value = "事件内容")
@ColumnWidth(25)
private String eventContent;

7
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java

@ -1,12 +1,9 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.util.List;
/**
* 事件管理表
*
@ -122,5 +119,9 @@ public class OrgProjectListExcel {
@ColumnWidth(20)
private String status;
@ExcelProperty(value = "解决状态")
@ColumnWidth(20)
private String closedStatus;
}

17
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -125,6 +125,15 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
Result<Map<String, String>> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.IC_EVENT_SOURCE_TYPE.getCode());
Map<String, String> statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>();
//查询分类信息
IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO();
dictFormDto.setCustomerId(formDTO.getCustomerId());
Result<List<IssueProjectCategoryDictDTO>> categoryRes = govIssueOpenFeignClient.getCategoryList(dictFormDto);
if (!categoryRes.success() || org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常");
}
Map<String, IssueProjectCategoryDictDTO> categoryMap = categoryRes.getData().stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getId, o -> o, (o1, o2) -> o1));
//封装数据
for (IcEventListResultDTO dto : list) {
if (gridInfoMap.containsKey(dto.getGridId())) {
@ -133,6 +142,14 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
if (StringUtils.isNotBlank(dto.getSourceType())) {
dto.setSourceTypeName(statusMap.get(dto.getSourceType()));
}
if (categoryMap.containsKey(dto.getCategoryId())) {
IssueProjectCategoryDictDTO category = categoryMap.get(dto.getCategoryId());
if (StringUtils.isNotBlank(category.getParentCategoryName())) {
dto.setCategoryName(category.getParentCategoryName().concat(StrConstant.HYPHEN).concat(category.getCategoryName()));
} else {
dto.setCategoryName(category.getCategoryName());
}
}
//每个事件对应的图片数据
if(!CollectionUtils.isEmpty(dto.getAttachmentList())){
List<String> imageList = new ArrayList<>();

18
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -218,6 +218,24 @@
<if test="status != null and status != '' ">
AND ie.`status` = #{status}
</if>
<if test="(firstIdList != null and firstIdList.size() > 0) and (secondIdList == null or secondIdList.size() == 0)"><!-- 一类查询条件 -->
<foreach collection="firstIdList" item="firstId" open="AND iec.CATEGORY_PIDS IN (" separator="," close=")">
#{firstId}
</foreach>
</if>
<if test="(secondIdList != null and secondIdList.size() > 0) and (firstIdList == null or firstIdList.size() == 0)"><!-- 二类查询条件 -->
<foreach collection="secondIdList" item="secondId" open="AND iec.CATEGORY_ID IN (" separator="," close=")">
#{secondId}
</foreach>
</if>
<if test="(secondIdList != null and secondIdList.size() > 0) and (firstIdList != null and firstIdList.size() > 0)"><!-- 二类查询条件 -->
<foreach collection="firstIdList" item="firstId" open="AND (iec.CATEGORY_PIDS IN (" separator="," close=")">
#{firstId}
</foreach>
<foreach collection="secondIdList" item="secondId" open="OR iec.CATEGORY_ID IN (" separator="," close="))">
#{secondId}
</foreach>
</if>
order by ie.created_time desc, ie.latest_operated_time desc
</select>

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

@ -655,6 +655,8 @@
p.back_ground,
( CASE WHEN p.`STATUS` = 'pending' THEN '处理中' WHEN p.`STATUS` = 'closed' THEN '已结案' ELSE '' END ) AS status,
p.`status` AS statusValue,
( CASE WHEN p.CLOSED_STATUS = 'resolved' THEN '已解决' WHEN p.CLOSED_STATUS = 'unresolved' THEN '无需解决' ELSE '' END ) AS closedStatus,
p.CLOSED_STATUS AS closedStatusValue,
pc.category_pids,
pc.category_id,
pp.public_reply,
@ -671,16 +673,24 @@
group by project_id
ORDER BY created_time desc
)pc ON p.id = pc.project_id
<if test="firstIdList != null and firstIdList.size() > 0"><!-- 一类查询条件 -->
<if test="(firstIdList != null and firstIdList.size() > 0) and (secondIdList == null or secondIdList.size() == 0)"><!-- 一类查询条件 -->
<foreach collection="firstIdList" item="firstId" open="AND pc.category_pids IN (" separator="," close=")">
#{firstId}
</foreach>
</if>
<if test="secondIdList != null and secondIdList.size() > 0"><!-- 二类查询条件 -->
<if test="(secondIdList != null and secondIdList.size() > 0) and (firstIdList == null or firstIdList.size() == 0)"><!-- 二类查询条件 -->
<foreach collection="secondIdList" item="secondId" open="AND pc.category_id IN (" separator="," close=")">
#{secondId}
</foreach>
</if>
<if test="(secondIdList != null and secondIdList.size() > 0) and (firstIdList != null and firstIdList.size() > 0)"><!-- 二类查询条件 -->
<foreach collection="firstIdList" item="firstId" open="AND (pc.CATEGORY_PIDS IN (" separator="," close=")">
#{firstId}
</foreach>
<foreach collection="secondIdList" item="secondId" open="OR pc.CATEGORY_ID IN (" separator="," close="))">
#{secondId}
</foreach>
</if>
LEFT JOIN project_process pp ON p.id = pp.project_id AND pp.operation = 'close'
INNER JOIN project_process ppc ON p.id = ppc.project_id AND ppc.operation = 'created'
<if test="staffName != null and staffName != ''"><!-- 上报人姓名对应查询条件,上报人就是对应的创建节点的人 -->
@ -722,6 +732,9 @@
<if test="null != endTime and endTime != '' ">
AND p.created_time <![CDATA[ <= ]]> #{endTime}
</if>
<if test="closedStatus != null and closedStatus != ''">
AND p.CLOSED_STATUS = #{closedStatus}
</if>
</select>
<select id="getIndexExplainTreeByPid" resultType="com.epmet.dto.form.FileDTO"><!-- 项目创建节点的图片附件 -->
SELECT

7
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java

@ -91,10 +91,15 @@ public class EventreportPingyinEntity {
private String waysOfResolving;
/**
* 是否办结填写YNY N
* 必填 是否化解填写YNY N
*/
private String successfulOrNo;
/**
* 必填 是否办结填写YNY N
*/
private String successfulDefuse;
/**
* 办结层级符合标准10.21
*/

6
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java

@ -67,7 +67,7 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
//分批次循环
while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()) {
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
result = dataStatisticalOpenFeignClient.getEventInfo(formDTO);
result = dataStatisticalOpenFeignClient.getEventInfoV2(formDTO);
list = result.getData();
saveEvent(list, formDTO.getInitFlag());
}
@ -122,11 +122,13 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
eventDescription = StrUtil.filterEmoji(eventDescription);
entity.setEventDescription(eventDescription);
entity.setWaysOfResolving(item.getWaysOfResolving());
//业务不确定
//业务不确定 办结状态和化解状态同步修改
if (("03").equals(item.getStatus())) {
entity.setSuccessfulOrNo("Y");
entity.setSuccessfulDefuse("Y");
} else {
entity.setSuccessfulOrNo("N");
entity.setSuccessfulDefuse("N");
}
entity.setCompleteLevel(item.getCompleteLevel());
entity.setCompleteTime(item.getCompleteTime());

5
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java

@ -61,14 +61,13 @@ public class GridstaffWorkInfoPingyinServiceImpl extends BaseServiceImpl<Gridsta
do {
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkListV2(midPatrolFormDTO);
if (record == null || !record.success()) {
log.error("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
log.warn("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());
}
data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
//暂时设置error 用于排错
log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
log.warn("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());

27
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yzm
* @Date 2022/8/11 13:35
*/
@Data
public class IcFormDataAnalysisDTO implements Serializable {
private String itemId;
private String label;
/**
* 分组ID,'默认0'
*/
private String itemGroupId;
private String tableName;
/**
* 列名
*/
private String columnName;
private Integer sort;
}

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -97,4 +97,6 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
*/
List<FormItemBaseResult> getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId);
List<FormItemBaseResult> getItemListByGroupIdV2(@Param("customerId") String customerId, @Param("groupId") String groupId,@Param("policyFlag")String policyFlag);
List<IcFormDataAnalysisDTO> selectDataAnalysisItem(String customerId);
}

79
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java

@ -1,20 +1,15 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.constant.IcResiCategoryStatsConfigConstant;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dao.IcFormItemGroupDao;
import com.epmet.dao.IcResiCategoryStatsConfigDao;
import com.epmet.dao.IcResiCategoryWarnConfigDao;
import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO;
import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO;
import com.epmet.dto.form.ResiCategoryStatsConfigListFormDTO;
import com.epmet.dto.result.IcFormDataAnalysisDTO;
import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.entity.IcFormItemGroupEntity;
import com.epmet.entity.IcResiCategoryStatsConfigEntity;
import com.epmet.entity.IcResiCategoryWarnConfigEntity;
import com.epmet.service.IcResiCategoryStatsConfigService;
@ -28,7 +23,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@ -40,8 +38,6 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf
@Resource
private IcFormItemDao icFormItemDao;
@Resource
private IcFormItemGroupDao icFormItemGroupDao;
@Resource
private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao;
@Resource
private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao;
@ -52,60 +48,39 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf
@Transactional(rollbackFor = Exception.class)
public List<IcResiCategoryStatsConfigResultDTO> list(String customerId, ResiCategoryStatsConfigListFormDTO formDTO) {
//1.获取IC_FORM_ITEM 中 用于数据分析字段的 id 和label
List<IcFormItemEntity> icFormItemEntityList = icFormItemDao.selectList(new QueryWrapper<IcFormItemEntity>().lambda().eq(IcFormItemEntity::getCustomerId,customerId).eq(IcFormItemEntity::getDataAnalyse, 1));
if(CollectionUtils.isEmpty(icFormItemEntityList)){
return new ArrayList<>();
}
Set<String> groupIds = icFormItemEntityList.stream().filter(item-> !"0".equals(item.getItemGroupId())).map(IcFormItemEntity::getItemGroupId).collect(Collectors.toSet());
List<IcFormItemGroupEntity> icFormItemGroupEntityList = new ArrayList<>();
if(!CollectionUtils.isEmpty(groupIds)){
icFormItemGroupEntityList.addAll(icFormItemGroupDao.selectList(new QueryWrapper<IcFormItemGroupEntity>().lambda().eq(IcFormItemGroupEntity::getCustomerId,customerId).in(IcFormItemGroupEntity::getId, groupIds)));
}
//获取tableName和COLUMN_NAME
Map<String,IcFormItemEntity> tableColumnMap = new HashMap<>();
List<IcFormDataAnalysisDTO> dataItemList=icFormItemDao.selectDataAnalysisItem(customerId);
//key:tableName-columnName value: ic_form_item
Map<String,IcFormDataAnalysisDTO> tableColumnMap = new HashMap<>();
//key:ic_form_item.id value:对应的表名
Map<String,String> idTableMap = new HashMap<>();
icFormItemEntityList.forEach(item->{
Map<String,String> map = new HashMap<>();
item.setColumnName(item.getColumnName().concat(NumConstant.ZERO == item.getColumnNum() ? StrConstant.EPMETY_STR : item.getColumnNum().toString()));
if("0".equals(item.getItemGroupId())){
tableColumnMap.put(IcResiCategoryStatsConfigConstant.IC_RESI_USER+"-"+item.getColumnName(),item);
idTableMap.put(item.getId(),IcResiCategoryStatsConfigConstant.IC_RESI_USER);
}else{
List<IcFormItemGroupEntity> collect = icFormItemGroupEntityList.stream().filter(i -> item.getItemGroupId().equals(i.getId())).collect(Collectors.toList());
tableColumnMap.put(CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()+"-"+item.getColumnName(),item);
idTableMap.put(item.getId(),CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName());
}
dataItemList.forEach(item->{
tableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item);
idTableMap.put(item.getItemId(),item.getTableName());
});
//2.获取ic_resi_category_stats_config 和 ic_resi_category_warn_config 表中的数据
//2.获取居民类别配置表ic_resi_category_stats_config 和 居民类别预警配置表ic_resi_category_warn_config 表中的数据
List<IcResiCategoryStatsConfigEntity> statsConfigEntityList = icResiCategoryStatsConfigDao.selectList(new QueryWrapper<IcResiCategoryStatsConfigEntity>().lambda().eq(IcResiCategoryStatsConfigEntity::getCustomerId,customerId));
if (!CollectionUtils.isEmpty(statsConfigEntityList)){
return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel());
}
List<IcResiCategoryWarnConfigEntity> warnConfigEntityList = icResiCategoryWarnConfigDao.selectList(new QueryWrapper<IcResiCategoryWarnConfigEntity>().lambda().eq(IcResiCategoryWarnConfigEntity::getCustomerId,customerId));
//3.新增不存在的,删除不在tableColumnMap的
//获取居民类别配置表
Map<String,IcResiCategoryStatsConfigEntity> statsTableColumnMap = new HashMap<>();
statsConfigEntityList.forEach(item->{
statsTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item);
});
Map<String,IcResiCategoryWarnConfigEntity> warnTableColumnMap = new HashMap<>();
warnConfigEntityList.forEach(item->{
warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item);
});
//3.新增不存在的,删除不在tableColumnMap的
//差集
//新增
List<String> newStatsList = tableColumnMap.keySet().stream().filter(item -> !statsTableColumnMap.containsKey(item)).collect(Collectors.toList());
List<IcResiCategoryStatsConfigEntity> newStatsEntityList = new ArrayList<>();
newStatsList.forEach(item->{
IcFormItemEntity icFormItemEntity = tableColumnMap.get(item);
IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item);
IcResiCategoryStatsConfigEntity entity = new IcResiCategoryStatsConfigEntity();
entity.setCustomerId(customerId);
entity.setLabel(icFormItemEntity.getLabel());
entity.setTableName(idTableMap.get(icFormItemEntity.getId()));
entity.setTableName(idTableMap.get(icFormItemEntity.getItemId()));
entity.setColumnName(icFormItemEntity.getColumnName());
entity.setManagementIcon("");
entity.setDataIcon("");
@ -115,16 +90,24 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf
newStatsEntityList.add(entity);
});
if(!CollectionUtils.isEmpty(newStatsEntityList)){
//新增居民类别配置表
icResiCategoryStatsConfigService.insertBatch(newStatsEntityList);
}
//4、新增居民类别预警配置表
Map<String,IcResiCategoryWarnConfigEntity> warnTableColumnMap = new HashMap<>();
warnConfigEntityList.forEach(item->{
warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item);
});
List<String> newWarnList = tableColumnMap.keySet().stream().filter(item -> !warnTableColumnMap.containsKey(item)).collect(Collectors.toList());
List<IcResiCategoryWarnConfigEntity> newWarnEntityList = new ArrayList<>();
newWarnList.forEach(item->{
IcFormItemEntity icFormItemEntity = tableColumnMap.get(item);
IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item);
IcResiCategoryWarnConfigEntity entity = new IcResiCategoryWarnConfigEntity();
entity.setCustomerId(customerId);
entity.setLabel(icFormItemEntity.getLabel());
entity.setTableName(idTableMap.get(icFormItemEntity.getId()));
entity.setTableName(idTableMap.get(icFormItemEntity.getItemId()));
entity.setColumnName(icFormItemEntity.getColumnName());
entity.setWarn("0");
entity.setSort(icFormItemEntity.getSort());
@ -133,6 +116,8 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf
if(!CollectionUtils.isEmpty(newWarnEntityList)){
icResiCategoryWarnConfigService.insertBatch(newWarnEntityList);
}
//5、原来用于数据分析,现在不用于数据分析的,要删除类别配置表和预警表
List<String> delStatsEntityIdList = new ArrayList<>();
List<String> delWarnEntityIdList = new ArrayList<>();
//需要删除的
@ -151,7 +136,7 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf
icResiCategoryWarnConfigService.deleteBatchIds(delWarnEntityIdList);
}
//4.返回数据
//6.返回数据
return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel());
}

19
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -322,4 +322,23 @@
ORDER BY ifi.SORT
</select>
<select id="selectDataAnalysisItem" parameterType="java.lang.String" resultType="com.epmet.dto.result.IcFormDataAnalysisDTO">
SELECT
i.id,
i.LABEL,
i.COLUMN_NAME,
i.SORT,
i.ITEM_GROUP_ID,
g.TABLE_NAME
FROM
ic_form_item i
LEFT JOIN ic_form_item_group g ON ( i.ITEM_GROUP_ID = g.ID )
WHERE
i.DEL_FLAG = '0'
AND i.CUSTOMER_ID = #{customerId}
AND g.CUSTOMER_ID = #{customerId}
AND i.DATA_ANALYSE = '1'
ORDER BY
i.SORT ASC
</select>
</mapper>

10
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java

@ -44,6 +44,16 @@ public class PartymemberRegisterRelationDTO implements Serializable {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格Id (customer_grid.id)
*/

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java

@ -40,6 +40,16 @@ public class PartymemberRegisterRelationEntity extends BaseEpmetEntity {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格Id (customer_grid.id)
*/

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java

@ -5,7 +5,10 @@ import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.*;
@ -601,6 +604,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
PartymemberRegisterRelationEntity registerRelationEntity = new PartymemberRegisterRelationEntity();
registerRelationEntity.setCustomerId(partyMemberInfoDTO.getCustomerId());
registerRelationEntity.setGridId(partyMemberInfoDTO.getGridId());
//表中新增字段 为其赋值
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(partyMemberInfoDTO.getGridId());
if (null == gridInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败");
}
registerRelationEntity.setAgencyId(gridInfo.getPid());
registerRelationEntity.setAgencyIdPath(gridInfo.getPids());
registerRelationEntity.setUserId(partyMemberInfoDTO.getUserId());
registerRelationEntity.setFirstRegister(1);
registerRelationEntity.setRegister(1);

15
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java

@ -219,6 +219,21 @@ public class IcResiUserDTO implements Serializable {
*/
private String isSpecial;
/**
* 是否租户:1 :0
*/
private String isTenant;
/**
* 是否是流动人口:1 :0
*/
private String isFloating;
/**
* 是否新阶层人士:1 :0
*/
private String isXjc;
/**
* 文化程度字典表
*/

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java

@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 用户Id (user.id)
*/

4
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java

@ -225,6 +225,10 @@ public class IcResiUserEntity extends BaseEpmetEntity {
*/
private String isFloating;
/**
* 是否新阶层人士:1 :0
*/
private String isXjc;
/**
* 文化程度字典表
*/

10
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java

@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity {
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 用户Id (user.id)
*/

3
epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java

@ -35,7 +35,8 @@ public enum IcResiUserTableEnum {
IC_DB("virtual_db","大病人员信息录入表", null, 2, "IS_DB", false),
IC_MB("virtual_mb","慢病人员信息录入表", null, 2, "IS_MB", false),
IC_TENANT("virtual_tenant","租户信息录入表", null, 2, "IS_TENANT", false),
IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false);
IC_FLOATING("virtual_floating","流动人口信息录入表", null, 2, "IS_FLOATING", false),
IC_XJC("virtual_xjc","新阶层人士信息录入表", null, 2, "IS_XJC", false);
private String tableName;
/**

36
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -29,6 +29,8 @@ import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
@ -60,16 +62,16 @@ import com.epmet.service.UserService;
import com.epmet.util.ModuleConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.stream.Collectors;
/**
@ -100,6 +102,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Autowired
private GovAccessFeignClient govAccessFeignClient;
@Autowired
private ExecutorService executorService;
@Autowired
private RedisUtils redisUtils;
@Override
public PageData<CustomerStaffDTO> page(Map<String, Object> params) {
@ -739,7 +745,28 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
@Override
public Result<StaffBasicInfoResultDTO> selectStaffBasicInfo(String userId, String customerId) {
StaffBasicInfoResultDTO resultDTO = baseDao.selectStaffBasicInfo(userId);
StaffBasicInfoResultDTO resultDTO = null;
String userBaseInfoKey = RedisKeys.getUserBaseInfoKey(userId);
resultDTO = (StaffBasicInfoResultDTO)redisUtils.get(userBaseInfoKey);
if(resultDTO == null){
resultDTO = getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey);
}
//启用线程去查询 并替换redis
executorService.submit(() -> {
try {
getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey);
} catch (Exception e) {
log.error("selectStaffBasicInfo exception", e);
}
});
return new Result<StaffBasicInfoResultDTO>().ok(resultDTO);
}
@Nullable
private StaffBasicInfoResultDTO getStaffBasicInfoResultDTO(String userId, String customerId, String userBaseInfoKey) {
StaffBasicInfoResultDTO resultDTO;
resultDTO = baseDao.selectStaffBasicInfo(userId);
if (null != resultDTO) {
resultDTO.setRoleList(baseDao.selectStaffRoles(userId, resultDTO.getCustomerId()));
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
@ -767,7 +794,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
resultDTO.setCustomerName(customerResult.getData().getCustomerName());
}
}
return new Result<StaffBasicInfoResultDTO>().ok(resultDTO);
redisUtils.set(userBaseInfoKey,resultDTO);
return resultDTO;
}
/**

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -536,6 +536,15 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
} else if (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty())) {
if (formMap.containsKey("ic_party_member")) {
for (LinkedHashMap<String, String> hash : formMap.get("ic_party_member")) {
if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) {
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
}
}
if ((map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY")))
|| (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty()))) {

11
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

@ -23,7 +23,11 @@ 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.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
@ -344,6 +348,13 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
RegisterRelationEntity entity = new RegisterRelationEntity();
entity.setCustomerId(userResiInfoDTO.getCustomerId());
entity.setGridId(userResiInfoDTO.getGridId());
//表中新增字段 为其赋值
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(userResiInfoDTO.getGridId());
if (null == gridInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败");
}
entity.setAgencyId(gridInfo.getPid());
entity.setAgencyIdPath(gridInfo.getPids());
entity.setUserId(userResiInfoDTO.getUserId());
//首次注册用户 (0表示不参与计数 1表示参与计数)
entity.setFirstRegister(NumConstant.ONE_STR);

1
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql

@ -0,0 +1 @@
alter table ic_resi_user add COLUMN IS_XJC CHAR(1) DEFAULT'0' COMMENT '是否新阶层人士【是:1 否:0】'after IS_FLOATING;

BIN
epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls

Binary file not shown.
Loading…
Cancel
Save