Browse Source

Merge remote-tracking branch 'remotes/origin/master' into 市北master

# Conflicts:
#	epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls
master
jianjun 3 years ago
parent
commit
af9ac345a2
  1. 5
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java
  2. 34
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java
  3. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  4. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ResiCategoryEnum.java
  5. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java
  6. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiServiceImpl.java
  7. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java
  8. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java
  9. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java
  10. 131
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogDTO.java
  11. 89
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcWorkLogFileDTO.java
  12. 36
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CollectHouseFormDTO.java
  13. 6
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java
  14. 25
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/GetHouseInfoToCollectFormDTO.java
  15. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java
  16. 124
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoCollectResultDTO.java
  17. 6
      epmet-module/gov-org/gov-org-server/pom.xml
  18. 159
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
  19. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java
  20. 28
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  21. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogController.java
  22. 82
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcWorkLogFileController.java
  23. 14
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java
  24. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  25. 39
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogDao.java
  26. 26
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcWorkLogFileDao.java
  27. 5
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java
  28. 79
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogEntity.java
  29. 54
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcWorkLogFileEntity.java
  30. 47
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogExcel.java
  31. 57
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcWorkLogFileExcel.java
  32. 30
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogFileRedis.java
  33. 30
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcWorkLogRedis.java
  34. 18
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  35. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogFileService.java
  36. 88
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcWorkLogService.java
  37. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java
  38. 17
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
  39. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java
  40. 29
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java
  41. 90
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  42. 95
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogFileServiceImpl.java
  43. 198
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcWorkLogServiceImpl.java
  44. 103
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java
  45. 2
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.40__add_column.sql
  46. 1
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.41__ic_neighbor_hood_update.sql
  47. 67
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.42__add_work_log.sql
  48. 1
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
  49. 24
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml
  50. 8
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  51. 114
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogDao.xml
  52. 30
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcWorkLogFileDao.xml
  53. 5
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java
  54. 9
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java
  55. 75
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java
  56. 27
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java
  57. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  58. 79
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java
  59. 19
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  60. 144
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiCollectVisitorDTO.java
  61. 15
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java
  62. 122
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/SaveCollectVisitorFormDTO.java
  63. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailFormDTO.java
  64. 76
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailResultDTO.java
  65. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectPageFormDTO.java
  66. 65
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectCheckFormDTO.java
  67. 28
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectGetDetailFormDTO.java
  68. 93
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemDetailDTO.java
  69. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
  70. 105
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java
  71. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitListFormDTO.java
  72. 57
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectHouseInfoResultDTO.java
  73. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java
  74. 23
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java
  75. 56
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectPageListDTO.java
  76. 82
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
  77. 137
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java
  78. 21
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
  79. 38
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java
  80. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
  81. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java
  82. 111
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectVisitorEntity.java
  83. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java
  84. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java
  85. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java
  86. 90
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiCollectVisitorExcel.java
  87. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
  88. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java
  89. 30
      epmet-user/epmet-user-server/src/main/java/com/epmet/redis/IcResiCollectVisitorRedis.java
  90. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
  91. 111
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java
  92. 337
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
  93. 158
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java
  94. 36
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.63__alter_collect.sql
  95. 1
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql
  96. 69
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
  97. 108
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml
  98. 9
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml
  99. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

5
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java

@ -22,6 +22,11 @@ public class OrgOrStaffMQMsg implements Serializable {
//删除网格:grid_delete;删除组织:agency_delete
private String type;
/**
* org原有的Code
*/
private String oldCode;
//工作人员Id集合
private List<String> staffIdList;

34
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java

@ -0,0 +1,34 @@
package com.epmet.commons.tools.enums;
public enum CollectUrlEnum {
URL_PRE("subpages/points/pages/fangyi/xinxi/create/index", "小程序码跳转地址"),
GET_CODE_URL("https://api.weixin.qq.com/wxa/getwxacode?access_token=", "获取二维码的url");
private String code;
private String name;
CollectUrlEnum(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;
}
}

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

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

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

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

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

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

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

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

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java

@ -244,17 +244,18 @@ public class CoverageServiceImpl implements CoverageService {
if (CollectionUtils.isEmpty(customerMenuList)){
return result;
}
List<String> tables = new ArrayList<>();
List<String> tableMore = new ArrayList<>();
customerMenuList.forEach(cm -> {
resources.forEach(r -> {
if (cm.getUrl().equals(r)){
String tableName = MenusEnums.getValueByUrl(r);
if (StringUtils.isNotBlank(tableName)){
tables.add(tableName);
tableMore.add(tableName);
}
}
});
});
List<String> tables = tableMore.stream().distinct().collect(Collectors.toList());
if (CollectionUtils.isEmpty(tables)){
return result;
}

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

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

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java

@ -155,4 +155,9 @@ public class CustomerGridDTO implements Serializable {
* 弃用1正常使用0
*/
private Integer abandonFlag;
/**
* 网格排序
*/
private Integer sort;
}

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

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

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

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

36
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CollectHouseFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author wgf
* @date 2022/8/3 11:18
*/
@Data
public class CollectHouseFormDTO implements Serializable {
private static final long serialVersionUID = 2636608477324780974L;
private String id;
/**
* 房屋状态 1出租 0自住 2闲置 3未售出
*/
private Integer rentFlag;
/**
* 房主姓名
*/
private String ownerName;
/**
* 客户ID
*/
private String customerId;
/**
* 居住人数
*/
private Integer resiNumber;
}

6
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java

@ -25,6 +25,7 @@ public class EditGridFormDTO implements Serializable {
/**
* gridId 网格id
*/
@NotBlank(message = "网格ID不能为空")
private String gridId;
/**
@ -77,4 +78,9 @@ public class EditGridFormDTO implements Serializable {
* 中心点位位置
*/
private String centerAddress;
/**
* 网格排序
*/
private Integer sort;
}

25
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/GetHouseInfoToCollectFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author wgf
* @date 2022/8/3 11:18
*/
@Data
public class GetHouseInfoToCollectFormDTO implements Serializable {
private static final long serialVersionUID = 2636608477324780974L;
/**
* 单元
*/
private String buildingUnitId;
/**
* 门牌号
*/
private String doorName;
}

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java

@ -91,4 +91,9 @@ public class GridDetailResultDTO implements Serializable {
*/
private String mobile = "";
/**
* 网格排序
*/
private Integer gridSort = 0;
}

124
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoCollectResultDTO.java

@ -0,0 +1,124 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* desc:房屋列表结果类
*
* @author liujianjun
*/
@Data
public class IcHouseInfoCollectResultDTO implements Serializable {
private static final long serialVersionUID = 4963952996288796744L;
/**
* id
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 所属组织的PIDS包括agencygrid
*/
private String orgIdPath;
/**
* 小区id
*/
private String neighborHoodId;
/**
* 片区idneighbor_hood_part.id,可为空
*/
private String partId;
/**
* 所属楼栋id
*/
private String buildingId;
/**
* 所属单元id
*/
private String buildingUnitId;
/**
* 房屋名字后台插入时生成
*/
private String houseName;
/**
* 全名:小区楼栋单元房屋
*/
private String fullName;
/**
* 门牌号
*/
private String doorName;
/**
* 房屋类型这里存储字典value就可以
*/
private String houseType;
/**
* 存储字典value
*/
private String purpose;
/**
* 1出租 0自住 2闲置 3未出售
*/
private Integer rentFlag;
/**
* 房主姓名
*/
private String ownerName;
/**
* 房主电话
*/
private String ownerPhone;
/**
* 房主身份证号
*/
private String ownerIdCard;
/**
* 排序
*/
private BigDecimal sort;
/**
* 备注
*/
private String remark;
/**
* 房屋编码
*/
private String houseCode;
private String houseQrcodeUrl;
/**
* 居住人数
*/
private Integer resiNumber;
/**
* 房屋可编辑编码
*/
private String coding;
}

6
epmet-module/gov-org/gov-org-server/pom.xml

@ -147,6 +147,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-third-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

159
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java

@ -17,31 +17,35 @@
package com.epmet.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.enums.CollectUrlEnum;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.BarcodeUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.CustomerAgencyConstant;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.resi.group.dto.QRCodeMultipartFileDTO;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.AgencyService;
import com.epmet.service.CustomerAgencyService;
import com.epmet.service.IcNeighborHoodService;
import com.epmet.utils.ThirdUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -56,9 +60,9 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -82,6 +86,8 @@ public class AgencyController {
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private IcNeighborHoodService neighborHoodService;
@Autowired
private OssFeignClient ossFeignClient;
/**
* @param formDTO
@ -177,16 +183,7 @@ public class AgencyController {
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class);
Result result = agencyService.editAgency(formDTO);
//2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(tokenDTO.getCustomerId());
mq.setOrgId(formDTO.getAgencyId());
mq.setOrgType("agency");
mq.setType("agency_change");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
//2021-10-18 end
//发送mq 消息迁移至service
return result;
}
@ -409,45 +406,60 @@ public class AgencyController {
public void createQrCode(@LoginUser TokenDto tokenDto, @RequestBody CreateQrCodeFormDTO formDTO, HttpServletResponse response) {
ValidatorUtils.validateEntity(formDTO, CreateQrCodeFormDTO.CreateQrCodeForm.class);
String id = formDTO.getId();
String type = formDTO.getType();
String name = "";
if(!formDTO.getType().equals(OrgInfoConstant.COMMUNITY)){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "只可生成社区码");
}
try {
if (type.equals(OrgInfoConstant.COMMUNITY)) {
CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(id);
if (customerAgencyDTO == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息不存在");
}
name = customerAgencyDTO.getOrganizationName();
} else if (type.equals(OrgInfoConstant.NEIGHBOR_HOOD)) {
IcNeighborHoodDTO icNeighborHoodDTO = neighborHoodService.get(id);
if (icNeighborHoodDTO == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息不存在");
//获取AccessToken
String accessToken = ThirdUtils.getAccessToken(tokenDto.getCustomerId()).getResiToken();
if (org.apache.commons.lang3.StringUtils.isBlank(accessToken)) {
log.warn("获取accessToken失败,customerId:{}", tokenDto.getCustomerId());
throw new RenException("获取accessToken失败,customerId:{}", tokenDto.getCustomerId());
}
CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(id);
if (customerAgencyDTO == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息不存在");
}
name = customerAgencyDTO.getOrganizationName();
//url组成:信息采集地址?社区id
StringBuilder path = new StringBuilder(CollectUrlEnum.URL_PRE.getCode());
path.append("?agencyId=").append(formDTO.getId());
//需要发送的Json
JSONObject data = new JSONObject();
data.put("path", path.toString());
data.put("width", 400);
//发送
byte[] buffer = HttpClientManager.getInstance().getMediaByteArray(CollectUrlEnum.GET_CODE_URL.getCode() + accessToken, JSON.toJSONString(data)).getData();
if (buffer != null && buffer.length < 500) {
String wxResult = "";
wxResult = new String(buffer, StandardCharsets.UTF_8);
if (-1 != wxResult.indexOf("errcode")) {
log.error("获取二维码接口返回错误:{}", wxResult);
throw new RenException("获取二维码失败");
}
name = icNeighborHoodDTO.getNeighborHoodName();
}
//url组成:数字社区地址?小区id&用户id
//String url = "https://demo.tduckapp.com/s/7314b64b3a26455ab793fb8c640856b6?id="+id;
String url = EnvEnum.getCurrentEnv().getUrl()
.replace("cloud", "open")
.replace("api/", StrConstant.EPMETY_STR)
.concat("epmet-oper-gov/#/caiji/")
.concat(id).concat("?")
.concat("name=").concat(URLEncoder.encode(name, StrConstant.UTF_8)).concat(StrConstant.AND_MARK)
.concat("customerId=").concat(tokenDto.getCustomerId()).concat(StrConstant.AND_MARK)
.concat("type=").concat(type).concat(StrConstant.AND_MARK)
.concat("userId=").concat(tokenDto.getUserId())
.concat(StrConstant.AND_MARK).concat(String.valueOf(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli()));
BufferedImage image = BarcodeUtils.drawQRImage(name, url);
//BufferedImage 转 InputStream
//上传
QRCodeMultipartFileDTO qrCodeMultipartFile = new QRCodeMultipartFileDTO();
qrCodeMultipartFile.setBytes(buffer);
String originalFilename = name.concat(".jpg");
qrCodeMultipartFile.setOriginalFilename(originalFilename);
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(qrCodeMultipartFile);
if (!uploadResult.success()) {
throw new RenException("调用oss服务上传活动居民信息录入码失败");
}
URL url = new URL(uploadResult.getData().getUrl());
BufferedImage img = ImageIO.read(url);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
ImageIO.write(image, "png", imageOutput);
ImageIO.write(img, "png", imageOutput);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
long length = imageOutput.length();
String fileName = name + ".png";
response.setContentType("application/octet-stream");
response.setContentLength((int) length);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(originalFilename, StrConstant.UTF_8));
//输出流
byte[] bytes = new byte[1024];
@ -459,10 +471,69 @@ public class AgencyController {
outputStream.write(bytes, 0, len);
}
outputStream.flush();
} catch (Exception e) {
log.error("method exception", e);
}
}
// @PostMapping("create-qrcode")
// public void createQrCode(@LoginUser TokenDto tokenDto, @RequestBody CreateQrCodeFormDTO formDTO, HttpServletResponse response) {
// ValidatorUtils.validateEntity(formDTO, CreateQrCodeFormDTO.CreateQrCodeForm.class);
// String id = formDTO.getId();
// String type = formDTO.getType();
// String name = "";
// try {
// if (type.equals(OrgInfoConstant.COMMUNITY)) {
// CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(id);
// if (customerAgencyDTO == null) {
// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息不存在");
// }
// name = customerAgencyDTO.getOrganizationName();
// } else if (type.equals(OrgInfoConstant.NEIGHBOR_HOOD)) {
// IcNeighborHoodDTO icNeighborHoodDTO = neighborHoodService.get(id);
// if (icNeighborHoodDTO == null) {
// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息不存在");
// }
// name = icNeighborHoodDTO.getNeighborHoodName();
// }
// //url组成:数字社区地址?小区id&用户id
// //String url = "https://demo.tduckapp.com/s/7314b64b3a26455ab793fb8c640856b6?id="+id;
// String url = EnvEnum.getCurrentEnv().getUrl()
// .replace("cloud", "open")
// .replace("api/", StrConstant.EPMETY_STR)
// .concat("epmet-oper-gov/#/caiji/")
// .concat(id).concat("?")
// .concat("name=").concat(URLEncoder.encode(name, StrConstant.UTF_8)).concat(StrConstant.AND_MARK)
// .concat("customerId=").concat(tokenDto.getCustomerId()).concat(StrConstant.AND_MARK)
// .concat("type=").concat(type).concat(StrConstant.AND_MARK)
// .concat("userId=").concat(tokenDto.getUserId())
// .concat(StrConstant.AND_MARK).concat(String.valueOf(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli()));
// BufferedImage image = BarcodeUtils.drawQRImage(name, url);
// //BufferedImage 转 InputStream
// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
// ImageIO.write(image, "png", imageOutput);
// InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
// long length = imageOutput.length();
// String fileName = name + ".png";
// response.setContentType("application/octet-stream");
// response.setContentLength((int) length);
// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
//
// //输出流
// byte[] bytes = new byte[1024];
// OutputStream outputStream = response.getOutputStream();
// long count = 0;
// while (count < length) {
// int len = inputStream.read(bytes, 0, 1024);
// count += len;
// outputStream.write(bytes, 0, len);
// }
// outputStream.flush();
// } catch (Exception e) {
// log.error("method exception", e);
// }
// }
/**
* Desc: 查询工作人员所属组织下的所有社区

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java

@ -15,6 +15,7 @@ import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.CustomerGridService;
import com.epmet.service.CustomerStaffAgencyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -26,6 +27,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("grid")
@Slf4j
public class GridController {
@Autowired
@ -79,16 +81,7 @@ public class GridController {
editGridFormDTO.setCustomerId(tokenDto.getCustomerId());
Result result = customerGridService.editGrid(tokenDto,editGridFormDTO);
//2021-10-18 推送mq,数据同步到中介库 start
if (result.success()) {
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(tokenDto.getCustomerId());
mq.setOrgId(editGridFormDTO.getGridId());
mq.setOrgType("grid");
mq.setType("grid_change");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
}
//2021-10-18 end
//发送mq 消息 移至service
return result;
}

28
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -200,6 +200,34 @@ public class HouseController implements ResultDataResolver {
return new Result();
}
/**
* 信息登记更新房屋信息
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author wgf
* @date 2022/8/3 11:16
*/
@NoRepeatSubmit
@PostMapping("updateCollect")
public Result updateCollect(@RequestBody CollectHouseFormDTO formDTO) {
houseService.updateCollect(formDTO);
return new Result();
}
/**
* 获取房屋信息
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author wgf
* @date 2022/8/3 11:16
*/
@PostMapping("getHouseInfoToCollect")
public Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(@RequestBody GetHouseInfoToCollectFormDTO formDTO) {
return houseService.getHouseInfoToCollect(formDTO);
}
/**
* lzh
*

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

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

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

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

14
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java

@ -141,4 +141,18 @@ public class NeighborHoodController {
TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_template.xlsx");
ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"小区信息录入表",response);
}
/**
* @describe: 批量生成小区二维码
* @author wangtong
* @date 2022/8/4 15:15
* @params [loginUser]
* @return com.epmet.commons.tools.utils.Result
*/
@NoRepeatSubmit
@PostMapping("createBatchNeiQrUrl")
public Result createBatchNeiQrUrl(@LoginUser TokenDto loginUser) {
return neighborHoodService.createBatchNeiQrUrl(loginUser.getCustomerId());
}
}

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -2,6 +2,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.GetHouseInfoToCollectFormDTO;
import com.epmet.dto.form.IcHouseListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerOrgParameterEntity;
@ -192,4 +193,12 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
* @params [coding]
*/
IcHouseEntity selectByCoding(@Param("coding") String coding);
/**
* 获取房屋信息
* @param formDTO
* @return
*/
IcHouseInfoCollectResultDTO getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO);
}

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

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

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

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

