Merge branch '0418_小程序开发' of http://182.92.166.109:3000/zhuangyuanke/PostDischargePatientManage into 0418_小程序开发
This commit is contained in:
commit
68846ecb7d
@ -96,7 +96,7 @@ public class TextMessageServiceImpl implements ITextMessageService {
|
|||||||
public int insertTextMessage(TextMessageTaskDTO textMessageTaskDTO) {
|
public int insertTextMessage(TextMessageTaskDTO textMessageTaskDTO) {
|
||||||
// 检查短信模板名称是否已存在
|
// 检查短信模板名称是否已存在
|
||||||
if (textMessageMapper.countByTextMessageTaskDTO(textMessageTaskDTO) > 0) {
|
if (textMessageMapper.countByTextMessageTaskDTO(textMessageTaskDTO) > 0) {
|
||||||
throw new ServiceException("短信模板名称已存在");
|
throw new ServiceException("短信模板编号已存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置创建者和创建时间
|
// 设置创建者和创建时间
|
||||||
@ -104,7 +104,6 @@ public class TextMessageServiceImpl implements ITextMessageService {
|
|||||||
LocalDateTime currentTime = LocalDateTime.now();
|
LocalDateTime currentTime = LocalDateTime.now();
|
||||||
textMessageTaskDTO.setCreateBy(currentUsername);
|
textMessageTaskDTO.setCreateBy(currentUsername);
|
||||||
textMessageTaskDTO.setCreateTime(currentTime);
|
textMessageTaskDTO.setCreateTime(currentTime);
|
||||||
textMessageTaskDTO.setTextMessageId(IdUtils.fastUUID());
|
|
||||||
|
|
||||||
// 将textMessageTaskDTO对象的属性复制到textMessage对象
|
// 将textMessageTaskDTO对象的属性复制到textMessage对象
|
||||||
TextMessage textMessage = new TextMessage();
|
TextMessage textMessage = new TextMessage();
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import java.time.LocalDate;
|
|||||||
/**
|
/**
|
||||||
* @Description 查询短信发送实体类
|
* @Description 查询短信发送实体类
|
||||||
* @Author zh
|
* @Author zh
|
||||||
* @Date 2024-05-24
|
* @Date 2024-07-22
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class TextMessage {
|
public class TextMessage {
|
||||||
@ -61,6 +61,9 @@ public class TextMessage {
|
|||||||
@ApiModelProperty(value = "短信推送标识,0:未开启,1:已开启")
|
@ApiModelProperty(value = "短信推送标识,0:未开启,1:已开启")
|
||||||
private Integer messagePushSign;
|
private Integer messagePushSign;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "短信ID")
|
||||||
|
private String textMessageId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "节点id")
|
@ApiModelProperty(value = "节点id")
|
||||||
private Long signPatientManageRouteNodeId;
|
private Long signPatientManageRouteNodeId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -840,10 +840,12 @@
|
|||||||
pi.admission_time,
|
pi.admission_time,
|
||||||
pi.discharge_time,
|
pi.discharge_time,
|
||||||
pi.visit_date,
|
pi.visit_date,
|
||||||
pi.visit_method
|
pi.visit_method,
|
||||||
|
tm.text_message_id
|
||||||
from sign_patient_manage_route_node spmrn
|
from sign_patient_manage_route_node spmrn
|
||||||
LEFT JOIN sign_patient_manage_route spmr ON spmr.id = spmrn.manage_route_id
|
LEFT JOIN sign_patient_manage_route spmr ON spmr.id = spmrn.manage_route_id
|
||||||
LEFT JOIN patient_info pi ON pi.id = spmr.patient_id
|
LEFT JOIN patient_info pi ON pi.id = spmr.patient_id
|
||||||
|
LEFT JOIN text_message tm ON tm.id = spmrn.message_template_id
|
||||||
where spmrn.message_push_sign = 1
|
where spmrn.message_push_sign = 1
|
||||||
and spmrn.del_flag = 0
|
and spmrn.del_flag = 0
|
||||||
and spmrn.node_execute_status = 'UNEXECUTED'
|
and spmrn.node_execute_status = 'UNEXECUTED'
|
||||||
|
|||||||
@ -153,8 +153,7 @@
|
|||||||
parameterType="com.xinelu.manage.dto.textmessage.TextMessageTaskDTO">
|
parameterType="com.xinelu.manage.dto.textmessage.TextMessageTaskDTO">
|
||||||
select count(*)
|
select count(*)
|
||||||
from text_message
|
from text_message
|
||||||
where department_id = #{departmentId}
|
where text_message_id = #{textMessageId}
|
||||||
and text_message_name = #{textMessageName}
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="countByTextMessageNameExcludingId" resultType="java.lang.Integer">
|
<select id="countByTextMessageNameExcludingId" resultType="java.lang.Integer">
|
||||||
|
|||||||
@ -9,7 +9,7 @@ public interface SubscribeTaskService {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约患者管理任务路径节点消息推送定时任务,每10分钟执行一次
|
* 签约患者管理任务路径节点消息推送定时任务
|
||||||
*/
|
*/
|
||||||
void signPatientManageRouteNodeTask();
|
void signPatientManageRouteNodeTask();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.xinelu.quartz.service.impl;
|
|||||||
|
|
||||||
import com.aliyuncs.exceptions.ClientException;
|
import com.aliyuncs.exceptions.ClientException;
|
||||||
import com.xinelu.common.config.AliYunSmsTwoConfig;
|
import com.xinelu.common.config.AliYunSmsTwoConfig;
|
||||||
import com.xinelu.common.enums.PatientTypeEnum;
|
|
||||||
import com.xinelu.common.enums.RouteNodeNameEnum;
|
import com.xinelu.common.enums.RouteNodeNameEnum;
|
||||||
import com.xinelu.manage.dto.smssend.SmsInfoDTO;
|
import com.xinelu.manage.dto.smssend.SmsInfoDTO;
|
||||||
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
||||||
@ -36,6 +35,11 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AliYunSmsTwoConfig aliYunSmsTwoConfig;
|
private AliYunSmsTwoConfig aliYunSmsTwoConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签约患者管理任务路径节点短信发送定时任务
|
||||||
|
*
|
||||||
|
* @throws ClientException 发送信息
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void sendTextMessageSendTask() throws ClientException {
|
public void sendTextMessageSendTask() throws ClientException {
|
||||||
//查询短信发送数据
|
//查询短信发送数据
|
||||||
@ -50,38 +54,59 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
if (StringUtils.isBlank(textMessage.getPatientType()) || Objects.isNull(textMessage.getRouteNodeDay())) {
|
if (StringUtils.isBlank(textMessage.getPatientType()) || Objects.isNull(textMessage.getRouteNodeDay())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//模版暂时处理
|
||||||
|
if (StringUtils.isBlank(textMessage.getTextMessageId()) || !aliYunSmsTwoConfig.getTemplateCode().equals(textMessage.getTextMessageId())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
LocalDate localDate = null;
|
||||||
|
if (Objects.nonNull(textMessage.getDischargeTime())) {
|
||||||
|
localDate = textMessage.getDischargeTime().plusDays(textMessage.getRouteNodeDay());
|
||||||
|
}
|
||||||
|
if (Objects.isNull(textMessage.getDischargeTime()) && Objects.nonNull(textMessage.getVisitDate())) {
|
||||||
|
localDate = textMessage.getVisitDate().plusDays(textMessage.getRouteNodeDay());
|
||||||
|
}
|
||||||
|
if (Objects.isNull(localDate)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
|
if (before) {
|
||||||
|
textMessage.setRouteNodeName(RouteNodeNameEnum.getNameByInfo(textMessage.getRouteNodeName()).getName());
|
||||||
|
messages.add(textMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//判断路径节点,组装数据
|
//判断路径节点,组装数据
|
||||||
if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_DISCHARGE.getInfo()) || textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
// if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_DISCHARGE.getInfo()) || textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
||||||
if (textMessage.getPatientType().equals(PatientTypeEnum.DISCHARGED_PATIENT.getInfo()) && Objects.nonNull(textMessage.getDischargeTime())) {
|
// if (textMessage.getPatientType().equals(PatientTypeEnum.DISCHARGED_PATIENT.getInfo()) && Objects.nonNull(textMessage.getDischargeTime())) {
|
||||||
LocalDate localDate = textMessage.getDischargeTime().plusDays(textMessage.getRouteNodeDay());
|
// LocalDate localDate = textMessage.getDischargeTime().plusDays(textMessage.getRouteNodeDay());
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
if (before) {
|
// if (before) {
|
||||||
textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_DISCHARGE.getName());
|
// textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_DISCHARGE.getName());
|
||||||
messages.add(textMessage);
|
// messages.add(textMessage);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_ADMISSION.getInfo())) {
|
// if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_ADMISSION.getInfo())) {
|
||||||
if (textMessage.getPatientType().equals(PatientTypeEnum.IN_HOSPITAL_PATIENT.getInfo()) && Objects.nonNull(textMessage.getAdmissionTime())) {
|
// if (textMessage.getPatientType().equals(PatientTypeEnum.IN_HOSPITAL_PATIENT.getInfo()) && Objects.nonNull(textMessage.getAdmissionTime())) {
|
||||||
LocalDate localDate = textMessage.getAdmissionTime().plusDays(textMessage.getRouteNodeDay());
|
// LocalDate localDate = textMessage.getAdmissionTime().plusDays(textMessage.getRouteNodeDay());
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
if (before) {
|
// if (before) {
|
||||||
textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_ADMISSION.getName());
|
// textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_ADMISSION.getName());
|
||||||
messages.add(textMessage);
|
// messages.add(textMessage);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_CONSULTATION.getInfo()) || textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
// if (textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_CONSULTATION.getInfo()) || textMessage.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
||||||
if (textMessage.getPatientType().equals(PatientTypeEnum.OUTPATIENT.getInfo()) && textMessage.getAdmissionTime() == null && Objects.nonNull(textMessage.getVisitDate())) {
|
// if (textMessage.getPatientType().equals(PatientTypeEnum.OUTPATIENT.getInfo()) && textMessage.getAdmissionTime() == null && Objects.nonNull(textMessage.getVisitDate())) {
|
||||||
LocalDate localDate = textMessage.getVisitDate().plusDays(textMessage.getRouteNodeDay());
|
// LocalDate localDate = textMessage.getVisitDate().plusDays(textMessage.getRouteNodeDay());
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
if (before) {
|
// if (before) {
|
||||||
textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_CONSULTATION.getName());
|
// textMessage.setRouteNodeName(RouteNodeNameEnum.AFTER_CONSULTATION.getName());
|
||||||
messages.add(textMessage);
|
// messages.add(textMessage);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
//发送
|
//发送
|
||||||
if (CollectionUtils.isNotEmpty(messages)) {
|
if (CollectionUtils.isNotEmpty(messages)) {
|
||||||
List<Long> ids = new ArrayList<>();
|
List<Long> ids = new ArrayList<>();
|
||||||
@ -89,12 +114,14 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
SmsInfoDTO smsInfoDTO = new SmsInfoDTO();
|
SmsInfoDTO smsInfoDTO = new SmsInfoDTO();
|
||||||
smsInfoDTO.setPhoneNumbers(message.getPatientPhone());
|
smsInfoDTO.setPhoneNumbers(message.getPatientPhone());
|
||||||
smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName());
|
smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName());
|
||||||
smsInfoDTO.setTemplateCode(aliYunSmsTwoConfig.getTemplateCode());
|
// 根据模版id发送
|
||||||
|
smsInfoDTO.setTemplateCode(message.getTextMessageId());
|
||||||
Boolean aBoolean = smsSendUtils.sendTextMessage(smsInfoDTO);
|
Boolean aBoolean = smsSendUtils.sendTextMessage(smsInfoDTO);
|
||||||
if (aBoolean) {
|
if (aBoolean) {
|
||||||
ids.add(message.getSignPatientManageRouteNodeId());
|
ids.add(message.getSignPatientManageRouteNodeId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//修改节点状态
|
||||||
if (CollectionUtils.isNotEmpty(ids)) {
|
if (CollectionUtils.isNotEmpty(ids)) {
|
||||||
signPatientManageRouteNodeMapper.updateMessageStatusByIds(ids);
|
signPatientManageRouteNodeMapper.updateMessageStatusByIds(ids);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.xinelu.quartz.service.impl;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.xinelu.common.config.WeChatAppletChatConfig;
|
import com.xinelu.common.config.WeChatAppletChatConfig;
|
||||||
import com.xinelu.common.enums.PatientTypeEnum;
|
|
||||||
import com.xinelu.common.enums.RouteNodeNameEnum;
|
import com.xinelu.common.enums.RouteNodeNameEnum;
|
||||||
import com.xinelu.common.enums.SubscribeStatusEnum;
|
import com.xinelu.common.enums.SubscribeStatusEnum;
|
||||||
import com.xinelu.mobile.domain.TemplateContent;
|
import com.xinelu.mobile.domain.TemplateContent;
|
||||||
@ -42,65 +41,96 @@ public class subscribeTaskServiceImpl implements SubscribeTaskService {
|
|||||||
*/
|
*/
|
||||||
public void signPatientManageRouteNodeTask() {
|
public void signPatientManageRouteNodeTask() {
|
||||||
//微信小程序订阅消息记录表
|
//微信小程序订阅消息记录表
|
||||||
List<PatientVO> patient = homePageMapper.selectResidentAndSubscribeMessageRecord(SubscribeStatusEnum.accept.getValue(), weChatAppletChatConfig.getHealthyPropagandaId());
|
List<PatientVO> patientList = homePageMapper.selectResidentAndSubscribeMessageRecord(SubscribeStatusEnum.accept.getValue(), weChatAppletChatConfig.getHealthyPropagandaId());
|
||||||
List<Long> collect = patient.stream().filter(Objects::nonNull).map(PatientVO::getPatientId).filter(Objects::nonNull).collect(Collectors.toList());
|
List<Long> patientIdList = patientList.stream().filter(Objects::nonNull).map(PatientVO::getPatientId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(collect)) {
|
if (CollectionUtils.isEmpty(patientIdList)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 患者节点表
|
// 患者节点表
|
||||||
List<PatientVO> signPatientManageRouteNodes = homePageMapper.selectSignPatientManageRouteNode(collect);
|
List<PatientVO> signPatientManageRouteNodes = homePageMapper.selectSignPatientManageRouteNode(patientIdList);
|
||||||
List<PatientVO> patientVOS = new ArrayList<>();
|
// 注:PatientVO 包含签约路径节点相关属性,后面用于推送消息
|
||||||
|
List<PatientVO> patientVOList = new ArrayList<>();
|
||||||
for (PatientVO signPatientManageRouteNode : signPatientManageRouteNodes) {
|
for (PatientVO signPatientManageRouteNode : signPatientManageRouteNodes) {
|
||||||
//判断推送状态
|
//判断推送状态
|
||||||
if (Objects.isNull(signPatientManageRouteNode.getAppletPushSign()) || signPatientManageRouteNode.getAppletPushSign() != 1) {
|
if (Objects.isNull(signPatientManageRouteNode.getAppletPushSign()) || signPatientManageRouteNode.getAppletPushSign() != 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//判断路径节点,组装数据
|
//判断路径节点,组装数据
|
||||||
if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_DISCHARGE.getInfo()) || signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
LocalDate localDate = null;
|
||||||
PatientVO patientVO = patient.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
PatientVO patientVO = patientList.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
||||||
if (patientVO.getPatientType().equals(PatientTypeEnum.DISCHARGED_PATIENT.getInfo())) {
|
if (Objects.nonNull(patientVO.getDischargeTime())) {
|
||||||
LocalDate localDate = patientVO.getDischargeTime().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
localDate = patientVO.getDischargeTime().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
||||||
|
}
|
||||||
|
if (Objects.isNull(patientVO.getDischargeTime()) && Objects.nonNull(patientVO.getVisitDate())) {
|
||||||
|
localDate = patientVO.getVisitDate().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
||||||
|
}
|
||||||
|
if (Objects.isNull(localDate)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
if (before) {
|
if (before) {
|
||||||
signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
||||||
signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_DISCHARGE.getName());
|
//转换成中文……
|
||||||
patientVOS.add(signPatientManageRouteNode);
|
signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.getNameByInfo(signPatientManageRouteNode.getRouteNodeName()).getName());
|
||||||
}
|
patientVOList.add(signPatientManageRouteNode);
|
||||||
}
|
|
||||||
}
|
|
||||||
if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_ADMISSION.getInfo())) {
|
|
||||||
PatientVO patientVO = patient.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
|
||||||
if (patientVO.getPatientType().equals(PatientTypeEnum.IN_HOSPITAL_PATIENT.getInfo())) {
|
|
||||||
LocalDate localDate = patientVO.getAdmissionTime().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
|
||||||
if (before) {
|
|
||||||
signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
|
||||||
signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_ADMISSION.getName());
|
|
||||||
patientVOS.add(signPatientManageRouteNode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_CONSULTATION.getInfo()) || signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
|
||||||
PatientVO patientVO = patient.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
|
||||||
if (patientVO.getPatientType().equals(PatientTypeEnum.OUTPATIENT.getInfo()) && patientVO.getAdmissionTime() == null) {
|
|
||||||
LocalDate localDate = patientVO.getVisitDate().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
|
||||||
if (before) {
|
|
||||||
signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
|
||||||
signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_CONSULTATION.getName());
|
|
||||||
patientVOS.add(signPatientManageRouteNode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// //如果节点 适用范围是 出院后或就诊/出院后
|
||||||
|
// if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_DISCHARGE.getInfo()) || signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
||||||
|
// PatientVO patientVO = patientList.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
||||||
|
// //患者类型如果是 出院患者
|
||||||
|
// if (patientVO.getPatientType().equals(PatientTypeEnum.DISCHARGED_PATIENT.getInfo())) {
|
||||||
|
// //出院时间
|
||||||
|
// LocalDate localDate = patientVO.getDischargeTime().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
||||||
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
|
// if (before) {
|
||||||
|
// signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
||||||
|
// signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_DISCHARGE.getName());
|
||||||
|
// patientVOList.add(signPatientManageRouteNode);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// //如果节点适用范围是 入院后
|
||||||
|
// if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_ADMISSION.getInfo())) {
|
||||||
|
// PatientVO patientVO = patientList.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
||||||
|
// //患者类型如果是 在院患者
|
||||||
|
// if (patientVO.getPatientType().equals(PatientTypeEnum.IN_HOSPITAL_PATIENT.getInfo())) {
|
||||||
|
// //入院时间
|
||||||
|
// LocalDate localDate = patientVO.getAdmissionTime().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
||||||
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
|
// if (before) {
|
||||||
|
// signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
||||||
|
// signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_ADMISSION.getName());
|
||||||
|
// patientVOList.add(signPatientManageRouteNode);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// //如果节点 适用范围是 就诊后 或 就诊/出院后
|
||||||
|
// if (signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_CONSULTATION.getInfo()) || signPatientManageRouteNode.getRouteNodeName().equals(RouteNodeNameEnum.AFTER_VISIT_DISCHARGE.getInfo())) {
|
||||||
|
// PatientVO patientVO = patientList.stream().filter(Objects::nonNull).filter(item -> signPatientManageRouteNode.getPatientId().equals(item.getPatientId())).findFirst().orElse(new PatientVO());
|
||||||
|
// //患者类型如果是 门诊患者
|
||||||
|
// if (patientVO.getPatientType().equals(PatientTypeEnum.OUTPATIENT.getInfo()) && patientVO.getAdmissionTime() == null) {
|
||||||
|
// //就诊时间
|
||||||
|
// LocalDate localDate = patientVO.getVisitDate().plusDays(signPatientManageRouteNode.getRouteNodeDay());
|
||||||
|
// boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
|
// if (before) {
|
||||||
|
// signPatientManageRouteNode.setOpenId(patientVO.getOpenId());
|
||||||
|
// signPatientManageRouteNode.setRouteNodeName(RouteNodeNameEnum.AFTER_CONSULTATION.getName());
|
||||||
|
// patientVOList.add(signPatientManageRouteNode);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
List<Long> signPatientManageRouteNodeIds = new ArrayList<>();
|
List<Long> signPatientManageRouteNodeIds = new ArrayList<>();
|
||||||
//发送
|
//发送
|
||||||
for (PatientVO patientVO : patientVOS) {
|
for (PatientVO patientVO : patientVOList) {
|
||||||
try {
|
try {
|
||||||
JSON.parseArray(patientVO.getAppletNodeContent(), TemplateContent.class);
|
JSON.parseArray(patientVO.getAppletNodeContent(), TemplateContent.class);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// 开始推送消息
|
||||||
Integer integer = weChatOfficialAccountUtils.sendAppletTemplateMessage(patientVO);
|
Integer integer = weChatOfficialAccountUtils.sendAppletTemplateMessage(patientVO);
|
||||||
if (integer == 0) {
|
if (integer == 0) {
|
||||||
signPatientManageRouteNodeIds.add(patientVO.getSignPatientManageRouteNodeId());
|
signPatientManageRouteNodeIds.add(patientVO.getSignPatientManageRouteNodeId());
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import javax.annotation.Resource;
|
|||||||
/**
|
/**
|
||||||
* @Description 短信相关定时任务
|
* @Description 短信相关定时任务
|
||||||
* @Author zh
|
* @Author zh
|
||||||
* @Date 2024-05-24
|
* @Date 2024-07-22
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component("sendTextMessageTask")
|
@Component("sendTextMessageTask")
|
||||||
@ -21,7 +21,7 @@ public class SendTextMessageTask {
|
|||||||
private SendTextMessageService sendTextMessageService;
|
private SendTextMessageService sendTextMessageService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约患者管理任务路径节点短信发送定时任务,每10分钟执行一次
|
* 签约患者管理任务路径节点短信发送定时任务
|
||||||
*/
|
*/
|
||||||
public void automaticSendTextMessageTask() throws ClientException {
|
public void automaticSendTextMessageTask() throws ClientException {
|
||||||
log.info("开始执行签约患者管理任务短信推送定时任务......");
|
log.info("开始执行签约患者管理任务短信推送定时任务......");
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class SubscribeTask {
|
|||||||
private SubscribeTaskService subscribeTaskService;
|
private SubscribeTaskService subscribeTaskService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约患者管理任务路径节点消息推送定时任务,每10分钟执行一次
|
* 签约患者管理任务路径节点消息推送定时任务
|
||||||
*/
|
*/
|
||||||
public void automaticSendSignPatientManageRouteNodeTask() {
|
public void automaticSendSignPatientManageRouteNodeTask() {
|
||||||
log.info("开始执行签约患者管理任务路径节点推送定时任务......");
|
log.info("开始执行签约患者管理任务路径节点推送定时任务......");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user