diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index baf6ad7abd..92fb0d2116 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -272,10 +272,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { houseChangeRecordCollect(formDTO.getId(), formDTO.getCustomerId(), icHouseDTO); icHouseDao.updateById(entity); - IcHouseDTO houseDTO = icHouseService.get(formDTO.getId()); + // IcHouseDTO houseDTO = icHouseService.get(formDTO.getId()); //删除房屋缓存 - icHouseRedis.delHouseInfo(formDTO.getId(), houseDTO.getCustomerId()); + icHouseRedis.delHouseInfo(formDTO.getId(), formDTO.getCustomerId()); } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java index bfecfa4671..ee5d24e8a1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java @@ -9,10 +9,12 @@ 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; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; 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.redis.common.bean.HouseInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.PidUtils; @@ -43,6 +45,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -421,6 +424,7 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl resultDTOResult = govOrgFeignClient.getHouseInfoToCollect(getHouseInfoToCollectFormDTO); IcHouseInfoCollectResultDTO icHouseInfoCollectResultDTO = resultDTOResult.getData(); - + if(null==icHouseInfoCollectResultDTO){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"房屋不存在","房屋不存在,请先新建同名房屋"); + } // 新增房屋后需要collect更新上房屋ID // log icResiCollectEntity.setHomeId(icHouseInfoCollectResultDTO.getId()); @@ -462,7 +468,9 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId()); - wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); + wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()) + .ne(IcResiUserEntity::getIdCard,icResiCollectMemDetailDTO.getIdNum()); List entityList = icResiUserDao.selectList(wrapper); if (CollectionUtils.isNotEmpty(entityList)) { - String errorMsg = "房屋下已存在户主"; - throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + String errorMsg = "当前房屋下已存在户主"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); } } - AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(icResiCollectEntity.getAgencyId()); - if (null == agencyInfoCache) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所属组织查询异常,agencyId:" + icResiCollectEntity.getAgencyId(), "所属组织查询异常"); - } - // userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身 - userEntity.setPids(PidUtils.convertPid2OrgIdPath(icResiCollectEntity.getAgencyId(), agencyInfoCache.getPids())); - 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.setIcUserId(existedUserEntity.getId()); changeRecordEntity.setOperatorName(formDTO.getRealName()); - changeRecordEntity.setIcUserName(userEntity.getName()); - changeRecordEntity.setType("update"); - changeRecordEntity.setTypeName("修改"); + changeRecordEntity.setIcUserName(existedUserEntity.getName()); + changeRecordEntity.setType("transfer"); + changeRecordEntity.setTypeName("调动"); changeRecordEntity.setBeforeChangeName("-"); + HouseInfoCache originHouseInfoCache= CustomerIcHouseRedis.getHouseInfo(icResiCollectEntity.getCustomerId(),existedUserEntity.getHomeId()); + if(null!=originHouseInfoCache){ + changeRecordEntity.setBeforeChangeName(originHouseInfoCache.getAgencyPathName().concat(StrConstant.HYPHEN).concat(originHouseInfoCache.getGridName()).concat(StrConstant.HYPHEN).concat(originHouseInfoCache.getAllName())); + } changeRecordEntity.setAfterChangeName("-"); + HouseInfoCache newHouseInfoCache = CustomerIcHouseRedis.getHouseInfo(icResiCollectEntity.getCustomerId(), icResiCollectEntity.getHomeId()); + if (null != newHouseInfoCache) { + //信息采集时居民自己填写的房屋 以他填写的为准!!!!!! + changeRecordEntity.setAfterChangeName(newHouseInfoCache.getAgencyPathName().concat(StrConstant.HYPHEN).concat(newHouseInfoCache.getGridName()).concat(StrConstant.HYPHEN).concat(newHouseInfoCache.getAllName())); + } changeRecordEntity.setChangeTime(new java.util.Date()); + changeRecordEntity.setReason("来源于信息采集:更新居民所属房屋信息"); icUserChangeRecordService.insert(changeRecordEntity); } + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(icResiCollectEntity.getAgencyId()); + if (null == agencyInfoCache) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所属组织查询异常,agencyId:" + icResiCollectEntity.getAgencyId(), "所属组织查询异常"); + } + // userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身 + existedUserEntity.setPids(PidUtils.convertPid2OrgIdPath(icResiCollectEntity.getAgencyId(), agencyInfoCache.getPids())); + // 组织Id + existedUserEntity.setAgencyId(icResiCollectEntity.getAgencyId()); + // 网格id + existedUserEntity.setGridId(icResiCollectEntity.getGridId()); + // 小区id + existedUserEntity.setVillageId(icResiCollectEntity.getVillageId()); + // 楼栋id + existedUserEntity.setBuildId(icResiCollectEntity.getBuildId()); + // 单元id + existedUserEntity.setUnitId(icResiCollectEntity.getUnitId()); + // 房屋id + existedUserEntity.setHomeId(icResiCollectEntity.getHomeId()); + // 姓名 + existedUserEntity.setName(icResiCollectMemDetailDTO.getName()); + // 手机号 + existedUserEntity.setMobile(icResiCollectMemDetailDTO.getMobile()); + // 身份证号 + existedUserEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum()); + // 与户主关系 + existedUserEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship()); + // 工作单位 + existedUserEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace()); + // 备注 + existedUserEntity.setRemarks(icResiCollectMemDetailDTO.getRemark()); + // 户籍所在地 + existedUserEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace()); + icResiUserDao.updateById(existedUserEntity); } /** @@ -542,49 +576,65 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcResiUserEntity::getHomeId, icResiCollectEntity.getHomeId()); - wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()); + wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode()) + .ne(IcResiUserEntity::getIdCard,icResiCollectMemDetailDTO.getIdNum()); List entityList = icResiUserDao.selectList(wrapper); + // 已经存在户主了,当前成员填写的也是户主... 暂不处理 if (CollectionUtils.isNotEmpty(entityList)) { - String errorMsg = "房屋下已存在户主"; - throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg); + String errorMsg = "当前房屋下已存在户主"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); } } // 新增人员 - IcResiUserEntity userEntity = new IcResiUserEntity(); + IcResiUserEntity insertUserEntity = new IcResiUserEntity(); AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(icResiCollectEntity.getAgencyId()); if (null == agencyInfoCache) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所属组织查询异常,agencyId:" + icResiCollectEntity.getAgencyId(), "所属组织查询异常"); } + // 组织的pids 含agencyId本身 // userEntity.setPids(icResiCollectEntity.getPids() + ":" + icResiCollectEntity.getAgencyId()); // ic_resi_user表的组织的pids 含agencyId本身 !!! - userEntity.setPids(PidUtils.convertPid2OrgIdPath(icResiCollectEntity.getAgencyId(), agencyInfoCache.getPids())); - 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); + insertUserEntity.setPids(PidUtils.convertPid2OrgIdPath(icResiCollectEntity.getAgencyId(), agencyInfoCache.getPids())); + // 网格所属组织id + insertUserEntity.setAgencyId(icResiCollectEntity.getAgencyId()); + // 网格id + insertUserEntity.setGridId(icResiCollectEntity.getGridId()); + // 小区id + insertUserEntity.setVillageId(icResiCollectEntity.getVillageId()); + // 楼栋id + insertUserEntity.setBuildId(icResiCollectEntity.getBuildId()); + //单元id + insertUserEntity.setUnitId(icResiCollectEntity.getUnitId()); + //房屋id + insertUserEntity.setHomeId(icResiCollectEntity.getHomeId()); + //姓名 + insertUserEntity.setName(icResiCollectMemDetailDTO.getName()); + //手机号 + insertUserEntity.setMobile(icResiCollectMemDetailDTO.getMobile()); + insertUserEntity.setIdCard(icResiCollectMemDetailDTO.getIdNum()); + //与户主关系 + insertUserEntity.setYhzgx(icResiCollectMemDetailDTO.getRelationship()); + //工作单位 + insertUserEntity.setGzdw(icResiCollectMemDetailDTO.getWorkPlace()); + // 备注 + insertUserEntity.setRemarks(icResiCollectMemDetailDTO.getRemark()); + insertUserEntity.setCustomerId(icResiCollectMemDetailDTO.getCustomerId()); + // 户籍所在地 + insertUserEntity.setHjszd(icResiCollectMemDetailDTO.getDomicilePlace()); + icResiUserDao.insert(insertUserEntity); //变更记录表 IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); changeRecordEntity.setCustomerId(icResiCollectEntity.getCustomerId()); changeRecordEntity.setOperatorId(formDTO.getUserId()); - changeRecordEntity.setIcUserId(userEntity.getId()); + changeRecordEntity.setIcUserId(insertUserEntity.getId()); changeRecordEntity.setOperatorName(formDTO.getRealName()); - changeRecordEntity.setIcUserName(userEntity.getName()); + changeRecordEntity.setIcUserName(insertUserEntity.getName()); changeRecordEntity.setType("add"); changeRecordEntity.setTypeName("新增"); changeRecordEntity.setBeforeChangeName("-"); changeRecordEntity.setAfterChangeName("-"); + changeRecordEntity.setReason("来源于信息采集"); changeRecordEntity.setChangeTime(new java.util.Date()); icUserChangeRecordService.insert(changeRecordEntity); @@ -602,11 +652,21 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl queryOriginUserByHomeId(String homeId,String customerId) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(IcResiUserEntity::getHomeId, homeId); query.eq(IcResiUserEntity::getCustomerId, customerId); List originUserList = icResiUserDao.selectList(query); + if(CollectionUtils.isEmpty(originUserList)){ + return new HashMap<>(); + } Map memMap = originUserList.stream().collect(Collectors.toMap(IcResiUserEntity::getIdCard, Function.identity())); return memMap; }