5
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java

@ -116,4 +116,9 @@ public class IcNeighborHoodEntity extends BaseEpmetEntity {
* 实有楼栋数
*/
private Integer realBuilding;
/**
* 二维码地址
*/
private String qrcodeUrl;
}

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

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

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

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

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

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

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

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

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

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

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

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

18
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -43,6 +43,7 @@ public interface HouseService {
void updateHouse(String customerId, IcHouseAddFormDTO formDTO);
void updateCollect(CollectHouseFormDTO formDTO);
/**
* Desc: 房屋变更记录
@ -54,6 +55,16 @@ public interface HouseService {
*/
void houseChangeRecord(String houseId, String customerId, IcHouseDTO houseDTO);
/**
* Desc: 房屋变更记录(信息登记)
* @param houseId
* @param customerId
* @param houseDTO
* @author wgf
* @date 2022/5/10 10:57
*/
void houseChangeRecordCollect(String houseId, String customerId, IcHouseDTO houseDTO);
/**
* 小寨子社区-合同签订后变更成出租状态
*
@ -175,4 +186,11 @@ public interface HouseService {
Result getHomeInfoByHouseCode(HouseInfoFormDTO dto);
void orgIdPathInit();
/**
* 获取房屋信息
* @param formDTO
* @return
*/
Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO);
}

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

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

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

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

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java

@ -18,6 +18,7 @@
package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.IcHouseListFormDTO;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.IcNeighborHoodListFormDTO;
@ -51,4 +52,13 @@ public interface NeighborHoodService{
* @param response
*/
void exportNeighborhoodinfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception ;
/**
* @describe: 批量生成小区二维码
* @author wangtong
* @date 2022/8/4 15:18
* @params [customerId]
* @return com.epmet.commons.tools.utils.Result
*/
Result createBatchNeiQrUrl(String customerId);
}

17
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java

