Browse Source

社区居民信息登记

dev
yinzuomei 4 years ago
parent
commit
bf070bc979
  1. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectFormDTO.java
  2. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java
  3. 22
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestSubmitCollectFormDTO.java
  4. 105
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiCollectFormDTO.java
  5. 82
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestCollectResDTO.java
  6. 32
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java
  7. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectDao.java
  8. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiMemberDao.java
  9. 17
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectService.java
  10. 93
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
  11. 32
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml
  12. 17
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiMemberDao.xml

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

@ -82,9 +82,9 @@ public class IcResiCollectFormDTO implements Serializable {
private String address;
/**
* 1自0租住
* 1自0租住
*/
@NotBlank(message = "房子属于自由还是组织?", groups = {InternalShowGroup.class, ExternalShowGroup.class})
@NotBlank(message = "房子属于自有还是租住?", groups = {InternalShowGroup.class, ExternalShowGroup.class})
private String houseType;
/**

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

@ -2,6 +2,7 @@ package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
@ -17,13 +18,13 @@ public class IcResiCollectMemFormDTO implements Serializable {
/**
* 居住成员1姓名
*/
// @NotBlank(message = "姓名不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
@NotBlank(message = "姓名不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String name;
/**
* 居住成员1身份证号
*/
// @NotBlank(message = "身份证号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
@NotBlank(message = "身份证号不能为空", groups = {ResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private String idNum;
/**
@ -43,4 +44,9 @@ public class IcResiCollectMemFormDTO implements Serializable {
*/
// @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class})
private Integer ymjz;
/**
* 社区居民信息登记-查询返参用
*/
private String id;
}

22
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestSubmitCollectFormDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 社区居民信息登记-查询
*/
@Data
public class LatestSubmitCollectFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
@NotBlank(message = "gridId不能为空", groups = AddUserInternalGroup.class)
private String gridId;
}

105
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiCollectFormDTO.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 ResiCollectFormDTO implements Serializable {
private static final long serialVersionUID = -4026681095438180447L;
public interface AddUserInternalGroup {
}
public interface InternalShowGroup extends CustomerClientShowGroup {
}
/**
* 客户Id customer.id
*/
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 网格ID_后端接口赋值
*/
@NotBlank(message = "gridId不能为空", groups = AddUserInternalGroup.class)
private String gridId;
/**
* 组织Id_后端接口赋值
*/
@NotBlank(message = "agencyId不能为空", groups = AddUserInternalGroup.class)
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})
private String address;
/**
* 1自有0租住
*/
@NotBlank(message = "房子属于自有还是租住?", groups = {InternalShowGroup.class})
private String houseType;
/**
* 户主姓名
*/
@NotBlank(message = "户主姓名不能为空", groups = {InternalShowGroup.class})
private String houseHolderName;
/**
* 居住成员人数
*/
@NotNull(message = "居住成员人数不能为空", groups = {InternalShowGroup.class})
private Integer totalResi;
@Valid
@NotEmpty(message = "成员信息不能为空", groups = {InternalShowGroup.class})
private List<IcResiCollectMemFormDTO> memberList;
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
}

82
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestCollectResDTO.java

