Browse Source

Merge branch 'master' into feature/dev_zz_wgh

dev
YUJT 3 years ago
parent
commit
cf7eacc25e
  1. 11
      epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.19__add_dict.sql
  2. 28
      epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml
  3. 2
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  4. 15
      epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
  5. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  6. 42
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HomeMemberOperationEnum.java
  7. 41
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java
  8. 8
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  9. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  10. 20
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonUserFeignClient.java
  11. 24
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonUserFeignClientFallBackFactory.java
  12. 23
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonUserFeignClientFallback.java
  13. 42
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  14. 90
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerResiUserRedis.java
  15. 17
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java
  16. 99
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/ResiUserInfoCache.java
  17. 14
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java
  18. 22
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelPoiUtils.java
  19. 171
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HouseQRcodeUtils.java
  20. 132
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IDCardUtil.java
  21. 45
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/NodeTree.java
  22. 31
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/NodeTreeUtils.java
  23. 1
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
  24. 148
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactAgencyUserHouseDailyDTO.java
  25. 139
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridUserHouseDailyDTO.java
  26. 149
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java
  27. 35
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java
  28. 169
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/FactUserHouseResultDTO.java
  29. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  30. 16
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  31. 103
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java
  32. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java
  33. 26
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactAgencyUserHouseDailyDao.java
  34. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGridUserHouseDailyDao.java
  35. 27
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java
  36. 42
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java
  37. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java
  38. 110
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/IcHouseEntity.java
  39. 118
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyUserHouseDailyEntity.java
  40. 109
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridUserHouseDailyEntity.java
  41. 119
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java
  42. 513
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java
  43. 56
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/FactUserHouseExcel.java
  44. 73
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java
  45. 42
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java
  46. 111
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactAgencyUserHouseDailyService.java
  47. 120
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGridUserHouseDailyService.java
  48. 113
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java
  49. 78
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java
  50. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java
  51. 121
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java
  52. 138
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java
  53. 129
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java
  54. 307
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java
  55. 55
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java
  56. 55
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java
  57. 85
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.32__fact_grid_user_house_daily.sql
  58. 28
      epmet-module/data-statistical/data-statistical-server/src/main/resources/logback-spring.xml
  59. 124
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml
  60. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml
  61. 138
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactAgencyUserHouseDailyDao.xml
  62. 237
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGridUserHouseDailyDao.xml
  63. 127
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml
  64. 47
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml
  65. 115
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceOrgDTO.java
  66. 116
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceProjectAttachmentDTO.java
  67. 104
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceProjectDTO.java
  68. 49
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceEditFormDTO.java
  69. 71
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceOrgAddEditFormDTO.java
  70. 46
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceOrgListFormDTO.java
  71. 57
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectFeedbackFormDTO.java
  72. 53
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectFormDTO.java
  73. 32
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectListFormDTO.java
  74. 66
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectRecordFormDTO.java
  75. 64
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceFeedbackResDTO.java
  76. 81
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceOrgListResultDTO.java
  77. 24
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceOrgSelectListResultDTO.java
  78. 90
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceRecDetailRes.java
  79. 15
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceScopeDTO.java
  80. 63
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceProjectListResultDTO.java
  81. 18
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceProjectRecordResultDTO.java
  82. 8
      epmet-module/epmet-heart/epmet-heart-server/pom.xml
  83. 91
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceOrgController.java
  84. 72
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceProjectAttachmentController.java
  85. 244
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceProjectController.java
  86. 52
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java
  87. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java
  88. 6
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java
  89. 33
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceFeedbackDao.java
  90. 34
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceOrgDao.java
  91. 27
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceProjectAttachmentDao.java
  92. 37
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceProjectDao.java
  93. 29
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceRecordDao.java
  94. 23
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java
  95. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java
  96. 83
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceFeedbackEntity.java
  97. 81
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceOrgEntity.java
  98. 88
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceProjectAttachmentEntity.java
  99. 74
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceProjectEntity.java
  100. 89
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceRecordEntity.java

11
epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.19__add_dict.sql

@ -0,0 +1,11 @@
INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1000000000000000014', 'ic_service_type', '服务类别', '', '20', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000000', '1000000000000000014', '社区养老', '00', '0', '', '0', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000001', '1000000000000000014', '社会保障', '01', '0', '', '1', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000002', '1000000000000000014', '社区救助', '02', '0', '', '2', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000003', '1000000000000000014', '健康医疗', '03', '0', '', '3', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000004', '1000000000000000014', '社区安全', '04', '0', '', '4', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000005', '1000000000000000014', '社区卫生', '05', '0', '', '5', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000006', '1000000000000000014', '社区环境', '06', '0', '', '6', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000007', '1000000000000000014', '社区治安', '07', '0', '', '7', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3100000000000000008', '1000000000000000014', '社区文化', '08', '0', '', '8', '0', '0', '', '2022-05-27 16:23:27', '', '2022-05-27 16:23:27');

28
epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml

@ -133,12 +133,36 @@
</filter>
</appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test,local">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
@ -152,6 +176,10 @@
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>

