diff --git a/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java b/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java index 7b580db..40dfb99 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java @@ -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; @@ -297,6 +296,12 @@ public class ElderApi { BeanUtils.copyProperties(elderInfoEntity, mqdto); mqdto.setId(id); rabbitMQUtil.sendToExchange("hldy.elder", elderInfoEntity.getOrgCode() + ".elder.addelder", mqdto); + + //处理管理端老人信息 + ElderInfoEntity elderInfoEn = new ElderInfoEntity(); + BeanUtils.copyProperties(mqdto,elderInfoEn); + elderInfoApi.addElder(elderInfoEn); + return Result.ok(id); } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java b/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java index 0a6d9ff..fe2670b 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java @@ -69,37 +69,37 @@ public class NuBaseInfoApi { * @return */ @GetMapping("/queryBillList") - public Result> queryBillList(@RequestParam("openId") String openId) { + public Result> queryBillList(@RequestParam("openId") String openId, @RequestParam("orgCode") String orgCode) { //护理单元信息 - List nuElderList = nuBaseElderApi.queryByOpenId(openId, null); - if (nuElderList == null || nuElderList.size() == 0) { - return Result.ok(List.of()); - } - - //key:orgCode value:nuid逗号拼接的字符串 - Map orgCodeToNuIdMap = nuElderList.stream() - .filter(entity -> entity.getOrgCode() != null && entity.getNuId() != null) - .collect(Collectors.groupingBy( - NuBaseElderEntity::getOrgCode, - Collectors.mapping(NuBaseElderEntity::getNuId, Collectors.joining(",")) - )); +// List nuElderList = nuBaseElderApi.queryByOpenId(openId, null); +// if (nuElderList == null || nuElderList.size() == 0) { +// return Result.ok(List.of()); +// } +// +// //key:orgCode value:nuid逗号拼接的字符串 +// Map orgCodeToNuIdMap = nuElderList.stream() +// .filter(entity -> entity.getOrgCode() != null && entity.getNuId() != null) +// .collect(Collectors.groupingBy( +// NuBaseElderEntity::getOrgCode, +// Collectors.mapping(NuBaseElderEntity::getNuId, Collectors.joining(",")) +// )); List result = Lists.newArrayList(); - for (Map.Entry entry : orgCodeToNuIdMap.entrySet()) { - String orgCode = entry.getKey(); +// for (Map.Entry entry : orgCodeToNuIdMap.entrySet()) { +// String orgCode = entry.getKey(); // String nuIds = entry.getValue(); - //切换数据源整理好数据放到返回结果中 - DynamicDataSourceContextHolder.push(orgCode); - NuBillEntity params = new NuBillEntity(); - params.setOpenId(openId); - List 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 list = nuBillApi.queryByOpenId(params); +// if (list == null || list.size() == 0) { +// continue; +// } + DynamicDataSourceContextHolder.clear(); + result.addAll(list); +// } List sortedResult = result.stream() .sorted(Comparator.comparing(NuBillEntity::getCreateTime, Comparator.nullsLast(Date::compareTo)).reversed()) diff --git a/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java index f764a21..7020539 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java @@ -247,4 +247,8 @@ public class ElderInfoMQDto implements Serializable { //需要变更谁的信息 zz长者 jhr监护人 private String modifyType; + + //变更审批结果 + private String upAuditResut; + } diff --git a/nursing-unit-elder/nu-elder-api/nu-elder-local-api/src/main/java/com/nu/modules/elder/api/IElderInfoApi.java b/nursing-unit-elder/nu-elder-api/nu-elder-local-api/src/main/java/com/nu/modules/elder/api/IElderInfoApi.java index 824ed73..97688b2 100644 --- a/nursing-unit-elder/nu-elder-api/nu-elder-local-api/src/main/java/com/nu/modules/elder/api/IElderInfoApi.java +++ b/nursing-unit-elder/nu-elder-api/nu-elder-local-api/src/main/java/com/nu/modules/elder/api/IElderInfoApi.java @@ -9,4 +9,6 @@ public interface IElderInfoApi { List queryByElderIds(String[] split); List queryElders(String openId, String elderId); + + void addElder(ElderInfoEntity elderInfoEn); } diff --git a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/modules/elderinfo/service/impl/ElderInfoServiceImpl.java b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/modules/elderinfo/service/impl/ElderInfoServiceImpl.java index 4b40b57..adca7a5 100644 --- a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/modules/elderinfo/service/impl/ElderInfoServiceImpl.java +++ b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/modules/elderinfo/service/impl/ElderInfoServiceImpl.java @@ -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 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); + } + + } } diff --git a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java index abf660e..f171947 100644 --- a/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java +++ b/nursing-unit-elder/nu-elder-biz/src/main/java/com/nu/mq/eldertag/listener/ElderTaggMQListener.java @@ -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 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 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 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 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); + } + } + } }