长者变更信息流程

This commit is contained in:
1378012178@qq.com 2025-09-28 16:43:30 +08:00
parent b98550929f
commit 3fd7d347e4
6 changed files with 163 additions and 30 deletions

View File

@ -3,7 +3,6 @@ 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;
@ -296,7 +295,13 @@ public class ElderApi {
ElderInfoMQDto mqdto = new ElderInfoMQDto();
BeanUtils.copyProperties(elderInfoEntity, mqdto);
mqdto.setId(id);
rabbitMQUtil.sendToExchange("hldy.elder", elderInfoEntity.getOrgCode() + ".elder.addelder", mqdto);
rabbitMQUtil.sendToExchange("hldy.elder", elderInfoEntity.getOrgCode() + ".elder.addelder1", mqdto);
//处理管理端老人信息
ElderInfoEntity elderInfoEn = new ElderInfoEntity();
BeanUtils.copyProperties(mqdto,elderInfoEn);
elderInfoApi.addElder(elderInfoEn);
return Result.ok(id);
}
@ -326,7 +331,7 @@ public class ElderApi {
elderInfoEntity.setOrgCode(elderInfoEntity.getSysOrgCode());
ElderInfoMQDto mqdto = new ElderInfoMQDto();
BeanUtils.copyProperties(elderInfoEntity, mqdto);
rabbitMQUtil.sendToExchange("hldy.elder", elderInfoEntity.getOrgCode() + ".elder.updateelder", mqdto);
rabbitMQUtil.sendToExchange("hldy.elder", elderInfoEntity.getOrgCode() + ".elder.updateelder1", mqdto);
return Result.ok();
}
}

View File