@ -20,6 +20,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
@ -52,13 +53,14 @@ import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.entity.CustomerDepartmentEntity;
import com.epmet.entity.CustomerGridEntity;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.OperCrmFeignClient;
import com.epmet.redis.CustomerAgencyRedis;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.AgencyService;
import com.epmet.service.CustomerAgencyService;
import com.epmet.service.CustomerOrgParameterService;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Joiner;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -71,7 +73,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -107,6 +108,8 @@ public class AgencyServiceImpl implements AgencyService {
private IcBuildingDao icBuildingDao;
@Autowired
private CustomerDepartmentDao customerDepartmentDao;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
/**
* @param formDTO
@ -240,6 +243,16 @@ public class AgencyServiceImpl implements AgencyService {
//5.redis缓存
customerAgencyRedis.delete(formDTO.getAgencyId());
//2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(originalEntity.getCustomerId());
mq.setOrgId(formDTO.getAgencyId());
mq.setOrgType("agency");
mq.setType("agency_change");
mq.setOldCode(originalEntity.getCode());
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
//2021-10-18 end
//6.一些下拉组织树的缓存要清除掉
String orgTreeCachePrexKey = RedisKeys.getOrgTreeCachePrexKey(formDTO.getCustomerId());
customerAgencyRedis.deleteByPrex(orgTreeCachePrexKey);

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java

@ -202,7 +202,7 @@ public class BuildingServiceImpl implements BuildingService {
// agencyIdList.add(customerAgency.getId());
LambdaQueryWrapper<CustomerGridEntity> gridWrapper = new LambdaQueryWrapper<>();
gridWrapper.in(CustomerGridEntity::getPid, agencyIdList);
gridWrapper.last("ORDER BY CAST(GRID_NAME AS SIGNED),CONVERT(GRID_NAME using gbk)");
gridWrapper.last("ORDER BY sort,CAST(GRID_NAME AS SIGNED),CONVERT(GRID_NAME using gbk)");
List<CustomerGridEntity> customerGridList = customerGridDao.selectList(gridWrapper);
if (CollectionUtils.isEmpty(customerGridList)) {

29
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java

@ -55,7 +55,6 @@ import com.epmet.entity.CustomerGridEntity;
import com.epmet.entity.CustomerStaffGridEntity;
import com.epmet.entity.StaffOrgRelationEntity;
import com.epmet.feign.*;
import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.CustomerAgencyService;
import com.epmet.service.CustomerGridService;
@ -111,10 +110,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
@Autowired
private GovProjectOpenFeignClient govProjectOpenFeignClient;
@Autowired
private ResiPartyMemberOpenFeignClient resiPartyMemberOpenFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@ -331,8 +326,12 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
@Override
@Transactional(rollbackFor = Exception.class)
public Result editGrid(TokenDto tokenDto, EditGridFormDTO editGridFormDTO) {
AddGridResultDTO gridId = baseDao.selectGridIdByGridName(editGridFormDTO.getGridName(), editGridFormDTO.getAgencyId(), editGridFormDTO.getGridId());
if (gridId!=null){
CustomerGridEntity gridEntity = baseDao.selectById(editGridFormDTO.getGridId());
if(gridEntity == null){
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode());
}
AddGridResultDTO gridInfo = baseDao.selectGridIdByGridName(editGridFormDTO.getGridName(), editGridFormDTO.getAgencyId(), editGridFormDTO.getGridId());
if (gridInfo!=null){
return new Result().error(EpmetErrorCode.NOT_ADD_GRID.getCode());
}
CustomerGridDTO customerGridDTO = new CustomerGridDTO();
@ -344,6 +343,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
customerGridDTO.setGridType(editGridFormDTO.getGridType());
customerGridDTO.setContacts(editGridFormDTO.getContacts());
customerGridDTO.setMobile(editGridFormDTO.getMobile());
customerGridDTO.setSort(editGridFormDTO.getSort());
if(StringUtils.isNotBlank(editGridFormDTO.getLongitude())){
customerGridDTO.setLongitude(editGridFormDTO.getLongitude());
}
@ -352,6 +352,19 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
}
customerGridDTO.setCenterAddress(editGridFormDTO.getCenterAddress());
baseDao.editGrid(customerGridDTO);
//2021-10-18 推送mq,数据同步到中介库 start
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(tokenDto.getCustomerId());
mq.setOrgId(editGridFormDTO.getGridId());
mq.setOrgType("grid");
mq.setType("grid_change");
mq.setOldCode(gridEntity.getCode());
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
//2021-10-18 end
//一些下拉组织树的缓存要清除掉
String orgTreeCachePrexKey = RedisKeys.getOrgTreeCachePrexKey(tokenDto.getCustomerId());
redisUtils.deleteByPrex(orgTreeCachePrexKey);
@ -928,7 +941,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
}
LambdaQueryWrapper<CustomerGridEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CustomerGridEntity::getPid, agencyId);
wrapper.last("ORDER BY CONVERT ( GRID_NAME USING gbk ) ASC");
wrapper.last("ORDER BY sort,CONVERT ( GRID_NAME USING gbk ) desc");
List<CustomerGridEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();

90
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -244,6 +244,30 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
icHouseRedis.delHouseInfo(formDTO.getHouseId(), customerId);
}
/**
* 更新房屋信息登记
*
* @param
* @param formDTO
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void updateCollect(CollectHouseFormDTO formDTO) {
IcHouseEntity entity = new IcHouseEntity();
entity.setId(formDTO.getId());
entity.setRentFlag(formDTO.getRentFlag());
entity.setOwnerName(formDTO.getOwnerName());
entity.setResiNumber(formDTO.getResiNumber());
// 更新变更记录
IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(formDTO, IcHouseDTO.class);
houseChangeRecordCollect(formDTO.getId(), formDTO.getCustomerId(), icHouseDTO);
icHouseDao.updateById(entity);
//删除房屋缓存
icHouseRedis.delHouseInfo(formDTO.getId(), entity.getCustomerId());
}
/**
* Desc: 房屋变更记录
*
@ -337,6 +361,64 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
}
}
/**
* Desc: 房屋变更记录(信息登记)
*
* @param houseId
* @param customerId
* @param houseDTO
* @author wgf
* @date 2022/5/10 10:57
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void houseChangeRecordCollect(String houseId, String customerId, IcHouseDTO houseDTO) {
IcHouseEntity entity = icHouseService.selectById(houseId);
entity.setOwnerName(null == entity.getOwnerName() ? "" : entity.getOwnerName());
entity.setOwnerPhone(null == entity.getOwnerPhone() ? "" : entity.getOwnerPhone());
entity.setOwnerIdCard(null == entity.getOwnerIdCard() ? "" : entity.getOwnerIdCard());
if (null == entity) {
throw new EpmetException("不存在此房屋...");
}
StringBuilder sbBefore = new StringBuilder();
StringBuilder sbAfter = new StringBuilder();
List<IcHouseChangeDetailEntity> entityList = new ArrayList<>();
if (!houseDTO.getRentFlag().equals(entity.getRentFlag())) {
sbAfter.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(null == houseDTO.getRentName() ? HouseRentFlagEnums.getTypeValue(houseDTO.getRentFlag()) : houseDTO.getRentName()).append(";");
sbBefore.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())).append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
e.setChangeCol(HouseChangeEnums.RENT_FLAG.getColumn());
e.setChangeAfter(null == houseDTO.getRentName() ? HouseRentFlagEnums.getTypeValue(houseDTO.getRentFlag()) : houseDTO.getRentName());
e.setChangeBefore(HouseRentFlagEnums.getTypeValue(entity.getRentFlag()));
entityList.add(e);
}
if (null != houseDTO.getOwnerName() && !houseDTO.getOwnerName().equals(entity.getOwnerName())) {
sbAfter.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(houseDTO.getOwnerName()) ? houseDTO.getOwnerName() : "无").append(";");
sbBefore.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无").append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
e.setChangeCol(HouseChangeEnums.OWNER_NAME.getColumn());
e.setChangeAfter(StringUtils.isNotBlank(houseDTO.getOwnerName()) ? houseDTO.getOwnerName() : "无");
e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerName()) ? entity.getOwnerName() : "无");
entityList.add(e);
}
if (StringUtils.isNotBlank(sbAfter)) {
String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE);
String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE);
HouseAgencyInfoResultDTO houseAgencyInfo = icHouseDao.getHouseAgencyInfo(houseId);
IcHouseChangeRecordEntity recordEntity = ConvertUtils.sourceToTarget(houseAgencyInfo, IcHouseChangeRecordEntity.class);
recordEntity.setCustomerId(customerId);
recordEntity.setChangeBefore(before);
recordEntity.setChangeAfter(after);
changeRecordService.insert(recordEntity);
entityList.forEach(e -> {
e.setCustomerId(customerId);
e.setRecordId(recordEntity.getId());
});
changeDetailService.insertBatch(entityList);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update2Rent(RentHouseFormDTO formDTO) {
@ -1220,4 +1302,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
}
recureAppendParentAgencyId(pid, result);
}
@Override
public Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO) {
IcHouseInfoCollectResultDTO icHouseInfoCollectResultDTO = icHouseDao.getHouseInfoToCollect(formDTO);
return new Result<IcHouseInfoCollectResultDTO>().ok(icHouseInfoCollectResultDTO);
}
}

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

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

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

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

103
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java

@ -1,20 +1,22 @@
package com.epmet.service.impl;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.CollectUrlEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.NeighborhoodConstant;
import com.epmet.dao.CustomerGridDao;
import com.epmet.dao.IcNeighborHoodDao;
import com.epmet.dao.IcNeighborHoodPropertyDao;
import com.epmet.dao.IcOrganizationCodeInfoDao;
import com.epmet.dao.*;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.IcNeighborHoodPropertyDTO;
@ -24,18 +26,19 @@ import com.epmet.dto.form.IcNeighborHoodListFormDTO;
import com.epmet.dto.form.IcUserBelongToChangedFormDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.dto.result.OrganizationCommunityDTO;
import com.epmet.entity.IcHouseEntity;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.entity.IcNeighborHoodPropertyEntity;
import com.epmet.entity.IcOrganizationCodeInfoEntity;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.*;
import com.epmet.enums.OrganizationTypeEnums;
import com.epmet.excel.IcNeighborHoodExcel;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.resi.group.dto.QRCodeMultipartFileDTO;
import com.epmet.service.IcNeighborHoodPropertyService;
import com.epmet.service.IcNeighborHoodService;
import com.epmet.service.NeighborHoodService;
import com.epmet.util.ExcelPoiUtils;
import com.epmet.utils.ThirdUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -46,6 +49,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -73,6 +77,10 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao,I
private IcOrganizationCodeInfoDao icOrganizationCodeInfoDao;
@Autowired
private IcOrganizationCodeInfoServiceImpl icOrganizationCodeInfoServiceImpl;
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private CustomerAgencyDao customerAgencyDao;
@Override
@ -113,6 +121,63 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao,I
icNeighborHoodPropertyDTO.setPropertyId(propertyId);
icNeighborHoodPropertyService.save(icNeighborHoodPropertyDTO);
}
//生成小区码
IcNeighborHoodEntity neiEntity = new IcNeighborHoodEntity();
neiEntity.setId(entity.getId());
try {
neiEntity.setQrcodeUrl(createNeiQrcodeUrl(entity));
} catch (Exception e) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败","二维码生成失败");
}
baseDao.updateById(neiEntity);
}
/**
* @describe: 生成小区二维码地址
* @author wangtong
* @date 2022/8/4 14:28
* @params [NeighborHood]
* @return java.lang.String
*/
private String createNeiQrcodeUrl(IcNeighborHoodEntity entity) throws Exception {
if (null == entity) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区不可为空", "小区不可为空");
}
//获取AccessToken
String accessToken = ThirdUtils.getAccessToken(entity.getCustomerId()).getResiToken();
if (org.apache.commons.lang3.StringUtils.isBlank(accessToken)) {
log.warn("获取accessToken失败,customerId:{}", entity.getCustomerId());
throw new RenException("获取accessToken失败,customerId:{}", entity.getCustomerId());
}
//跳转的页面
StringBuilder path = new StringBuilder(CollectUrlEnum.URL_PRE.getCode());
path.append("?neiId=").append(entity.getId())
.append("&agencyId=").append(entity.getAgencyId());
//需要发送的Json
JSONObject data = new JSONObject();
data.put("path", path.toString());
data.put("width", 400);
//发送
byte[] buffer = HttpClientManager.getInstance().getMediaByteArray(CollectUrlEnum.GET_CODE_URL.getCode() + accessToken, JSON.toJSONString(data)).getData();
if (buffer != null && buffer.length < 500) {
String wxResult = "";
wxResult = new String(buffer, StandardCharsets.UTF_8);
if (-1 != wxResult.indexOf("errcode")) {
log.error("获取二维码接口返回错误:{}", wxResult);
throw new RenException("获取二维码失败");
}
}
//上传
QRCodeMultipartFileDTO qrCodeMultipartFile = new QRCodeMultipartFileDTO();
qrCodeMultipartFile.setBytes(buffer);
String originalFilename = entity.getNeighborHoodName().concat(".jpg");
qrCodeMultipartFile.setOriginalFilename(originalFilename);
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(qrCodeMultipartFile);
if (!uploadResult.success()) {
throw new RenException("调用oss服务上传活动居民信息录入码失败");
}
return uploadResult.getData().getUrl();
}
/**
@ -271,6 +336,28 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao,I
ExcelPoiUtils.exportExcel(templatePath ,map,"小区信息录入表",response);
}
@Override
public Result createBatchNeiQrUrl(String customerId) {
//查询该客户下没有二维码的小区
QueryWrapper<IcNeighborHoodEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(IcNeighborHoodEntity::getCustomerId,customerId)
.eq(IcNeighborHoodEntity::getDelFlag, NumConstant.ZERO_STR);;
List<IcNeighborHoodEntity> neiList = baseDao.selectList(queryWrapper);
//保存二维码地址
neiList.forEach(nei->{
if(org.apache.commons.lang3.StringUtils.isBlank(nei.getQrcodeUrl())){
try {
nei.setQrcodeUrl(createNeiQrcodeUrl(nei));
} catch (Exception e) {
e.printStackTrace();
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败<neiId>:"+nei.getId(),"二维码生成失败<neiId>:"+nei.getId());
}
}
baseDao.updateById(nei);
});
return new Result().ok("批量生成成功");
}
private List<IcNeighborHoodExcel> searchAllNeighborhood(IcHouseListFormDTO formDTO) {
IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class);
neighbor.setDelFlag("0");

2
epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.40__add_column.sql

@ -0,0 +1,2 @@
ALTER TABLE `epmet_gov_org`.`customer_grid`
ADD COLUMN `sort` int(11) NULL COMMENT '网格排序' AFTER `MOBILE`;

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

@ -0,0 +1 @@
alter table ic_neighbor_hood add COLUMN `QRCODE_URL` varchar(255) DEFAULT NULL COMMENT '二维码地址';

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

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

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

@ -371,6 +371,7 @@
WHERE
cg.DEL_FLAG = '0'
AND cg.PID =#{agencyId}
order by cg.sort
</select>
<select id="selectSubAgencyByPid" resultMap="treeMap">

24
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -196,7 +196,8 @@
`code` AS 'code',
grid_type AS 'gridType',
contacts AS 'contacts',
mobile AS 'mobile'
mobile AS 'mobile',
sort AS gridSort
FROM
customer_grid
WHERE
@ -256,6 +257,9 @@
<if test="centerAddress != null and centerAddress !=''">
CENTER_ADDRESS= #{centerAddress},
</if>
<if test="sort != null and sort != ''">
sort = #{sort},
</if>
UPDATED_TIME=NOW()
where
id = #{id}
@ -314,7 +318,7 @@
DEL_FLAG = '0'
AND ABANDON_FLAG='0'
AND PID = #{agencyId}
ORDER BY CREATED_TIME DESC
ORDER BY sort,grid_name,CREATED_TIME DESC
<if test="null != pageSize and pageSize > 0">
LIMIT #{pageSize}
</if>
@ -417,6 +421,8 @@
WHERE del_flag = '0'
and ABANDON_FLAG='0'
AND pid = #{agencyId}
order by
sort,grid_name
</select>
<select id="selectAgencyGridMsgList" resultType="com.epmet.dto.result.AgencyGridList">
@ -440,6 +446,8 @@
AND ca.del_flag = '0'
and cg.ABANDON_FLAG='0'
AND cg.pid = #{agencyId}
order by
cg.sort,cg.grid_name
</select>
<!-- 单客户-根据城市地区码前四位匹配到城市下所有网格 -->
@ -474,8 +482,10 @@
</if>
AND grid.customer_id = #{customerId}
ORDER BY
grid.customer_id,
CONVERT ( gridName USING gbk ) ASC
grid.sort,
CONVERT ( gridName USING gbk ) ASC,
grid.customer_id
LIMIT #{pageNo}, #{pageSize}
</select>
@ -488,7 +498,9 @@
SELECT
a.id AS grid_id,
a.customer_id,
concat( agency.fullname, '-', a.grid_name ) AS gridName
concat( agency.fullname, '-', a.grid_name ) AS gridName,
a.sort as sort,
agency.fullname as fullName
FROM
CUSTOMER_GRID a
LEFT JOIN (
@ -512,7 +524,7 @@
and a.ABANDON_FLAG='0'
AND a.customer_id = #{customerId}
) AS c
ORDER BY CONVERT ( gridName USING gbk ) ASC
ORDER BY fullName,c.sort,CONVERT ( gridName USING gbk ) ASC
LIMIT #{pageNo}, #{pageSize}
</select>

8
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -541,5 +541,13 @@
and CODING=#{coding}
</select>
<select id="getHouseInfoToCollect" resultType="com.epmet.dto.result.IcHouseInfoCollectResultDTO">
select *
from ic_house
where del_flag = '0'
and BUILDING_UNIT_ID = #{buildingUnitId}
and DOOR_NAME = #{doorName}
</select>
</mapper>

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

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

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

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

5
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java

@ -36,5 +36,10 @@ public class ExractGridInfoPingYinFormDTO implements Serializable {
*/
@NotBlank(message = "操作类型【新增:add 修改删除:edit 初始化所有数据:all】不能为空", groups = {GridInfo.class})
private String type;
/**
* org 编辑之前的Code 如果有修改 则直接更新其他涉及到的表
*/
private String oldCode;
}

