Browse Source

【死亡】批量更新

master
yinzuomei 3 years ago
parent
commit
b69a86b1d4
  1. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java
  2. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDeathController.java
  3. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDeathService.java
  4. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeDeathServiceImpl.java
  5. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDeathServiceImpl.java
  6. 42
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java

6
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java

@ -50,6 +50,12 @@ public class ChangeDeathController {
return new Result<ChangeDeathDTO>().ok(data);
}
/**
* 死亡管理-新增死亡人员
* @param tokenDto
* @param dto
* @return
*/
@NoRepeatSubmit
@PostMapping("save")
public Result save(@LoginUser TokenDto tokenDto, @RequestBody ChangeDeathDTO dto){

18
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDeathController.java

@ -116,4 +116,22 @@ public class DataSyncRecordDeathController {
}
}
}
/**
* 批量更新
* 新增死亡记录
*
* @param tokenDto
* @param ids
* @return
*/
@NoRepeatSubmit
@PostMapping("batchupdate")
public Result batchUpdate(@LoginUser TokenDto tokenDto, @RequestBody List<String> ids) {
if (CollectionUtils.isEmpty(ids)) {
return new Result();
}
dataSyncRecordDeathService.batchUpdate(tokenDto.getUserId(), tokenDto.getCustomerId(), ids);
return new Result();
}
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDeathService.java

@ -59,4 +59,12 @@ public interface DataSyncRecordDeathService extends BaseService<DataSyncRecordDe
void delete(List<String> ids);
DataSyncRecordDeathDTO selectOne(LambdaQueryWrapper<DataSyncRecordDeathEntity> queryWrapper);
/**
*
* @param userId 当前操作人
* @param customerId 当前客户
* @param ids 要操作的记录id
*/
void batchUpdate(String userId, String customerId, List<String> ids);
}

25
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeDeathServiceImpl.java