@ -0,0 +1,82 @@
package com.epmet.dto.result;
import com.epmet.dto.form.IcResiCollectMemFormDTO;
import lombok.Data;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 社区居民信息登记-返参
*/
@Data
public class LatestCollectResDTO implements Serializable {
private String resiCollectId;
private String agencyId;
private String agencyName;
private String pids;
private String gridId;
private String customerId;
/**
* 所属小区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;
@Valid
private List<IcResiCollectMemFormDTO> memberList;
public LatestCollectResDTO() {
this.resiCollectId = "";
this.agencyId = "";
this.agencyName = "";
this.pids = "";
this.gridId = "";
this.customerId = "";
this.villageId = "";
this.buildId = "";
this.unitId="";
this.homeId="";
this.address="";
this.houseType="";
this.houseHolderName="";
this.totalResi=0;
this.memberList=new ArrayList<>();
}
}

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

@ -11,9 +11,12 @@ 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.service.IcResiCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -108,4 +111,33 @@ public class IcResiCollectController {
ExcelUtils.exportExcelToTarget(response, null, list, CollectListExcelResultDTO.class);
}
/**
* 居民端小程序社区居民信息登记-提交
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("save-resi")
public Result saveResi(@LoginUser TokenDto tokenDto, @RequestBody ResiCollectFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, ResiCollectFormDTO.InternalShowGroup.class, ResiCollectFormDTO.AddUserInternalGroup.class);
icResiCollectService.saveResi(formDTO);
return new Result();
}
/**
* 居民端小程序社区居民信息登记-查询
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("latest-submit")
public Result<LatestCollectResDTO> latestSubmit(@LoginUser TokenDto tokenDto, @RequestBody LatestSubmitCollectFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO,LatestSubmitCollectFormDTO.AddUserInternalGroup.class);
return new Result<LatestCollectResDTO>().ok(icResiCollectService.latestSubmit(formDTO));
}
}

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

@ -23,7 +23,8 @@ public interface IcResiCollectDao extends BaseDao<IcResiCollectEntity> {
int updateRec(@Param("id") String id,
@Param("houseType") String houseType,
@Param("houseHolderName") String houseHolderName,
@Param("totalResi") Integer totalResi);
@Param("totalResi") Integer totalResi,
@Param("updatedBy") String updatedBy);
/**
* Desc: 查询采集居民信息
@ -33,4 +34,11 @@ public interface IcResiCollectDao extends BaseDao<IcResiCollectEntity> {
*/
List<CollectListResultDTO> getCollectList(CollectListFormDTO formDTO);
/**
* 我上次提交的主表记录
* @param customerId
* @param userId
* @return
*/
String selectLastSubmitId(@Param("customerId") String customerId, @Param("userId") String userId);
}

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

@ -1,8 +1,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.IcResiCollectMemFormDTO;
import com.epmet.entity.IcResiMemberEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 居民信息成员表
@ -13,4 +17,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IcResiMemberDao extends BaseDao<IcResiMemberEntity> {
List<IcResiCollectMemFormDTO> selectMySubmit(@Param("latestResiCollectId") String latestResiCollectId, @Param("userId")String userId);
}

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

@ -4,11 +4,12 @@ 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.dto.result.CollectListResultDTO;
import com.epmet.dto.result.LatestCollectResDTO;
import com.epmet.entity.IcResiCollectEntity;
import java.util.List;
/**
* 居民信息采集表
*
@ -36,4 +37,16 @@ public interface IcResiCollectService extends BaseService<IcResiCollectEntity> {
*/
PageData<CollectListResultDTO> getCollectList(CollectListFormDTO formDTO);
/**
* 居民端小程序社区居民信息登记-提交
* @param formDTO
*/
void saveResi(ResiCollectFormDTO formDTO);
/**
* 居民端小程序社区居民信息登记-查询
* @param formDTO
* @return
*/
LatestCollectResDTO latestSubmit(LatestSubmitCollectFormDTO formDTO);
}

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