2
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -288,7 +288,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("登录:查询部门列表异常:{}", errorStackTrace);
}
return null;
return new HashSet<>();
}
/**

15
epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java

@ -147,12 +147,7 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
updatedTime = metaObject.getValue(FieldConstant.UPDATED_TIME_HUMP);
}
if (updatedTime == null) {
if(metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) {
updatedTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP);
}
if(updatedTime == null) {
updatedTime = new Date();
}
updatedTime = new Date();
}
return updatedTime;
}
@ -165,13 +160,7 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
}
if (value == null) {
if(metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) {
value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP);
}
if(null == value) {
value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG);
}
value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG);
}
return value;

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

@ -25,6 +25,7 @@ public enum DictTypeEnum {
ITEM_TYPE_QUERY("item_type_query","居民信息组件查询方式",14),
SELF_ORG_CATEGORY("self_org_category","社区自组织分类",15),
IC_EVENT_SOURCE_TYPE("ic_event_source_type","事件管理",19),
IC_SERVICE_TYPE("ic_service_type","服务类别",20),
;
private final String code;

42
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HomeMemberOperationEnum.java

@ -0,0 +1,42 @@
package com.epmet.commons.tools.enums;
/**
* 组织级别枚举类
* dev|test|prod
*
* @author jianjun liu
* @date 2020-07-03 11:14
**/
public enum HomeMemberOperationEnum {
ADD("add", "新增"),
UPDATE("update", "修改"),
DELETE("delele", "删除");
private String code;
private String name;
HomeMemberOperationEnum(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

41
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java

@ -0,0 +1,41 @@
package com.epmet.commons.tools.enums;
/**
* @describe: 一户一档二维码信息
* @author wangtong
* @date 2022/6/1 13:34
* @params
* @return
*/
public enum HouseQrcodeEnum {
SUFFIX(".png", "二维码格式的后缀"),
PREFIX_KEY("house_qrcode_pre", "二维码格式的前缀key");
// PREFIX("https://epmet-dev.elinkservice.cn/cqrcode-ty/", "二维码地址的前缀");
private String code;
private String name;
HouseQrcodeEnum(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

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

@ -194,7 +194,13 @@ public enum RequirePermissionEnum {
/**
* 基层治理-群众直报 功能入口
*/
RESI_EVENT_MANAGE("resi_event_manage","基层治理:群众直报","基层治理-群众直报");
RESI_EVENT_MANAGE("resi_event_manage","基层治理:群众直报","基层治理-群众直报"),
/**
* 事件管理-工作端小程序列表详情接口权限
*/
IC_EVENT_LIST("ic_event_list","基层治理:事件管理:列表","基层治理-事件管理-列表"),
IC_EVENT_DETAIL("ic_event_detail","基层治理:事件管理:详情","基层治理-事件管理-详情");
private String key;
private String name;

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

@ -256,7 +256,9 @@ public enum EpmetErrorCode {
RESI_IC_NAT(8925,"已存在记录,请联系社区工作人员修改"),
IC_MOVE_IN(8926,"居民信息中房屋信息与当前选择房屋不一致,是否更新?"),
NOT_REGEIST_RESI(8927,"未注册居民"),
UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"),
MISMATCH(10086,"人员与房屋信息不匹配,请与工作人员联系。"),
//通用错误码 start
//通用的 错误消息自己定义返回

20
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonUserFeignClient.java

@ -0,0 +1,20 @@
package com.epmet.commons.tools.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.feign.fallback.CommonUserFeignClientFallBackFactory;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.utils.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @Author zqf
* @DateTime 2022/3/17 1:42 下午
* @DESC
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = CommonUserFeignClientFallBackFactory.class)
public interface CommonUserFeignClient {
@PostMapping("/epmetuser/userbaseinfo/getUserInfo/{userId}")
Result<ResiUserInfoCache> getUserInfo(@PathVariable("userId") String userId);
}

24
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonUserFeignClientFallBackFactory.java

@ -0,0 +1,24 @@
package com.epmet.commons.tools.feign.fallback;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.feign.CommonUserFeignClient;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @Author zqf
* @DateTime 2022/3/17 1:46 下午
* @DESC
*/
@Slf4j
@Component
public class CommonUserFeignClientFallBackFactory implements FallbackFactory<CommonUserFeignClient> {
private CommonUserFeignClientFallback fallback = new CommonUserFeignClientFallback();
@Override
public CommonUserFeignClient create(Throwable cause) {
log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause)));
return fallback;
}
}

23
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonUserFeignClientFallback.java

@ -0,0 +1,23 @@
package com.epmet.commons.tools.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.feign.CommonUserFeignClient;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import org.springframework.stereotype.Component;
/**
* 调用政府端权限
* @Author zqf
* @Description
* @Date 2020/4/24 11:17
**/
@Component
public class CommonUserFeignClientFallback implements CommonUserFeignClient {
@Override
public Result<ResiUserInfoCache> getUserInfo(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserInfo", userId);
}
}

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

@ -101,7 +101,7 @@ public class RedisKeys {
* epmet:sys:security:user:token字符串
*/
public static String getCpUserKey(String app, String client, String userId) {
return rootPrefix.concat("sys:security:user:").concat(app).concat(":").concat(client).concat(":").concat(userId);
return rootPrefix.concat("sys:security:user:").concat(app).concat(StrConstant.COLON).concat(client).concat(StrConstant.COLON).concat(userId);
}
/**
@ -200,7 +200,7 @@ public class RedisKeys {
* @return
*/
public static String getRoleOpeScopesKey(String roleId, String opeKey) {
return rootPrefix.concat("gov:access:role:opescopes:").concat(roleId).concat(":").concat(opeKey);
return rootPrefix.concat("gov:access:role:opescopes:").concat(roleId).concat(StrConstant.COLON).concat(opeKey);
}
/**
@ -338,7 +338,7 @@ public class RedisKeys {
* @return
*/
public static String getCustomerStatsCalFlag(String customerId) {
return getCustomerStatsCalKeyPrefix().concat(":").concat(customerId);
return getCustomerStatsCalKeyPrefix().concat(StrConstant.COLON).concat(customerId);
}
/**
@ -364,7 +364,7 @@ public class RedisKeys {
* @return
*/
public static String getCustomerFootbarKey(String customerId, String appType) {
return rootPrefix.concat("footbar").concat(":").concat(customerId).concat(":").concat(appType);
return rootPrefix.concat("footbar").concat(StrConstant.COLON).concat(customerId).concat(StrConstant.COLON).concat(appType);
}
@ -397,7 +397,7 @@ public class RedisKeys {
* @date 2020.11.05 13:34
*/
public static String getResiUserBadgeKey(String customerId, String userId) {
return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat(StringUtils.isBlank(userId) ? "*" : userId);
return rootPrefix.concat("badge:user:").concat(customerId).concat(StrConstant.COLON).concat(StringUtils.isBlank(userId) ? "*" : userId);
}
/**
@ -483,7 +483,7 @@ public class RedisKeys {
**/
public static String getGroupMsgReadKey(String source, String groupId, String sourceId) {
String currentMonth= DateUtils.getBeforeNMonth(NumConstant.ZERO);
return "groupread:".concat(currentMonth).concat(":").concat(source).concat(":").concat(groupId).concat(":").concat(sourceId);
return "groupread:".concat(currentMonth).concat(StrConstant.COLON).concat(source).concat(StrConstant.COLON).concat(groupId).concat(StrConstant.COLON).concat(sourceId);
}
/**
@ -497,7 +497,7 @@ public class RedisKeys {
**/
public static String getGroupMsgShouldReadUser(String source, String groupId, String sourceId) {
String currentMonth= DateUtils.getBeforeNMonth(NumConstant.ZERO);
return "groupread:user:".concat(currentMonth).concat(":").concat(source).concat(":").concat(groupId).concat(":").concat(sourceId);
return "groupread:user:".concat(currentMonth).concat(StrConstant.COLON).concat(source).concat(StrConstant.COLON).concat(groupId).concat(StrConstant.COLON).concat(sourceId);
}
/**
@ -560,7 +560,7 @@ public class RedisKeys {
* @date 2021.09.23 17:38:37
*/
public static String getQuestionnaireAccessKey(String userId, String qKey) {
return rootPrefix.concat("questionnaire:accesskey:").concat(userId).concat(":").concat(qKey);
return rootPrefix.concat("questionnaire:accesskey:").concat(userId).concat(StrConstant.COLON).concat(qKey);
}
/**
@ -594,7 +594,7 @@ public class RedisKeys {
* @date 2021.10.25 17:49:43
*/
public static String loginTicket(String app, String ticket) {
return rootPrefix.concat("sys:security:ticket:").concat(app).concat(":").concat(ticket);
return rootPrefix.concat("sys:security:ticket:").concat(app).concat(StrConstant.COLON).concat(ticket);
}
/**
@ -649,7 +649,7 @@ public class RedisKeys {
}
public static String getHouseInfoCacheKey(String houseId,String customerId){
return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId);
return rootPrefix.concat("house:").concat(customerId).concat(StrConstant.COLON).concat(houseId);
}
/**
@ -671,7 +671,7 @@ public class RedisKeys {
* @return
*/
public static String icResiImportTypeKey(String importTag, String type) {
return icResiImportBaseKey(importTag).concat(":").concat(type);
return icResiImportBaseKey(importTag).concat(StrConstant.COLON).concat(type);
}
/**
@ -682,7 +682,7 @@ public class RedisKeys {
* @return
*/
public static String icResiImportResiCategoryKey(String importTag, String type, String resiId) {
return icResiImportTypeKey(importTag, type).concat(":").concat(resiId);
return icResiImportTypeKey(importTag, type).concat(StrConstant.COLON).concat(resiId);
}
/**
@ -693,7 +693,7 @@ public class RedisKeys {
* @date 2022/2/14 9:38 上午
*/
public static String getTemporaryHouseInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryHouse:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryHouse:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
/**
@ -704,7 +704,7 @@ public class RedisKeys {
* @date 2022/2/14 9:38 上午
*/
public static String getTemporaryGridInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryGrid:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryGrid:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
/**
@ -715,7 +715,7 @@ public class RedisKeys {
* @date 2022/2/14 9:39 上午
*/
public static String getTemporaryNeighborHoodInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryNeighborHood:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryNeighborHood:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
/**
@ -726,7 +726,7 @@ public class RedisKeys {
* @date 2022/2/14 9:39 上午
*/
public static String getTemporaryBuildingInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
/**
@ -737,15 +737,15 @@ public class RedisKeys {
* @date 2022/2/14 1:54 下午
*/
public static String getTemporaryBuildingUnitInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryBuildingUnit:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryBuildingUnit:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
public static String getTemporaryImportResultCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryResult:").concat(customerId).concat(":").concat(userId);
return rootPrefix.concat("temporary:").concat("temporaryResult:").concat(customerId).concat(StrConstant.COLON).concat(userId);
}
public static String getCustomerMenuList(String customerId, Integer type) {
return getCustomerMenuListPrefix().concat(customerId).concat(":type:")+type;
public static String getCustomerMenuList(String customerId, Integer type, String tableName) {
return getCustomerMenuListPrefix().concat("type:").concat(type.toString()).concat(":tableName:").concat(tableName).concat(StrConstant.COLON).concat(customerId);
}
/**
@ -753,7 +753,7 @@ public class RedisKeys {
* @return
*/
public static String getCustomerMenuListPrefix() {
return rootPrefix.concat("oper:access:nav:customerId:");
return rootPrefix.concat("gov:access:nav:");
}
/**

90
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerResiUserRedis.java

@ -0,0 +1,90 @@
package com.epmet.commons.tools.redis.common;
import cn.hutool.core.bean.BeanUtil;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.CommonUserFeignClient;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Map;
/**
* 居民缓存通用类
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-04-22
*/
@Slf4j
@Component
public class CustomerResiUserRedis {
@Resource
private RedisUtils redisUtils;
@Resource
private CommonUserFeignClient commonUserFeignClient;
private static CustomerResiUserRedis customerResiUserRedis;
private static final String ROLE_MAP_KEY = "roleMap";
@PostConstruct
public void init() {
customerResiUserRedis = this;
customerResiUserRedis.redisUtils = this.redisUtils;
customerResiUserRedis.commonUserFeignClient = this.commonUserFeignClient;
}
/**
* desc: 获取居民缓存
*
* @param userId
* @return com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache
* @author LiuJanJun
* @date 2021/8/19 10:29 下午
* @remark 此方法仅用于 获取某个工作人员的信息不用于获取客户下所有工作人员信息
*/
public static ResiUserInfoCache getUserBaseInfo(String userId) {
if (StringUtils.isBlank(userId)){
log.warn("getUserBaseInfo param is blank,userId:{}",userId);
return null;
}
String key = RedisKeys.getResiUserKey(userId);
Map<String, Object> map = customerResiUserRedis.redisUtils.hGetAll(key);
if (!CollectionUtils.isEmpty(map)) {
return ConvertUtils.mapToEntity(map, ResiUserInfoCache.class);
}
ResiUserInfoCache resultData = reloadStaffCache(userId, key);
if (resultData == null) {
return null;
}
return resultData;
}
@Nullable
private static ResiUserInfoCache reloadStaffCache(String userId, String key) {
Result<ResiUserInfoCache> result = customerResiUserRedis.commonUserFeignClient.getUserInfo(userId);
if (result == null || !result.success()) {
throw new RenException("获取居民信息失败");
}
ResiUserInfoCache resultData = result.getData();
if (null == resultData) {
log.warn("居民信息为空,userId:{}", userId);
return null;
}
Map<String, Object> map = BeanUtil.beanToMap(resultData, false, true);
customerResiUserRedis.redisUtils.hMSet(key, map);
return resultData;
}
}

17
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/HouseInfoCache.java

@ -89,4 +89,21 @@ public class HouseInfoCache implements Serializable {
* 组织的area_code
*/
private String areaCode;
/**
* 网格id
*/
private String gridId;
/**
* 网格名称
*/
private String gridName;
/**
* 房屋编码
*/
private String houseCode;
/**
* 二维码地址
*/
private String houseQrcodeUrl;
}

99
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/ResiUserInfoCache.java

@ -0,0 +1,99 @@
package com.epmet.commons.tools.redis.common.bean;
import lombok.Data;
import java.io.Serializable;
/**
* 房屋信息缓存
* @author Administrator
*/
@Data
public class ResiUserInfoCache implements Serializable {
private String id;
/**
* 客户Id
* */
private String customerId;
/**
* 用户id
*/
private String userId;
/**
* 手机号(注册手机号)
*/
private String mobile;
/**
* 姓氏
*/
private String surname;
/**
*
*/
private String name;
/**
* 姓名
*/
private String realName;
/**
* 身份证号
*/
private String idNum;
/**
* 性别1男2女0未知
*/
private String gender;
/**
* 街道
*/
private String street;
/**
* 小区名称
*/
private String district;
/**
* 楼栋单元
*/
private String buildingAddress;
/**
* 昵称(目前来源于微信昵称后续系统可支持用户有昵称)
*/
private String nickname;
/**
* 头像目前来源于微信后续系统顾客支持上传头像
*/
private String headImgUrl;
/**
* 网格Id
* */
private String registeredGridId;
/**
* xx机关-yy网格
* */
private String registeredGridName;
/**
* 显示昵称 xx网格-y先生/女士
* */
private String showName;
/**
* xxx街道-尹女士
*/
private String userShowName;
}

14
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java

@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
@ -11,10 +11,14 @@ package com.epmet.commons.tools.security.config;
import com.epmet.commons.tools.security.resolver.LoginUserHandlerMethodArgumentResolver;
import com.epmet.commons.tools.security.resolver.UserDetailHandlerMethodArgumentResolver;
import com.epmet.commons.tools.utils.DateUtils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -27,9 +31,10 @@ import org.springframework.http.converter.support.AllEncompassingFormHttpMessage
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.io.IOException;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.TimeZone;
import java.util.*;
/**
* MVC配置
@ -43,6 +48,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
private UserDetailHandlerMethodArgumentResolver userDetailHandlerMethodArgumentResolver;
@Autowired
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);

22
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelPoiUtils.java

@ -7,6 +7,7 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.afterturn.easypoi.excel.imports.ExcelImportService;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;
@ -228,6 +229,27 @@ public class ExcelPoiUtils {
throw new IOException(e.getMessage());
}
}
public static <T> ExcelImportResult<T> importExcel1(InputStream inputStream, Integer titleRows, Integer headerRows, Class<T> pojoClass) throws IOException {
if (inputStream == null) {
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
params.setSaveUrl("/tmp/excel/");
params.setNeedSave(true);
try {
// return ExcelImportUtil.importExcel(inputStream, pojoClass, params);
return (new ExcelImportService()).importExcelByIs(inputStream, pojoClass, params, false);
} catch (NoSuchElementException e) {
throw new IOException("excel文件不能为空");
} catch (Exception e) {
throw new IOException(e.getMessage());
}
}
/**
* excel 导入有错误信息
*

171
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HouseQRcodeUtils.java

@ -0,0 +1,171 @@
package com.epmet.commons.tools.utils;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageConfig;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.CharacterSetECI;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
/**
* Date 2022/06/7 10:01
* Description:房屋一户一码生成工具类
*/
@Slf4j
public class HouseQRcodeUtils {
/**
* 二维码颜色 默认是黑色
*/
private static final Color QRCOLOR = Color.black;
/**
* 背景颜色
*/
private static final Color BGWHITE = Color.white;
public static final int WIDTH = 800;
public static final int HEIGHT = 800;
public static final int MARGIN = 10;
public static final int FONTSIZE = 40;
/**
* 房屋一户一码生成-指定像素
*
* @param contents 说明
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage drawHouseQRImage(String pressText, String contents) throws Exception {
BufferedImage qRImage = null;
if (contents == null || "".equals(contents)) {
throw new Exception("content说明不能为空");
}
// 二维码参数设置
HashMap<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, CharacterSetECI.UTF8); // 编码设置
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 安全等级,最高h
hints.put(EncodeHintType.MARGIN, MARGIN); // 设置margin=0-10
// 二维码图片的生成
BarcodeFormat format = BarcodeFormat.QR_CODE;
// 创建矩阵容器
BitMatrix matrix = null;
try {
matrix = new MultiFormatWriter().encode(contents, format, WIDTH, HEIGHT, hints);
} catch (WriterException e) {
log.error("method exception", e);
}
// 设置矩阵转为图片的参数
MatrixToImageConfig toImageConfig = new MatrixToImageConfig(QRCOLOR.getRGB(), BGWHITE.getRGB());
// 矩阵转换图像
qRImage = MatrixToImageWriter.toBufferedImage(matrix, toImageConfig);
return pressHouseText(pressText, qRImage);
}
/**
* @param pressText 二维码下方插入文字
* @param image 需要添加文字的图片
* @为图片添加文字
*/
private static BufferedImage pressHouseText(String pressText, BufferedImage image) throws Exception {
BufferedImage outImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
//计算文字开始的位置
//x开始的位置:(图片宽度-字体大小*字的个数)/2
int startX = (WIDTH - (FONTSIZE * pressText.length())) / 2;
//y开始的位置:图片高度-(图片高度-图片宽度)/2
// int startY = HEIGHT - (HEIGHT - WIDTH) / 2 + FONTSIZE;
int startY = 740;
int imageW = outImage.getWidth();
int imageH = outImage.getHeight();
Graphics2D g = outImage.createGraphics();
g.drawImage(image, 0, 0, imageW, imageH, null);
g.setColor(QRCOLOR);
g.setFont(new Font("Noto Sans SC Light", Font.BOLD, FONTSIZE));
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.setBackground(Color.white);
// 获取文字数量 按照字节展示
int size = pressText.getBytes("GBK").length;
// 获取一行最多能容纳多少文字 按照文字字节展示
int maxSize = (WIDTH / FONTSIZE - 2) * 2;
if (size > maxSize) {
int v = size % maxSize;
for (int a = 0; a < (size / maxSize); a++) {
String s = outStringByByte(pressText, maxSize);
g.drawString(s, (WIDTH - (FONTSIZE * (WIDTH / FONTSIZE - 2))) / 2, startY);
pressText = pressText.substring(s.length(), pressText.length());
startY = startY + 35;
}
if (v != 0) {
g.drawString(pressText, (WIDTH - (FONTSIZE * v)) / 2, startY);
}
} else {
g.drawString(pressText, (WIDTH - ((pressText.getBytes("GBK").length) / 2) * FONTSIZE) / 2, startY);
}
g.dispose();
return outImage;
}
/**
* 保存二维码图片到本地
*
* @param contents
* @throws Exception
*/
public static void createImg(String pressText, String contents, String filename, String filePath) throws Exception {
BufferedImage qRImageWithLogo = drawHouseQRImage(pressText, contents);
// 写入返回
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(qRImageWithLogo, "jpg", baos);
//图片类型
String imageType = "jpg";
//生成二维码存放文件
File file = new File(filePath + filename + ".jpg");
if (!file.exists()) {
file.mkdirs();
}
ImageIO.write(qRImageWithLogo, imageType, file);
baos.close();
}
private static String outStringByByte(String str, int len) throws IOException {
byte[] btf = str.getBytes("GBK");
int count = 0;
for (int j = len - 1; j >= 0; j--) {
if (btf[j] < 0) {
count++;
} else {
break;
}
}
if (count % 2 == 0) {
return new String(btf, 0, len, "GBK");
} else {
return new String(btf, 0, len - 1, "GBK");
}
}
}

132
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IDCardUtil.java

@ -0,0 +1,132 @@
package com.epmet.commons.tools.utils;
import com.epmet.commons.tools.enums.GenderEnum;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description
* @Author zhaoqifeng
* @Date 2022/6/13 17:53
*/
public class IDCardUtil {
/**
* 15位身份证号
*/
private static final Integer FIFTEEN_ID_CARD=15;
/**
* 18位身份证号
*/
private static final Integer EIGHTEEN_ID_CARD=18;
private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
/**
* 根据身份证号获取性别
* @param idCard
* @return
*/
public static String getSex(String idCard){
String sex ="";
if (StringUtils.isNotBlank(idCard)){
//15位身份证号
if (idCard.length() == FIFTEEN_ID_CARD){
if (Integer.parseInt(idCard.substring(14, 15)) % 2 == 0) {
sex = GenderEnum.WOMAN.getCode();
} else {
sex = GenderEnum.MAN.getCode();
}
//18位身份证号
}else if(idCard.length() == EIGHTEEN_ID_CARD){
// 判断性别
if (Integer.parseInt(idCard.substring(16).substring(0, 1)) % 2 == 0) {
sex = GenderEnum.WOMAN.getCode();
} else {
sex = GenderEnum.MAN.getCode();
}
}
}
return sex;
}
/**
* 根据身份证号获取年龄
* @param idCard
* @return
*/
public static Integer getAge(String idCard){
int age = 0;
Date date = new Date();
if (StringUtils.isNotBlank(idCard)){
//15位身份证号
if (idCard.length() == FIFTEEN_ID_CARD){
// 身份证上的年份(15位身份证为1980年前的)
String uyear = "19" + idCard.substring(6, 8);
// 身份证上的月份
String uyue = idCard.substring(8, 10);
// 当前年份
String fyear = format.format(date).substring(0, 4);
// 当前月份
String fyue = format.format(date).substring(5, 7);
if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) {
age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;
// 当前用户还没过生
} else {
age = Integer.parseInt(fyear) - Integer.parseInt(uyear);
}
//18位身份证号
}else if(idCard.length() == EIGHTEEN_ID_CARD){
// 身份证上的年份
String year = idCard.substring(6).substring(0, 4);
// 身份证上的月份
String yue = idCard.substring(10).substring(0, 2);
// 当前年份
String fyear = format.format(date).substring(0, 4);
// 当前月份
String fyue = format.format(date).substring(5, 7);
// 当前月份大于用户出身的月份表示已过生日
if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) {
age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;
// 当前用户还没过生日
} else {
age = Integer.parseInt(fyear) - Integer.parseInt(year);
}
}
}
return age;
}
/**
* 获取出生日期 yyyy年MM月dd日
* @param idCard
* @return
*/
public static String getBirthday(String idCard){
String birthday="";
String year="";
String month="";
String day="";
if (StringUtils.isNotBlank(idCard)){
//15位身份证号
if (idCard.length() == FIFTEEN_ID_CARD){
// 身份证上的年份(15位身份证为1980年前的)
year = "19" + idCard.substring(6, 8);
//身份证上的月份
month = idCard.substring(8, 10);
//身份证上的日期
day= idCard.substring(10, 12);
//18位身份证号
}else if(idCard.length() == EIGHTEEN_ID_CARD){
// 身份证上的年份
year = idCard.substring(6).substring(0, 4);
// 身份证上的月份
month = idCard.substring(10).substring(0, 2);
//身份证上的日期
day=idCard.substring(12).substring(0,2);
}
birthday=year+"-"+month+"-"+day;
}
return birthday;
}
}

45
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/NodeTree.java

@ -0,0 +1,45 @@
package com.epmet.commons.tools.utils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class NodeTree<T> implements Serializable {
private static final long serialVersionUID = 8020505121785861117L;
/**
* 主键
*/
private String id;
/**
* 上级ID
*/
private String pid;
/**
* 子节点列表
*/
private List<T> children = new ArrayList<>();
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public List<T> getChildren() {
return children;
}
public void setChildren(List<T> children) {
this.children = children;
}
}

31
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/NodeTreeUtils.java

@ -0,0 +1,31 @@
package com.epmet.commons.tools.utils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class NodeTreeUtils {
public static <T extends NodeTree> List<T> build(List<T> treeNodes) {
List<T> result = new ArrayList<>();
//list转map
Map<String, T> nodeMap = new LinkedHashMap<>(treeNodes.size());
for(T treeNode : treeNodes){
nodeMap.put(treeNode.getId(), treeNode);
}
for(T node : nodeMap.values()) {
T parent = nodeMap.get(node.getPid());
if(parent != null && !(node.getId().equals(parent.getId()))){
parent.getChildren().add(node);
continue;
}
result.add(node);
}
return result;
}
}

1
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml

@ -203,6 +203,7 @@
<when test="orgType == 'department'">
INNER JOIN screen_customer_dept org ON org.CUSTOMER_ID = u.CUSTOMER_ID AND org.DEPT_ID = u.ORG_ID AND org.DEL_FLAG = '0'
</when>
</choose>
</if>
WHERE

148
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactAgencyUserHouseDailyDTO.java

@ -0,0 +1,148 @@
package com.epmet.dto.stats;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactAgencyUserHouseDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+AGENCY_ID+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 组织id
*/
private String agencyId;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

139
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridUserHouseDailyDTO.java

@ -0,0 +1,139 @@
package com.epmet.dto.stats;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactGridUserHouseDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+grid_id+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

149
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java

@ -0,0 +1,149 @@
package com.epmet.dto.stats;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
*/
@Data
public class FactNeighborhoodUserHouseDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+grid_id+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区ID
*/
private String neighbourhoodsId;
/**
* 小区名称
*/
private String neighborHoodName;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

35
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.stats.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactUserHouseFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* level
*/
private String level;
}

169
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/FactUserHouseResultDTO.java

@ -0,0 +1,169 @@
package com.epmet.dto.stats.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactUserHouseResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+AGENCY_ID+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 组织id
*/
private String agencyId;
/**
* 组织id
*/
private String agencyName;
/**
* 小区ID
*/
private String neighbourhoodsId;
/**
* 小区名称
*/
private String neighborHoodName;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

10
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java

@ -13,6 +13,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.user.form.StaffBaseInfoFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
@ -368,4 +369,13 @@ public interface DataStatisticalOpenFeignClient {
@PostMapping("/data/stats/screenextract/data_check")
Result dataCheck(@RequestBody ExtractOriginFormDTO formDTO);
@PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatGrid")
Result userHouseStatGrid(@RequestBody FactUserHouseFormDTO formDTO);
@PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatAgency")
Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO);
@PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatNeighborhood")
Result userHouseStatNeighborhood(@RequestBody FactUserHouseFormDTO formDTO);
}

