diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeDeathDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeDeathDTO.java index 00de3509a6..9f77373ab4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeDeathDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeDeathDTO.java @@ -124,4 +124,8 @@ public class ChangeDeathDTO implements Serializable { */ private Boolean welfareFlag; + /** + * 当前登录用户id + */ + private String staffId; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeRelocationDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeRelocationDTO.java index 4098492107..c874655700 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeRelocationDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeRelocationDTO.java @@ -201,4 +201,8 @@ public class ChangeRelocationDTO implements Serializable { */ private Boolean welfareFlag; + /** + * 当前登录用户id + */ + private String staffId; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java index cbd15606be..f4b9e57530 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java @@ -73,4 +73,11 @@ public class IcResiUserTransferFormDTO implements Serializable { //token中信息 private String customerId; private String staffId; + + /** + * 这个入参是迁出管理:新增迁入人员内部方法调用 + * out:迁出 + * died:死亡 + */ + private String moveType; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java index 4a7d48bb67..ddbcbbb88d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeDeathController.java @@ -1,7 +1,9 @@ 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.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -47,7 +49,8 @@ public class ChangeDeathController { @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody ChangeDeathDTO dto){ + public Result save(@LoginUser TokenDto tokenDto, @RequestBody ChangeDeathDTO dto){ + dto.setStaffId(tokenDto.getUserId()); //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); return changeDeathService.save(dto); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeRelocationController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeRelocationController.java index 529b79ae24..99d25eaf03 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeRelocationController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeRelocationController.java @@ -1,7 +1,9 @@ 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.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -86,7 +88,8 @@ public class ChangeRelocationController { */ @NoRepeatSubmit @PostMapping("saveOutOfInfo") - public Result saveOutOfInfo(@RequestBody ChangeRelocationDTO dto){ + public Result saveOutOfInfo(@LoginUser TokenDto tokenDto, @RequestBody ChangeRelocationDTO dto){ + dto.setStaffId(tokenDto.getUserId()); //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); return changeRelocationService.saveOutOfInfo(dto); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserTransferRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserTransferRecordService.java index 4d1d25f952..228e88fb61 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserTransferRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserTransferRecordService.java @@ -35,4 +35,10 @@ public interface IcUserTransferRecordService extends BaseService result1 = govOrgOpenFeignClient.icResiUserOrgMsg(orgMsgFormDTO1); - if (!result1.success() || null == result1.getData().getAgencyDTO() || null == result1.getData().getGridDTO() || null == result1.getData().getNeighborHoodDTO() - || null == result1.getData().getBuildingDTO() || null == result1.getData().getBuildingUnitDTO() || null == result1.getData().getHouseDTO()) { - log.warn("查找被调动人调动前的组织、网格、小区、楼栋、单元、房屋信息失败"); - throw new RenException("9000", "获取被调动人基础信息失败"); - } - + IcResiUserOrgMsgResultDTO icResiUserOrgMsgResultDTO=getIcResiUserOrgMsgResultDTO(resiUserDTO); //3.查询人员调动后的组织、网格、小区、楼栋、单元、房屋信息 Result result2 = new Result<>(); if("in".equals(formDTO.getType())){ @@ -145,7 +129,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl columns = categoryListResult.getData().stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); Map map = icResiUserDao.getCategoryListMap(columns, formDTO.getIcUserId()); - List changeDetailedEntityList = saveChangeDetailed(categoryListResult.getData(), map, changeRecordEntity.getId(), formDTO, resiUserDTO); + List changeDetailedEntityList = saveChangeDetailed(categoryListResult.getData(), map, changeRecordEntity.getId(), formDTO, resiUserDTO, NumConstant.ONE_STR); icUserChangeDetailedService.insertBatch(changeDetailedEntityList); } @@ -236,10 +220,16 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl saveChangeDetailed(List configList, Map map, String icUserChangeRecordId, IcResiUserTransferFormDTO formDTO, IcResiUserDTO resiUserDTO) { + private List saveChangeDetailed(List configList, + Map map, + String icUserChangeRecordId, + IcResiUserTransferFormDTO formDTO, + IcResiUserDTO resiUserDTO, + String origin) { List list = new ArrayList<>(); IcUserChangeDetailedEntity outEntity = null; IcUserChangeDetailedEntity inEntity = null; @@ -268,13 +258,18 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl result2 = getNewHouseInfo(formDTO); + + CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); + //5.生成调动记录: 只有迁出的才生成 + if("out".equals(formDTO.getMoveType())){ + IcUserTransferRecordEntity recordEntity = saveTransferRecord(staffInfoCache, formDTO, resiUserDTO, icResiUserOrgMsgResultDTO, result2.getData()); + insert(recordEntity); + changeRecordEntity.setIcUserTransferRecordId(recordEntity.getId()); + } + + //6.生成调动前后的变更记录、变更明细 + //6-1.变更记录 + changeRecordEntity.setCustomerId(formDTO.getCustomerId()); + changeRecordEntity.setOperatorId(formDTO.getStaffId()); + changeRecordEntity.setIcUserId(formDTO.getIcUserId()); + changeRecordEntity.setOperatorName(staffInfoCache.getRealName()); + changeRecordEntity.setIcUserName(resiUserDTO.getName()); + //迁出存调动,死亡存注销 + if ("out".equals(formDTO.getMoveType())) { + changeRecordEntity.setType("transfer"); + changeRecordEntity.setTypeName("调动"); + } else if ("died".equals(formDTO.getMoveType())) { + changeRecordEntity.setType("logout"); + changeRecordEntity.setTypeName("注销"); + } + StringBuffer beforeName = new StringBuffer(); + beforeName.append(icResiUserOrgMsgResultDTO.getAgencyDTO().getOrganizationName()).append("-").append(icResiUserOrgMsgResultDTO.getGridDTO().getGridName()).append("-") + .append(icResiUserOrgMsgResultDTO.getNeighborHoodDTO().getNeighborHoodName()).append("-").append(icResiUserOrgMsgResultDTO.getBuildingDTO().getBuildingName()).append("-") + .append(icResiUserOrgMsgResultDTO.getBuildingUnitDTO().getUnitName()).append("-").append(icResiUserOrgMsgResultDTO.getHouseDTO().getHouseName()); + changeRecordEntity.setBeforeChangeName(beforeName.toString()); + StringBuffer afterName = new StringBuffer(); + if ("in".equals(formDTO.getType())) { + afterName.append(result2.getData().getAgencyDTO().getOrganizationName()).append("-").append(result2.getData().getGridDTO().getGridName()).append("-") + .append(result2.getData().getNeighborHoodDTO().getNeighborHoodName()).append("-").append(result2.getData().getBuildingDTO().getBuildingName()).append("-") + .append(result2.getData().getBuildingUnitDTO().getUnitName()).append("-").append(result2.getData().getHouseDTO().getHouseName()); + } + changeRecordEntity.setAfterChangeName(StringUtils.isEmpty(afterName.toString()) ? "-" : afterName.toString()); + changeRecordEntity.setChangeTime(formDTO.getTransferTime()); + changeRecordEntity.setReason(formDTO.getReason()); + changeRecordEntity.setRemark(formDTO.getRemark()); + icUserChangeRecordService.insert(changeRecordEntity); + //6-2.变更明细【类别明细迁出组织的-1,迁入组织的1】 + IcResiCategoryStatsConfigDTO dto = new IcResiCategoryStatsConfigDTO(); + dto.setCustomerId(formDTO.getCustomerId()); + Result> categoryListResult = operCustomizeOpenFeignClient.getCategoryList(dto); + if (!categoryListResult.success()) { + throw new RenException("人员调动,获取客户居民类别预警配置表数据失败"); + } + List columns = categoryListResult.getData().stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); + Map map = icResiUserDao.getCategoryListMap(columns, formDTO.getIcUserId()); + List changeDetailedEntityList = saveChangeDetailed(categoryListResult.getData(), map, changeRecordEntity.getId(), formDTO, resiUserDTO, NumConstant.TWO_STR); + icUserChangeDetailedService.insertBatch(changeDetailedEntityList); + } + + + /** + * 根据userId查询ic_resi_user + * + * @param customerId + * @param icUserId + * @return + */ + private IcResiUserDTO getIcResiUserDTO(String customerId, String icUserId) { + IcResiUserDTO resiUserDTO = icResiUserDao.selectIdByIdCard(customerId, null, icUserId); + if (null == resiUserDTO) { + throw new RenException("9000", "人员调动失败,被调动人不存在!"); + } + return resiUserDTO; + } + + + /** + * 校验居民调动前的基础信息 + * + * @param resiUserDTO + * @return + */ + private IcResiUserOrgMsgResultDTO getIcResiUserOrgMsgResultDTO(IcResiUserDTO resiUserDTO) { + IcResiUserOrgMsgFormDTO orgMsgFormDTO1 = ConvertUtils.sourceToTarget(resiUserDTO, IcResiUserOrgMsgFormDTO.class); + orgMsgFormDTO1.setNeighborHoodId(resiUserDTO.getVillageId()); + orgMsgFormDTO1.setBuildingId(resiUserDTO.getBuildId()); + orgMsgFormDTO1.setBuildingUnitId(resiUserDTO.getUnitId()); + orgMsgFormDTO1.setHouseId(resiUserDTO.getHomeId()); + Result result1 = govOrgOpenFeignClient.icResiUserOrgMsg(orgMsgFormDTO1); + if (!result1.success() || null == result1.getData().getAgencyDTO() || null == result1.getData().getGridDTO() || null == result1.getData().getNeighborHoodDTO() + || null == result1.getData().getBuildingDTO() || null == result1.getData().getBuildingUnitDTO() || null == result1.getData().getHouseDTO()) { + log.warn("查找被调动人调动前的组织、网格、小区、楼栋、单元、房屋信息失败"); + throw new RenException("9000", "获取被调动人基础信息失败"); + } + return result1.getData(); + } + + /** + * 迁出管理的,校验下拟迁入的房屋 + * @param formDTO + * @return + */ + private Result getNewHouseInfo(IcResiUserTransferFormDTO formDTO) { + Result result2 = new Result<>(); + if ("out".equals(formDTO.getMoveType())) { + IcResiUserOrgMsgFormDTO orgMsgFormDTO2 = new IcResiUserOrgMsgFormDTO(); + orgMsgFormDTO2.setCustomerId(formDTO.getCustomerId()); + orgMsgFormDTO2.setAgencyId(formDTO.getNewAgencyId()); + orgMsgFormDTO2.setGridId(formDTO.getNewGridId()); + orgMsgFormDTO2.setNeighborHoodId(formDTO.getNewNeighborHoodId()); + orgMsgFormDTO2.setBuildingId(formDTO.getNewBuildingId()); + orgMsgFormDTO2.setBuildingUnitId(formDTO.getNewBuildingUnitId()); + orgMsgFormDTO2.setHouseId(formDTO.getNewHouseId()); + result2 = govOrgOpenFeignClient.icResiUserOrgMsg(orgMsgFormDTO2); + if (!result2.success() || null == result2.getData().getAgencyDTO() || null == result2.getData().getGridDTO() || null == result2.getData().getNeighborHoodDTO() + || null == result2.getData().getBuildingDTO() || null == result2.getData().getBuildingUnitDTO() || null == result2.getData().getHouseDTO()) { + log.warn("查找被调动人调动后的组织、网格、小区、楼栋、单元、房屋信息失败"); + throw new RenException("9000", "获取被调动人基础信息失败"); + } + } + return result2; + } + + + } \ No newline at end of file