@ -29,6 +29,7 @@ import com.epmet.service.ChangeDeathService;
import com.epmet.service.ChangeWelfareService;
import com.epmet.service.IcResiUserService;
import com.epmet.service.IcUserTransferRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -42,6 +43,7 @@ import java.util.*;
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-05
*/
@Slf4j
@Service
public class ChangeDeathServiceImpl extends BaseServiceImpl<ChangeDeathDao, ChangeDeathEntity> implements ChangeDeathService {
@ -106,6 +108,12 @@ public class ChangeDeathServiceImpl extends BaseServiceImpl<ChangeDeathDao, Chan
return ConvertUtils.sourceToTarget(entity, ChangeDeathDTO.class);
}
/**
* 死亡管理-新增死亡人员
* 数据比对-死亡人员数据-批量更新那方法内会调用此方法
* @param dto
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Result save(ChangeDeathDTO dto) {
@ -113,22 +121,29 @@ public class ChangeDeathServiceImpl extends BaseServiceImpl<ChangeDeathDao, Chan
formDTO.setUserId(dto.getUserId());
formDTO.setCustomerId(loginUserUtil.getLoginUserCustomerId());
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
//查询居民信息表
RentTenantDataResultDTO result = icResiUserServiceImpl.getRentResiUserInfo(formDTO);
if(null==result){
log.warn(String.format("ic_resi_user is null icResiUserId:%s", formDTO.getUserId()));
return new Result();
}
dto.setIdCard(result.getIdCard());
dto.setMobile(result.getMobile());
dto.setGridId(result.getGridId());
Map<String, Object> params = new HashMap<>(4);
params.put("idCard", dto.getIdCard());
if (!list(params).isEmpty()) {
return new Result().error("该人员已经迁入死亡人口");
// return new Result().error("该人员已经迁入死亡人口");
log.warn(String.format("该人员已经迁入死亡人口,idCard:%s",result.getIdCard()));
return new Result();
}
// 插入死亡名单表
dto.setJoinDate(DateUtils.format(new Date()));
ChangeDeathEntity entity = ConvertUtils.sourceToTarget(dto, ChangeDeathEntity.class);
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
insert(entity);
// 如果勾选了享受福利
if (dto.getWelfareFlag() != null && dto.getWelfareFlag()) {
ChangeWelfareDTO formDto = new ChangeWelfareDTO();
formDto.setUserId(dto.getUserId());
@ -148,6 +163,8 @@ public class ChangeDeathServiceImpl extends BaseServiceImpl<ChangeDeathDao, Chan
// 用户状态【0:正常;1:迁出;2:注销】
userEntity.setStatus(NumConstant.TWO_STR);
userEntity.setSubStatus(IcResiUserSubStatusEnum.DIED.getSubStatus());//死亡
userEntity.setUpdatedBy(loginUserUtil.getLoginUserId());
userEntity.setUpdatedTime(new Date());
icResiUserService.updateById(userEntity);
//变更主表、变更明细表
@ -166,7 +183,7 @@ public class ChangeDeathServiceImpl extends BaseServiceImpl<ChangeDeathDao, Chan
SpringContextUtils.getBean(IcUserTransferRecordService.class).moveResi(icResiUserTransferFormDTO);
//推送MQ事件
changeRelocationServiceImpl.editResiMq(formDTO.getCustomerId(), dto.getUserId());
SpringContextUtils.getBean(ChangeRelocationServiceImpl.class).editResiMq(formDTO.getCustomerId(), dto.getUserId());
return new Result();
}

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

@ -4,14 +4,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
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.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dao.DataSyncRecordDeathDao;
import com.epmet.dto.ChangeDeathDTO;
import com.epmet.dto.DataSyncRecordDeathDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordDeathPageFormDTO;
import com.epmet.entity.DataSyncRecordDeathEntity;
@ -99,4 +104,52 @@ public class DataSyncRecordDeathServiceImpl extends BaseServiceImpl<DataSyncReco
return ConvertUtils.sourceToTarget(entity, DataSyncRecordDeathDTO.class);
}
/**
* @param userId 当前操作人
* @param customerId 当前客户
* @param ids 要操作的记录id
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void batchUpdate(String userId, String customerId, List<String> ids) {
// 要做的事:居民表修改状态为注销、子状态为死亡、加入死亡人员名单、记录变更主表、变更明细表(如果当前死亡的这个人属于十八类中的是,-1操作)
// 上面要做的事,其实就是新增死亡人员名单,调整下ChangeDeathServiceImpl.save,直接调用吧,
for (String id : ids) {
DataSyncRecordDeathEntity entity = baseDao.selectById(id);
if (NumConstant.ONE == entity.getDealStatus() || StringUtils.isBlank(entity.getIcResiUserId())) {
// 已处理的跳过
continue;
}
try {
ChangeDeathDTO changeDeathDTO = new ChangeDeathDTO();
changeDeathDTO.setStaffId(userId);
changeDeathDTO.setUserId(entity.getIcResiUserId());
changeDeathDTO.setGridId(entity.getGridId());
changeDeathDTO.setName(entity.getName());
changeDeathDTO.setIdCard(entity.getIdCard());
// 手机号没有值
changeDeathDTO.setMobile(StrConstant.EPMETY_STR);
changeDeathDTO.setDeathDate(DateUtils.stringToDate(entity.getDeathDate(), "yyyy-MM-dd"));
changeDeathDTO.setJoinReason("来源于数据比对-死亡人员数据");
SpringContextUtils.getBean(ChangeDeathServiceImpl.class).save(changeDeathDTO);
entity.setDealStatus(NumConstant.ONE);
} catch (EpmetException epmetException) {
entity.setDealStatus(NumConstant.TWO);
entity.setDealResult("系统内部异常:" + epmetException.getMsg());
epmetException.printStackTrace();
} catch (Exception e) {
entity.setDealStatus(NumConstant.TWO);
entity.setDealResult("未知错误:" + e.getMessage());
e.printStackTrace();
} finally {
baseDao.updateById(entity);
}
}
}
}

42
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java

@ -179,10 +179,19 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
}
/**
* @Author sun
* @Description 调动记录
**/
public IcUserTransferRecordEntity saveTransferRecord(CustomerStaffInfoCacheResult staffInfoCache, IcResiUserTransferFormDTO formDTO, IcResiUserDTO resiUserDTO, IcResiUserOrgMsgResultDTO result1, IcResiUserOrgMsgResultDTO result2) {
*
* @param staffInfoCache
* @param formDTO
* @param resiUserDTO
* @param before 调动前的
* @param after 调动后的房屋信息
* @return 调动记录
*/
public IcUserTransferRecordEntity saveTransferRecord(CustomerStaffInfoCacheResult staffInfoCache,
IcResiUserTransferFormDTO formDTO,
IcResiUserDTO resiUserDTO,
IcResiUserOrgMsgResultDTO before,
IcResiUserOrgMsgResultDTO after) {
IcUserTransferRecordEntity recordEntity = new IcUserTransferRecordEntity();
recordEntity.setIcUserId(formDTO.getIcUserId());
recordEntity.setOperatorId(formDTO.getStaffId());
@ -190,17 +199,17 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
recordEntity.setOperatorName(null == staffInfoCache ? "" : staffInfoCache.getRealName());
recordEntity.setOldCustomerId(formDTO.getCustomerId());
recordEntity.setOldAgencyId(resiUserDTO.getAgencyId());
recordEntity.setOldAgencyName(result1.getAgencyDTO().getOrganizationName());
recordEntity.setOldAgencyName(before.getAgencyDTO().getOrganizationName());
recordEntity.setOldGridId(resiUserDTO.getGridId());
recordEntity.setOldGridName(result1.getGridDTO().getGridName());
recordEntity.setOldGridName(before.getGridDTO().getGridName());
recordEntity.setOldNeighborHoodId(resiUserDTO.getVillageId());
recordEntity.setOldNeighborHoodName(result1.getNeighborHoodDTO().getNeighborHoodName());
recordEntity.setOldNeighborHoodName(before.getNeighborHoodDTO().getNeighborHoodName());
recordEntity.setOldBuildingId(resiUserDTO.getBuildId());
recordEntity.setOldBuildingName(result1.getBuildingDTO().getBuildingName());
recordEntity.setOldBuildingName(before.getBuildingDTO().getBuildingName());
recordEntity.setOldBuildingUnitId(resiUserDTO.getUnitId());
recordEntity.setOldBuildingUnitName(result1.getBuildingUnitDTO().getUnitName());
recordEntity.setOldBuildingUnitName(before.getBuildingUnitDTO().getUnitName());
recordEntity.setOldHouseId(resiUserDTO.getHomeId());
recordEntity.setOldHouseName(result1.getHouseDTO().getHouseName());
recordEntity.setOldHouseName(before.getHouseDTO().getHouseName());
recordEntity.setTransferTime(formDTO.getTransferTime());
recordEntity.setRemark(formDTO.getRemark());
if ("in".equals(formDTO.getType())) {
@ -209,17 +218,17 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
//迁入:同社区的居民,状态正常,改变了房屋 目前这三种情况 type="in";
recordEntity.setNewCustomerId(resiUserDTO.getCustomerId());
recordEntity.setNewAgencyId(formDTO.getNewAgencyId());
recordEntity.setNewAgencyName(result2.getAgencyDTO().getOrganizationName());
recordEntity.setNewAgencyName(after.getAgencyDTO().getOrganizationName());
recordEntity.setNewGridId(formDTO.getNewGridId());
recordEntity.setNewGridName(result2.getGridDTO().getGridName());
recordEntity.setNewGridName(after.getGridDTO().getGridName());
recordEntity.setNewNeighborHoodId(formDTO.getNewNeighborHoodId());
recordEntity.setNewNeighborHoodName(result2.getNeighborHoodDTO().getNeighborHoodName());
recordEntity.setNewNeighborHoodName(after.getNeighborHoodDTO().getNeighborHoodName());
recordEntity.setNewBuildingId(formDTO.getNewBuildingId());
recordEntity.setNewBuildingName(result2.getBuildingDTO().getBuildingName());
recordEntity.setNewBuildingName(after.getBuildingDTO().getBuildingName());
recordEntity.setNewBuildingUnitId(formDTO.getNewBuildingUnitId());
recordEntity.setNewBuildingUnitName(result2.getBuildingUnitDTO().getUnitName());
recordEntity.setNewBuildingUnitName(after.getBuildingUnitDTO().getUnitName());
recordEntity.setNewHouseId(formDTO.getNewHouseId());
recordEntity.setNewHouseName(result2.getHouseDTO().getHouseName());
recordEntity.setNewHouseName(after.getHouseDTO().getHouseName());
}
return recordEntity;
@ -341,6 +350,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
//2.查询人员调动前的组织、网格、小区、楼栋、单元、房屋信息
IcResiUserOrgMsgResultDTO icResiUserOrgMsgResultDTO = getIcResiUserOrgMsgResultDTO(resiUserDTO);
//3.查询人员调动后的组织、网格、小区、楼栋、单元、房屋信息;
// 迁出到客户外的为空
Result<IcResiUserOrgMsgResultDTO> result2 = getNewHouseInfo(formDTO);
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());

Loading…
Cancel
Save