16
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -14,6 +14,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.user.form.StaffBaseInfoFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
@ -351,4 +352,19 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
public Result dataCheck(ExtractOriginFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "dataCheck", formDTO);
}
@Override
public Result userHouseStatGrid(FactUserHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatGrid", formDTO);
}
@Override
public Result userHouseStatAgency(FactUserHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatAgency", formDTO);
}
@Override
public Result userHouseStatNeighborhood(FactUserHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatNeighborhood", formDTO);
}
}

103
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java

@ -0,0 +1,103 @@
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.excel.FactUserHouseExcel;
import com.epmet.service.stats.FactUserHouseService;
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-05-27
*/
@RestController
@RequestMapping("factAgencyUserHouseDaily")
public class FactUserHouseController {
@Autowired
private FactUserHouseService factUserHouseService;
@RequestMapping("page")
public Result<PageData<FactUserHouseResultDTO>> page(@RequestParam Map<String, Object> params) {
PageData<FactUserHouseResultDTO> page = factUserHouseService.page(params);
return new Result<PageData<FactUserHouseResultDTO>>().ok(page);
}
/**
* 合计
*
* @param params
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/31 9:48
*/
@RequestMapping("total")
public Result<FactUserHouseResultDTO> total(@RequestParam Map<String, Object> params) {
FactUserHouseResultDTO dto = factUserHouseService.total(params);
return new Result<FactUserHouseResultDTO>().ok(dto);
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<FactUserHouseResultDTO> list = factUserHouseService.list(params);
if (list.isEmpty()) {
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
list.add(dto);
}
ExcelUtils.exportExcelToTarget(response, null, list, FactUserHouseExcel.class);
}
/**
* 统计网格纬度
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/31 9:48
*/
@PostMapping("userHouseStatGrid")
public Result userHouseStatGrid(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statGrid(formDTO);
return new Result();
}
/**
* 统计小区纬度
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author wgf
* @date 2022/5/31 9:48
*/
@PostMapping("userHouseStatNeighborhood")
public Result userHouseStatNeighborhood(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statNeighborhood(formDTO);
return new Result();
}
/**
* 统计组织纬度
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/31 9:48
*/
@PostMapping("userHouseStatAgency")
public Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statAgency(formDTO);
return new Result();
}
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java

@ -0,0 +1,28 @@
package com.epmet.dao.org;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.org.IcHouseEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 房屋信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
@Mapper
public interface IcHouseDao extends BaseDao<IcHouseEntity> {
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStatNew(FactUserHouseFormDTO formDTO);
}

26
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactAgencyUserHouseDailyDao.java

@ -0,0 +1,26 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
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-05-27
*/
@Mapper
public interface FactAgencyUserHouseDailyDao extends BaseDao<FactAgencyUserHouseDailyEntity> {
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGridUserHouseDailyDao.java

@ -0,0 +1,28 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
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-05-27
*/
@Mapper
public interface FactGridUserHouseDailyDao extends BaseDao<FactGridUserHouseDailyEntity> {
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

27
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java

@ -0,0 +1,27 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity;
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-06-01
*/
@Mapper
public interface FactNeighborhoodUserHouseDailyDao extends BaseDao<FactNeighborhoodUserHouseDailyEntity> {
void deleteByDateId(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
}

42
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java

@ -0,0 +1,42 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.user;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Mapper
public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO);
}

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

@ -238,6 +238,8 @@ public class FactGridGovernDailyEntity extends BaseEpmetEntity {
this.eventUnResolvedCount=NumConstant.ZERO;
this.workEventResolvedCount=NumConstant.ZERO;
this.workEventUnResolvedCount=NumConstant.ZERO;
this.icEventResolvedCount = NumConstant.ZERO;
this.icEventUnResolvedCount = NumConstant.ZERO;
this.inGroupTopicResolvedCount=NumConstant.ZERO;
this.inGroupTopicUnResolvedCount=NumConstant.ZERO;
this.fromIssueResolvedInGridCount=NumConstant.ZERO;
@ -248,5 +250,6 @@ public class FactGridGovernDailyEntity extends BaseEpmetEntity {
this.communityClosedCount=NumConstant.ZERO;
this.streetClosedCount=NumConstant.ZERO;
this.districtDeptClosedCount=NumConstant.ZERO;
}
}

110
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/IcHouseEntity.java

@ -0,0 +1,110 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.org;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 房屋信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_house")
public class IcHouseEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 小区id
*/
private String neighborHoodId;
/**
* 片区idneighbor_hood_part.id,可为空
*/
private String partId;
/**
* 所属楼栋id
*/
private String buildingId;
/**
* 所属单元id
*/
private String buildingUnitId;
/**
* 房屋名字后台插入时生成
*/
private String houseName;
/**
* 门牌号
*/
private String doorName;
/**
* 房屋类型这里存储字典value就可以
*/
private String houseType;
/**
* 存储字典value
*/
private String purpose;
/**
* 1出租0未出租
*/
private Integer rentFlag;
/**
* 房主姓名
*/
private String ownerName;
/**
* 房主电话
*/
private String ownerPhone;
/**
* 房主身份证号
*/
private String ownerIdCard;
/**
* 排序
*/
private BigDecimal sort;
}

118
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyUserHouseDailyEntity.java

@ -0,0 +1,118 @@
package com.epmet.entity.stats;
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-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_agency_user_house_daily")
public class FactAgencyUserHouseDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 组织id
*/
private String agencyId;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
}

109
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridUserHouseDailyEntity.java

@ -0,0 +1,109 @@
package com.epmet.entity.stats;
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-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_grid_user_house_daily")
public class FactGridUserHouseDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
}

119
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java

@ -0,0 +1,119 @@
package com.epmet.entity.stats;
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-06-01
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_neighborhood_user_house_daily")
public class FactNeighborhoodUserHouseDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区ID
*/
private String neighbourhoodsId;
/**
* 小区名称
*/
private String neighborHoodName;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
}

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

@ -0,0 +1,513 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.user;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_resi_user")
public class IcResiUserEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
*
*/
private String agencyId;
/**
*
*/
private String pids;
/**
* 网格ID
*/
private String gridId;
/**
* 所属小区ID
*/
private String villageId;
/**
* 所属楼宇Id
*/
private String buildId;
/**
* 单元id
*/
private String unitId;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 是否本地户籍
*/
private String isBdhj;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 性别
*/
private String gender;
/**
* 身份证号
*/
private String idCard;
/**
* 出生日期
*/
private String birthday;
/**
* 备注
*/
private String remarks;
/**
* 联系人
*/
private String contacts;
/**
* 联系人电话
*/
private String contactsMobile;
/**
* 九小场所url
*/
private String ninePlace;
/**
* 是否党员
*/
private String isParty;
/**
* 是否低保户
*/
private String isDbh;
/**
* 是否保障房
*/
private String isEnsureHouse;
/**
* 是否失业
*/
private String isUnemployed;
/**
* 是否育龄妇女
*/
private String isYlfn;
/**
* 是否退役军人
*/
private String isVeterans;
/**
* 是否统战人员
*/
private String isUnitedFront;
/**
* 是否信访人员
*/
private String isXfry;
/**
* 是否志愿者
*/
private String isVolunteer;
/**
* 是否老年人
*/
private String isOldPeople;
/**
* 是否空巢
*/
private String isKc;
/**
* 是否失独
*/
private String isSd;
/**
* 是否失能
*/
private String isSn;
/**
* 是否失智
*/
private String isSz;
/**
* 是否残疾
*/
private String isCj;
/**
* 是否大病
*/
private String isDb;
/**
* 是否慢病
*/
private String isMb;
/**
* 是否特殊人群
*/
private String isSpecial;
/**
* 是否租户:1 :0
*/
private String isTenant;
/**
* 是否流动人口:1 :0
*/
private String isFloating;
/**
* 文化程度字典表
*/
private String culture;
/**
* 文化程度备注
*/
private String cultureRemakes;
/**
* 特长字典表
*/
private String specialSkill;
/**
* 兴趣爱好
*/
private String hobby;
/**
* 兴趣爱好备注
*/
private String hobbyRemakes;
/**
* 宗教信仰
*/
private String faith;
/**
* 宗教信仰备注
*/
private String faithRemakes;
/**
* 残疾类别字典表
*/
private String cjlb;
/**
* 残疾登记(状况)字典表
*/
private String cjzk;
/**
* 残疾证号
*/
private String cjzh;
/**
* 残疾说明
*/
private String cjsm;
/**
* 有无监护人yes no
*/
private String ynJdr;
/**
* 有无技能特长yes no
*/
private String ynJntc;
/**
* 有无劳动能力
*/
private String ynLdnl;
/**
* 有无非义务教育阶段助学yes no
*/
private String ynFywjyjdzx;
/**
* 所患大病
*/
private String shdb;
/**
* 患大病时间
*/
private String dbsj;
/**
* 所患慢性病
*/
private String shmxb;
/**
* 患慢性病时间
*/
private String mxbsj;
/**
* 是否参保
*/
private String isCb;
/**
* 自付金额
*/
private String zfje;
/**
* 救助金额
*/
private String jzje;
/**
* 救助时间[yyyy-MM-dd]
*/
private String jzsj;
/**
* 享受救助明细序号
*/
private String jzmxxh;
/**
* 健康信息备注
*/
private String healthRemakes;
/**
* 工作单位
*/
private String gzdw;
/**
* 职业
*/
private String zy;
/**
* 离退休时间
*/
private String ltxsj;
/**
* 工作信息备注
*/
private String workRemake;
/**
* 退休金额
*/
private String txje;
/**
* 月收入
*/
private String ysr;
/**
* 籍贯
*/
private String jg;
/**
* 户籍所在地
*/
private String hjszd;
/**
* 现居住地
*/
private String xjzd;
/**
* 人户情况
*/
private String rhzk;
/**
* 居住信息备注
*/
private String jzxxRemakes;
/**
* 民族字典表
*/
private String mz;
/**
* 与户主关系字典表
*/
private String yhzgx;
/**
* 居住情况字典表
*/
private String jzqk;
/**
* 婚姻状况字典表
*/
private String hyzk;
/**
* 配偶情况字典表
*/
private String poqk;
/**
* 有无赡养人
*/
private String ynSyr;
/**
* 与赡养人关系字典表
*/
private String ysyrgx;
/**
* 赡养人电话
*/
private String syrMobile;
/**
* 家庭信息备注
*/
private String jtxxRemakes;
/**
* 用户状态0:正常;1:迁出;2:注销
*/
private String status;
/**
* 用户详细状态01新增02导入03迁入04新生11迁出21死亡
*/
private String subStatus;
/**
* 预留字段1
*/
private String field1;
/**
* 预留字段2
*/
private String field2;
/**
* 预留字段3
*/
private String field3;
/**
* 预留字段4
*/
private String field4;
/**
* 预留字段5
*/
private String field5;
/**
* 预留字段6
*/
private String field6;
/**
* 预留字段7
*/
private String field7;
/**
* 预留字段8
*/
private String field8;
/**
* 预留字段9
*/
private String field9;
/**
* 预留字段10
*/
private String field10;
}

56
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/FactUserHouseExcel.java