9
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java

@ -37,12 +37,12 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent
private RedisUtils redisUtils;
private DistributedLock distributedLock;
public OpenDataOrgChangeEventListener(DistributedLock distributedLock) {
this.distributedLock = distributedLock;
}
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
@ -51,7 +51,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent
}
try {
msgs.forEach(msg -> consumeMessage(msg));
msgs.forEach(this::consumeMessage);
} catch (Exception e) {
logger.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
@ -94,6 +94,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent
ExractGridInfoPingYinFormDTO extractFormDto = new ExractGridInfoPingYinFormDTO();
extractFormDto.setCustomerId(obj.getCustomerId());
extractFormDto.setType(obj.getType());
extractFormDto.setOldCode(obj.getOldCode());
List<String> orgIdList = new ArrayList<>();
if(StringUtils.isNotBlank(obj.getOrgId())){
orgIdList.add(obj.getOrgId());

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

@ -1,5 +1,6 @@
package com.epmet.opendata.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
@ -7,14 +8,22 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.IndexCalConstant;
import com.epmet.dto.org.form.GridBaseInfoFormDTO;
import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.EventreportPingyinDao;
import com.epmet.opendata.dao.GridInfoPingyinDao;
import com.epmet.opendata.dao.GridstaffInfoPingyinDao;
import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao;
import com.epmet.opendata.dto.constant.DataWorkerConstant;
import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO;
import com.epmet.opendata.entity.EventreportPingyinEntity;
import com.epmet.opendata.entity.GridInfoPingyinEntity;
import com.epmet.opendata.entity.GridstaffInfoPingyinEntity;
import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity;
import com.epmet.opendata.service.GridInfoPingyinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
@ -33,11 +42,18 @@ import java.util.List;
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-22
*/
@Slf4j
@Service
public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinDao, GridInfoPingyinEntity> implements GridInfoPingyinService {
@Autowired
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
@Autowired
private GridstaffInfoPingyinDao gridstaffInfoPingyinDao;
@Autowired
private GridstaffWorkInfoPingyinDao gridstaffWorkInfoPingyinDao;
@Autowired
private EventreportPingyinDao eventreportPingyinDao;
/**
* 抽取customer_agency到grid_info_pingyin表
@ -99,9 +115,13 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
this.insertBatch(gridInfoList);
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
// 修改组织时,先根据code查询,如果有数据,更新
for (GridInfoPingyinEntity entity : gridInfoList) {
//网格code变更了 则将旧的code 的数据删除状态设置为Y
if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){
baseDao.deleteByCode(formDTO.getOldCode());
}
List<GridInfoPingyinEntity> orginList = baseDao.selectByGridCode(entity.getGridCode());
if (CollectionUtils.isNotEmpty(orginList)) {
@ -138,7 +158,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
@Override
public void exractGrid(ExractGridInfoPingYinFormDTO formDTO) {
// 1.查询网格基础信息
com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class);
GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, GridBaseInfoFormDTO.class);
if (StringUtils.isBlank(formDTO.getType())||DataWorkerConstant.ALL.equals(formDTO.getType())) {
formDTO1.setDelFlag("0");
} else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) {
@ -150,6 +170,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
}
Result<List<CustomerGridDTO>> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1);
if (!result.success()) {
log.warn("根据网格Id 没有找到网格 等待再次调用");
throw new RenException(result.getInternalMsg());
}
if (null == result.getData() || result.getData().size() < NumConstant.ONE) {
@ -195,7 +216,9 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
// 修改组织时,先根据code查询,如果有数据,更新
for (GridInfoPingyinEntity entity : gridInfoList) {
//code 变更了
gridCodeChanged(formDTO, entity);
//根据修改后的网格code 获取网格信息
List<GridInfoPingyinEntity> orginList = baseDao.selectByGridCode(entity.getGridCode());
if (CollectionUtils.isNotEmpty(orginList)) {
@ -224,5 +247,51 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
}
/**
* desc:判断是否需要网格Code 如果修改了则 同步修改其他的相关业务数据
* @param formDTO
* @param entity
*/
private void gridCodeChanged(ExractGridInfoPingYinFormDTO formDTO, GridInfoPingyinEntity entity) {
if (StringUtils.isNotBlank(formDTO.getOldCode()) && !formDTO.getOldCode().equals(entity.getGridCode())){
GridInfoPingyinEntity gridInfoEntity = new GridInfoPingyinEntity();
gridInfoEntity.setGridCode(entity.getGridCode());
gridInfoEntity.setUpdateTime(new Date());
LambdaUpdateWrapper<GridInfoPingyinEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(GridInfoPingyinEntity::getGridCode,formDTO.getOldCode());
int update = baseDao.update(gridInfoEntity, updateWrapper);
log.info("code changed gridinfo effect row:{}",update);
//更新完 网格code 去更新其他的业务【工作人员、例行工作、事件】数据对应的code
GridstaffInfoPingyinEntity staffInfo = new GridstaffInfoPingyinEntity();
staffInfo.setGridCode(entity.getGridCode());
staffInfo.setUpdateTime(new Date());
LambdaUpdateWrapper<GridstaffInfoPingyinEntity> staffInfoWrapper = new LambdaUpdateWrapper<>();
staffInfoWrapper.eq(GridstaffInfoPingyinEntity::getGridCode,formDTO.getOldCode());
update = gridstaffInfoPingyinDao.update(staffInfo, staffInfoWrapper);
log.info("code changed gridStaffInfo effect row:{}",update);
GridstaffWorkInfoPingyinEntity workInfo = new GridstaffWorkInfoPingyinEntity();
workInfo.setGridCode(entity.getGridCode());
workInfo.setUpdateTime(new Date());
LambdaUpdateWrapper<GridstaffWorkInfoPingyinEntity> workInfoWrapper = new LambdaUpdateWrapper<>();
workInfoWrapper.eq(GridstaffWorkInfoPingyinEntity::getGridCode,formDTO.getOldCode());
update = gridstaffWorkInfoPingyinDao.update(workInfo, workInfoWrapper);
log.info("code changed staffWorkInfo effect row:{}",update);
EventreportPingyinEntity eventEntity = new EventreportPingyinEntity();
eventEntity.setGridCode(entity.getGridCode());
eventEntity.setUpdateTime(new Date());
LambdaUpdateWrapper<EventreportPingyinEntity> eventWrapper = new LambdaUpdateWrapper<>();
eventWrapper.eq(EventreportPingyinEntity::getGridCode,formDTO.getOldCode());
update = eventreportPingyinDao.update(eventEntity, eventWrapper);
log.info("code changed eventreport effect row:{}",update);
}
}
}

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

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

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

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

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

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

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

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

144
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiCollectVisitorDTO.java

@ -0,0 +1,144 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Data
public class IcResiCollectVisitorDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 目的地
*/
private String address;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 组织Id
*/
private String agencyId;
/**
* 组织的pids
*/
private String pids;
/**
* 所属小区ID
*/
private String villageId;
/**
* 所属小区名称
*/
private String villageName;
/**
* 所属楼宇Id
*/
private String buildId;
/**
* 所属楼宇名称
*/
private String buildName;
/**
* 单元id
*/
private String unitId;
/**
* 单元名
*/
private String unitName;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 房间名
*/
private String homeName;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 身份证号
*/
private String idCard;
/**
* 来访事由
*/
private String comeReason;
/**
* 人脸照片
*/
private String faceImg;
/**
* 删除标识 0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

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

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

122
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/SaveCollectVisitorFormDTO.java

@ -0,0 +1,122 @@
package com.epmet.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Data
public class SaveCollectVisitorFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 组织Id
*/
private String agencyId;
/**
* 组织的pids
*/
private String pids;
/**
* 所属小区ID
*/
@NotBlank(message = "小区ID不能为空")
private String villageId;
/**
* 所属小区名称
*/
@NotBlank(message = "小区名称不能为空")
private String villageName;
/**
* 所属楼宇Id
*/
@NotBlank(message = "楼宇Id不能为空")
private String buildId;
/**
* 所属楼宇名称
*/
@NotBlank(message = "楼宇名称不能为空")
private String buildName;
/**
* 单元id
*/
@NotBlank(message = "单元id不能为空")
private String unitId;
/**
* 单元名
*/
@NotBlank(message = "单元名不能为空")
private String unitName;
/**
* 所属家庭Id
*/
@NotBlank(message = "家庭Id不能为空")
private String homeId;
/**
* 房间名
*/
@NotBlank(message = "房间名不能为空")
private String homeName;
/**
* 详细地址
*/
@NotBlank(message = "家庭地址不能为空")
private String address;
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空")
private String name;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
private String mobile;
/**
* 身份证号
*/
private String idCard;
/**
* 来访事由
*/
private String comeReason;
/**
* 人脸照片
*/
private String faceImg;
}

20
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailFormDTO.java

@ -0,0 +1,20 @@
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;
/**
* @program: epmet-cloud
* @description:
* @author: wangtong
* @create: 2022-08-03 14:15
**/
@Data
public class CollectDetailFormDTO extends PageFormDTO implements Serializable {
@NotBlank(message = "id不可为空")
private String id;
}

76
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectDetailResultDTO.java

@ -0,0 +1,76 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 收集居民信息入参
*/
@Data
public class CollectDetailResultDTO implements Serializable {
private String id;
/**
* 组织Id
*/
private String agencyId;
/**
* 所属小区ID
*/
private String villageId;
private String villageName;
/**
* 所属楼宇Id
*/
private String buildId;
private String buildName;
/**
* 单元id
*/
private String unitId;
private String unitName;
/**
* 所属家庭Id
*/
private String homeId;
private String homeName;
/**
* 详细地址
*/
private String address;
/**
* 房屋状态
*/
private String houseType;
/**
* 户主姓名
*/
private String houseHolderName;
/**
* 居住成员人数
*/
private Integer totalResi;
/**
* 审核状态0待审核 1未通过 2已通过
*/
private String checkState;
/**
* 审核原因
*/
private String checkReason;
private List<IcResiCollectMemDetailDTO> memberList;
}

20
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectPageFormDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @program: epmet-cloud
* @description:
* @author: wangtong
* @create: 2022-08-03 14:15
**/
@Data
public class CollectPageFormDTO extends PageFormDTO implements Serializable {
private String customerId;
private String userId;
}

65
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectCheckFormDTO.java

@ -0,0 +1,65 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* 居民信息采集-审核入参
*
* @author wgf
* @since v1.0.0 2022-08-02
*/
@Data
public class IcResiCollectCheckFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@NotBlank(message = "Id不能为空")
private String id;
/**
* 审核状态0待审核 1未通过 2已通过
*/
@NotBlank(message = "审核状态不能为空")
private String checkState;
/**
* 审核原因
*/
private String checkReason;
/**
* 单元号
*/
private String buildingUnitId;
/**
* 房间号
*/
private String doorName;
/**
* 客户ID(审核人)
*/
private String customerId;
/**
* 员工ID(审核人)
*/
private String userId;
/**
* 员工姓名(审核人)
*/
private String realName;
}

