添加家属:增加判断 - 如果长者已入住机构 则不重复添加

This commit is contained in:
1378012178@qq.com 2025-09-23 10:25:58 +08:00
parent 05e12628b5
commit d2e247bcc3
7 changed files with 52 additions and 1 deletions

View File

@ -8,4 +8,6 @@ public interface INuBaseInfoApi {
NuBaseInfoEntity queryInfoByNuId(String orgCode, String nuId);
List<NuBaseInfoEntity> queryByOpenId(String openId);
NuBaseInfoEntity queryByElderIdNum(String idCard);
}

View File

@ -133,4 +133,7 @@ public class NuBaseInfo implements Serializable {
@TableField(exist = false)
private String deviceIndex;
@TableField(exist = false)
private String elderTableId;
}

View File

@ -2,6 +2,7 @@ package com.nu.modules.baseinfo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.baseinfo.entity.NuBaseInfo;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 护理单元
@ -11,4 +12,6 @@ import com.nu.modules.baseinfo.entity.NuBaseInfo;
*/
public interface NuBaseInfoMapper extends BaseMapper<NuBaseInfo> {
NuBaseInfo queryByElderIdNum(@Param("idCard") String idCard);
}

View File

@ -2,4 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.baseinfo.mapper.NuBaseInfoMapper">
<select id="queryByElderIdNum" resultType="com.nu.modules.baseinfo.entity.NuBaseInfo">
select baseinfo.*,
elderinfo.id AS elderTableId
from nu_biz_elder_info elderinfo
left join nu_base_info baseinfo on baseinfo.elder_id = elderinfo.id
where elderinfo.id_card = #{idCard}
</select>
</mapper>

View File

@ -62,4 +62,16 @@ public class NuBaseInfoServiceImpl extends ServiceImpl<NuBaseInfoMapper, NuBaseI
List<NuBaseInfo> list = baseMapper.selectList(qw);
return BeanUtil.copyToList(list,NuBaseInfoEntity.class);
}
@Override
public NuBaseInfoEntity queryByElderIdNum(String idCard) {
NuBaseInfo resource = baseMapper.queryByElderIdNum(idCard);
NuBaseInfoEntity result = new NuBaseInfoEntity();
if(resource == null){
return null;
}else{
BeanUtils.copyProperties(resource,result);
return result;
}
}
}

View File

@ -3,6 +3,7 @@ package com.nu.modules.wechat.elder.api;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.dto.ElderInfoMQDto;
import com.nu.entity.ElderInfoEntity;
@ -139,7 +140,7 @@ public class ElderApi {
mqdto.setGuardianIdCard(nuBizAdvisoryInfo.getIdCard());//联系人身份证号
mqdto.setGuardianHomeAddress(nuBizAdvisoryInfo.getHomeAddress());//联系人家庭住址
mqdto.setGuardianWorkUnit(nuBizAdvisoryInfo.getWorkUnit());//联系人工作单位
rabbitMQUtil.sendToExchange("hldy.elder", orgCode+".elder.updateguardianinfo", mqdto);
rabbitMQUtil.sendToExchange("hldy.elder", orgCode + ".elder.updateguardianinfo", mqdto);
DynamicDataSourceContextHolder.clear();
}
}
@ -268,7 +269,28 @@ public class ElderApi {
*/
@PostMapping("/addElder")
public Result<?> save(@RequestBody ElderInfoEntity elderInfoEntity) {
//长者id
String id = elderInfoEntity.getSysOrgCode() + IdUtil.simpleUUID();
//先判断对应机构此老人根据身份证号是否已经入住护理单元
{
//切换数据源
DynamicDataSourceContextHolder.push(elderInfoEntity.getSysOrgCode());
NuBaseInfoEntity judgeResult = nuBaseInfoApi.queryByElderIdNum(elderInfoEntity.getIdCard());
if (judgeResult != null) {
if (StringUtils.isNotBlank(judgeResult.getElderId())) {
return Result.error("老人已入住机构,不可重复添加");
}
if (StringUtils.isNotBlank(judgeResult.getElderTableId())) {
//老人之前在机构入住过
id = judgeResult.getElderTableId();
}
}
//清理数据源
DynamicDataSourceContextHolder.clear();
}
elderInfoEntity.setOrgCode(elderInfoEntity.getSysOrgCode());
elderInfoEntity.setCurrentState("1");//状态入住
ElderInfoMQDto mqdto = new ElderInfoMQDto();

View File

@ -1,5 +1,6 @@
package com.nu.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
@ -99,5 +100,6 @@ public class NuBaseInfoEntity implements Serializable {
//长者信息
private ElderInfoEntity elderInfo;
private String elderTableId;
}