@ -69,37 +69,37 @@ public class NuBaseInfoApi {
* @return
*/
@GetMapping("/queryBillList")
public Result<List<NuBillEntity>> queryBillList(@RequestParam("openId") String openId) {
public Result<List<NuBillEntity>> queryBillList(@RequestParam("openId") String openId, @RequestParam("orgCode") String orgCode) {
//护理单元信息
List<NuBaseElderEntity> nuElderList = nuBaseElderApi.queryByOpenId(openId, null);
if (nuElderList == null || nuElderList.size() == 0) {
return Result.ok(List.of());
}
//key:orgCode value:nuid逗号拼接的字符串
Map<String, String> orgCodeToNuIdMap = nuElderList.stream()
.filter(entity -> entity.getOrgCode() != null && entity.getNuId() != null)
.collect(Collectors.groupingBy(
NuBaseElderEntity::getOrgCode,
Collectors.mapping(NuBaseElderEntity::getNuId, Collectors.joining(","))
));
// List<NuBaseElderEntity> nuElderList = nuBaseElderApi.queryByOpenId(openId, null);
// if (nuElderList == null || nuElderList.size() == 0) {
// return Result.ok(List.of());
// }
//
// //key:orgCode value:nuid逗号拼接的字符串
// Map<String, String> orgCodeToNuIdMap = nuElderList.stream()
// .filter(entity -> entity.getOrgCode() != null && entity.getNuId() != null)
// .collect(Collectors.groupingBy(
// NuBaseElderEntity::getOrgCode,
// Collectors.mapping(NuBaseElderEntity::getNuId, Collectors.joining(","))
// ));
List<NuBillEntity> result = Lists.newArrayList();
for (Map.Entry<String, String> entry : orgCodeToNuIdMap.entrySet()) {
String orgCode = entry.getKey();
// for (Map.Entry<String, String> entry : orgCodeToNuIdMap.entrySet()) {
// String orgCode = entry.getKey();
// String nuIds = entry.getValue();
//切换数据源整理好数据放到返回结果中
DynamicDataSourceContextHolder.push(orgCode);
NuBillEntity params = new NuBillEntity();
params.setOpenId(openId);
List<NuBillEntity> list = nuBillApi.queryByOpenId(params);
if (list == null || list.size() == 0) {
continue;
}
DynamicDataSourceContextHolder.clear();
result.addAll(list);
}
//切换数据源整理好数据放到返回结果中
DynamicDataSourceContextHolder.push(orgCode);
NuBillEntity params = new NuBillEntity();
params.setOpenId(openId);
List<NuBillEntity> list = nuBillApi.queryByOpenId(params);
// if (list == null || list.size() == 0) {
// continue;
// }
DynamicDataSourceContextHolder.clear();
result.addAll(list);
// }
List<NuBillEntity> sortedResult = result.stream()
.sorted(Comparator.comparing(NuBillEntity::getCreateTime, Comparator.nullsLast(Date::compareTo)).reversed())

View File

@ -247,4 +247,8 @@ public class ElderInfoMQDto implements Serializable {
//需要变更谁的信息 zz长者 jhr监护人
private String modifyType;
//变更审批结果
private String upAuditResut;
}

View File

@ -9,4 +9,6 @@ public interface IElderInfoApi {
List<ElderInfoEntity> queryByElderIds(String[] split);
List<ElderInfoEntity> queryElders(String openId, String elderId);
void addElder(ElderInfoEntity elderInfoEn);
}

View File

@ -3,6 +3,7 @@ package com.nu.modules.elderinfo.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.dto.ElderInfoMQDto;
import com.nu.entity.ElderInfoEntity;
import com.nu.modules.baseinfo.api.INuBaseInfoApi;
import com.nu.modules.elder.api.IElderInfoApi;
@ -10,6 +11,7 @@ import com.nu.modules.elderinfo.entity.ElderInfo;
import com.nu.modules.elderinfo.mapper.ElderInfoMapper;
import com.nu.modules.elderinfo.service.IElderInfoService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -44,4 +46,20 @@ public class ElderInfoServiceImpl extends ServiceImpl<ElderInfoMapper, ElderInfo
List<ElderInfo> elderInfos = baseMapper.selectList(qw);
return BeanUtil.copyToList(elderInfos, ElderInfoEntity.class);
}
@Override
public void addElder(ElderInfoEntity dto) {
ElderInfo elderInfo = new ElderInfo();
BeanUtils.copyProperties(dto, elderInfo);
ElderInfo oldElderInfo = baseMapper.selectById(dto.getId());
if (oldElderInfo != null) {
//长者之前入住过
baseMapper.updateById(elderInfo);
} else {
//长者第一次入住机构
elderInfo.setDelFlag("0");
baseMapper.insert(elderInfo);
}
}
}

View File

@ -1,19 +1,27 @@
package com.nu.mq.eldertag.listener;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import com.nu.dto.ElderInfoMQDto;
import com.nu.dto.ElderTagAsyncMQDto;
import com.nu.dto.ElderTagTypeMQDto;
import com.nu.dto.StatusMQDto;
import com.nu.entity.WxNoticeEntity;
import com.nu.enums.MQStatus;
import com.nu.enums.WxClientType;
import com.nu.modules.async.entity.AsyncStatus;
import com.nu.modules.async.service.IAsyncMainService;
import com.nu.modules.async.service.IAsyncStatusService;
import com.nu.modules.canaddeldertag.entity.CanAddElderTag;
import com.nu.modules.canaddeldertag.service.ICanAddElderTagService;
import com.nu.modules.elderinfo.entity.ElderInfo;
import com.nu.modules.elderinfo.service.IElderInfoService;
import com.nu.modules.eldertagtypere.entity.ElderTagTypeRe;
import com.nu.modules.eldertagtypere.service.IElderTagTypeReService;
import com.nu.modules.wxnotice.IWxNoticeApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
@ -25,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Map;
@Slf4j
@Component
@ -38,6 +47,10 @@ public class ElderTaggMQListener {
private ICanAddElderTagService canAddElderTagService;
@Autowired
private IElderTagTypeReService elderTagTypeService;
@Autowired
private IElderInfoService elderInfoService;
@Autowired
private IWxNoticeApi wxNoticeApi;
/**
* 其他平台新增指令
@ -72,7 +85,7 @@ public class ElderTaggMQListener {
}
ElderTagTypeRe elderTagType = new ElderTagTypeRe();
BeanUtils.copyProperties(dto,elderTagType);
BeanUtils.copyProperties(dto, elderTagType);
elderTagType.setId(IdUtil.simpleUUID());
elderTagType.setTypeId(dto.getId());
elderTagTypeService.save(elderTagType);
@ -92,4 +105,95 @@ public class ElderTaggMQListener {
asyncStatus.setMsg(dto.getMessage());
asyncStatusService.updateById(asyncStatus);
}
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.elder.infoUp.result"), exchange = @Exchange(name = "hldy.elder", type = ExchangeTypes.DIRECT), key = "hldy.elder.infoUp.result"), errorHandler = "elderTaggMQErrorHandler")
public void handleInfoUp(ElderInfoMQDto dto) {
if ("Y".equals(dto.getUpAuditResut())) {
ElderInfo elderInfo = new ElderInfo();
BeanUtils.copyProperties(dto, elderInfo);
elderInfoService.updateById(elderInfo);
if ("jhr".equals(dto.getModifyType())) {
//增加消息通知
WxNoticeEntity wxNoticeEntity = new WxNoticeEntity();
wxNoticeEntity.setOpenId(dto.getGuardianOpenId());
wxNoticeEntity.setIzRead("1");
wxNoticeEntity.setOrgCode(dto.getOrgCode());
wxNoticeEntity.setTitle("监护人信息变更审批");
wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请已通过");
wxNoticeEntity.setType("elder_jhr_info_update_list");
Map<String, Object> extend = Maps.newHashMap();
extend.put("orgCode", dto.getOrgCode());
extend.put("dataId", dto.getId());
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
wxNoticeApi.addNotice(wxNoticeEntity);
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
}
if ("zz".equals(dto.getModifyType())) {
//增加消息通知
WxNoticeEntity wxNoticeEntity = new WxNoticeEntity();
wxNoticeEntity.setOpenId(dto.getGuardianOpenId());
wxNoticeEntity.setIzRead("1");
wxNoticeEntity.setOrgCode(dto.getOrgCode());
wxNoticeEntity.setTitle("长者信息变更审批");
wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人信息变更申请已通过");
wxNoticeEntity.setType("elder_info_update_list");
Map<String, Object> extend = Maps.newHashMap();
extend.put("orgCode", dto.getOrgCode());
extend.put("dataId", dto.getId());
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
wxNoticeApi.addNotice(wxNoticeEntity);
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
}
}
if ("N".equals(dto.getUpAuditResut())) {
if ("jhr".equals(dto.getModifyType())) {
ElderInfo elderInfo = new ElderInfo();
elderInfo.setId(dto.getId());
elderInfo.setGuardianModifyStatus("3");//监护人审批结果
elderInfo.setGuardianModifyContent(dto.getGuardianModifyContent());//监护人审批不通过原因
elderInfoService.updateById(elderInfo);
//增加消息通知
WxNoticeEntity wxNoticeEntity = new WxNoticeEntity();
wxNoticeEntity.setOpenId(dto.getGuardianOpenId());
wxNoticeEntity.setIzRead("1");
wxNoticeEntity.setOrgCode(dto.getOrgCode());
wxNoticeEntity.setTitle("监护人信息变更审批");
wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人的家属信息变更申请未通过");
wxNoticeEntity.setType("elder_jhr_info_update_list");
Map<String, Object> extend = Maps.newHashMap();
extend.put("orgCode", dto.getOrgCode());
extend.put("dataId", dto.getId());
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
wxNoticeApi.addNotice(wxNoticeEntity);
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
}
if ("zz".equals(dto.getModifyType())) {
ElderInfo elderInfo = new ElderInfo();
elderInfo.setId(dto.getId());
elderInfo.setElderModifyStatus("3");//长者审批结果
elderInfo.setElderModifyContent(dto.getElderModifyContent());//长者审批不通过原因
elderInfoService.updateById(elderInfo);
//增加消息通知
WxNoticeEntity wxNoticeEntity = new WxNoticeEntity();
wxNoticeEntity.setOpenId(dto.getGuardianOpenId());
wxNoticeEntity.setIzRead("1");
wxNoticeEntity.setOrgCode(dto.getOrgCode());
wxNoticeEntity.setTitle("长者信息变更审批");
wxNoticeEntity.setContent("您好,您提交的" + dto.getName() + "老人信息变更申请未通过");
wxNoticeEntity.setType("elder_info_update_list");
Map<String, Object> extend = Maps.newHashMap();
extend.put("orgCode", dto.getOrgCode());
extend.put("dataId", dto.getId());
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
wxNoticeApi.addNotice(wxNoticeEntity);
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
}
}
}
}