28
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectGetDetailFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 居民信息采集-获取房屋信息
*
* @author wgf
* @since v1.0.0 2022-08-02
*/
@Data
public class IcResiCollectGetDetailFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@NotBlank(message = "Id不能为空")
private String id;
}

93
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemDetailDTO.java

@ -0,0 +1,93 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* 家庭成员信息
* 前端做校验
*/
@Data
public class IcResiCollectMemDetailDTO implements Serializable {
/**
* 居住成员1姓名
*/
// @NotBlank(message = "姓名不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String name;
/**
* 居住成员1身份证号
*/
// @NotBlank(message = "身份证号不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String idNum;
/**
* 居住成员1手机号
*/
// @NotBlank(message = "手机号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String mobile;
/**
* 居住成员1是否参加几轮全员核算检测数字1-10
*/
// @NotBlank(message = "核算检测情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String heSuanCount;
/**
* 居住成员1新冠疫苗接种情况;1:已全程接种2未全程接种0未接种
*/
// @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private Integer ymjz;
/**
* 户籍所在地
*/
private String domicilePlace;
/**
* 户籍所在地行政地区编码
*/
private String domicilePlaceCode;
/**
* 户籍所在地行政地区编码全路径包含自己,英文逗号隔开例如37,3702,370203
*/
private String domicilePlaceCodePath;
/**
* 学校或公司
*/
private String workPlace;
/**
* 备注
*/
private String remark;
/**
* 社区居民信息登记-查询返参用
*/
private String id;
/**
* 与房主关系
*/
private String relationship;
/**
* 人脸头像
*/
private String faceImg;
/**
* 是否是党员
*/
private String isParty;
/**
* 客户ID
*/
private String customerId;
}

11
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java

@ -73,4 +73,15 @@ public class IcResiCollectMemFormDTO implements Serializable {
* 社区居民信息登记-查询返参用
*/
private String id;
/**
* 与房主关系
*/
private String relationship;
/**
* 人脸头像
*/
private String faceImg;
}

105
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java

@ -0,0 +1,105 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* 收集居民信息入参
*/
@Data
public class SaveCollectFormDTO implements Serializable {
/**
* id
*/
private String id;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 内部internal外部external
*/
private String origin;
/**
* 网格ID_后端接口赋值
*/
private String gridId;
/**
* 组织Id_后端接口赋值
*/
private String agencyId;
/**
* 组织的pid_后端接口赋值
*/
private String pids;
/**
* 所属小区ID
*/
@NotBlank(message = "小区不能为空")
private String villageId;
@NotBlank(message = "小区名不能为空")
private String villageName;
/**
* 所属楼宇Id
*/
@NotBlank(message = "楼栋不能为空")
private String buildId;
@NotBlank(message = "楼栋名不能为空")
private String buildName;
/**
* 单元id
*/
@NotBlank(message = "单元不能为空")
private String unitId;
@NotBlank(message = "单元名不能为空")
private String unitName;
/**
* 所属家庭Id
*/
private String homeId;
@NotBlank(message = "家庭名不能为空")
private String homeName;
/**
* 详细地址
*/
@NotBlank(message = "家庭地址不能为空")
private String address;
/**
* 1自有0租住
*/
@NotBlank(message = "房子属于自有还是租住?")
private String houseType;
/**
* 户主姓名
*/
@NotBlank(message = "户主姓名不能为空")
private String houseHolderName;
/**
* 居住成员人数
*/
@NotNull(message = "居住成员人数不能为空")
private Integer totalResi;
@NotEmpty(message = "成员信息不能为空")
private List<IcResiCollectMemFormDTO> memberList;
}

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitListFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
/**
* @Author wgf
* @DateTime 2022/8/5 8:00
* @DESC
*/
@Data
public class VisitListFormDTO extends PageFormDTO {
private static final long serialVersionUID = 2106773724057183577L;
private String startTime;
private String endTime;
private String userId;
private String customerId;
private String orgId;
}

57
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectHouseInfoResultDTO.java

@ -0,0 +1,57 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author wgf
* @DateTime 2022/3/18 19:00
* @DESC
*/
@Data
public class CollectHouseInfoResultDTO implements Serializable {
private static final long serialVersionUID = -6692672375850864451L;
/**
* label
*/
private String label;
/**
* 所属小区id
*/
private String neighborHoodId;
/**
* 所属小区姓名
*/
private String neighborHoodName;
/**
* 所属楼栋id
*/
private String buildingId;
/**
* 所属楼栋名称
*/
private String buildName;
/**
* 所属单元id
*/
private String buildingUnitId;
/**
* 所属单元名称
*/
private String buildingUnitName;
/**
* 门牌号
*/
private String doorName;
/**
* 房主姓名
*/
private String ownerName;
}

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java

@ -54,7 +54,7 @@ public class CollectListMemberExcelResultDTO implements Serializable {
/**
* 学校或公司
*/
@Excel(name = "单位或学校", width = 60)
@Excel(name = "单位名称", width = 60)
private String workPlace;
/**

23
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java

@ -24,6 +24,9 @@ public class CollectListResultDTO implements Serializable {
// @JsonIgnore
private String id;
// 组织Id
private String agencyId;
/**
* 居住地址
*/
@ -39,6 +42,16 @@ public class CollectListResultDTO implements Serializable {
*/
private Integer totalResi;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 审核状态0待审核 1审核不通过 2审核通过
*/
private String checkState;
private String domicilePlace;
private List<CollectListMemberResultDTO> list;
@ -95,5 +108,15 @@ public class CollectListResultDTO implements Serializable {
* 备注
*/
private String remark;
/**
* 与户主关系
*/
private String relationship;
/**
* 人脸照片
*/
private String faceImg;
}
}

56
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectPageListDTO.java

@ -0,0 +1,56 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/3/18 19:00
* @DESC
*/
@Data
public class CollectPageListDTO implements Serializable {
private static final long serialVersionUID = -6692672375850864451L;
private String id;
/**
* 居住地址
*/
private String address;
/**
* 居民resi 访客visitor
*/
private String type;
/**
* 居民登记/访客登记
*/
private String title;
/**
* 审核状态0待审核 1审核不通过 2审核通过
*/
private String checkState;
/**
* 审核状态名称
*/
private String checkStateName;
/**
* 审核原因
*/
private String checkReason;
/**
* 提交时间
*/
private String createTime;
}

82
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java

@ -10,14 +10,8 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
import com.epmet.dto.form.LatestSubmitCollectFormDTO;
import com.epmet.dto.form.ResiCollectFormDTO;
import com.epmet.dto.result.CollectListExcelResultDTO;
import com.epmet.dto.result.CollectListMemberExcelResultDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.IcResiCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -156,4 +150,76 @@ public class IcResiCollectController {
ValidatorUtils.validateEntity(formDTO,LatestSubmitCollectFormDTO.AddUserInternalGroup.class);
return new Result<LatestCollectResDTO>().ok(icResiCollectService.latestSubmit(formDTO));
}
/**
* 信息采集-审核
* @param formDTO
* @param tokenDto
* @return
*/
@PostMapping("collectCheck")
public Result collectCheck(@RequestBody IcResiCollectCheckFormDTO formDTO, @LoginUser TokenDto tokenDto) {
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
icResiCollectService.collectCheck(formDTO,tokenDto);
return new Result();
}
/**
* @describe: 扫描社区/小区二维码进行居民信息登记
* @author wangtong
* @date 2022/8/2 16:01
* @params [formDTO]
* @return com.epmet.commons.tools.utils.Result
*/
@NoRepeatSubmit
@PostMapping("saveCollectInfo")
public Result saveCollectInfo(@RequestBody SaveCollectFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO);
formDTO.setOrigin("internal");//固定为内部
return icResiCollectService.saveCollectInfo(formDTO);
}
/**
* @describe: 我的登记列表
* @author wangtong
* @date 2022/8/3 13:59
* @params [dto]
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData<com.epmet.dto.result.CollectPageListDTO>>
*/
@PostMapping("getCollectPage")
public Result<PageData<CollectPageListDTO>> getCollectPage(@LoginUser TokenDto tokenDto,@RequestBody CollectPageFormDTO dto) {
dto.setUserId(tokenDto.getUserId());
dto.setCustomerId(tokenDto.getCustomerId());
PageData<CollectPageListDTO> page = icResiCollectService.getCollectPage(dto);
return new Result<PageData<CollectPageListDTO>>().ok(page);
}
/**
* 信息采集-审核通过-新增房屋-复显房屋信息
* @param formDTO
* @param tokenDto
* @return
*/
@PostMapping("getHouseDetailByCollect")
public Result<CollectHouseInfoResultDTO> getHouseDetailByCollect(@RequestBody IcResiCollectGetDetailFormDTO formDTO, @LoginUser TokenDto tokenDto) {
return new Result<CollectHouseInfoResultDTO>().ok(icResiCollectService.getHouseDetailByCollect(formDTO));
}
/**
* @describe: 查看居民采集信息详情
* @author wangtong
* @date 2022/8/3 15:05
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("getCollectDetail")
public Result getCollectDetail(@RequestBody CollectDetailFormDTO dto) {
ValidatorUtils.validateEntity(dto);
return icResiCollectService.getCollectDetail(dto);
}
}

137
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java

@ -0,0 +1,137 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
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.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.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.excel.IcResiCollectVisitorExcel;
import com.epmet.service.IcResiCollectVisitorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@RestController
@RequestMapping("icResiCollectVisitor")
public class IcResiCollectVisitorController {
@Autowired
private IcResiCollectVisitorService icResiCollectVisitorService;
@RequestMapping("page")
public Result<PageData<IcResiCollectVisitorDTO>> page(@RequestParam Map<String, Object> params){
// PageData<IcResiCollectVisitorDTO> page = icResiCollectVisitorService.page(params);
PageData<IcResiCollectVisitorDTO> page = icResiCollectVisitorService.getPhrasePage(params);
return new Result<PageData<IcResiCollectVisitorDTO>>().ok(page);
}
/**
* Desc: 访客记录列表
* @param formDTO
* @param tokenDto
* @author wgf
* @date 2022/8/5 8:23
*/
@PostMapping("list")
// @MaskResponse(fieldNames = { "memberIdNum", "memberMobile" },
// fieldsMaskType = { MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE })
public Result<PageData<IcResiCollectVisitorDTO>> getVisitorList(@RequestBody VisitListFormDTO formDTO, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO,CollectListFormDTO.CollectListForm.class);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<PageData<IcResiCollectVisitorDTO>>().ok(icResiCollectVisitorService.getVisitorList(formDTO));
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<IcResiCollectVisitorDTO> get(@PathVariable("id") String id){
IcResiCollectVisitorDTO data = icResiCollectVisitorService.get(id);
return new Result<IcResiCollectVisitorDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcResiCollectVisitorDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icResiCollectVisitorService.save(dto);
return new Result();
}
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcResiCollectVisitorDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icResiCollectVisitorService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icResiCollectVisitorService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<IcResiCollectVisitorDTO> list = icResiCollectVisitorService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, IcResiCollectVisitorExcel.class);
}
/**
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:33
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
@NoRepeatSubmit
@PostMapping("saveInfo")
public Result saveInfo(@RequestBody SaveCollectVisitorFormDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto);
return icResiCollectVisitorService.saveInfo(dto);
}
/**
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:41
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("getVisitorDetail")
public Result getVisitorDetail(@RequestBody CollectDetailFormDTO dto) {
ValidatorUtils.validateEntity(dto);
return icResiCollectVisitorService.getVisitorDetail(dto);
}
}

21
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java

@ -2,7 +2,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectGetDetailFormDTO;
import com.epmet.dto.result.CollectHouseInfoResultDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.result.CollectPageListDTO;
import com.epmet.entity.IcResiCollectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -43,4 +46,20 @@ public interface IcResiCollectDao extends BaseDao<IcResiCollectEntity> {
* @return
*/
List<String> selectLastSubmitId(@Param("customerId") String customerId, @Param("userId") String userId);
}
/**
* @describe: 我的登记列表
* @author wangtong
* @date 2022/8/3 14:19
* @params [customerId]
* @return java.util.List<com.epmet.dto.result.CollectPageListDTO>
*/
List<CollectPageListDTO> getCollectPage(@Param("customerId") String customerId, @Param("userId") String userId);
/**
* 获取房屋信息
* @param formDTO
* @return
*/
CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO);
}

