Browse Source

Merge branch 'develop' of http://git.elinkit.com.cn:7070/r/epmet-cloud into 主线测试

dev
jianjun 3 years ago
parent
commit
4fae090288
  1. 2
      epmet-cloud-generator/src/main/resources/application.yml
  2. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
  3. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java
  4. 3
      epmet-gateway/src/main/resources/bootstrap.yml
  5. 36
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  6. 1
      epmet-module/gov-org/gov-org-server/Dockerfile
  7. 2
      epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
  8. BIN
      epmet-module/gov-org/gov-org-server/fonts/NotoSansSC-Light.otf
  9. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
  10. 41
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java
  11. 105
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java
  12. 37
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
  13. 88
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java
  14. 71
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
  15. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
  16. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
  17. 86
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiCollectEntity.java
  18. 56
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiMemberEntity.java
  19. 39
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
  20. 138
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
  21. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java
  22. 74
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
  23. 8
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml

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

@ -9,7 +9,7 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.1.140:3306/epmet_data_statistical?useUnicode=true&characterEncoding=UTF-8&useSSL=false
url: jdbc:mysql://118.190.150.119:43306/epmet_user?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: root
#oracle配置

4
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java

@ -440,4 +440,8 @@ public class RedisUtils {
public Long bitCount(String key, int start, int end) {
return redisTemplate.execute((RedisCallback<Long>) con -> con.bitCount(key.getBytes(), start, end));
}
public Long getTTL(String treeCacheKey) {
return redisTemplate.getExpire(treeCacheKey);
}
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java

@ -102,7 +102,7 @@ public class BarcodeUtils {
Graphics2D g = outImage.createGraphics();
g.drawImage(image, 0, 0, imageW, imageH, null);
g.setColor(QRCOLOR);
// g.setFont(new Font("微软雅黑", Font.BOLD, FONTSIZE));
g.setFont(new Font("Noto Sans SC Light", Font.BOLD, FONTSIZE));
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.setBackground(Color.white);
// 获取文字数量 按照字节展示

3
epmet-gateway/src/main/resources/bootstrap.yml

@ -499,11 +499,12 @@ epmet:
- /oper/customize/customerstartpage/homestartpage
- /epmet/point/mqCallback/**
- /tduck-api/**
#查询楼栋,单元,房屋
#居民信息采集:查询楼栋,单元,房屋,提交信息
- /gov/org/icneighborhood/open/list
- /gov/org/icbuilding/buildingoption
- /gov/org/icbuildingunit/unitoption
- /gov/org/ichouse/houseoption
- /epmetuser/icresicollect/save
# 外部应用认证,使用AccessToken等头进行认证
externalOpenUrls:
- /data/report/**

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

@ -12,8 +12,11 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
@ -60,6 +63,7 @@ import java.io.OutputStream;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.stream.Collectors;
/**
@ -95,6 +99,10 @@ public class GovOrgServiceImpl implements GovOrgService {
private IcBuildingDao icBuildingDao;
@Autowired
private EvaluationIndexService evaluationIndexService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private ExecutorService executorService;
/**
* @param staffId
@ -583,12 +591,34 @@ public class GovOrgServiceImpl implements GovOrgService {
@Override
public List<OrgTreeResultDTO> getAgencyTree(TokenDto tokenDto, SubOrgFormDTO formDTO) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (staffInfo == null || StringUtils.isBlank(staffInfo.getAgencyId())){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"工作人员所属组织不存在");
}
//组织缓存key
String treeCacheKey = RedisKeys.getOrgTreeCacheKey(formDTO.getAgencyId()).concat(StrConstant.COLON).concat(formDTO.getClient());
Long expiryTime = redisUtils.getTTL(treeCacheKey);
List<OrgTreeResultDTO> orgTreeResultDTOS = (List<OrgTreeResultDTO>) redisUtils.get(treeCacheKey);
String agencyId = staffInfo.getAgencyId();
String client = formDTO.getClient();
//如果接近过期或已经过期且缓存数据不为空 则异步查询
if ((expiryTime == null || expiryTime <= NumConstant.ONE_THOUSAND) && CollectionUtils.isNotEmpty(orgTreeResultDTOS)) {
executorService.submit(() -> {
List<OrgTreeResultDTO> list = buildTempOrgTree(agencyId, client);
redisUtils.set(treeCacheKey, list, RedisUtils.HOUR_FOUR_EXPIRE);
});
} else {
orgTreeResultDTOS = buildTempOrgTree(staffInfo.getAgencyId(), formDTO.getClient());
redisUtils.set(treeCacheKey, orgTreeResultDTOS, RedisUtils.HOUR_FOUR_EXPIRE);
}
return orgTreeResultDTOS;
}
private List<OrgTreeResultDTO> buildTempOrgTree(String agencyId, String client){
List<OrgTreeResultDTO> list = new ArrayList<>();
if ("resi".equals(formDTO.getClient())) {
list.add(customerAgencyDao.getResiOrgTree(staffInfo.getAgencyId()));
if ("resi".equals(client)) {
list.add(customerAgencyDao.getResiOrgTree(agencyId));
return list;
}
list.add(customerAgencyDao.getOrgTree(staffInfo.getAgencyId()));
list.add(customerAgencyDao.getOrgTree(agencyId));
return list;
}

1
epmet-module/gov-org/gov-org-server/Dockerfile

@ -5,6 +5,7 @@ RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
COPY ./target/*.jar ./gov-org.jar
COPY ./fonts/NotoSansSC-Light.otf /usr/share/fonts
EXPOSE 8092

2
epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml

@ -15,4 +15,4 @@ services:
resources:
limits:
cpus: '0.1'
memory: 300M
memory: 300M

BIN
epmet-module/gov-org/gov-org-server/fonts/NotoSansSC-Light.otf

Binary file not shown.

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

@ -419,6 +419,7 @@ public class AgencyController {
.concat("epmet-oper-gov/#/caiji/")
.concat(id).concat("?")
.concat("name=").concat(name).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()));

41
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/3/18 19:00
* @DESC
*/
@Data
public class CollectListFormDTO implements Serializable {
private static final long serialVersionUID = 2106773724057183577L;
public interface CollectListForm{}
@NotNull(message = "pageNo不能为空", groups = CollectListForm.class)
private Integer pageNo;
@NotNull(message = "pageSize不能为空", groups = CollectListForm.class)
private Integer pageSize;
private String orgId;
private String neighborHoodId;
private String buildingId;
private String houseId;
private String address;
/**
* 格式yyyy-mm-dd
*/
private String startDate;
private String endDate;
private String userId;
private String customerId;
}

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

@ -0,0 +1,105 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.Valid;
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 IcResiCollectFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface InternalShowGroup extends CustomerClientShowGroup {
}
public interface ExternalShowGroup extends CustomerClientShowGroup {
}
/**
* 客户Id customer.id
*/
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 内部internal外部external
*/
@NotBlank(message = "兴德路社区:internal;其他社区:external", groups = AddUserInternalGroup.class)
private String origin;
/**
* 网格ID_后端接口赋值
*/
private String gridId;
/**
* 组织Id_后端接口赋值
*/
private String agencyId;
/**
* 组织的pid_后端接口赋值
*/
private String pids;
/**
* 所属小区ID
*/
@NotBlank(message = "小区不能为空", groups = InternalShowGroup.class)
private String villageId;
/**
* 所属楼宇Id
*/
@NotBlank(message = "楼栋不能为空", groups = InternalShowGroup.class)
private String buildId;
/**
* 单元id
*/
@NotBlank(message = "单元不能为空", groups = InternalShowGroup.class)
private String unitId;
/**
* 所属家庭Id
*/
@NotBlank(message = "家庭不能为空", groups = InternalShowGroup.class)
private String homeId;
/**
* 详细地址
*/
@NotBlank(message = "家庭地址不能为空", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private String address;
/**
* 1自由0租住
*/
@NotBlank(message = "房子属于自由还是组织?", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private String houseType;
/**
* 户主姓名
*/
@NotBlank(message = "户主姓名不能为空", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private String houseHolderName;
/**
* 居住成员人数
*/
@NotNull(message = "居住成员人数不能为空", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private Integer totalResi;
@Valid
@NotEmpty(message = "成员信息不能为空", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private List<IcResiCollectMemFormDTO> memberList;
}

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

@ -0,0 +1,37 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
@Data
public class IcResiCollectMemFormDTO implements Serializable {
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 居住成员1姓名
*/
private String name;
/**
* 居住成员1身份证号
*/
private String idNum;
/**
* 居住成员1手机号
*/
private String mobile;
/**
* 居住成员1是否参加几轮全员核算检测数字1-10
*/
private String heSuanCount;
/**
* 居住成员1新冠疫苗接种情况;1:已全程接种2未全程接种0未接种
*/
private Integer ymjz;
}

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

@ -0,0 +1,88 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/3/18 19:00
* @DESC
*/
@Data
public class CollectListResultDTO implements Serializable {
private static final long serialVersionUID = -6692672375850864451L;
/**
* 户主姓名
*/
private String houseHolderName;
@JsonIgnore
private String id;
/**
* 居住地址
*/
private String address;
/**
* 房屋类型1:自有, 0:租住
*/
private String houseType;
/**
* 居住人数
*/
private Integer totalResi;
private List<CollectListMemberResultDTO> list;
public CollectListResultDTO() {
this.houseHolderName = "";
this.address = "";
this.houseType = "0";
this.totalResi = 0;
this.list = new ArrayList<>();
}
@Data
public static class CollectListMemberResultDTO{
/**
* 成员名字
*/
private String memberName;
/**
* 成员身份证
*/
private String memberIdNum;
/**
* 成员电话
*/
private String memberMobile;
/**
* 核酸检测次数
*/
private String heSuanCount;
/**
* 疫苗是否全程接种1全程接种2未全程接种3为接种
*/
private Integer ymjz;
public CollectListMemberResultDTO() {
this.memberName = "";
this.memberIdNum = "";
this.memberMobile = "";
this.heSuanCount = "0";
this.ymjz = 0;
}
}
}

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

@ -0,0 +1,71 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.service.IcResiCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 居民信息采集表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-18
*/
@RestController
@RequestMapping("icresicollect")
public class IcResiCollectController {
@Autowired
private IcResiCollectService icResiCollectService;
/**
* 居民信息采集_提交
*
* @param formDTO
* @return
*/
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcResiCollectFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, IcResiCollectFormDTO.AddUserInternalGroup.class);
// 内部:internal;外部:external
if ("internal".equals(formDTO.getOrigin())) {
ValidatorUtils.validateEntity(formDTO, IcResiCollectFormDTO.InternalShowGroup.class);
} else if ("external".equals(formDTO.getOrigin())) {
ValidatorUtils.validateEntity(formDTO, IcResiCollectFormDTO.ExternalShowGroup.class);
}
icResiCollectService.save(formDTO);
return new Result();
}
/**
* Desc: 查询采集居民信息
* @param formDTO
* @param tokenDto
* @author zxc
* @date 2022/3/18 19:23
*/
@PostMapping("list")
public Result<PageData<CollectListResultDTO>> getCollectList(@RequestBody CollectListFormDTO formDTO, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO,CollectListFormDTO.CollectListForm.class);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<PageData<CollectListResultDTO>>().ok(icResiCollectService.getCollectList(formDTO));
}
}

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

@ -0,0 +1,36 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 居民信息采集表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-18
*/
@Mapper
public interface IcResiCollectDao extends BaseDao<IcResiCollectEntity> {
IcResiCollectEntity selectByAddress(String address);
int updateRec(@Param("id") String id,
@Param("houseType") String houseType,
@Param("houseHolderName") String houseHolderName,
@Param("totalResi") Integer totalResi);
/**
* Desc: 查询采集居民信息
* @param formDTO
* @author zxc
* @date 2022/3/18 19:41
*/
List<CollectListResultDTO> getCollectList(CollectListFormDTO formDTO);
}

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

@ -0,0 +1,16 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcResiMemberEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 居民信息成员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-18
*/
@Mapper
public interface IcResiMemberDao extends BaseDao<IcResiMemberEntity> {
}

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

@ -0,0 +1,86 @@
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-03-18
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_resi_collect")
public class IcResiCollectEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 内部internal外部external
*/
private String origin;
/**
* 网格ID
*/
private String gridId;
/**
* 组织Id
*/
private String agencyId;
/**
* 组织的pids
*/
private String pids;
/**
* 所属小区ID
*/
private String villageId;
/**
* 所属楼宇Id
*/
private String buildId;
/**
* 单元id
*/
private String unitId;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 详细地址
*/
private String address;
/**
* 1自由0租住
*/
private String houseType;
/**
* 户主姓名
*/
private String houseHolderName;
/**
* 居住成员人数
*/
private Integer totalResi;
}

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

@ -0,0 +1,56 @@
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-03-18
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_resi_member")
public class IcResiMemberEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* ic_resi_colllect.id
*/
private String icResiCollectId;
/**
* 居住成员1姓名
*/
private String name;
/**
* 居住成员1身份证号
*/
private String idNum;
/**
* 居住成员1手机号
*/
private String mobile;
/**
* 居住成员1是否参加几轮全员核算检测数字1-10
*/
private String heSuanCount;
/**
* 居住成员1新冠疫苗接种情况;1:已全程接种2未全程接种0未接种
*/
private Integer ymjz;
}

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

@ -0,0 +1,39 @@
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.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectEntity;
import java.util.List;
/**
* 居民信息采集表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-18
*/
public interface IcResiCollectService extends BaseService<IcResiCollectEntity> {
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-03-18
*/
void save(IcResiCollectFormDTO dto);
/**
* Desc: 查询采集居民信息
* @param formDTO
* @author zxc
* @date 2022/3/18 19:23
*/
PageData<CollectListResultDTO> getCollectList(CollectListFormDTO formDTO);
}

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

@ -0,0 +1,138 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
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.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.IcResiCollectFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.entity.IcResiCollectEntity;
import com.epmet.entity.IcResiMemberEntity;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.IcResiCollectService;
import org.apache.commons.collections4.MapUtils;
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.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 居民信息采集表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-18
*/
@Service
public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao, IcResiCollectEntity> implements IcResiCollectService {
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private IcResiMemberDao icResiMemberDao;
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcResiCollectFormDTO formDTO) {
IcResiCollectEntity origin = baseDao.selectByAddress(formDTO.getAddress());
if (null == origin) {
//插入主表、成员表
IcResiCollectEntity insert = ConvertUtils.sourceToTarget(formDTO, IcResiCollectEntity.class);
if ("internal".equals(formDTO.getOrigin())) {
//根据小区id查询网格相关信息
IcNeighborHoodDTO neighborHoodDTO = queryIcNeighborHood(formDTO.getVillageId());
insert.setGridId(neighborHoodDTO.getGridId());
insert.setAgencyId(neighborHoodDTO.getAgencyId());
insert.setPids(neighborHoodDTO.getAgencyPids());
}
baseDao.insert(insert);
List<IcResiMemberEntity> memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
memberList.forEach(mem -> {
mem.setIcResiCollectId(insert.getId());
icResiMemberDao.insert(mem);
});
} else {
//更新主表
baseDao.updateRec(origin.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi());
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin.getId());
}
}
/**
* Desc: 查询采集居民信息
* @param formDTO
* @author zxc
* @date 2022/3/18 19:23
*/
@Override
public PageData<CollectListResultDTO> getCollectList(CollectListFormDTO formDTO) {
PageData<CollectListResultDTO> result = new PageData<>(new ArrayList<>(), 0);
if (StringUtils.isBlank(formDTO.getOrgId()) &&
StringUtils.isBlank(formDTO.getNeighborHoodId()) &&
StringUtils.isBlank(formDTO.getBuildingId()) &&
StringUtils.isBlank(formDTO.getHouseId()) &&
StringUtils.isBlank(formDTO.getAddress()) &&
StringUtils.isBlank(formDTO.getStartDate()) &&
StringUtils.isBlank(formDTO.getEndDate()) ){
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo){
throw new EpmetException("查询人员信息失败"+formDTO.getUserId());
}
formDTO.setOrgId(staffInfo.getAgencyId());
}
PageInfo<CollectListResultDTO> pageList = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.getCollectList(formDTO));
result.setList(pageList.getList());
result.setTotal(Integer.valueOf(String.valueOf(pageList.getTotal())));
return result;
}
private 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(), "小区信息查询异常", "小区信息查询异常");
}
return res.getData();
}
private Map<String, IcResiMemberEntity> queryOriginMem(String icResiCollectId) {
LambdaQueryWrapper<IcResiMemberEntity> query = new LambdaQueryWrapper<>();
query.eq(IcResiMemberEntity::getIcResiCollectId, icResiCollectId);
List<IcResiMemberEntity> originMemberList = icResiMemberDao.selectList(query);
Map<String, IcResiMemberEntity> memMap = originMemberList.stream().collect(Collectors.toMap(IcResiMemberEntity::getIdNum, Function.identity()));
return memMap;
}
private void saveOrUpdateMem(List<IcResiMemberEntity> newMemberList, Map<String, IcResiMemberEntity> memMap, String originIcResiCollectId) {
for (IcResiMemberEntity entity : newMemberList) {
if (MapUtils.isNotEmpty(memMap) && memMap.containsKey(entity.getIdNum())) {
entity.setIcResiCollectId(originIcResiCollectId);
entity.setCustomerId(memMap.get(entity.getIdNum()).getCustomerId());
entity.setId(memMap.get(entity.getIdNum()).getId());
icResiMemberDao.updateById(entity);
continue;
}
//没有插入
entity.setIcResiCollectId(originIcResiCollectId);
icResiMemberDao.insert(entity);
}
}
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java