@ -0,0 +1,56 @@
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-05-27
*/
@Data
public class FactUserHouseExcel {
@Excel(name = "组织结构")
private String agencyName;
@Excel(name = "小区数")
private Integer neighbourhoodsCount;
@Excel(name = "房屋数")
private Integer houseCount;
@Excel(name = "自住房屋数")
private Integer houseSelfCount;
@Excel(name = "出租房屋数")
private Integer houseLeaseCount;
@Excel(name = "闲置房屋数")
private Integer houseIdleCount;
@Excel(name = "居民总数")
private Integer userCount;
@Excel(name = "常住人口数")
private Integer userResiCount;
@Excel(name = "流动人口数")
private Integer userFloatCount;
@Excel(name = "新增房屋数")
private Integer houseIncr;
@Excel(name = "新增人口数")
private Integer userIncr;
@Excel(name = "修改房屋数")
private Integer houseModify;
@Excel(name = "修改人口数")
private Integer userModify;
}

73
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java

@ -0,0 +1,73 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.org;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import java.util.List;
/**
* 小区表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
public interface HouseService {
/**
* 房屋统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
/**
* 房屋统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO);
/**
* 小区统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO);
/**
* 小区统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> neighborhoodStatNew(FactUserHouseFormDTO formDTO);
}

42
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java

@ -0,0 +1,42 @@
package com.epmet.service.org.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.org.IcHouseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.org.IcHouseEntity;
import com.epmet.service.org.HouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@DataSource(DataSourceConstant.GOV_ORG)
@Service
public class HouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntity> implements HouseService, ResultDataResolver {
@Override
public List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO) {
return baseDao.houseStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.houseStatNew(formDTO);
}
@Override
public List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> neighborhoodStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStatNew(formDTO);
}
}

111
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactAgencyUserHouseDailyService.java

@ -0,0 +1,111 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactAgencyUserHouseDailyService extends BaseService<FactAgencyUserHouseDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 分页合计
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactAgencyUserHouseDailyDTO> list(Map<String, Object> params);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactAgencyUserHouseDailyDTO
* @author generator
* @date 2022-05-27
*/
FactAgencyUserHouseDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void save(FactAgencyUserHouseDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void update(FactAgencyUserHouseDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-05-27
*/
void delete(String[] ids);
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

120
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGridUserHouseDailyService.java

@ -0,0 +1,120 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactGridUserHouseDailyService extends BaseService<FactGridUserHouseDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactGridUserHouseDailyDTO> list(Map<String, Object> params);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactGridUserHouseDailyDTO
* @author generator
* @date 2022-05-27
*/
FactGridUserHouseDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void save(FactGridUserHouseDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void update(FactGridUserHouseDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-05-27
*/
void delete(String[] ids);
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
/**
* 根据网格统计组织数据
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:32
*/
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
}

113
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java

@ -0,0 +1,113 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactNeighborhoodUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
*/
public interface FactNeighborhoodUserHouseDailyService extends BaseService<FactNeighborhoodUserHouseDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactNeighborhoodUserHouseDailyDTO>
* @author generator
* @date 2022-06-01
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactNeighborhoodUserHouseDailyDTO>
* @author generator
* @date 2022-06-01
*/
List<FactNeighborhoodUserHouseDailyDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactNeighborhoodUserHouseDailyDTO
* @author generator
* @date 2022-06-01
*/
FactNeighborhoodUserHouseDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-06-01
*/
void save(FactNeighborhoodUserHouseDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-06-01
*/
void update(FactNeighborhoodUserHouseDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-06-01
*/
void delete(String[] ids);
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author wgf
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author wgf
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author wgf
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
}

78
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java

@ -0,0 +1,78 @@
package com.epmet.service.stats;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactUserHouseService {
/**
* 默认分页
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO total(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> list(Map<String, Object> params);
/**
* 人房网格数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:31
*/
void statGrid(FactUserHouseFormDTO formDTO);
/**
* 人房小区数据
*
* @param formDTO
* @return void
* @author wgf
* @date 2022/5/30 13:31
*/
void statNeighborhood(FactUserHouseFormDTO formDTO);
/**
* 人房组织数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:31
*/
void statAgency(FactUserHouseFormDTO formDTO);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java

@ -81,9 +81,11 @@ public class DimGridServiceImpl extends BaseServiceImpl<DimGridDao, DimGridEntit
private QueryWrapper<DimGridEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
String customerId = (String)params.get("customerId");
QueryWrapper<DimGridEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(customerId), "CUSTOMER_ID", customerId);
return wrapper;
}

121
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java

@ -0,0 +1,121 @@
package com.epmet.service.stats.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.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
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.dao.stats.FactAgencyUserHouseDailyDao;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
import com.epmet.service.stats.FactAgencyUserHouseDailyService;
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-05-27
*/
@Service
public class FactAgencyUserHouseDailyServiceImpl extends BaseServiceImpl<FactAgencyUserHouseDailyDao, FactAgencyUserHouseDailyEntity> implements FactAgencyUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<FactUserHouseResultDTO> page = getPage(params);
List<FactUserHouseResultDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public FactUserHouseResultDTO getTotal(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
List<FactUserHouseResultDTO> list = baseDao.getTotal(params);
// 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算
if (list.size() == NumConstant.ZERO) {
return null;
} else if (list.size() == NumConstant.ONE) {
return list.get(0);
} else {
FactUserHouseResultDTO first = list.get(0);
FactUserHouseResultDTO last = list.get(list.size() - 1);
FactUserHouseResultDTO dto = last;
dto.setHouseIncr(last.getHouseIncr() - first.getHouseIncr());
dto.setHouseModify(last.getHouseModify() - first.getHouseModify());
dto.setUserIncr(last.getUserIncr() - first.getUserIncr());
dto.setUserModify(last.getUserModify() - first.getUserModify());
return dto;
}
}
@Override
public List<FactAgencyUserHouseDailyDTO> list(Map<String, Object> params) {
List<FactAgencyUserHouseDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactAgencyUserHouseDailyDTO.class);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
private QueryWrapper<FactAgencyUserHouseDailyEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<FactAgencyUserHouseDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public FactAgencyUserHouseDailyDTO get(String id) {
FactAgencyUserHouseDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactAgencyUserHouseDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactAgencyUserHouseDailyDTO dto) {
FactAgencyUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactAgencyUserHouseDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactAgencyUserHouseDailyDTO dto) {
FactAgencyUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactAgencyUserHouseDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
}

138
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java

@ -0,0 +1,138 @@
package com.epmet.service.stats.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.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
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.dao.stats.FactGridUserHouseDailyDao;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import com.epmet.service.stats.FactGridUserHouseDailyService;
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-05-27
*/
@Service
public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl<FactGridUserHouseDailyDao, FactGridUserHouseDailyEntity> implements FactGridUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<FactUserHouseResultDTO> page = getPage(params);
List<FactUserHouseResultDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public FactUserHouseResultDTO getTotal(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
List<FactUserHouseResultDTO> list = baseDao.getTotal(params);
// 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算
if (list.size() == NumConstant.ZERO) {
return null;
} else if (list.size() == NumConstant.ONE) {
return list.get(0);
} else {
Integer houseIncr = 0;
Integer houseModify = 0;
Integer userIncr = 0;
Integer userModify = 0;
for(FactUserHouseResultDTO factUserHouseResultDTO : list){
houseIncr = houseIncr + factUserHouseResultDTO.getHouseIncr();
houseModify = houseModify + factUserHouseResultDTO.getHouseModify();
userIncr = userIncr + factUserHouseResultDTO.getUserIncr();
userModify = userModify + factUserHouseResultDTO.getUserModify();
}
FactUserHouseResultDTO dto = list.get(list.size() - 1);
dto.setHouseIncr(houseIncr);
dto.setHouseModify(houseModify);
dto.setUserIncr(userIncr);
dto.setUserModify(userModify);
return dto;
}
}
@Override
public List<FactGridUserHouseDailyDTO> list(Map<String, Object> params) {
List<FactGridUserHouseDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactGridUserHouseDailyDTO.class);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
private QueryWrapper<FactGridUserHouseDailyEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String dateId = (String) params.get("dateId");
String customerId = (String) params.get("customerId");
QueryWrapper<FactGridUserHouseDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(dateId), "DATE_ID", dateId);
wrapper.eq(StringUtils.isNotBlank(customerId), "CUSTOMER_ID", customerId);
return wrapper;
}
@Override
public FactGridUserHouseDailyDTO get(String id) {
FactGridUserHouseDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactGridUserHouseDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactGridUserHouseDailyDTO dto) {
FactGridUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactGridUserHouseDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactGridUserHouseDailyDTO dto) {
FactGridUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactGridUserHouseDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
@Override
public List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO) {
return baseDao.statAgency(formDTO);
}
}

129
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java

@ -0,0 +1,129 @@
package com.epmet.service.stats.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.constant.NumConstant;
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.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dao.stats.FactNeighborhoodUserHouseDailyDao;
import com.epmet.dto.stats.FactNeighborhoodUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity;
import com.epmet.service.stats.FactNeighborhoodUserHouseDailyService;
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.*;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-06-01
*/
@Service
public class FactNeighborhoodUserHouseDailyServiceImpl extends BaseServiceImpl<FactNeighborhoodUserHouseDailyDao, FactNeighborhoodUserHouseDailyEntity> implements FactNeighborhoodUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<FactUserHouseResultDTO> page = getPage(params);
List<FactUserHouseResultDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<FactNeighborhoodUserHouseDailyDTO> list(Map<String, Object> params) {
List<FactNeighborhoodUserHouseDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactNeighborhoodUserHouseDailyDTO.class);
}
private QueryWrapper<FactNeighborhoodUserHouseDailyEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<FactNeighborhoodUserHouseDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public FactNeighborhoodUserHouseDailyDTO get(String id) {
FactNeighborhoodUserHouseDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactNeighborhoodUserHouseDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactNeighborhoodUserHouseDailyDTO dto) {
FactNeighborhoodUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactNeighborhoodUserHouseDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactNeighborhoodUserHouseDailyDTO dto) {
FactNeighborhoodUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactNeighborhoodUserHouseDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
@Override
public FactUserHouseResultDTO getTotal(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
List<FactUserHouseResultDTO> list = baseDao.getTotal(params);
// 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算
if (list.size() == NumConstant.ZERO) {
return null;
} else if (list.size() == NumConstant.ONE) {
return list.get(0);
} else {
Integer houseIncr = 0;
Integer houseModify = 0;
Integer userIncr = 0;
Integer userModify = 0;
for(FactUserHouseResultDTO factUserHouseResultDTO : list){
houseIncr = houseIncr + factUserHouseResultDTO.getHouseIncr();
houseModify = houseModify + factUserHouseResultDTO.getHouseModify();
userIncr = userIncr + factUserHouseResultDTO.getUserIncr();
userModify = userModify + factUserHouseResultDTO.getUserModify();
}
FactUserHouseResultDTO dto = list.get(list.size() - 1);
dto.setHouseIncr(houseIncr);
dto.setHouseModify(houseModify);
dto.setUserIncr(userIncr);
dto.setUserModify(userModify);
return dto;
}
}
}

307
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java