@ -2,26 +2,30 @@ 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.constant.StrConstant;
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.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.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.form.*;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.result.LatestCollectResDTO;
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.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -71,7 +75,7 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
});
} else {
//更新主表
baseDao.updateRec(origin.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi());
baseDao.updateRec(origin.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi(),null);
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(origin.getId());
@ -145,4 +149,85 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl<IcResiCollectDao,
}
}
}
/**
* 社区居民信息登记-提交
*
* @param formDTO
*/
@Override
public void saveResi(ResiCollectFormDTO formDTO) {
IcResiCollectEntity origin = baseDao.selectByAddress(formDTO.getAddress());
if (null == origin) {
//插入主表、成员表
IcResiCollectEntity insert = ConvertUtils.sourceToTarget(formDTO, IcResiCollectEntity.class);
insert.setOrigin("internal");
baseDao.insert(insert);
List<IcResiMemberEntity> memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
memberList.forEach(mem -> {
if (StringUtils.isNotBlank(mem.getName()) || StringUtils.isNotBlank(mem.getIdNum())) {
mem.setCustomerId(formDTO.getCustomerId());
//姓名或份身份证号不为空时插入
mem.setIcResiCollectId(insert.getId());
icResiMemberDao.insert(mem);
}
});
} else {
//更新主表
baseDao.updateRec(origin.getId(), formDTO.getHouseType(), formDTO.getHouseHolderName(), formDTO.getTotalResi(),formDTO.getUserId());
List<IcResiMemberEntity> newMemberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class);
//查询之前录入的成员表
Map<String, IcResiMemberEntity> memMap = queryOriginMem(origin.getId());
saveOrUpdateMem(newMemberList, memMap,origin.getId());
}
}
/**
* 居民端小程序社区居民信息登记-查询
*
* @param formDTO
* @return
*/
@Override
public LatestCollectResDTO latestSubmit(LatestSubmitCollectFormDTO formDTO) {
//张三、李四都住101房间
//张三先登记了填写了2个成员的信息
//李四登记后,会更新这2个成员的信息
//李四下次进入页面,展示这2个成员。
LatestCollectResDTO resDTO = new LatestCollectResDTO();
GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(formDTO.getGridId());
if (null == gridInfoCache) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询网格信息异常", EpmetErrorCode.SERVER_ERROR.getMsg());
}
resDTO.setCustomerId(gridInfoCache.getCustomerId());
resDTO.setGridId(formDTO.getGridId());
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(gridInfoCache.getPid());
resDTO.setAgencyId(gridInfoCache.getPid());
resDTO.setPids(null != agencyInfoCache ? agencyInfoCache.getPids() : StrConstant.EPMETY_STR);
resDTO.setAgencyName(gridInfoCache.getAgencyName());
String latestResiCollectId = baseDao.selectLastSubmitId(formDTO.getCustomerId(), formDTO.getUserId());
if (StringUtils.isNotBlank(latestResiCollectId)) {
resDTO.setResiCollectId(latestResiCollectId);
//之前提交过
IcResiCollectEntity entity = baseDao.selectById(latestResiCollectId);
if (null != entity) {
setCollectValue(resDTO, entity);
}
List<IcResiCollectMemFormDTO> memberList = icResiMemberDao.selectMySubmit(latestResiCollectId, formDTO.getUserId());
resDTO.setMemberList(memberList);
}
return resDTO;
}
private void setCollectValue(LatestCollectResDTO resDTO, IcResiCollectEntity entity) {
resDTO.setVillageId(entity.getVillageId());
resDTO.setBuildId(entity.getBuildId());
resDTO.setUnitId(entity.getUnitId());
resDTO.setHomeId(entity.getHomeId());
resDTO.setAddress(entity.getAddress());
resDTO.setHouseType(entity.getHouseType());
resDTO.setHouseHolderName(entity.getHouseHolderName());
resDTO.setTotalResi(entity.getTotalResi());
}
}

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

@ -55,11 +55,35 @@
<update id="updateRec" parameterType="map">
UPDATE ic_resi_collect
SET UPDATED_TIME = NOW(),
HOUSE_TYPE = #{houseType},
HOUSE_HOLDER_NAME = #{houseHolderName},
TOTAL_RESI = #{totalResi}
SET
<if test="houseType != null and houseType !=''">
HOUSE_TYPE = #{houseType},
</if>
<if test="houseHolderName != null and houseHolderName !=''">
HOUSE_HOLDER_NAME = #{houseHolderName},
</if>
<if test="totalResi != null and totalResi !=''">
TOTAL_RESI = #{totalResi},
</if>
<if test="updatedBy != null and updatedBy !=''">
UPDATED_BY = #{updatedBy},
</if>
UPDATED_TIME = NOW()
WHERE
id = #{id}
</update>
<select id="selectLastSubmitId" parameterType="map" resultType="java.lang.String">
SELECT
m.IC_RESI_COLLECT_ID
FROM
ic_resi_member m
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
AND ( m.CREATED_BY = #{userId} OR m.UPDATED_BY = #{userId} )
ORDER BY
m.UPDATED_TIME DESC
LIMIT 1
</select>
</mapper>

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

@ -4,5 +4,20 @@
<mapper namespace="com.epmet.dao.IcResiMemberDao">
<select id="selectMySubmit" parameterType="map" resultType="com.epmet.dto.form.IcResiCollectMemFormDTO">
SELECT
m.id,
m.CUSTOMER_ID,
m.`NAME`,
m.ID_NUM,
m.MOBILE,
m.HE_SUAN_COUNT,
m.YMJZ
FROM
ic_resi_member m
WHERE
m.IC_RESI_COLLECT_ID = #{latestResiCollectId}
AND m.DEL_FLAG = '0'
AND ( m.CREATED_BY = #{userId} OR m.UPDATED_BY = #{userId} )
</select>
</mapper>
Loading…
Cancel
Save