38
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java

@ -0,0 +1,38 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Mapper
public interface IcResiCollectVisitorDao extends BaseDao<IcResiCollectVisitorEntity> {
/**
* 条件查询
* @param params
* @return
*/
List<IcResiCollectVisitorDTO> getPhrasePage(Map<String, Object> params);
/**
* Desc: 查询访客信息
* @param formDTO
* @author wgf
* @date 2022/8/5 8:41
*/
List<IcResiCollectVisitorDTO> getCollectList(VisitListFormDTO formDTO);
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java

@ -1,6 +1,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.IcResiCollectMemDetailDTO;
import com.epmet.dto.form.IcResiCollectMemFormDTO;
import com.epmet.entity.IcResiMemberEntity;
import org.apache.ibatis.annotations.Mapper;
@ -18,4 +19,12 @@ import java.util.List;
public interface IcResiMemberDao extends BaseDao<IcResiMemberEntity> {
List<IcResiCollectMemFormDTO> selectMySubmit(@Param("latestResiCollectId") String latestResiCollectId, @Param("userId")String userId);
}
/**
* 审核在用
* @param collectId
* @return
*/
List<IcResiCollectMemDetailDTO> selectListByCollectId(@Param("collectId") String collectId);
}

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

@ -86,4 +86,14 @@ public class IcResiCollectEntity extends BaseEpmetEntity {
private String buildName;
private String unitName;
private String homeName;
/**
* 审核状态0待审核 1未通过 2已通过
*/
private String checkState;
/**
* 审核原因
*/
private String checkReason;
}

111
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectVisitorEntity.java

@ -0,0 +1,111 @@
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-08-02
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_resi_collect_visitor")
public class IcResiCollectVisitorEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 组织Id
*/
private String agencyId;
/**
* 组织的pids
*/
private String pids;
/**
* 所属小区ID
*/
private String villageId;
/**
* 所属小区名称
*/
private String villageName;
/**
* 所属楼宇Id
*/
private String buildId;
/**
* 所属楼宇名称
*/
private String buildName;
/**
* 单元id
*/
private String unitId;
/**
* 单元名
*/
private String unitName;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 房间名
*/
private String homeName;
/**
* 详细地址
*/
private String address;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 身份证号
*/
private String idCard;
/**
* 来访事由
*/
private String comeReason;
/**
* 人脸照片
*/
private String faceImg;
}

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

@ -77,4 +77,14 @@ public class IcResiMemberEntity extends BaseEpmetEntity {
* 备注
*/
private String remark;
/**
* 与房主关系
*/
private String relationship;
/**
* 人脸头像
*/
private String faceImg;
}

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

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

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

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

90
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiCollectVisitorExcel.java

@ -0,0 +1,90 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Data
public class IcResiCollectVisitorExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id customer.id")
private String customerId;
@Excel(name = "网格ID")
private String gridId;
@Excel(name = "组织Id")
private String agencyId;
@Excel(name = "组织的pids")
private String pids;
@Excel(name = "所属小区ID;")
private String villageId;
@Excel(name = "所属小区名称")
private String villageName;
@Excel(name = "所属楼宇Id")
private String buildId;
@Excel(name = "所属楼宇名称")
private String buildName;
@Excel(name = "单元id")
private String unitId;
@Excel(name = "单元名")
private String unitName;
@Excel(name = "所属家庭Id")
private String homeId;
@Excel(name = "房间名")
private String homeName;
@Excel(name = "姓名")
private String name;
@Excel(name = "手机号")
private String mobile;
@Excel(name = "身份证号")
private String idCard;
@Excel(name = "来访事由")
private String comeReason;
@Excel(name = "人脸照片")
private String faceImg;
@Excel(name = "删除标识 0.未删除 1.已删除")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

25
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java

@ -3,11 +3,10 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.OrgInfoPointFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommunityInfoResultDTO;
import com.epmet.dto.result.GridInfoResultDTO;
import com.epmet.dto.result.IcHouseInfoCollectResultDTO;
import com.epmet.feign.fallback.GovOrgFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@ -85,4 +84,24 @@ public interface GovOrgFeignClient {
@GetMapping("/gov/org/customeragency/getCommunityInfoByUserId/{userId}")
Result<CommunityInfoResultDTO> getCommunityInfoByUserId(@PathVariable("userId") String userId);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.CommunityInfoResultDTO>
* @Author wgf
* @Description 更新房屋新
* @Date 2020/4/26 23:16
**/
@PostMapping("/gov/org/house/updateCollect")
Result<CommunityInfoResultDTO> updateCollect(CollectHouseFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.CommunityInfoResultDTO>
* @Author wgf
* @Description 获取房屋信息
* @Date 2020/4/26 23:16
**/
@PostMapping("/gov/org/house/getHouseInfoToCollect")
Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO);
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java

@ -4,11 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.OrgInfoPointFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommunityInfoResultDTO;
import com.epmet.dto.result.GridInfoResultDTO;
import com.epmet.dto.result.IcHouseInfoCollectResultDTO;
import com.epmet.feign.GovOrgFeignClient;
import org.springframework.stereotype.Component;
@ -51,4 +50,14 @@ public class GovOrgFeignClientFallBack implements GovOrgFeignClient {
public Result<CommunityInfoResultDTO> getCommunityInfoByUserId(String userId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCommunityInfoByUserId",userId);
}
@Override
public Result<CommunityInfoResultDTO> updateCollect(CollectHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "updateCollect",formDTO);
}
@Override
public Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getHouseInfoToCollect",formDTO);
}
}

30
epmet-user/epmet-user-server/src/main/java/com/epmet/redis/IcResiCollectVisitorRedis.java

@ -0,0 +1,30 @@
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Component
public class IcResiCollectVisitorRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

53
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java

@ -2,11 +2,12 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
import com.epmet.dto.form.LatestSubmitCollectFormDTO;
import com.epmet.dto.form.ResiCollectFormDTO;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CollectHouseInfoResultDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.result.CollectPageListDTO;
import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.entity.IcResiCollectEntity;
@ -56,4 +57,46 @@ public interface IcResiCollectService extends BaseService<IcResiCollectEntity> {
* @return
*/
CollectListResultDTO detail(CollectListFormDTO formDTO);
}
/**
* 信息登记审核
* @param formDTO
* @return
*/
void collectCheck(IcResiCollectCheckFormDTO formDTO, TokenDto tokenDto);
/**
* @describe: 扫描社区/小区二维码进行居民信息登记
* @author wangtong
* @date 2022/8/2 17:14
* @params [formDTO]
* @return com.epmet.commons.tools.utils.Result
*/
Result saveCollectInfo(SaveCollectFormDTO formDTO);
/**
* @describe: 我的登记列表
* @author wangtong
* @date 2022/8/3 14:14
* @params [dto]
* @return com.epmet.commons.tools.page.PageData<com.epmet.dto.result.CollectPageListDTO>
*/
PageData<CollectPageListDTO> getCollectPage(CollectPageFormDTO dto);
/**
* @describe: 查看居民采集信息详情
* @author wangtong
* @date 2022/8/3 15:08
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
Result getCollectDetail(CollectDetailFormDTO dto);
/**
* 信息采集-获取房屋信息
* @param formDTO
* @return
*/
CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO);
}

111
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java