@ -0,0 +1,307 @@
package com.epmet.service.stats.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity;
import com.epmet.service.org.HouseService;
import com.epmet.service.stats.*;
import com.epmet.service.user.IcResiUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Service
@Slf4j
public class FactUserHouseServiceImpl implements FactUserHouseService {
@Autowired
private FactAgencyUserHouseDailyService factAgencyUserHouseDailyService;
@Autowired
private FactGridUserHouseDailyService factGridUserHouseDailyService;
@Autowired
private FactNeighborhoodUserHouseDailyService factNeighborhoodUserHouseDailyService;
@Autowired
private HouseService houseService;
@Autowired
private IcResiUserService icResiUserService;
@Autowired
private DimGridService dimGridService;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
PageData<FactUserHouseResultDTO> page = null;
if (params.containsKey("startTime") && params.containsKey("endTime")) {
if (StringUtils.isNotBlank(params.get("startTime").toString()) && StringUtils.isNotBlank(params.get("endTime").toString())) {
params.put("dateId", StringUtils.EMPTY);
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
if (params.containsKey("level")) {
if("neighborhood".equals(params.get("level").toString()) || OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())){
page = factNeighborhoodUserHouseDailyService.page(params);
}else if (OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) {
page = factGridUserHouseDailyService.page(params);
} else {
page = factAgencyUserHouseDailyService.page(params);
}
}
return page;
}
@Override
public FactUserHouseResultDTO total(Map<String, Object> params) {
FactUserHouseResultDTO dto = null;
// 不查询时间段默认查询当天
if (params.containsKey("startTime") && params.containsKey("endTime")) {
if (StringUtils.isNotBlank(params.get("startTime").toString()) && StringUtils.isNotBlank(params.get("endTime").toString())) {
params.put("dateId", StringUtils.EMPTY);
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
// 网格纬度查询网格统计表,其余纬度查询组织统计表
if (params.containsKey("level")) {
if("neighborhood".equals(params.get("level").toString())){
dto = factNeighborhoodUserHouseDailyService.getTotal(params);
}else if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())) {
dto = factGridUserHouseDailyService.getTotal(params);
} else {
dto = factAgencyUserHouseDailyService.getTotal(params);
}
}
return dto;
}
@Override
public List<FactUserHouseResultDTO> list(Map<String, Object> params) {
List<FactUserHouseResultDTO> list = new ArrayList<>();
if (params.containsKey("level")) {
if("neighborhood".equals(params.get("level").toString()) || OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())){
list = factNeighborhoodUserHouseDailyService.listExport(params);
}else if (OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) {
list = factGridUserHouseDailyService.listExport(params);
} else {
list = factAgencyUserHouseDailyService.listExport(params);
}
}
FactUserHouseResultDTO dto = total(params);
if (dto != null) {
dto.setAgencyName("合计");
}
list.add(dto);
return list;
}
@Override
public void statGrid(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
String dateId = formDTO.getDateId();
String customerId = formDTO.getCustomerId();
// 先删除历史
factGridUserHouseDailyService.deleteByDateId(formDTO);
// 保证小区是全部网格后,其余数据进行循环匹配
List<FactUserHouseResultDTO> neiList = houseService.neighborhoodStat(formDTO);
List<FactUserHouseResultDTO> houseList = houseService.houseStat(formDTO);
List<FactUserHouseResultDTO> userList = icResiUserService.userStat(formDTO);
List<FactUserHouseResultDTO> addList = new ArrayList<>();
neiList.forEach(item -> {
String gridId = item.getGridId();
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
dto.setCustomerId(formDTO.getCustomerId());
dto.setDateId(dateId);
dto.setGridId(gridId);
dto.setPid(item.getPid());
dto.setPids(item.getPids());
dto.setNeighbourhoodsCount(item.getNeighbourhoodsCount());
Optional<FactUserHouseResultDTO> houseOptional = houseList.stream().filter(house -> gridId.equals(house.getGridId()) && customerId.equals(house.getCustomerId())).findFirst();
if (houseOptional.isPresent()) {
dto.setHouseCount(houseOptional.get().getHouseCount());
dto.setHouseSelfCount(houseOptional.get().getHouseSelfCount());
dto.setHouseLeaseCount(houseOptional.get().getHouseLeaseCount());
dto.setHouseIdleCount(houseOptional.get().getHouseIdleCount());
dto.setHouseIncr(houseOptional.get().getHouseIncr());
dto.setHouseModify(houseOptional.get().getHouseModify());
} else {
dto.setHouseCount(NumConstant.ZERO);
dto.setHouseSelfCount(NumConstant.ZERO);
dto.setHouseLeaseCount(NumConstant.ZERO);
dto.setHouseIdleCount(NumConstant.ZERO);
dto.setHouseIncr(NumConstant.ZERO);
dto.setHouseModify(NumConstant.ZERO);
}
Optional<FactUserHouseResultDTO> userOptional = userList.stream().filter(user -> gridId.equals(user.getGridId()) && customerId.equals(user.getCustomerId())).findFirst();
if (userOptional.isPresent()) {
dto.setUserCount(userOptional.get().getUserCount());
dto.setUserResiCount(userOptional.get().getUserResiCount());
dto.setUserFloatCount(userOptional.get().getUserFloatCount());
dto.setUserIncr(userOptional.get().getUserIncr());
dto.setUserModify(userOptional.get().getUserModify());
} else {
dto.setUserCount(NumConstant.ZERO);
dto.setUserResiCount(NumConstant.ZERO);
dto.setUserFloatCount(NumConstant.ZERO);
dto.setUserIncr(NumConstant.ZERO);
dto.setUserModify(NumConstant.ZERO);
}
addList.add(dto);
});
List<FactGridUserHouseDailyEntity> entityList = ConvertUtils.sourceToTarget(addList, FactGridUserHouseDailyEntity.class);
factGridUserHouseDailyService.insertBatch(entityList);
}
/**
* 小区
* @author wgf
* @param formDTO
*/
@Override
public void statNeighborhood(FactUserHouseFormDTO formDTO) {
log.info("$$$进入业务逻辑");
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
String dateId = formDTO.getDateId();
String customerId = formDTO.getCustomerId();
// 先删除历史
factNeighborhoodUserHouseDailyService.deleteByDateId(formDTO);
log.info("$$$删除历史完成");
// 保证小区是全部网格后,其余数据进行循环匹配
List<FactUserHouseResultDTO> neiList = houseService.neighborhoodStatNew(formDTO);
List<FactUserHouseResultDTO> houseList = houseService.houseStatNew(formDTO);
List<FactUserHouseResultDTO> userList = icResiUserService.userStatNew(formDTO);
List<FactUserHouseResultDTO> addList = new ArrayList<>();
neiList.forEach(item -> {
String gridId = item.getGridId() == null ? "" : item.getGridId();
String neighborHoodsId = item.getNeighbourhoodsId();
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
dto.setCustomerId(formDTO.getCustomerId());
dto.setDateId(dateId);
dto.setGridId(gridId);
dto.setPid(item.getPid() == null ? "" : item.getPid());
dto.setPids(item.getPids() == null ? "" : item.getPids());
dto.setNeighbourhoodsCount(item.getNeighbourhoodsCount());
dto.setNeighbourhoodsId(item.getNeighbourhoodsId());
dto.setNeighborHoodName(item.getNeighborHoodName());
Optional<FactUserHouseResultDTO> houseOptional = houseList.stream().filter(house -> neighborHoodsId.equals(house.getNeighbourhoodsId()) && customerId.equals(house.getCustomerId())).findFirst();
if (houseOptional.isPresent()) {
dto.setHouseCount(houseOptional.get().getHouseCount());
dto.setHouseSelfCount(houseOptional.get().getHouseSelfCount());
dto.setHouseLeaseCount(houseOptional.get().getHouseLeaseCount());
dto.setHouseIdleCount(houseOptional.get().getHouseIdleCount());
} else {
dto.setHouseCount(NumConstant.ZERO);
dto.setHouseSelfCount(NumConstant.ZERO);
dto.setHouseLeaseCount(NumConstant.ZERO);
dto.setHouseIdleCount(NumConstant.ZERO);
}
Optional<FactUserHouseResultDTO> userOptional = userList.stream().filter(user -> neighborHoodsId.equals(user.getNeighbourhoodsId()) && customerId.equals(user.getCustomerId())).findFirst();
if (userOptional.isPresent()) {
dto.setUserCount(userOptional.get().getUserCount());
dto.setUserResiCount(userOptional.get().getUserResiCount());
dto.setUserFloatCount(userOptional.get().getUserFloatCount());
} else {
dto.setUserCount(NumConstant.ZERO);
dto.setUserResiCount(NumConstant.ZERO);
dto.setUserFloatCount(NumConstant.ZERO);
}
addList.add(dto);
});
log.info("$$$addList:::::" + addList);
List<FactNeighborhoodUserHouseDailyEntity> entityList = ConvertUtils.sourceToTarget(addList, FactNeighborhoodUserHouseDailyEntity.class);
factNeighborhoodUserHouseDailyService.insertBatch(entityList);
}
@Override
public void statAgency(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
Map<String, Object> params = new HashMap<>();
params.put("dateId", formDTO.getDateId());
params.put("customerId", formDTO.getCustomerId());
List<FactGridUserHouseDailyDTO> list = factGridUserHouseDailyService.list(params);
if (list.isEmpty()) {
return;
}
// 先删除历史
factAgencyUserHouseDailyService.deleteByDateId(formDTO);
// 使用机构表左关联,对不同纬度的机构进行分组统计
formDTO.setLevel("community");
List<FactUserHouseResultDTO> commList = factGridUserHouseDailyService.statAgency(formDTO);
if (!commList.isEmpty()) {
commList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(commList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("street");
List<FactUserHouseResultDTO> streetList = factGridUserHouseDailyService.statAgency(formDTO);
if (!streetList.isEmpty()) {
streetList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(streetList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("district");
List<FactUserHouseResultDTO> districtList = factGridUserHouseDailyService.statAgency(formDTO);
if (!districtList.isEmpty()) {
districtList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(districtList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("city");
List<FactUserHouseResultDTO> cityList = factGridUserHouseDailyService.statAgency(formDTO);
if (!cityList.isEmpty()) {
cityList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(cityList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("province");
List<FactUserHouseResultDTO> provinceList = factGridUserHouseDailyService.statAgency(formDTO);
if (!provinceList.isEmpty()) {
provinceList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(provinceList, FactAgencyUserHouseDailyEntity.class));
}
}
}

55
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java

@ -0,0 +1,55 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.user;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
public interface IcResiUserService extends BaseService<IcResiUserEntity> {
/**
* 居民统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
/**
* 居民统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO);
}

55
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java

@ -0,0 +1,55 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.user.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.user.IcResiUserDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import com.epmet.service.user.IcResiUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Slf4j
@DataSource(DataSourceConstant.EPMET_USER)
@Service
public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResiUserEntity> implements IcResiUserService, ResultDataResolver {
@Override
public List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO) {
return baseDao.userStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.userStatNew(formDTO);
}
}

85
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.32__fact_grid_user_house_daily.sql

@ -0,0 +1,85 @@
/*
Navicat Premium Data Transfer
Source Server : epmet_cloud_dev_statistical
Source Server Type : MySQL
Source Server Version : 50726
Source Host : 192.168.1.140:3306
Source Schema : epmet_data_statistical
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 31/05/2022 13:29:46
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for fact_grid_user_house_daily
-- ----------------------------
DROP TABLE IF EXISTS `fact_grid_user_house_daily`;
CREATE TABLE `fact_grid_user_house_daily` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键,customer_id+grid_id+date_id只有一条记录',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`DATE_ID` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据更新至:yyyyMMdd; ',
`GRID_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格id',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格所属的组织id',
`PIDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格所有上级id',
`NEIGHBOURHOODS_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '小区总数',
`HOUSE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '房屋总数',
`HOUSE_SELF_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '自住房屋总数',
`HOUSE_LEASE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '出租房屋总数',
`HOUSE_IDLE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '闲置房屋总数',
`USER_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '居民总数',
`USER_RESI_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '常住居民总数',
`USER_FLOAT_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '流动居民总数',
`HOUSE_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增房屋数',
`HOUSE_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改房屋数',
`USER_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增居民数',
`USER_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改居民数',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除',
`REVISION` int(11) NOT NULL DEFAULT 0 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 = DYNAMIC;
-- ----------------------------
-- Table structure for fact_agency_user_house_daily
-- ----------------------------
DROP TABLE IF EXISTS `fact_agency_user_house_daily`;
CREATE TABLE `fact_agency_user_house_daily` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键,customer_id+AGENCY_ID+date_id只有一条记录',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`DATE_ID` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据更新至:yyyyMMdd; ',
`AGENCY_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织id',
`LEVEL` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'agency_id所属的机关级别(社区级:community,\r\n乡(镇、街道)级:street,\r\n区县级: district,\r\n市级: city\r\n省级:province)',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织i所属的组织id',
`PIDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织i所有上级id',
`NEIGHBOURHOODS_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '小区总数',
`HOUSE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '房屋总数',
`HOUSE_SELF_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '自住房屋总数',
`HOUSE_LEASE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '出租房屋总数',
`HOUSE_IDLE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '闲置房屋总数',
`USER_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '居民总数',
`USER_RESI_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '常住居民总数',
`USER_FLOAT_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '流动居民总数',
`HOUSE_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增房屋数',
`HOUSE_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改房屋数',
`USER_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增居民数',
`USER_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改居民数',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除',
`REVISION` int(11) NOT NULL DEFAULT 0 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 = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

28
epmet-module/data-statistical/data-statistical-server/src/main/resources/logback-spring.xml

@ -138,11 +138,35 @@
</filter>
</appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test,local">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
@ -166,6 +190,10 @@
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>

124
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml

@ -0,0 +1,124 @@
<?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.org.IcHouseDao">
<select id="houseStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
sum( CASE WHEN t.RENT_FLAG = '0' THEN 1 ELSE 0 END ) AS houseSelfCount,
sum( CASE WHEN t.RENT_FLAG = '1' THEN 1 ELSE 0 END ) AS houseLeaseCount,
sum( CASE WHEN t.RENT_FLAG = '2' THEN 1 ELSE 0 END ) AS houseIdleCount,
sum( CASE WHEN t.id IS NOT NULL THEN 1 ELSE 0 END ) AS houseCount,
sum( CASE WHEN (t.id IS NOT NULL and DATE_FORMAT(t.CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY ),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseIncr,
sum( CASE WHEN (t.id IS NOT NULL and t.CREATED_TIME != t.UPDATED_TIME and DATE_FORMAT(t.UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY ),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseModify
FROM
customer_grid g
LEFT JOIN (
SELECT
h.id,
h.RENT_FLAG,
n.GRID_ID,
h.CREATED_TIME,
h.UPDATED_TIME
FROM
ic_house h
LEFT JOIN ic_neighbor_hood n ON h.NEIGHBOR_HOOD_ID = n.id
WHERE h.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
AND n.DEL_FLAG = '0'
AND h.DEL_FLAG = '0'
) t ON t.GRID_ID = g.ID
WHERE
g.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID,
g.id
</select>
<select id="houseStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
t.NEIGHBOR_HOOD_ID as NEIGHBOURHOODS_ID,
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
sum( CASE WHEN t.RENT_FLAG = '0' THEN 1 ELSE 0 END ) AS houseSelfCount,
sum( CASE WHEN t.RENT_FLAG = '1' THEN 1 ELSE 0 END ) AS houseLeaseCount,
sum( CASE WHEN t.RENT_FLAG = '2' THEN 1 ELSE 0 END ) AS houseIdleCount,
sum( CASE WHEN t.id IS NOT NULL THEN 1 ELSE 0 END ) AS houseCount,
sum( CASE WHEN (t.id IS NOT NULL and DATE_FORMAT(t.CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseIncr,
sum( CASE WHEN (t.id IS NOT NULL and t.CREATED_TIME != t.UPDATED_TIME and DATE_FORMAT(t.UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseModify
FROM (
SELECT
h.id,
h.RENT_FLAG,
n.GRID_ID,
h.CREATED_TIME,
h.UPDATED_TIME,
h.NEIGHBOR_HOOD_ID
FROM
ic_house h
LEFT JOIN ic_neighbor_hood n ON h.NEIGHBOR_HOOD_ID = n.id
WHERE h.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
AND n.DEL_FLAG = '0'
AND h.DEL_FLAG = '0'
) t
left join customer_grid g on g.id = t.GRID_ID and g.DEL_FLAG = '0'
WHERE 1=1
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID,t.NEIGHBOR_HOOD_ID
</select>
<select id="neighborhoodStatStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
count( n.id ) AS neighbourhoodsCount
FROM
customer_grid g
LEFT JOIN ic_neighbor_hood n ON n.GRID_ID = g.id
AND n.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
AND n.DEL_FLAG = '0'
WHERE
g.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID,
g.id;
</select>
<select id="neighborhoodStatStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
n.ID as NEIGHBOURHOODS_ID,
n.NEIGHBOR_HOOD_NAME,
n.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
1 AS neighbourhoodsCount
FROM
ic_neighbor_hood n
LEFT JOIN customer_grid g ON n.GRID_ID = g.id and g.DEL_FLAG = '0'
AND n.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
WHERE n.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND n.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
n.CUSTOMER_ID,n.ID;
</select>
</mapper>

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

@ -4,7 +4,7 @@
<mapper namespace="com.epmet.dao.project.ProjectProcessDao">
<select id="selectProcessList" resultType="com.epmet.entity.project.ProjectProcessEntity">
SELECT
SELECT DISTINCT
pro.project_id AS "projectId",
pro.operation AS "operation",
DATE_FORMAT(pro.created_time, "%Y-%m-%d") AS "createdTime",

138
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactAgencyUserHouseDailyDao.xml

@ -0,0 +1,138 @@
<?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.stats.FactAgencyUserHouseDailyDao">
<resultMap type="com.epmet.entity.stats.FactAgencyUserHouseDailyEntity" id="factAgencyUserHouseDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="level" column="LEVEL"/>
<result property="pid" column="PID"/>
<result property="pids" column="PIDS"/>
<result property="neighbourhoodsCount" column="NEIGHBOURHOODS_COUNT"/>
<result property="houseCount" column="HOUSE_COUNT"/>
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
<result property="userCount" column="USER_COUNT"/>
<result property="userResiCount" column="USER_RESI_COUNT"/>
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
<result property="houseIncr" column="HOUSE_INCR"/>
<result property="houseModify" column="HOUSE_MODIFY"/>
<result property="userIncr" column="USER_INCR"/>
<result property="userModify" column="USER_MODIFY"/>
<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.stats.result.FactUserHouseResultDTO">
SELECT
d.AGENCY_NAME AS AGENCY_NAME,
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
max( HOUSE_COUNT ) AS HOUSE_COUNT,
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
max( USER_COUNT ) AS USER_COUNT,
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
max( HOUSE_INCR ) AS HOUSE_INCR,
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
max( USER_INCR ) AS USER_INCR,
max( USER_MODIFY ) AS USER_MODIFY
FROM
fact_agency_user_house_daily a
LEFT JOIN dim_agency d ON d.id = a.AGENCY_ID
WHERE
d.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND a.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="dateId != null and dateId != ''">
AND a.DATE_ID = #{dateId}
</if>
<if test="level == 'street'">
AND a.LEVEL = 'community'
AND a.PID = #{agencyId}
</if>
<if test="level == 'district'">
AND a.LEVEL = 'street'
AND a.PID = #{agencyId}
</if>
<if test="level == 'city'">
AND a.LEVEL = 'district'
AND a.PID = #{agencyId}
</if>
<if test="level == 'province'">
AND a.LEVEL = 'city'
AND a.PID = #{agencyId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
a.AGENCY_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.AGENCY_NAME AS AGENCY_NAME,
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_agency_user_house_daily a
LEFT JOIN dim_agency d ON d.id = a.AGENCY_ID
WHERE
d.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND a.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND a.AGENCY_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND a.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
a.DATE_ID
ORDER BY
a.DATE_ID ASC
</select>
<delete id="deleteByDateId">
DELETE
FROM
fact_agency_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
</mapper>

237
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGridUserHouseDailyDao.xml

@ -0,0 +1,237 @@
<?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.stats.FactGridUserHouseDailyDao">
<resultMap type="com.epmet.entity.stats.FactGridUserHouseDailyEntity" id="factGridUserHouseDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="pid" column="PID"/>
<result property="pids" column="PIDS"/>
<result property="neighbourhoodsCount" column="NEIGHBOURHOODS_COUNT"/>
<result property="houseCount" column="HOUSE_COUNT"/>
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
<result property="userCount" column="USER_COUNT"/>
<result property="userResiCount" column="USER_RESI_COUNT"/>
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
<result property="houseIncr" column="HOUSE_INCR"/>
<result property="houseModify" column="HOUSE_MODIFY"/>
<result property="userIncr" column="USER_INCR"/>
<result property="userModify" column="USER_MODIFY"/>
<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.stats.result.FactUserHouseResultDTO">
SELECT
g.GRID_NAME AS AGENCY_NAME,
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
max( HOUSE_COUNT ) AS HOUSE_COUNT,
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
max( USER_COUNT ) AS USER_COUNT,
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
max( HOUSE_INCR ) AS HOUSE_INCR,
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
max( USER_INCR ) AS USER_INCR,
max( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
WHERE
g.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="level == 'grid'">
AND d.GRID_ID = #{agencyId}
</if>
<if test="level == 'community'">
AND d.PID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
GRID_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.GRID_NAME AS AGENCY_NAME,
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
LEFT JOIN dim_agency a ON a.id = d.PID
WHERE
g.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND d.GRID_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
d.DATE_ID
ORDER BY
d.DATE_ID ASC
</select>
<select id="statAgency" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
t.*,
ag.id AS AGENCY_ID,
ag.CUSTOMER_ID,
ag.`LEVEL`,
ag.PID,
ag.PIDS
FROM
dim_agency ag
LEFT JOIN (
SELECT
<if test="level == 'community'">
c.id AS AGENCY,
</if>
<if test="level == 'street'">
s.id AS AGENCY,
</if>
<if test="level == 'district'">
di.id AS AGENCY,
</if>
<if test="level == 'city'">
ci.id AS AGENCY,
</if>
<if test="level == 'province'">
p.id AS AGENCY,
</if>
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
INNER JOIN dim_grid g ON g.id = d.GRID_ID
INNER JOIN dim_agency c ON c.id = g.AGENCY_ID
<if test="level == 'community'">
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
c.id
</if>
<if test="level == 'street'">
INNER JOIN dim_agency s ON s.id = c.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
s.id
</if>
<if test="level == 'district'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
di.id
</if>
<if test="level == 'city'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
INNER JOIN dim_agency ci ON ci.id = di.pid
INNER JOIN dim_agency p ON p.id = ci.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
ci.id
</if>
<if test="level == 'province'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
INNER JOIN dim_agency ci ON ci.id = di.pid
INNER JOIN dim_agency p ON p.id = ci.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
p.id
</if>
) t ON t.AGENCY = ag.id
WHERE
ag.CUSTOMER_ID = #{customerId}
AND ag.AGENCY_DIM_TYPE = 'all'
<if test="level == 'community'">
AND ag.`LEVEL` = 'community'
</if>
<if test="level == 'street'">
AND ag.`LEVEL` = 'street'
</if>
<if test="level == 'district'">
AND ag.`LEVEL` = 'district'
</if>
<if test="level == 'city'">
AND ag.`LEVEL` = 'city'
</if>
<if test="level == 'province'">
AND ag.`LEVEL` = 'province'
</if>
</select>
<delete id="deleteByDateId">
DELETE
FROM
fact_grid_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
</mapper>

127
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml

@ -0,0 +1,127 @@
<?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.stats.FactNeighborhoodUserHouseDailyDao">
<resultMap type="com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity" id="factNeighborhoodUserHouseDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="pid" column="PID"/>
<result property="pids" column="PIDS"/>
<result property="neighbourhoodsId" column="NEIGHBOURHOODS_ID"/>
<result property="neighborHoodName" column="NEIGHBOR_HOOD_NAME"/>
<result property="houseCount" column="HOUSE_COUNT"/>
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
<result property="userCount" column="USER_COUNT"/>
<result property="userResiCount" column="USER_RESI_COUNT"/>
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
<result property="houseIncr" column="HOUSE_INCR"/>
<result property="houseModify" column="HOUSE_MODIFY"/>
<result property="userIncr" column="USER_INCR"/>
<result property="userModify" column="USER_MODIFY"/>
<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="deleteByDateId">
DELETE
FROM
fact_neighborhood_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
<select id="listPage" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.NEIGHBOR_HOOD_NAME AS AGENCY_NAME,
d.NEIGHBOURHOODS_ID,
d.NEIGHBOR_HOOD_NAME,
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
max( HOUSE_COUNT ) AS HOUSE_COUNT,
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
max( USER_COUNT ) AS USER_COUNT,
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
max( HOUSE_INCR ) AS HOUSE_INCR,
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
max( USER_INCR ) AS USER_INCR,
max( USER_MODIFY ) AS USER_MODIFY
FROM
fact_neighborhood_user_house_daily d
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
WHERE
g.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="level == 'neighborhood'">
AND d.NEIGHBOURHOODS_ID = #{agencyId}
</if>
<if test="level == 'grid'">
AND d.GRID_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY d.NEIGHBOURHOODS_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.NEIGHBOR_HOOD_NAME AS AGENCY_NAME,
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_neighborhood_user_house_daily d
WHERE d.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND d.NEIGHBOURHOODS_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
d.DATE_ID
ORDER BY
d.DATE_ID ASC
</select>
</mapper>

47
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml

@ -0,0 +1,47 @@
<?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.user.IcResiUserDao">
<select id="userStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
CUSTOMER_ID,
GRID_ID,
sum( CASE WHEN IS_FLOATING = '0' THEN 1 ELSE 0 END ) AS userResiCount,
sum( CASE WHEN IS_FLOATING = '1' THEN 1 ELSE 0 END ) AS userFloatCount,
sum( CASE WHEN id IS NOT NULL THEN 1 ELSE 0 END ) AS userCount,
sum( CASE WHEN (id IS NOT NULL and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY ),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userIncr,
sum( CASE WHEN (id IS NOT NULL and CREATED_TIME != UPDATED_TIME and DATE_FORMAT(UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY ),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userModify
FROM
ic_resi_user
WHERE
del_flag = '0'
AND STATUS = '0'
AND CREATED_TIME &lt;= DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
GROUP BY
CUSTOMER_ID,
GRID_ID
</select>
<select id="userStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
CUSTOMER_ID,
GRID_ID,
VILLAGE_ID as NEIGHBOURHOODS_ID,
sum( CASE WHEN IS_FLOATING = '0' THEN 1 ELSE 0 END ) AS userResiCount,
sum( CASE WHEN IS_FLOATING = '1' THEN 1 ELSE 0 END ) AS userFloatCount,
sum( CASE WHEN id IS NOT NULL THEN 1 ELSE 0 END ) AS userCount,
sum( CASE WHEN (id IS NOT NULL and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userIncr,
sum( CASE WHEN (id IS NOT NULL and CREATED_TIME != UPDATED_TIME and DATE_FORMAT(UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userModify
FROM
ic_resi_user
WHERE
del_flag = '0'
AND STATUS = '0'
AND CREATED_TIME &lt;= DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
GROUP BY
CUSTOMER_ID,
VILLAGE_ID
</select>
</mapper>

115
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceOrgDTO.java

@ -0,0 +1,115 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 服务组织表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class IcServiceOrgDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 服务类别字典表 ic_service_type多个值逗号分隔
*/
private String serviceType;
/**
* 服务组织名称
*/
private String orgName;
/**
* 组织描述
*/
private String orgDescribe;
/**
* 负责人姓名
*/
private String principalName;
/**
* 负责人电话
*/
private String principalMobile;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 地址
*/
private String address;
/**
* 备注
*/
private String remark;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

116
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceProjectAttachmentDTO.java

@ -0,0 +1,116 @@
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-05-27
*/
@Data
public class IcServiceProjectAttachmentDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 事件Id
*/
private String icServiceId;
private String attachTo;
/**
* 附件名
*/
private String attachmentName;
private String name;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
private String format;
/**
* 附件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
private String type;
/**
* 附件地址
*/
private String attachmentUrl;
private String url;
/**
* 排序字段
*/
private Integer sort;
/**
* 附件状态审核中auditing
auto_passed: 自动通过
review结果不确定需要人工审核
block: 结果违规
rejected人工审核驳回;
approved人工审核通过
现在图片是同步审核的所以图片只有auto_passed一种状态
*/
private String status;
/**
* 失败原因
*/
private String reason;
/**
* 语音或视频时长,
*/
private Integer duration;
/**
* 删除标记 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

104
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcServiceProjectDTO.java

@ -0,0 +1,104 @@
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-05-27
*/
@Data
public class IcServiceProjectDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 组织ID
*/
private String agencyId;
/**
* 组织ID的上级
*/
private String pid;
/**
* 组织ID的所有上级[包括自己]
*/
private String agencyIdPath;
/**
* 服务类别值
*/
private String serviceCategoryKey;
/**
* 服务名称
*/
private String serviceName;
/**
* 服务内容
*/
private String serviceContent;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevel;
/**
* 政策依据
*/
private String policyGround;
/**
* 启用状态,0启用1禁用
*/
private Integer enabled;
/**
*
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

49
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceEditFormDTO.java

@ -0,0 +1,49 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* 服务项目记录修改
*/
@Data
public class IcServiceEditFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "", groups = AddUserInternalGroup.class)
private String serviceRecordId;
private String principalName;
private String principalContact;
/**
* 服务时间
*/
@NotNull(message = "起始服务时间不能为空", groups = AddUserShowGroup.class)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeStart;
/**
* 服务截止时间
*/
@NotNull(message = "截止服务时间不能为空", groups = AddUserShowGroup.class)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeEnd;
/**
* 备注
*/
private String remark;
}

71
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceOrgAddEditFormDTO.java

@ -0,0 +1,71 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 服务组织新增/修改
* @Author sun
*/
@Data
public class IcServiceOrgAddEditFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
public interface Del extends CustomerClientShowGroup {
}
/**
* 服务组织Id
*/
@NotBlank(message = "服务组织Id不能为空", groups = {UpdateGroup.class, Del.class})
private String icServiceOrgId;
/**
* 服务类型多个值逗号分隔字典值,字典keyic_service_type
*/
@NotBlank(message = "服务类型不能为空", groups = {AddGroup.class})
private String serviceType;
/**
* 服务组织名称
*/
@NotBlank(message = "服务组织名称不能为空", groups = {AddGroup.class})
private String orgName;
/**
* 组织描述
*/
private String orgDescribe;
/**
* 负责人姓名
*/
@NotBlank(message = "负责人姓名不能为空", groups = {AddGroup.class})
private String principalName;
/**
* 联系方式
*/
@NotBlank(message = "联系方式不能为空", groups = {AddGroup.class})
private String principalMobile;
/**
* 经度
*/
private String longitude;
/**
* 维度
*/
private String latitude;
/**
* 服务地址
*/
private String address;
/**
* 备注信息
*/
private String remark;
private String customerId;
private String userId;
}

46
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/IcServiceOrgListFormDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 组织服务组织列表--接口入参
* @Author sun
*/
@Data
public class IcServiceOrgListFormDTO implements Serializable {
private static final long serialVersionUID = 9156247659994638103L;
/**
* 服务类型字典值
*/
private String serviceType;
/**
* 服务组织名称
*/
private String orgName;
/**
* 服务地址
*/
private String address;
/**
* 备注信息
*/
private String remark;
/**
* 页码
*/
private Integer pageNo = 1;
/**
* 每页显示数量
*/
private Integer pageSize = 20;
private Boolean isPage = true;
private String icServiceOrgId;
private String customerId;
private String staffId;
private String agencyId;
}

57
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectFeedbackFormDTO.java

@ -0,0 +1,57 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class ServiceProjectFeedbackFormDTO {
/**
* 反馈接口分组
*/
public interface FeedbackGroup {}
/**
* 发起服务接口分组
*/
public interface InitiateGroup {}
@NotBlank(message = "服务记录id不能为空", groups = { FeedbackGroup.class })
private String serviceRecordId;
private String serviceProjectId;
private String serviceGoal;
private String serviceEffect;
private Integer servicePeopleNumber;
/**
* 服务状态in_service服务中completed:已完成
*/
@NotBlank(message = "服务状态不能为空", groups = { FeedbackGroup.class, InitiateGroup.class })
private String serviceStatus;
/**
* 满意度不满意:bad基本满意:good非常满意:perfect
* 按理说服务完成的时候才可以选不完成应该不能选可是谁知道呢原型也没写
*/
private String satisfaction;
private String longitude;
private String latitude;
private String address;
@Valid
private List<Attachment> attachmentList;
@Data
public static class Attachment {
@NotBlank(message = "附件名称不能为空", groups = { FeedbackGroup.class, InitiateGroup.class })
private String attachmentName;
@NotBlank(message = "附件格式不能为空", groups = { FeedbackGroup.class, InitiateGroup.class })
private String attachmentFormat;
@NotBlank(message = "附件类型不能为空", groups = { FeedbackGroup.class, InitiateGroup.class })
private String attachmentType;
@NotBlank(message = "附件url不能为空", groups = { FeedbackGroup.class, InitiateGroup.class })
private String attachmentUrl;
}
}

53
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectFormDTO.java

@ -0,0 +1,53 @@
package com.epmet.dto.form;
import com.epmet.dto.IcServiceProjectAttachmentDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/5/27 15:53
* @DESC
*/
@Data
public class ServiceProjectFormDTO implements Serializable {
private static final long serialVersionUID = -4573264697450644498L;
public interface ServiceProjectAddForm{}
public interface ServiceProjectUpdateForm{}
@NotBlank(message = "服务类别不能为空",groups = {ServiceProjectAddForm.class})
private String serviceCategoryKey;
@NotBlank(message = "服务名称不能为空",groups = {ServiceProjectAddForm.class,ServiceProjectUpdateForm.class})
private String serviceName;
@NotBlank(message = "服务内容不能为空",groups = {ServiceProjectAddForm.class,ServiceProjectUpdateForm.class})
private String serviceContent;
/**
* 政策依据
*/
private String policyGround;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevel;
private String customerId;
private String userId;
@NotBlank(message = "serviceProjectId不能为空",groups = {ServiceProjectUpdateForm.class})
private String serviceProjectId;
/**
* 附件集合
*/
private List<IcServiceProjectAttachmentDTO> attachmentList;
}

32
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectListFormDTO.java

@ -0,0 +1,32 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/5/27 16:42
* @DESC
*/
@Data
public class ServiceProjectListFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = -6508966695564469253L;
public interface ServiceProjectDetail{}
private String serviceCategoryKey;
private String serviceName;
private String serviceContent;
private String policyGround;
private String customerId;
private String userId;
private String agencyId;
@NotBlank(message = "serviceProjectId不能为空",groups = ServiceProjectDetail.class)
private String serviceProjectId;
}

66
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/ServiceProjectRecordFormDTO.java

@ -0,0 +1,66 @@
package com.epmet.dto.form;
import com.epmet.dto.result.IcServiceScopeDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
public class ServiceProjectRecordFormDTO {
/**
* 发起服务
*/
public interface Initiate {}
@NotBlank(message = "服务类别key不能为空", groups = { Initiate.class })
private String serviceCategoryKey;
@NotBlank(message = "服务项目Id不能为空", groups = { Initiate.class })
private String serviceProjectId;
private String serviceProjectName;
@NotBlank(message = "服务组织Id不能为空", groups = { Initiate.class })
private String serviceOrgId;
private String serviceOrgName;
@NotEmpty(message = "发布范围不能为空", groups = { Initiate.class })
private List<IcServiceScopeDTO> serviceScope;
@NotNull(message = "服务起始时间不能为空", groups = { Initiate.class })
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date serviceTimeStart;
@NotNull(message = "服务结束时间不能为空", groups = { Initiate.class })
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date serviceTimeEnd;
private String serviceStatus;
private String satisfaction;
private String principalName;
private String principalContact;
/**
* 备注
*/
private String remark;
@Valid
private ServiceProjectFeedbackFormDTO feedback;
private Integer pageNo = 1;
private Integer pageSize = 20;
}

64
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceFeedbackResDTO.java

@ -0,0 +1,64 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 服务记录反馈
*/
@Data
public class IcServiceFeedbackResDTO implements Serializable {
/**
* 反馈记录id
*/
private String feedBackId;
/**
* 服务目标
*/
private String serviceGoal;
/**
* 服务效果
*/
private String serviceEffect;
/**
* 服务人数
*/
// private Integer servicePeopleNumber;
/**
* 满意度满意度 - 不满意:bad基本满意:good非常满意:perfect
*/
private String satisfaction;
/**
* 地址经度
*/
private String longitude;
/**
* 地址纬度
*/
private String latitude;
/**
* 地址
*/
private String address;
private List<IcServiceFeedbackResDTO.Attachment> attachmentList;
@Data
public static class Attachment {
private String attachmentName;
private String attachmentFormat;
private String attachmentType;
private String attachmentUrl;
}
}

81
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceOrgListResultDTO.java

@ -0,0 +1,81 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 组织服务组织列表--接口返参
* @Author sun
*/
@Data
public class IcServiceOrgListResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 服务组织Id
*/
private String icServiceOrgId;
/**
* 组织Id
*/
private String agencyId;
/**
* 服务类别
*/
private List<ServiceType> serviceTypeList;
/**
* 服务类别,多个值逗号分隔
*/
private String serviceType;
/**
* 服务类别,多个值顿号分隔
*/
private String serviceTypeName;
/**
* 服务组织名称
*/
private String orgName;
/**
* 组织描述
*/
private String orgDescribe;
/**
* 负责人名称
*/
private String principalName;
/**
* 负责人电话
*/
private String principalMobile;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 地址
*/
private String address;
/**
* 备注
*/
private String remark;
@Data
public static class ServiceType {
/**
* 服务类别值
*/
private String value;
/**
* 服务类别名
*/
private String name;
}
}

24
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceOrgSelectListResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 组织服务组织列表_下拉框使用--接口返参
* @Author sun
*/
@Data
public class IcServiceOrgSelectListResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 服务组织Id
*/
private String icServiceOrgId;
/**
* 服务组织名称
*/
private String orgName;
}

90
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceRecDetailRes.java

@ -0,0 +1,90 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class IcServiceRecDetailRes implements Serializable {
/**
* 联系方式
*/
private String principalContact;
/**
* 经办人姓名
*/
private String principalName;
/**
* 备注
*/
private String remark;
/**
* 服务类别ID
*/
private String serviceCategoryKey;
/**
* 服务类别ID
*/
private String serviceCategoryName;
/**
* 服务组织ID
*/
private String serviceOrgId;
/**
* 服务组织名称
*/
private String serviceOrgName;
/**
* 服务项目ID
*/
private String serviceProjectId;
/**
* 服务项目名称
*/
private String serviceProjectName;
/**
* 服务时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeStart;
/**
* 服务截止时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeEnd;
/**
* in_service服务中completed:已完成
*/
private String serviceStatus;
/**
* 发布范围
*/
private List<IcServiceScopeDTO> serviceScope;
/**
* 服务人数
*/
private Integer servicePeopleNumber;
/**
* 反馈详情
*/
private IcServiceFeedbackResDTO feedBack;
}

15
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/IcServiceScopeDTO.java

@ -0,0 +1,15 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class IcServiceScopeDTO {
private String objectId;
private String objectName;
private String objectType;
/**
* 发布范围的组织ID PATH
*/
private String objectIdPath;
}

63
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceProjectListResultDTO.java

@ -0,0 +1,63 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.dto.IcServiceProjectAttachmentDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/5/27 16:42
* @DESC
*/
@Data
public class ServiceProjectListResultDTO implements Serializable {
private static final long serialVersionUID = -6508966695564469113L;
/**
* 服务类别
*/
private String serviceCategory;
private String serviceCategoryKey;
/**
* 服务项目ID
*/
private String serviceProjectId;
/**
* 服务名称
*/
private String serviceName;
/**
* 服务内容
*/
private String serviceContent;
/**
* 政策依据
*/
private String policyGround;
/**
* 政策级别
*/
private String policyLevel;
private String policyLevelName;
private List<IcServiceProjectAttachmentDTO> attachmentList;
public ServiceProjectListResultDTO() {
this.serviceCategory = "";
this.serviceProjectId = "";
this.serviceName = "";
this.serviceContent = "";
this.policyGround = "";
this.policyLevel = "";
this.policyLevelName = "";
}
}

18
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ServiceProjectRecordResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class ServiceProjectRecordResultDTO {
private String serviceRecordId;
private String serviceCategoryKey;
private String serviceCategoryName;
private String serviceProjectId;
private String serviceProjectName;
private String serviceOrgId;
private String serviceOrgName;
private String serviceTimeStart;
private String serviceTimeEnd;
private String serviceStatus;
private String servicePeopleNumber;
}

8
epmet-module/epmet-heart/epmet-heart-server/pom.xml

@ -132,6 +132,14 @@
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources>

91
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceOrgController.java

@ -0,0 +1,91 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcServiceOrgDTO;
import com.epmet.dto.form.IcServiceOrgAddEditFormDTO;
import com.epmet.dto.form.IcServiceOrgListFormDTO;
import com.epmet.dto.result.IcServiceOrgListResultDTO;
import com.epmet.dto.result.IcServiceOrgSelectListResultDTO;
import com.epmet.service.IcServiceOrgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 服务组织表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@RestController
@RequestMapping("icServiceOrg")
public class IcServiceOrgController {
@Autowired
private IcServiceOrgService icServiceOrgService;
@RequestMapping("list")
public Result<PageData<IcServiceOrgListResultDTO>> list(@LoginUser TokenDto tokenDto, @RequestBody IcServiceOrgListFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
return new Result<PageData<IcServiceOrgListResultDTO>>().ok(icServiceOrgService.list(formDTO));
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<IcServiceOrgDTO> get(@PathVariable("id") String id){
IcServiceOrgDTO data = icServiceOrgService.get(id);
return new Result<IcServiceOrgDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("add")
public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcServiceOrgAddEditFormDTO dto) {
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
dto.setUserId(tokenDto.getUserId());
icServiceOrgService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PostMapping("edit")
public Result edit(@LoginUser TokenDto tokenDto, @RequestBody IcServiceOrgAddEditFormDTO dto){
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
dto.setUserId(tokenDto.getUserId());
icServiceOrgService.update(dto);
return new Result();
}
@PostMapping("del")
public Result delete(@LoginUser TokenDto tokenDto, @RequestBody IcServiceOrgAddEditFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, IcServiceOrgAddEditFormDTO.Del.class);
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
icServiceOrgService.delete(formDTO);
return new Result();
}
@RequestMapping("detail")
public Result<IcServiceOrgListResultDTO> detail(@RequestBody IcServiceOrgListFormDTO formDTO) {
return new Result<IcServiceOrgListResultDTO>().ok(icServiceOrgService.detail(formDTO));
}
@RequestMapping("selectlist")
public Result<List<IcServiceOrgSelectListResultDTO>> selectList(@LoginUser TokenDto tokenDto, @RequestBody IcServiceOrgListFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
return new Result<List<IcServiceOrgSelectListResultDTO>>().ok(icServiceOrgService.selectList(formDTO));
}
}

72
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceProjectAttachmentController.java

@ -0,0 +1,72 @@
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.IcServiceProjectAttachmentDTO;
import com.epmet.service.IcServiceProjectAttachmentService;
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-05-27
*/
@RestController
@RequestMapping("icServiceProjectAttachment")
public class IcServiceProjectAttachmentController {
@Autowired
private IcServiceProjectAttachmentService icServiceProjectAttachmentService;
@RequestMapping("page")
public Result<PageData<IcServiceProjectAttachmentDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcServiceProjectAttachmentDTO> page = icServiceProjectAttachmentService.page(params);
return new Result<PageData<IcServiceProjectAttachmentDTO>>().ok(page);
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<IcServiceProjectAttachmentDTO> get(@PathVariable("id") String id){
IcServiceProjectAttachmentDTO data = icServiceProjectAttachmentService.get(id);
return new Result<IcServiceProjectAttachmentDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcServiceProjectAttachmentDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icServiceProjectAttachmentService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcServiceProjectAttachmentDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icServiceProjectAttachmentService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icServiceProjectAttachmentService.delete(ids);
return new Result();
}
}

244
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceProjectController.java

@ -0,0 +1,244 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
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.security.dto.TokenDto;
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.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcServiceProjectDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.IcServiceRecDetailRes;
import com.epmet.dto.result.ServiceProjectListResultDTO;
import com.epmet.dto.result.ServiceProjectRecordResultDTO;
import com.epmet.entity.IcServiceRecordEntity;
import com.epmet.service.IcServiceProjectService;
import com.epmet.service.IcServiceRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 服务项目管理表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@RestController
@RequestMapping("icServiceProject")
public class IcServiceProjectController {
@Autowired
private IcServiceProjectService icServiceProjectService;
@Autowired
private IcServiceRecordService icServiceRecordService;
@RequestMapping("page")
public Result<PageData<IcServiceProjectDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcServiceProjectDTO> page = icServiceProjectService.page(params);
return new Result<PageData<IcServiceProjectDTO>>().ok(page);
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<IcServiceProjectDTO> get(@PathVariable("id") String id){
IcServiceProjectDTO data = icServiceProjectService.get(id);
return new Result<IcServiceProjectDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcServiceProjectDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icServiceProjectService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcServiceProjectDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icServiceProjectService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icServiceProjectService.delete(ids);
return new Result();
}
/**
* Desc: 服务项目新增
* @param tokenDto
* @param formDTO
* @author zxc
* @date 2022/5/27 16:04
*/
@PostMapping("serviceProjectAdd")
public Result serviceProjectAdd(@LoginUser TokenDto tokenDto,@RequestBody ServiceProjectFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ServiceProjectFormDTO.ServiceProjectAddForm.class);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
icServiceProjectService.serviceProjectAdd(formDTO);
return new Result();
}
/**
* Desc: 服务项目列表
* @param formDTO
* @author zxc
* @date 2022/5/27 16:46
*/
@PostMapping("serviceProjectList")
public Result<PageData> serviceProjectList(@LoginUser TokenDto tokenDto,@RequestBody ServiceProjectListFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<PageData>().ok(icServiceProjectService.serviceProjectList(formDTO));
}
/**
* Desc: 服务项目详情
* @param formDTO
* @author zxc
* @date 2022/5/30 15:46
*/
@PostMapping("serviceProjectDetail")
public Result<ServiceProjectListResultDTO> serviceProjectDetail(@RequestBody ServiceProjectListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ServiceProjectListFormDTO.ServiceProjectDetail.class);
return new Result<ServiceProjectListResultDTO>().ok(icServiceProjectService.serviceProjectDetail(formDTO));
}
/**
* Desc: 修改服务项目
* @param formDTO
* @author zxc
* @date 2022/5/30 09:36
*/
@PostMapping("serviceProjectEdit")
public Result serviceProjectEdit(@RequestBody ServiceProjectFormDTO formDTO,@LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO, ServiceProjectFormDTO.ServiceProjectUpdateForm.class);
formDTO.setCustomerId(tokenDto.getCustomerId());
icServiceProjectService.serviceProjectEdit(formDTO);
return new Result();
}
/**
* Desc: 上下架服务项目
* @param ids
* @author zxc
* @date 2022/5/30 10:17
*/
@PostMapping("serviceProjectEnabled")
public Result serviceProjectEnabled(@RequestBody List<String> ids){
icServiceProjectService.serviceProjectEnabled(ids);
return new Result();
}
/**
* http://yapi.elinkservice.cn/project/245/interface/api/7820
*
* @param serviceId
* @return 服务项目记录取消进行中的项目可以取消删除该记录
*/
@PostMapping("service/cancel/{service-id}")
public Result cancelService(@PathVariable("service-id") String serviceId) {
icServiceRecordService.cancelService(serviceId, "yzm");
return new Result();
}
/**
* http://yapi.elinkservice.cn/project/245/interface/api/7821
* @param serviceId
* @return 服务项目记录详情
*/
@PostMapping("service/detail/{service-id}")
public Result<IcServiceRecDetailRes> queryServiceDetail(@PathVariable("service-id") String serviceId) {
return new Result<IcServiceRecDetailRes>().ok(icServiceRecordService.queryServiceDetail(serviceId));
}
/**
* 服务项目记录修改
*
* @param formDTO
* @return
*/
@PostMapping("service/update")
public Result updateServiceRecord(@RequestBody IcServiceEditFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, IcServiceEditFormDTO.AddUserShowGroup.class, IcServiceEditFormDTO.AddUserInternalGroup.class);
icServiceRecordService.updateServiceRecord(formDTO);
return new Result();
}
/**
* 服务列表
* @param input
* @return
*/
@PostMapping("/service/recordList")
public Result listServiceRecords(@RequestBody ServiceProjectRecordFormDTO input) {
PageData<ServiceProjectRecordResultDTO> page = icServiceRecordService.listServiceRecords(
input.getServiceCategoryKey(), input.getServiceProjectName(), input.getServiceOrgName(), input.getServiceTimeStart(),
input.getServiceTimeEnd(), input.getServiceStatus(), input.getSatisfaction(), input.getPageNo(), input.getPageSize());
return new Result().ok(page);
}
/**
* 发起服务
* @param input
* @return
*/
@PostMapping("/service/initiate")
public Result initiateService(@RequestBody ServiceProjectRecordFormDTO input) {
ValidatorUtils.validateEntity(input, ServiceProjectRecordFormDTO.Initiate.class, ServiceProjectFeedbackFormDTO.InitiateGroup.class);
icServiceRecordService.initiateService(input);
return new Result();
}
/**
* 反馈
* @param input
* @return
*/
@PostMapping("/service/feedback")
public Result serviceFeedback(@RequestBody ServiceProjectFeedbackFormDTO input) {
ValidatorUtils.validateEntity(input, ServiceProjectFeedbackFormDTO.FeedbackGroup.class);
String serviceRecordId = input.getServiceRecordId();
// 做状态检查,未反馈的,服务状态为服务中的才可以反馈
IcServiceRecordEntity serviceRecord = icServiceRecordService.selectById(serviceRecordId);
if (serviceRecord == null) {
String msg = "未找到服务记录";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg);
}
if ("completed".equals(serviceRecord.getServiceStatus())) {
String msg = "服务已完成,不能再次反馈";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg, msg);
}
icServiceRecordService.serviceFeedback(serviceRecord.getServiceCategoryKey(),
serviceRecord.getServiceOrgId(),
serviceRecord.getServiceProjectId(),
serviceRecord.getId(),
input);
return new Result();
}
}

