diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java index 72769ea31e..2cd1167802 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -449,10 +450,16 @@ public class IcResiUserDTO implements Serializable { private String jtxxRemakes; /** - * 用户状态【0:正常 1:转出】 + * 用户状态【0:正常;1:迁出;2:注销】 */ private String status; + /** + * 用户详细状态:01:新增、02:导入、03:迁入、04:新生、11:迁出、21死亡 + */ + private String subStatus; + + /** * 删除标识 0.未删除 1.已删除 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java index cc4ed1a405..81c3cd0780 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java @@ -90,12 +90,12 @@ public class IcUserChangeDetailedDTO implements Serializable { private String icUserId; /** - * 操作类型【add:新增 category:类别变动 in:迁入 out:迁出】 + * 操作类型【add:新增 category:类别 in:迁入 out:迁出;死亡:die】 */ private String type; /** - * 操作类型名称【add:新增 category:类别变动 in:迁入 out:迁出】 + * 操作类型名称【add:新增 category:类别 in:迁入 out:迁出;死亡:die】 */ private String typeName; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeRecordDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeRecordDTO.java index 5e4818d8f8..d1a60deeff 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeRecordDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeRecordDTO.java @@ -69,12 +69,12 @@ public class IcUserChangeRecordDTO implements Serializable { private String icUserName; /** - * 操作类型【add:新增 category:类别 transfer:调动】 + * 操作类型【add:新增 category:类别 transfer:调动;logout注销】 */ private String type; /** - * 操作类型名称【add:新增 category:类别 transfer:调动】 + * 操作类型名称【add:新增 category:类别 transfer:调动;logout注销】 */ private String typeName; @@ -93,6 +93,11 @@ public class IcUserChangeRecordDTO implements Serializable { */ private Date changeTime; + /** + * 原因(迁入原因/迁出原因等) + */ + private String reason; + /** * 备注说明 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseHolderResDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseHolderResDTO.java new file mode 100644 index 0000000000..143bc78027 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseHolderResDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * 房屋的户主信息 + */ +@Data +public class HouseHolderResDTO implements Serializable { + private static final long serialVersionUID = 8849057608809731937L; + + /** + * 户主姓名:取的是家庭信息-与户主关系-本人的居民 + */ + private String name; + private String id; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/SyncResiResDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/SyncResiResDTO.java new file mode 100644 index 0000000000..e42ee5417a --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/SyncResiResDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 迁入管理、出生管理,勾选了补充居民信息,输入身份证号后,调用接口校验是否可继续执行 + */ +@Data +public class SyncResiResDTO implements Serializable { + private static final long serialVersionUID = 673439146165836938L; + + public interface FormShow extends CustomerClientShowGroup { + } + + public interface FormInternal { + } + + /** + * 身份证号 + */ + @NotBlank(message = "身份证号不能为空", groups = FormShow.class) + private String idCard; + /** + * 当前登录用户所属的组织id + */ + @NotBlank(message = "当前登录用户所属组织不能为空", groups = FormInternal.class) + private String agencyId; + + private String customerId; + /** + * true:可以迁入;flase:不可迁入 + */ + private Boolean moveInstatus; + /** + * 身份证号已存在的居民,返回其所属社区名称 + */ + private String resiAgencyName; + + /** + * 身份证号已存在的居民,返回其所属社区id + */ + private String resiAgencyId; + + /** + * 身份证号已存在的居民,返回其房屋id + */ + private String resiHomeId; + + public SyncResiResDTO(String customerId, String idCard, String agencyId) { + this.idCard = idCard; + this.customerId = customerId; + this.agencyId = agencyId; + this.moveInstatus = true; + this.resiAgencyId = StrConstant.EPMETY_STR; + this.resiAgencyName = StrConstant.EPMETY_STR; + this.resiHomeId = StrConstant.EPMETY_STR; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index a6f696a39f..56efa35ebc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -1003,4 +1003,33 @@ public class IcResiUserController implements ResultDataResolver { // }); // return new Result(); // } + + /** + * 根据房屋id,查询居民信息表中-家庭信息-本人 的居民。如果有多个,返回最近一个 + * @param homeId + * @param loginUser + * @return + */ + @PostMapping("queryhousehold/{homeId}") + public Result queryHouseHold(@PathVariable("homeId") String homeId, @LoginUser TokenDto loginUser) { + String customerId = loginUser.getCustomerId(); + HouseHolderResDTO res = icResiUserService.queryHouseHold(homeId, customerId); + return new Result().ok(res); + } + + /** + * 迁入管理、出生管理,勾选了补充居民信息,输入身份证号后,调用接口校验是否可继续执行 + * + * @param tokenDto + * @param formDto + * @return + */ + @PostMapping("checkuser") + public Result checkUser(@LoginUser TokenDto tokenDto, @RequestBody SyncResiResDTO formDto) { + ValidatorUtils.validateEntity(formDto, SyncResiResDTO.FormShow.class, SyncResiResDTO.FormInternal.class); + return new Result().ok(icResiUserService.checkUser(tokenDto.getCustomerId(), formDto.getIdCard(), formDto.getAgencyId())); + } + + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java index 4a25a479af..8b3b5ad283 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java @@ -441,10 +441,15 @@ public class IcResiUserEntity extends BaseEpmetEntity { private String jtxxRemakes; /** - * 用户状态【0:正常 1:转出】 + * 用户状态【0:正常;1:迁出;2:注销】 */ private String status; + /** + * 用户详细状态:01:新增、02:导入、03:迁入、04:新生、11:迁出、21死亡 + */ + private String subStatus; + /** * 预留字段1 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java index f60a5d1e36..f985ea140a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java @@ -87,12 +87,12 @@ public class IcUserChangeDetailedEntity extends BaseEpmetEntity { private String icUserId; /** - * 操作类型【add:新增 category:类别变动 in:迁入 out:迁出】 + * 操作类型【add:新增 category:类别 in:迁入 out:迁出;死亡:die】 */ private String type; /** - * 操作类型名称【add:新增 category:类别变动 in:迁入 out:迁出】 + * 操作类型名称【add:新增 category:类别 in:迁入 out:迁出;死亡:die】 */ private String typeName; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeRecordEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeRecordEntity.java index 82b964d104..ee137984c9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeRecordEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeRecordEntity.java @@ -68,12 +68,12 @@ public class IcUserChangeRecordEntity extends BaseEpmetEntity { private String icUserName; /** - * 操作类型【add:新增 category:类别 transfer:调动】 + * 操作类型【add:新增 category:类别 transfer:调动;logout注销】 */ private String type; /** - * 操作类型名称【add:新增 category:类别 transfer:调动】 + * 操作类型名称【add:新增 category:类别 transfer:调动;logout注销】 */ private String typeName; @@ -92,6 +92,11 @@ public class IcUserChangeRecordEntity extends BaseEpmetEntity { */ private Date changeTime; + /** + * 原因(迁入原因/迁出原因等) + */ + private String reason; + /** * 备注说明 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 3fec833fe8..9d16a16f21 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -309,4 +309,23 @@ public interface IcResiUserService extends BaseService { */ String updateImage(TokenDto tokenDto, RentTenantFormDTO formDTO); + /** + * 根据房屋id,查询居民信息表中-家庭信息-本人 的居民。如果有多个,返回最近一个 + * + * @param homeId + * @param customerId + * @return + */ + HouseHolderResDTO queryHouseHold(String homeId, String customerId); + + /** + * 迁入管理、出生管理,勾选了补充居民信息,输入身份证号后,调用接口校验是否可继续执行 + * moveInstatus=false: 如果不是本社区下居民,但是本客户下居民,且未从其他社区下迁出,则提示“请联系**社区迁出该居民后操作“,填写完整信息后提交也进行该提示,并且不生成出生记录 + * + * @param customerId + * @param idCard + * @param agencyId 当前登录用户所属的组织id + * @return + */ + SyncResiResDTO checkUser(String customerId, String idCard, String agencyId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 3db2ae8376..916330f4af 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -1777,4 +1777,66 @@ public class IcResiUserServiceImpl extends BaseServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(IcResiUserEntity::getCustomerId, customerId) + .eq(IcResiUserEntity::getHomeId, homeId) + .eq(IcResiUserEntity::getYhzgx,RelationshipEnum.SELF.getCode()) + .select( + IcResiUserEntity::getId, + IcResiUserEntity::getName + ) + .orderByDesc(IcResiUserEntity::getCreatedTime).last("limit 1"); + + IcResiUserEntity resiEntity = baseDao.selectOne(lqw); + return ConvertUtils.sourceToTarget(resiEntity, HouseHolderResDTO.class); + } + + /** + * 迁入管理、出生管理,勾选了补充居民信息,输入身份证号后,调用接口校验是否可继续执行 + * moveInstatus=false: 如果不是本社区下居民,但是本客户下居民,且未从其他社区下迁出,则提示“请联系**社区迁出该居民后操作“,填写完整信息后提交也进行该提示,并且不生成出生记录 + * + * @param customerId + * @param idCard + * @return + */ + @Override + public SyncResiResDTO checkUser(String customerId, String idCard, String agencyId) { + SyncResiResDTO resiResDTO = new SyncResiResDTO(customerId, idCard, agencyId); + IcResiUserDTO icResiUserDTO = baseDao.selectIdByIdCard(customerId, idCard, StrConstant.EPMETY_STR); + if (null == icResiUserDTO) { + // 3.不是本社区居民的在客户下不存在的直接新增居民新增迁入记录 + return resiResDTO; + } + //当前客户下,存在同身份证号的居民 + resiResDTO.setResiAgencyId(icResiUserDTO.getAgencyId()); + resiResDTO.setResiHomeId(icResiUserDTO.getHomeId()); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(resiResDTO.getResiAgencyId()); + if (null == agencyInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询组织信息异常", EpmetErrorCode.SERVER_ERROR.getMsg()); + } + resiResDTO.setResiAgencyName(agencyInfo.getOrganizationName()); + // 1.判断是否本社区居民,是的在判断是正常还是游离,正常的判断房屋跟之前是否一样,不一样的给提示是否更新,一样的直接更新居民信息,生成迁入记录,游离的直接更新居民信息,生成迁入记录 + // 1.留给调用者去判断; + + // 2.判断不是本社区居民的,在判断是正常还是游离,正常的直接停止程序操作,游离的直接更新居民信息,生成迁入记录; + if (!icResiUserDTO.getAgencyId().equals(agencyId) && !NumConstant.ONE_STR.equals(icResiUserDTO.getStatus())) { + resiResDTO.setMoveInstatus(false); + } + return resiResDTO; + } + + + + + + } diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql index b1a71547c7..8769f03118 100644 --- a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql @@ -1,3 +1,12 @@ --- 退役军人表增加此列 -ALTER TABLE ic_veterans ADD COLUMN IS_HANDLE_JOB CHAR(1) COMMENT '是否办理公益性岗位,0422新增' AFTER XJYQK; -update ic_veterans set ic_veterans.IS_HANDLE_JOB='0' where ic_veterans.IS_HANDLE_JOB is null or ic_veterans.IS_HANDLE_JOB=''; \ No newline at end of file +-- 变更记录表:增加 原因一列,增加操作类型 +alter table ic_user_change_record add COLUMN REASON VARCHAR(255) DEFAULT '' COMMENT '原因(迁入原因/迁出原因等)' after CHANGE_TIME; +alter table ic_user_change_record MODIFY COLUMN `TYPE` varchar(64) NOT NULL COMMENT '操作类型【add:新增 category:类别 transfer:调动;logout注销】'; +alter table ic_user_change_record MODIFY COLUMN `TYPE_NAME` varchar(64) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 transfer:调动;logout注销】'; +-- 变更明细表,增加操作类型 +alter table ic_user_change_detailed MODIFY COLUMN `TYPE` varchar(255) NOT NULL COMMENT '操作类型【add:新增 category:类别 in:迁入 out:迁出;死亡:die】'; +alter table ic_user_change_detailed MODIFY COLUMN `TYPE_NAME` varchar(255) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 in:迁入 out:迁出;死亡:die】'; +-- 居民信息表:增加一种状态;添加一列详细状态 +alter table ic_resi_user MODIFY COLUMN `STATUS` varchar(1) DEFAULT '0' COMMENT '用户状态【0:正常;1:迁出;2:注销】'; + +-- 01:新增、02:导入、03:迁入、04:新生、11:迁出、21死亡....; +alter table ic_resi_user ADD COLUMN `SUB_STATUS` varchar(10) DEFAULT NULL COMMENT '用户详细状态:01:新增、02:导入、03:迁入、04:新生、11:迁出、21死亡' AFTER `STATUS`; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.42__add_die_substatus.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.42__add_die_substatus.sql new file mode 100644 index 0000000000..b1a71547c7 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.42__add_die_substatus.sql @@ -0,0 +1,3 @@ +-- 退役军人表增加此列 +ALTER TABLE ic_veterans ADD COLUMN IS_HANDLE_JOB CHAR(1) COMMENT '是否办理公益性岗位,0422新增' AFTER XJYQK; +update ic_veterans set ic_veterans.IS_HANDLE_JOB='0' where ic_veterans.IS_HANDLE_JOB is null or ic_veterans.IS_HANDLE_JOB=''; \ No newline at end of file