@ -0,0 +1,111 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import java.util.List;
import java.util.Map;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
public interface IcResiCollectVisitorService extends BaseService<IcResiCollectVisitorEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcResiCollectVisitorDTO>
* @author generator
* @date 2022-08-02
*/
PageData<IcResiCollectVisitorDTO> page(Map<String, Object> params);
/**
* 分页条件查询
* @param params
* @return
*/
PageData<IcResiCollectVisitorDTO> getPhrasePage(Map<String, Object> params);
PageData<IcResiCollectVisitorDTO> getVisitorList(VisitListFormDTO formDTO);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcResiCollectVisitorDTO>
* @author generator
* @date 2022-08-02
*/
List<IcResiCollectVisitorDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcResiCollectVisitorDTO
* @author generator
* @date 2022-08-02
*/
IcResiCollectVisitorDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-08-02
*/
void save(IcResiCollectVisitorDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-08-02
*/
void update(IcResiCollectVisitorDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-08-02
*/
void delete(String[] ids);
/**
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:44
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
Result saveInfo(SaveCollectVisitorFormDTO dto);
/**
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:43
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
Result getVisitorDetail(CollectDetailFormDTO dto);
}

337
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java

@ -5,6 +5,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.RelationshipEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
@ -12,18 +13,24 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiCollectDao;
import com.epmet.dao.IcResiMemberDao;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcResiCollectEntity;
import com.epmet.entity.IcResiMemberEntity;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.entity.IcUserChangeRecordEntity;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.IcResiCollectService;
import com.epmet.service.IcUserChangeRecordService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
@ -51,6 +58,19 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private IcResiMemberDao icResiMemberDao;
@Autowired
private IcResiUserDao icResiUserDao;
@Autowired
private IcResiCollectDao icResiCollectDao;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private IcUserChangeRecordService icUserChangeRecordService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -81,7 +101,7 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin);
}
}
@ -130,7 +150,64 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
return null;
}
private IcNeighborHoodDTO queryIcNeighborHood(String villageId) {
@Override
@Transactional(rollbackFor = Exception.class)
public Result saveCollectInfo(SaveCollectFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getId())) {
//插入主表
IcResiCollectEntity entity = ConvertUtils.sourceToTarget(formDTO, IcResiCollectEntity.class);
//根据小区id查询网格相关信息
IcNeighborHoodDTO neighborHoodDTO = queryIcNeighborHood(formDTO.getVillageId());
entity.setGridId(neighborHoodDTO.getGridId());
entity.setAgencyId(neighborHoodDTO.getAgencyId());
entity.setPids(neighborHoodDTO.getAgencyPids());
entity.setCustomerId(neighborHoodDTO.getCustomerId());
entity.setCheckState("0");//待审核
baseDao.insert(entity);
//插入成员表
List<IcResiMemberEntity> memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
memberList.forEach(mem -> {
if (StringUtils.isNotBlank(mem.getName()) || StringUtils.isNotBlank(mem.getIdNum())) {
//姓名或份身份证号不为空时插入
mem.setCustomerId(neighborHoodDTO.getCustomerId());
mem.setIcResiCollectId(entity.getId());
icResiMemberDao.insert(mem);
}
});
} else {
IcResiCollectEntity collectInfo = baseDao.selectByAddress(formDTO.getAddress());
//更新主表
baseDao.updateRec(collectInfo.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi(),null);
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(collectInfo.getId());
saveOrUpdateMem(newMemberList, memMap,collectInfo);
}
return new Result().ok("提交成功");
}
@Override
public PageData<CollectPageListDTO> getCollectPage(CollectPageFormDTO dto) {
PageHelper.startPage(dto.getPageNo(), dto.getPageSize());
List<CollectPageListDTO> list = baseDao.getCollectPage(dto.getCustomerId(),dto.getUserId());
PageInfo<CollectPageListDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public Result getCollectDetail(CollectDetailFormDTO dto) {
IcResiCollectEntity entity = baseDao.selectById(dto.getId());
if(null == entity){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "暂无查询到信息","暂无查询到信息");
}
CollectDetailResultDTO result = ConvertUtils.sourceToTarget(entity, CollectDetailResultDTO.class);
//查询成员信息
List<IcResiCollectMemDetailDTO> memberList = icResiMemberDao.selectListByCollectId(dto.getId());
result.setMemberList(memberList);
return new Result().ok(result);
}
public IcNeighborHoodDTO queryIcNeighborHood(String villageId) {
Result<IcNeighborHoodDTO> res = govOrgOpenFeignClient.getIcNeighbordhoodById(villageId);
if (!res.success() || null == res.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息查询异常", "小区信息查询异常");
@ -146,12 +223,12 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
return memMap;
}
private void saveOrUpdateMem(List<IcResiMemberEntity> newMemberList, Map<String, IcResiMemberEntity> memMap, String originIcResiCollectId) {
private void saveOrUpdateMem(List<IcResiMemberEntity> newMemberList, Map<String, IcResiMemberEntity> memMap, IcResiCollectEntity collectInfo) {
for (IcResiMemberEntity entity : newMemberList) {
if(StringUtils.isNotBlank(entity.getIdNum())){
if (MapUtils.isNotEmpty(memMap) && memMap.containsKey(entity.getIdNum())) {
entity.setIcResiCollectId(originIcResiCollectId);
entity.setCustomerId(memMap.get(entity.getIdNum()).getCustomerId());
entity.setIcResiCollectId(collectInfo.getId());
entity.setCustomerId(collectInfo.getCustomerId());
entity.setId(memMap.get(entity.getIdNum()).getId());
icResiMemberDao.updateById(entity);
continue;
@ -161,7 +238,8 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
if (StringUtils.isNotBlank(entity.getName()) || StringUtils.isNotBlank(entity.getIdNum())) {
//姓名或份身份证号不为空时插入
entity.setId(null);
entity.setIcResiCollectId(originIcResiCollectId);
entity.setCustomerId(collectInfo.getCustomerId());
entity.setIcResiCollectId(collectInfo.getId());
icResiMemberDao.insert(entity);
}
}
@ -197,7 +275,7 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin);
}
}
@ -254,4 +332,245 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
resDTO.setUnitName(StringUtils.isBlank(entity.getUnitName()) ? StrConstant.EPMETY_STR : entity.getUnitName());
resDTO.setHomeName(StringUtils.isBlank(entity.getHomeName()) ? StrConstant.EPMETY_STR : entity.getHomeName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void collectCheck(IcResiCollectCheckFormDTO formDTO, TokenDto tokenDto) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId());
formDTO.setRealName(staffInfo.getRealName());
// 获取登记表信息
IcResiCollectEntity icResiCollectEntity = baseDao.selectById(formDTO.getId());
// 获取登记的成员
List<IcResiCollectMemDetailDTO> memberList = icResiMemberDao.selectListByCollectId(formDTO.getId());
// 更新审核信息
icResiCollectEntity.setCheckState(formDTO.getCheckState());
icResiCollectEntity.setCheckReason(formDTO.getCheckReason());
baseDao.updateById(icResiCollectEntity);
// 审核状态:0待审核 1未通过 2已通过
if("2".equals(formDTO.getCheckState())){
if("other".equals(icResiCollectEntity.getHomeId())){
// 新增房屋(新增房屋操作已在审核接口之前,前端调用新增接口实现)
// 更新登记表房屋ID
icResiCollectEntity = updateHomeId(icResiCollectEntity,formDTO);
for(int i = 0 ; i < memberList.size() ; i++){
// 根据身份证号和房屋ID获取人员信息
IcResiUserEntity userIdCardEntity = queryOriginUserByIdCard(memberList.get(i).getIdNum(),icResiCollectEntity.getCustomerId());
if(userIdCardEntity != null){
// 已存在人员 人员房屋不一致(更新人员信息和变更记录)
updateUserInfo(icResiCollectEntity,memberList.get(i),true,formDTO,userIdCardEntity);
}else{
// 不存在人员
insertUserInfo(icResiCollectEntity,memberList.get(i),formDTO);
}
}
}else{
// 更新房屋
updateHouseInfo(icResiCollectEntity);
for(int i = 0 ; i < memberList.size() ; i++){
// 根据身份证号和房屋ID获取人员信息
IcResiUserEntity userIdCardEntity = queryOriginUserByIdCard(memberList.get(i).getIdNum(),icResiCollectEntity.getCustomerId());
Map<String, IcResiUserEntity> userMap = queryOriginUserByHomeId(icResiCollectEntity.getHomeId(),icResiCollectEntity.getCustomerId());
if(userIdCardEntity != null){
// 已存在人员
if(userMap.containsKey(memberList.get(i).getIdNum())){
// 人员房屋一致(只更新人员信息)
updateUserInfo(icResiCollectEntity,memberList.get(i),false,formDTO,userIdCardEntity);
}else{
// 人员房屋不一致(更新人员信息和变更记录)
updateUserInfo(icResiCollectEntity,memberList.get(i),true,formDTO,userIdCardEntity);
}
}else{
// 不存在人员
insertUserInfo(icResiCollectEntity,memberList.get(i),formDTO);
}
}
}
}
}
/**
* 更新登记表房屋ID
* @param icResiCollectEntity
* @param formDTO
* @return
*/
private IcResiCollectEntity updateHomeId(IcResiCollectEntity icResiCollectEntity,IcResiCollectCheckFormDTO formDTO){
// fegin获取房屋信息
GetHouseInfoToCollectFormDTO getHouseInfoToCollectFormDTO = new GetHouseInfoToCollectFormDTO();
getHouseInfoToCollectFormDTO.setBuildingUnitId(formDTO.getBuildingUnitId());
getHouseInfoToCollectFormDTO.setDoorName(formDTO.getDoorName());
Result<IcHouseInfoCollectResultDTO> resultDTOResult = govOrgFeignClient.getHouseInfoToCollect(getHouseInfoToCollectFormDTO);
IcHouseInfoCollectResultDTO icHouseInfoCollectResultDTO = resultDTOResult.getData();
// 新增房屋后需要collect更新上房屋ID
// log
icResiCollectEntity.setHomeId(icHouseInfoCollectResultDTO.getId());
baseDao.updateById(icResiCollectEntity);
return icResiCollectEntity;
}
/**
* 更新房屋信息
* @param icResiCollectEntity
*/
private void updateHouseInfo(IcResiCollectEntity icResiCollectEntity){
CollectHouseFormDTO collectHouseFormDTO = new CollectHouseFormDTO();
collectHouseFormDTO.setId(icResiCollectEntity.getHomeId());
collectHouseFormDTO.setOwnerName(icResiCollectEntity.getHouseHolderName());
collectHouseFormDTO.setRentFlag(Integer.parseInt(icResiCollectEntity.getHouseType()));
collectHouseFormDTO.setCustomerId(icResiCollectEntity.getCustomerId());
collectHouseFormDTO.setResiNumber(icResiCollectEntity.getTotalResi());
govOrgFeignClient.updateCollect(collectHouseFormDTO);
}
/**
* 更新人员信息
* @param icResiCollectEntity 登记信息
* @param icResiCollectMemDetailDTO 登记城阳信息
* @param isUpdateLog 是否更新记录
* @param formDTO 入参
* @param userEntity 根据身份证号查询到的user信息
*/
private void updateUserInfo(IcResiCollectEntity icResiCollectEntity,IcResiCollectMemDetailDTO icResiCollectMemDetailDTO,Boolean isUpdateLog,
IcResiCollectCheckFormDTO formDTO,IcResiUserEntity userEntity){
// 这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户
if (RelationshipEnum.SELF.getCode().equals(icResiCollectMemDetailDTO.getRelationship())) {
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId());
wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode());
List<IcResiUserEntity> entityList = icResiUserDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(entityList)) {
String errorMsg = "房屋下已存在户主";
throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg);
}
}
userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身
userEntity.setAgencyId(icResiCollectEntity.getAgencyId());
userEntity.setGridId(icResiCollectEntity.getGridId());
userEntity.setVillageId(icResiCollectEntity.getVillageId());
userEntity.setBuildId(icResiCollectEntity.getBuildId());
userEntity.setUnitId(icResiCollectEntity.getUnitId());
userEntity.setHomeId(icResiCollectEntity.getHomeId());
userEntity.setName(icResiCollectMemDetailDTO.getName());
userEntity.setMobile(icResiCollectMemDetailDTO.getMobile());
userEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum());
userEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship());
userEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace());
userEntity.setRemarks(icResiCollectMemDetailDTO.getRemark());
userEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace());
icResiUserDao.updateById(userEntity);
// 判断是否需要更新记录
if(isUpdateLog){
//变更记录表
IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity();
changeRecordEntity.setCustomerId(icResiCollectEntity.getCustomerId());
changeRecordEntity.setOperatorId(formDTO.getUserId());
changeRecordEntity.setIcUserId(userEntity.getId());
changeRecordEntity.setOperatorName(formDTO.getRealName());
changeRecordEntity.setIcUserName(userEntity.getName());
changeRecordEntity.setType("update");
changeRecordEntity.setTypeName("修改");
changeRecordEntity.setBeforeChangeName("-");
changeRecordEntity.setAfterChangeName("-");
changeRecordEntity.setChangeTime(new java.util.Date());
icUserChangeRecordService.insert(changeRecordEntity);
}
}
/**
* 新增人员信息
* @param icResiCollectMemDetailDTO
*/
private void insertUserInfo(IcResiCollectEntity icResiCollectEntity,IcResiCollectMemDetailDTO icResiCollectMemDetailDTO,IcResiCollectCheckFormDTO formDTO){
// 这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户
if (RelationshipEnum.SELF.getCode().equals(icResiCollectMemDetailDTO.getRelationship())) {
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId());
wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode());
List<IcResiUserEntity> entityList = icResiUserDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(entityList)) {
String errorMsg = "房屋下已存在户主";
throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg);
}
}
// 新增人员
IcResiUserEntity userEntity = new IcResiUserEntity();
userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身
userEntity.setAgencyId(icResiCollectEntity.getAgencyId());
userEntity.setGridId(icResiCollectEntity.getGridId());
userEntity.setVillageId(icResiCollectEntity.getVillageId());
userEntity.setBuildId(icResiCollectEntity.getBuildId());
userEntity.setUnitId(icResiCollectEntity.getUnitId());
userEntity.setHomeId(icResiCollectEntity.getHomeId());
userEntity.setName(icResiCollectMemDetailDTO.getName());
userEntity.setMobile(icResiCollectMemDetailDTO.getMobile());
userEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum());
userEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship());
userEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace());
userEntity.setRemarks(icResiCollectMemDetailDTO.getRemark());
userEntity.setCustomerId(icResiCollectMemDetailDTO.getCustomerId());
userEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace());
icResiUserDao.insert(userEntity);
//变更记录表
IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity();
changeRecordEntity.setCustomerId(icResiCollectEntity.getCustomerId());
changeRecordEntity.setOperatorId(formDTO.getUserId());
changeRecordEntity.setIcUserId(userEntity.getId());
changeRecordEntity.setOperatorName(formDTO.getRealName());
changeRecordEntity.setIcUserName(userEntity.getName());
changeRecordEntity.setType("add");
changeRecordEntity.setTypeName("新增");
changeRecordEntity.setBeforeChangeName("-");
changeRecordEntity.setAfterChangeName("-");
changeRecordEntity.setChangeTime(new java.util.Date());
icUserChangeRecordService.insert(changeRecordEntity);
}
/**
* 获取人员信息
* @param idCard
* @return
*/
private IcResiUserEntity queryOriginUserByIdCard(String idCard,String customerId) {
LambdaQueryWrapper<IcResiUserEntity> query = new LambdaQueryWrapper<>();
query.eq(IcResiUserEntity::getIdCard, idCard);
query.eq(IcResiUserEntity::getCustomerId, customerId);
IcResiUserEntity originUser = icResiUserDao.selectOne(query);
return originUser;
}
private Map<String, IcResiUserEntity> queryOriginUserByHomeId(String homeId,String customerId) {
LambdaQueryWrapper<IcResiUserEntity> query = new LambdaQueryWrapper<>();
query.eq(IcResiUserEntity::getHomeId, homeId);
query.eq(IcResiUserEntity::getCustomerId, customerId);
List<IcResiUserEntity> originUserList = icResiUserDao.selectList(query);
Map<String, IcResiUserEntity> memMap = originUserList.stream().collect(Collectors.toMap(IcResiUserEntity::getIdCard, Function.identity()));
return memMap;
}
@Override
public CollectHouseInfoResultDTO getHouseDetailByCollect(IcResiCollectGetDetailFormDTO formDTO) {
CollectHouseInfoResultDTO collectHouseInfoResultDTO = baseDao.getHouseDetailByCollect(formDTO);
return collectHouseInfoResultDTO;
}
}

158
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java