52
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java

@ -44,9 +44,9 @@ import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -83,6 +83,7 @@ public class IcUserDemandRecController implements ResultDataResolver {
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
/**
* 根据服务方类型查询 下拉框
* 服务方类型志愿者volunteer社会组织social_org社区自组织community_org区域党建单位party_unit
@ -219,28 +220,33 @@ public class IcUserDemandRecController implements ResultDataResolver {
&& null != finishResultDTO.getAwardPoint()
&& finishResultDTO.getAwardPoint() > NumConstant.ZERO
&& UserDemandConstant.RESOLVED.equals(finishResultDTO.getFinishResult())) {
// 志愿者发放积分
List<BasePointEventMsg> actPointEventMsgList = new ArrayList<>();
BasePointEventMsg actPointEventMsg = new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND);
actPointEventMsg.setSourceId(formDTO.getDemandRecId());
actPointEventMsg.setUserId(finishResultDTO.getServerId());
actPointEventMsg.setActionFlag(MqConstant.PLUS);
actPointEventMsg.setIsCommon(false);
actPointEventMsg.setRemark(finishResultDTO.getRemark());
actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag());
actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass());
actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName());
actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode());
actPointEventMsg.setPoint(finishResultDTO.getAwardPoint());
actPointEventMsgList.add(actPointEventMsg);
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setContent(actPointEventMsgList);
sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND);
Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
if (!mqResult.success()) {
log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId()));
Result<List<String>> userIdRes = userOpenFeignClient.getUserId(finishResultDTO.getServerId());
if (userIdRes.success() && CollectionUtils.isNotEmpty(userIdRes.getData())) {
userIdRes.getData().forEach(userId -> {
// 志愿者发放积分
List<BasePointEventMsg> actPointEventMsgList = new ArrayList<>();
BasePointEventMsg actPointEventMsg = new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND);
actPointEventMsg.setSourceId(formDTO.getDemandRecId());
actPointEventMsg.setUserId(userId);
actPointEventMsg.setActionFlag(MqConstant.PLUS);
actPointEventMsg.setIsCommon(false);
actPointEventMsg.setRemark(finishResultDTO.getRemark());
actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag());
actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass());
actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName());
actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode());
actPointEventMsg.setPoint(finishResultDTO.getAwardPoint());
actPointEventMsgList.add(actPointEventMsg);
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setContent(actPointEventMsgList);
sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND);
Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
if (!mqResult.success()) {
log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId()));
}
});
}
}
}

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java

@ -73,4 +73,6 @@ public interface IcCommunitySelfOrganizationDao extends BaseDao<IcCommunitySelfO
List<CommunitySelfOrganizationListDTO> queryCategoryList(CategorySelfOrgFormDTO formDTO);
List<CommunitySelfOrganizationListDTO> queryCoordinateList(CategorySelfOrgFormDTO formDTO);
List<IcCommunitySelfOrganizationEntity> selectByIds(@Param("communityOrgIds") List<String> communityOrgIds);
}

6
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java

@ -19,7 +19,6 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.dto.result.OptionDataResultDTO;
import com.epmet.dto.form.PartyTypepercentFormDTO;
import com.epmet.dto.form.PartyUnitListbriefFormDTO;
import com.epmet.dto.result.PartyTypepercentResultDTO;
import com.epmet.dto.result.PartyUnitDistributionResultDTO;
@ -32,7 +31,6 @@ import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* 联建单位
@ -97,7 +95,7 @@ public interface IcPartyUnitDao extends BaseDao<IcPartyUnitEntity> {
* @author zxc
* @date 2022/5/18 13:48
*/
List<PartyUnitListResultDTO> getAssistanceUnitList(@Param("agencyId")String agencyId);
List<PartyUnitListResultDTO> getAssistanceUnitList(@Param("agencyId")String agencyId,@Param("pid")String pid);
/**
* 联建单位-简要信息列表
@ -116,4 +114,6 @@ public interface IcPartyUnitDao extends BaseDao<IcPartyUnitEntity> {
*/
List<PartyTypepercentResultDTO> getTypepercent(@Param("agencyId") String agencyId,
@Param("customerId") String customerId);
List<IcPartyUnitEntity> selectByIds(@Param("partyUnitIds") List<String> partyUnitIds);
}