@ -376,7 +376,7 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
continue;
}
String categoryName = StringUtils.isBlank(configMap.get(dto.getConfigId())) ? StrConstant.EPMETY_STR : configMap.get(dto.getConfigId());
dto.setNoticeContent(String.format("%s%s%s%s超出预警!", infoCache.getGridName(), infoCache.getNeighborHoodName(), infoCache.getBuildingName(), categoryName));
dto.setNoticeContent(String.format("%s-%s%s【%s】超出预警!", infoCache.getGridName(), infoCache.getNeighborHoodName(), infoCache.getBuildingName(), categoryName));
resList.add(dto);
}
return resList;

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

@ -0,0 +1,74 @@
<?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.IcResiCollectDao">
<select id="selectByAddress" parameterType="java.lang.String" resultType="com.epmet.entity.IcResiCollectEntity">
select c.id from ic_resi_collect c
where c.address=#{address}
and c.DEL_FLAG='0'
</select>
<!-- 查询采集居民信息 -->
<resultMap id="getCollectListMap" type="com.epmet.dto.result.CollectListResultDTO">
<result property="houseHolderName" column="houseHolderName"/>
<result property="id" column="id"/>
<result property="address" column="address"/>
<result property="houseType" column="houseType"/>
<result property="totalResi" column="totalResi"/>
<collection property="list" ofType="com.epmet.dto.result.CollectListResultDTO$CollectListMemberResultDTO" column="id" select="selectMemberList"/>
</resultMap>
<select id="getCollectList" resultMap="getCollectListMap">
SELECT
c.id as id,
c.HOUSE_HOLDER_NAME AS houseHolderName,
c.ADDRESS AS address,
c.HOUSE_TYPE AS houseType,
c.TOTAL_RESI AS totalResi
FROM ic_resi_collect c
WHERE c.DEL_FLAG = 0
<if test='orgId != null and orgId != "" '>
AND CONCAT(c.PIDS,':',c.AGENCY_ID) LIKE CONCAT('%',#{orgId},'%')
</if>
<if test='neighborHoodId != null and neighborHoodId != "" '>
AND c.VILLAGE_ID = #{neighborHoodId}
</if>
<if test='buildingId != null and buildingId != "" '>
AND c.BUILD_ID = #{buildingId}
</if>
<if test='houseId != null and houseId != "" '>
AND c.HOME_ID = #{houseId}
</if>
<if test='address != null and address != "" '>
AND c.ADDRESS LIKE CONCAT('%',#{address},'%')
</if>
<if test='startDate != null and startDate != "" '>
AND DATE_FORMAT(c.CREATED_TIME,'%Y-%m-%d') >= #{startDate}
</if>
<if test='endDate != null and endDate != "" '>
AND DATE_FORMAT(c.CREATED_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{endDate}
</if>
ORDER BY c.CREATED_TIME DESC
</select>
<select id="selectMemberList" resultType="com.epmet.dto.result.CollectListResultDTO$CollectListMemberResultDTO">
select
m.`NAME` AS memberName,
m.ID_NUM AS memberIdNum,
m.MOBILE AS memberMobile,
m.HE_SUAN_COUNT AS heSuanCount,
m.YMJZ AS ymjz
from ic_resi_member m
where m.DEL_FLAG = 0
and m.IC_RESI_COLLECT_ID = #{id}
</select>
<update id="updateRec" parameterType="map">
UPDATE ic_resi_collect
SET UPDATED_TIME = NOW(),
HOUSE_TYPE = #{houseType},
HOUSE_HOLDER_NAME = #{houseHolderName},
TOTAL_RESI = #{totalResi}
WHERE
id = #{id}
</update>
</mapper>

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

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