@ -0,0 +1,158 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiCollectVisitorDao;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import com.epmet.redis.IcResiCollectVisitorRedis;
import com.epmet.service.IcResiCollectVisitorService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 居民信息采集-访客
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-02
*/
@Service
public class IcResiCollectVisitorServiceImpl extends BaseServiceImpl<IcResiCollectVisitorDao, IcResiCollectVisitorEntity> implements IcResiCollectVisitorService {
@Autowired
private IcResiCollectVisitorRedis icResiCollectVisitorRedis;
@Autowired
private IcResiCollectServiceImpl icResiCollectServiceImpl;
@Override
public PageData<IcResiCollectVisitorDTO> page(Map<String, Object> params) {
IPage<IcResiCollectVisitorEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcResiCollectVisitorDTO.class);
}
/**
* 条件查询
* @param params
* @return
*/
@Override
public PageData<IcResiCollectVisitorDTO> getPhrasePage(Map<String, Object> params) {
IPage<IcResiCollectVisitorDTO> page = getPage(params);
List<IcResiCollectVisitorDTO> list = baseDao.getPhrasePage(params);
return new PageData<>(list, page.getTotal());
}
/**
* Desc: 查询访客信息
* @param formDTO
* @author wgf
* @date 2022/8/5 8:23
*/
@Override
public PageData<IcResiCollectVisitorDTO> getVisitorList(VisitListFormDTO formDTO) {
PageData<IcResiCollectVisitorDTO> result = new PageData<>(new ArrayList<>(), 0);
if (StringUtils.isBlank(formDTO.getStartTime()) && StringUtils.isBlank(formDTO.getEndTime()) ){
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo){
throw new EpmetException("查询人员信息失败"+formDTO.getUserId());
}
formDTO.setOrgId(staffInfo.getAgencyId());
}
PageInfo<IcResiCollectVisitorDTO> pageList = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.getCollectList(formDTO));
result.setList(pageList.getList());
result.setTotal(Integer.parseInt(String.valueOf(pageList.getTotal())));
return result;
}
@Override
public List<IcResiCollectVisitorDTO> list(Map<String, Object> params) {
List<IcResiCollectVisitorEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcResiCollectVisitorDTO.class);
}
private QueryWrapper<IcResiCollectVisitorEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcResiCollectVisitorEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcResiCollectVisitorDTO get(String id) {
IcResiCollectVisitorEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcResiCollectVisitorDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcResiCollectVisitorDTO dto) {
IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcResiCollectVisitorDTO dto) {
IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result saveInfo(SaveCollectVisitorFormDTO dto) {
IcResiCollectVisitorEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCollectVisitorEntity.class);
//根据小区id查询网格相关信息
IcNeighborHoodDTO neighborHoodDTO = icResiCollectServiceImpl.queryIcNeighborHood(dto.getVillageId());
entity.setGridId(neighborHoodDTO.getGridId());
entity.setAgencyId(neighborHoodDTO.getAgencyId());
entity.setPids(neighborHoodDTO.getAgencyPids());
entity.setCustomerId(neighborHoodDTO.getCustomerId());
insert(entity);
return new Result().ok("提交成功");
}
@Override
public Result getVisitorDetail(CollectDetailFormDTO dto) {
IcResiCollectVisitorEntity entity = baseDao.selectById(dto.getId());
return new Result().ok(entity);
}
}

36
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.63__alter_collect.sql

@ -0,0 +1,36 @@
alter table ic_resi_collect add COLUMN `CHECK_STATE` varchar(1) DEFAULT NULL COMMENT '审核状态:0待审核 1审核不通过 2审核通过';
alter table ic_resi_collect add COLUMN `CHECK_REASON` varchar(255) DEFAULT NULL COMMENT '审核理由';
alter table ic_resi_member add COLUMN `RELATIONSHIP` varchar(10) DEFAULT NULL COMMENT '与户主关系';
alter table ic_resi_member add COLUMN `FACE_IMG` varchar(255) DEFAULT NULL COMMENT '人脸照片';
CREATE TABLE `ic_resi_collect_visitor` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id',
`GRID_ID` varchar(64) DEFAULT NULL COMMENT '网格ID',
`AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '组织Id',
`PIDS` varchar(255) DEFAULT NULL COMMENT '组织的pids',
`VILLAGE_ID` varchar(64) DEFAULT NULL COMMENT '所属小区ID;',
`VILLAGE_NAME` varchar(64) DEFAULT NULL COMMENT '所属小区名称',
`BUILD_ID` varchar(64) DEFAULT NULL COMMENT '所属楼宇Id',
`BUILD_NAME` varchar(64) DEFAULT NULL COMMENT '所属楼宇名称',
`UNIT_ID` varchar(64) DEFAULT NULL COMMENT '单元id',
`UNIT_NAME` varchar(64) DEFAULT NULL COMMENT '单元名',
`HOME_ID` varchar(64) DEFAULT NULL COMMENT '所属家庭Id',
`HOME_NAME` varchar(64) DEFAULT NULL COMMENT '房间名',
`ADDRESS` varchar(255) NOT NULL COMMENT '详细地址',
`NAME` varchar(64) NOT NULL COMMENT '姓名',
`MOBILE` varchar(15) NOT NULL COMMENT '手机号',
`ID_CARD` varchar(18) DEFAULT NULL COMMENT '身份证号',
`COME_REASON` varchar(255) DEFAULT NULL COMMENT '来访事由',
`FACE_IMG` varchar(255) DEFAULT NULL COMMENT '人脸照片',
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='居民信息采集-访客';

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

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

69
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml

@ -4,7 +4,7 @@
<mapper namespace="com.epmet.dao.IcResiCollectDao">
<select id="selectByAddress" parameterType="java.lang.String" resultType="com.epmet.entity.IcResiCollectEntity">
select c.id from ic_resi_collect c
select c.id,c.CUSTOMER_ID from ic_resi_collect c
where c.address=#{address}
and c.DEL_FLAG='0'
</select>
@ -16,6 +16,9 @@
<result property="address" column="address"/>
<result property="houseType" column="houseType"/>
<result property="totalResi" column="totalResi"/>
<result property="homeId" column="homeId"/>
<result property="checkState" column="checkState"/>
<result property="agencyId" column="agencyId"/>
<result property="domicilePlace" column="domicilePlace"></result>
<collection property="list" ofType="com.epmet.dto.result.CollectListResultDTO$CollectListMemberResultDTO" column="{id=id,domicilePlace=domicile_place}" select="selectMemberList"/>
</resultMap>
@ -26,6 +29,9 @@
c.ADDRESS AS address,
c.HOUSE_TYPE AS houseType,
c.TOTAL_RESI AS totalResi,
c.HOME_ID as homeId,
c.CHECK_STATE as checkState,
c.AGENCY_ID as agencyId,
#{domicilePlace} as domicile_place
FROM ic_resi_collect c
left join ic_resi_member m on(c.id=m.IC_RESI_COLLECT_ID and m.del_flag='0')
@ -61,7 +67,9 @@
m.DOMICILE_PLACE_CODE as domicilePlaceCode,
m.DOMICILE_PLACE_CODE_PATH as domicilePlaceCodePath,
m.WORK_PLACE as workPlace,
m.REMARK as remark
m.REMARK as remark,
m.RELATIONSHIP as relationship,
m.FACE_IMG as faceImg
from ic_resi_member m
where m.DEL_FLAG = 0
and m.IC_RESI_COLLECT_ID = #{id}
@ -85,7 +93,8 @@
<if test="updatedBy != null and updatedBy !=''">
UPDATED_BY = #{updatedBy},
</if>
UPDATED_TIME = NOW()
UPDATED_TIME = NOW(),
CHECK_STATE = '0'
WHERE
id = #{id}
</update>
@ -102,4 +111,56 @@
ORDER BY
m.UPDATED_TIME DESC
</select>
</mapper>
<select id="getCollectPage" resultType="com.epmet.dto.result.CollectPageListDTO">
select tot.*
from (select id,
'resi' as type,
'居民登记' as title,
ADDRESS,
CHECK_STATE,
case CHECK_STATE
when '0' then '待审核'
when '1' then '审核不通过'
when '2' then '审核通过'
else ''
end as checkStateName,
CHECK_REASON,
CREATED_TIME
from ic_resi_collect
where DEL_FLAG='0'
and CUSTOMER_ID=#{customerId}
and ( UPDATED_BY = #{userId} OR UPDATED_BY = #{userId} )
union
select id,
'visitor' as type,
'访客登记' as title,
ADDRESS,
'2' as checkState,
'审核通过' as checkStateName,
'' as checkReason,
CREATED_TIME
from ic_resi_collect_visitor
where DEL_FLAG='0'
and CUSTOMER_ID=#{customerId}
and ( UPDATED_BY = #{userId} OR UPDATED_BY = #{userId} ))tot
order by tot.CREATED_TIME desc
</select>
<select id="getHouseDetailByCollect" resultType="com.epmet.dto.result.CollectHouseInfoResultDTO"
parameterType="com.epmet.dto.form.IcResiCollectGetDetailFormDTO">
select
concat(VILLAGE_NAME,'-',BUILD_NAME) label,
VILLAGE_ID as neighborHoodId,
VILLAGE_NAME as neighborHoodName,
BUILD_ID as buildingId,
BUILD_NAME as buildName,
UNIT_ID as buildingUnitId,
UNIT_NAME as buildingUnitName,
HOME_NAME as doorName,
HOUSE_HOLDER_NAME as ownerName
from ic_resi_collect
where DEL_FLAG = 0
and ID = #{id}
</select>
</mapper>

108
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml

@ -0,0 +1,108 @@
<?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.IcResiCollectVisitorDao">
<resultMap type="com.epmet.entity.IcResiCollectVisitorEntity" id="icResiCollectVisitorMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="pids" column="PIDS"/>
<result property="villageId" column="VILLAGE_ID"/>
<result property="villageName" column="VILLAGE_NAME"/>
<result property="buildId" column="BUILD_ID"/>
<result property="buildName" column="BUILD_NAME"/>
<result property="unitId" column="UNIT_ID"/>
<result property="unitName" column="UNIT_NAME"/>
<result property="homeId" column="HOME_ID"/>
<result property="homeName" column="HOME_NAME"/>
<result property="name" column="NAME"/>
<result property="mobile" column="MOBILE"/>
<result property="idCard" column="ID_CARD"/>
<result property="comeReason" column="COME_REASON"/>
<result property="faceImg" column="FACE_IMG"/>
<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="getPhrasePage" resultType="com.epmet.dto.IcResiCollectVisitorDTO">
select
ID,
concat(VILLAGE_NAME,BUILD_NAME,UNIT_NAME,HOME_NAME) as address,
CUSTOMER_ID,
GRID_ID,
AGENCY_ID,
PIDS,
VILLAGE_ID,
VILLAGE_NAME,
BUILD_ID,
BUILD_NAME,
UNIT_ID,
UNIT_NAME,
HOME_ID,
HOME_NAME,
ADDRESS,
NAME,
MOBILE,
ID_CARD,
COME_REASON,
FACE_IMG,
DEL_FLAG,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME
from ic_resi_collect_visitor
where DEL_FLAG = '0'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
order by CREATED_TIME desc
</select>
<select id="getCollectList" resultType="com.epmet.dto.IcResiCollectVisitorDTO">
select
ID,
CUSTOMER_ID,
GRID_ID,
AGENCY_ID,
PIDS,
VILLAGE_ID,
VILLAGE_NAME,
BUILD_ID,
BUILD_NAME,
UNIT_ID,
UNIT_NAME,
HOME_ID,
HOME_NAME,
ADDRESS,
NAME,
MOBILE,
ID_CARD,
COME_REASON,
FACE_IMG,
DEL_FLAG,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME
from ic_resi_collect_visitor
where DEL_FLAG = '0'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test='orgId != null and orgId != "" '>
AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%')
</if>
order by CREATED_TIME desc
</select>
</mapper>

9
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml

@ -25,4 +25,11 @@
AND m.DEL_FLAG = '0'
AND ( m.CREATED_BY = #{userId} OR m.UPDATED_BY = #{userId} )
</select>
</mapper>
<select id="selectListByCollectId" resultType="com.epmet.dto.form.IcResiCollectMemDetailDTO">
select *
from ic_resi_member
where IC_RESI_COLLECT_ID =#{collectId}
and DEL_FLAG = '0'
order by CREATED_TIME asc
</select>
</mapper>

2
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -213,7 +213,7 @@
</foreach>
</if>
ORDER BY
IC_RESI_USER.GRID_ID ASC,
IC_RESI_USER.GRID_ID desc,
IC_RESI_USER.VILLAGE_ID ASC,
IC_RESI_USER.BUILD_ID ASC,
IC_RESI_USER.UNIT_ID ASC,

Loading…
Cancel
Save