33
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceFeedbackDao.java

@ -0,0 +1,33 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.IcServiceFeedbackResDTO;
import com.epmet.entity.IcServiceFeedbackEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-30
*/
@Mapper
public interface IcServiceFeedbackDao extends BaseDao<IcServiceFeedbackEntity> {
/**
* 根据服务记录id,查询反馈记录
* @param serviceRecordId
* @return
*/
IcServiceFeedbackResDTO selectByRecId(@Param("serviceRecordId") String serviceRecordId);
/**
* 根据服务反馈id,查询附件列表
* @param feedBackId
* @return
*/
List<IcServiceFeedbackResDTO.Attachment> getAttachmentList(String feedBackId);
}

34
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceOrgDao.java

@ -0,0 +1,34 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.IcServiceOrgListFormDTO;
import com.epmet.dto.result.IcServiceOrgListResultDTO;
import com.epmet.dto.result.IcServiceOrgSelectListResultDTO;
import com.epmet.entity.IcServiceOrgEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 服务组织表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Mapper
public interface IcServiceOrgDao extends BaseDao<IcServiceOrgEntity> {
/**
* @Author sun
* @Description 服务组织-列表查询
**/
List<IcServiceOrgListResultDTO> selectServiceOrgList(IcServiceOrgListFormDTO formDTO);
/**
* @Author sun
* @Description 服务组织列表_下拉框
**/
List<IcServiceOrgSelectListResultDTO> selectServiceOrgSelectList(IcServiceOrgListFormDTO formDTO);
void del(IcServiceOrgEntity entity);
}

27
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceProjectAttachmentDao.java

@ -0,0 +1,27 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcServiceProjectAttachmentEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 事件附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Mapper
public interface IcServiceProjectAttachmentDao extends BaseDao<IcServiceProjectAttachmentEntity> {
/**
* Desc: 根据服务项目ID删除附件
* @param id
* @author zxc
* @date 2022/5/30 09:50
*/
void delAttachmentByServiceProjectId(@Param("id")String id);
}

37
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceProjectDao.java

@ -0,0 +1,37 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.ServiceProjectListFormDTO;
import com.epmet.dto.result.ServiceProjectListResultDTO;
import com.epmet.entity.IcServiceProjectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 服务项目管理表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Mapper
public interface IcServiceProjectDao extends BaseDao<IcServiceProjectEntity> {
/**
* Desc: 查询服务项目列表
* @param formDTO
* @author zxc
* @date 2022/5/27 17:13
*/
List<ServiceProjectListResultDTO> getServiceProjectList(ServiceProjectListFormDTO formDTO);
/**
* Desc: 上下架服务项目
* @param ids
* @author zxc
* @date 2022/5/30 10:17
*/
void serviceProjectEnabled(@Param("ids") List<String> ids);
}

29
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceRecordDao.java

@ -0,0 +1,29 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ServiceProjectRecordResultDTO;
import com.epmet.entity.IcServiceRecordEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-30
*/
@Mapper
public interface IcServiceRecordDao extends BaseDao<IcServiceRecordEntity> {
List<ServiceProjectRecordResultDTO> listServiceRecords(
@Param("serviceCategoryKey") String serviceCategoryKey,
@Param("serviceProjectName") String serviceProjectName,
@Param("serviceOrgName") String serviceOrgName,
@Param("serviceTimeStart") Date serviceTimeStart,
@Param("serviceTimeEnd") Date serviceTimeEnd,
@Param("serviceStatus") String serviceStatus,
@Param("satisfaction") String satisfaction);
}

23
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceScopeDao.java

@ -0,0 +1,23 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.IcServiceScopeDTO;
import com.epmet.entity.IcServiceScopeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-30
*/
@Mapper
public interface IcServiceScopeDao extends BaseDao<IcServiceScopeEntity> {
int update(@Param("serviceId") String serviceId, @Param("userId") String userId);
List<IcServiceScopeDTO> selectList(String serviceRecordId);
}

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java

@ -140,4 +140,11 @@ public interface IcUserDemandRecDao extends BaseDao<IcUserDemandRecEntity> {
List<ServicePointDTO> getServicePoint(@Param("customerId")String customerId, @Param("serviceType")String serviceType);
List<DemandRecResultDTO> queryServiceList(ServiceListFormDTO formDTO);
/**
* 根据服务方id查询已派单的服务记录数
* @param serverId
* @return
*/
Integer selectCountByServerId(String serverId);
}

83
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceFeedbackEntity.java

@ -0,0 +1,83 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
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-05-30
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_feedback")
public class IcServiceFeedbackEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
@TableField(fill = FieldFill.INSERT)
private String customerId;
/**
* 服务类别ID
*/
private String serviceCategoryKey;
/**
* 服务项目ID
*/
private String serviceProjectId;
/**
* 服务组织ID
*/
private String serviceOrgId;
/**
* 服务目标
*/
private String serviceGoal;
/**
* 服务效果
*/
private String serviceEffect;
/**
* 服务人数
*/
//private Integer servicePeopleNumber;
/**
* 满意度满意度 - 不满意:bad基本满意:good非常满意:perfect
*/
private String satisfaction;
/**
* 地址经度
*/
private String longitude;
/**
* 地址纬度
*/
private String latitude;
/**
* 地址
*/
private String address;
/**
*
*/
private String serviceRecordId;
}

81
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceOrgEntity.java

@ -0,0 +1,81 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 服务组织表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_org")
public class IcServiceOrgEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 服务类别字典表 ic_service_type多个值逗号分隔
*/
private String serviceType;
/**
* 服务组织名称
*/
private String orgName;
/**
* 组织描述
*/
private String orgDescribe;
/**
* 负责人姓名
*/
private String principalName;
/**
* 负责人电话
*/
private String principalMobile;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 地址
*/
private String address;
/**
* 备注
*/
private String remark;
}

88
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceProjectAttachmentEntity.java

@ -0,0 +1,88 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
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-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_project_attachment")
public class IcServiceProjectAttachmentEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
@TableField(fill = FieldFill.INSERT)
private String customerId;
/**
* 事件Id
*/
private String icServiceId;
/**
* 隶属于feedback:反馈service服务本身
*/
private String attachTo;
/**
* 附件名
*/
private String attachmentName;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
/**
* 附件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 排序字段
*/
private Integer sort;
/**
* 附件状态审核中auditing
auto_passed: 自动通过
review结果不确定需要人工审核
block: 结果违规
rejected人工审核驳回;
approved人工审核通过
现在图片是同步审核的所以图片只有auto_passed一种状态
*/
private String status;
/**
* 失败原因
*/
private String reason;
/**
* 语音或视频时长,
*/
private Integer duration;
}

74
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceProjectEntity.java

@ -0,0 +1,74 @@
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-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_project")
public class IcServiceProjectEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 组织ID
*/
private String agencyId;
/**
* 组织ID的上级
*/
private String pid;
/**
* 组织ID的所有上级[包括自己]
*/
private String agencyIdPath;
/**
* 服务类别值
*/
private String serviceCategoryKey;
/**
* 服务名称
*/
private String serviceName;
/**
* 服务内容
*/
private String serviceContent;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevel;
/**
* 政策依据
*/
private String policyGround;
/**
* 启用状态,0启用1禁用
*/
private Integer enabled;
}

89
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceRecordEntity.java

@ -0,0 +1,89 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
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-05-30
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_record")
public class IcServiceRecordEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
@TableField(fill = FieldFill.INSERT)
private String customerId;
/**
* 服务类别ID
*/
private String serviceCategoryKey;
/**
* 服务项目ID
*/
private String serviceProjectId;
/**
* 服务项目名称
*/
private String serviceProjectName;
/**
* 服务组织ID
*/
private String serviceOrgId;
/**
* 服务组织名称
*/
private String serviceOrgName;
/**
* 经办人姓名
*/
private String principalName;
/**
* 联系方式
*/
private String principalContact;
/**
* 服务时间
*/
private Date serviceTimeStart;
/**
* 服务截止时间
*/
private Date serviceTimeEnd;
/**
* in_service服务中completed:已完成
*/
private String serviceStatus;
/**
* 备注
*/
private String remark;
/**
* 服务人数
*/
private Integer servicePeopleNumber;
}

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

Loading…
Cancel
Save