From 58e271dc5620957b016f7ed5b527c432e23fa9df Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Sun, 21 Dec 2025 16:30:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E5=8F=91=E9=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/aiob/impl/AIOBServiceImpl.java | 7 ++++- .../TextMessage.java | 8 ++--- .../SignPatientManageRouteNodeMapper.xml | 9 +++--- .../impl/SendTextMessageServiceImpl.java | 29 +++++++++---------- 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java index 65061e73..915b709a 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java @@ -521,12 +521,17 @@ public class AIOBServiceImpl implements IAIOBService { dto.setPhoneMessageTemplateCode(textMessage.getTextMessageId()); dto.setPhoneMessageTemplateContent(signPatientManageRouteNode.getPhoneMessageTemplateContent()); signPatientManageRouteService.shortMessageSendRecordExtracted(dto, LocalDateTime.now(), b, PhoneDialMethodEnum.AI.getInfo()); - + //修改电话短信发送情况 + SignPatientManageRouteNode updatePhoneMessage = new SignPatientManageRouteNode(); + updatePhoneMessage.setId(signPatientManageRouteNode.getId()); if (!b) { + updatePhoneMessage.setPhoneMessageNodeExecuteResultStatus("FAILURE"); log.info("短信发送失败"); } else { + updatePhoneMessage.setPhoneMessageNodeExecuteResultStatus("SUCCESS"); log.info("短信发送成功"); } + signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(updatePhoneMessage); } else { log.info("短信发送成功"); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/TextMessage.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/TextMessage.java index 00106ff4..9f05a946 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/TextMessage.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/TextMessage.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDate; +import java.time.LocalDateTime; /** * @Description 查询短信发送实体类 @@ -67,9 +68,6 @@ public class TextMessage { @ApiModelProperty(value = "节点id") private Long signPatientManageRouteNodeId; - @ApiModelProperty(value = "电话短信提醒") - private String phoneMessageRemind; - - @ApiModelProperty(value = "电话短信code") - private String phoneMessageTemplateCode; + @ApiModelProperty(value = "任务计划执行时间") + private LocalDateTime nodePlanTime; } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 26bc5029..0648612d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -1001,6 +1001,7 @@ spmrn.route_node_name, spmrn.route_node_day, spmrn.task_node_type, + spmrn.node_plan_time, spmr.id manageRouteId, pi.patient_phone, pi.patient_type, @@ -1008,16 +1009,14 @@ pi.discharge_time, pi.visit_date, pi.visit_method, - tm.text_message_id, - (SELECT text_message_id FROM text_message WHERE id = spmrn.phone_message_template_id) phoneMessageTemplateCode, - spmrn.phone_message_remind + tm.text_message_id from sign_patient_manage_route_node spmrn 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 text_message tm ON tm.id = spmrn.message_template_id - where (spmrn.message_push_sign = 1 or (spmrn.phone_message_remind is not null and spmrn.phone_message_remind != 'NOT_SEND_MESSAGE')) + where spmrn.message_push_sign = 1 and spmrn.del_flag = 0 - and spmrn.node_execute_status = 'EXECUTED' + and spmrn.node_execute_status = 'UNEXECUTED' and (spmrn.message_node_execute_result_status is null or spmrn.message_node_execute_result_status = ' ') diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java index 34124295..f4771f58 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java @@ -67,7 +67,7 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { LocalDate nowDate = LocalDate.now(); for (TextMessage textMessage : textMessages) { //判断推送状态 - if ((Objects.isNull(textMessage.getMessagePushSign()) || textMessage.getMessagePushSign() != 1) && (StringUtils.isBlank(textMessage.getPhoneMessageRemind()) || textMessage.getPhoneMessageRemind().equals("NOT_SEND_MESSAGE"))) { + if (Objects.isNull(textMessage.getMessagePushSign()) || textMessage.getMessagePushSign() != 1) { continue; } //过滤脏数据 if (StringUtils.isBlank(textMessage.getPatientType()) || Objects.isNull(textMessage.getRouteNodeDay())) @@ -75,7 +75,7 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { continue; } //模版暂时处理 - if ((StringUtils.isBlank(textMessage.getTextMessageId()) || !aliYunSmsTwoConfig.getTemplateCode().equals(textMessage.getTextMessageId())) && (StringUtils.isBlank(textMessage.getPhoneMessageTemplateCode()) || !aliYunSmsTwoConfig.getTemplateCode().equals(textMessage.getPhoneMessageTemplateCode()))) { + if (StringUtils.isBlank(textMessage.getTextMessageId()) || !aliYunSmsTwoConfig.getTemplateCode().equals(textMessage.getTextMessageId())) { continue; } LocalDate localDate = null; @@ -83,11 +83,12 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { if (Objects.nonNull(textMessage.getDischargeTime()) && Objects.nonNull(textMessage.getRouteNodeDay())) { localDate = textMessage.getDischargeTime().plusDays(textMessage.getRouteNodeDay()); } -// if (Objects.isNull(textMessage.getDischargeTime()) && Objects.nonNull(textMessage.getVisitDate())) { -// localDate = textMessage.getVisitDate().plusDays(textMessage.getRouteNodeDay()); -// } - if (Objects.isNull(textMessage.getRouteNodeDay())){ - localDate = nowDate;//新加的外呼立即执行没有getRouteNodeDay + if (Objects.isNull(textMessage.getDischargeTime()) && Objects.nonNull(textMessage.getVisitDate()) && Objects.nonNull(textMessage.getRouteNodeDay())) { + localDate = textMessage.getVisitDate().plusDays(textMessage.getRouteNodeDay()); + } + //没有天数按执行时间处理NodePlanTime + if (Objects.isNull(textMessage.getRouteNodeDay()) && Objects.nonNull(textMessage.getNodePlanTime())){ + localDate = textMessage.getNodePlanTime().toLocalDate();//新加的外呼立即执行没有getRouteNodeDay } if (Objects.isNull(localDate)) { continue; @@ -100,6 +101,10 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { expiredManageRouteNodeIds.add(textMessage.getSignPatientManageRouteNodeId()); continue; } + //没有天数按执行时间处理NodePlanTime + if (Objects.isNull(textMessage.getRouteNodeDay()) && now.isBefore(textMessage.getNodePlanTime())){ + continue; + } textMessage.setRouteNodeName(RouteNodeNameEnum.getNameByInfo(textMessage.getRouteNodeName()).getName()); messages.add(textMessage); } @@ -143,7 +148,7 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { // } //节点推送数量 List collect = messages.stream().filter(Objects::nonNull).map(TextMessage::getSignPatientManageRouteNodeId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); - List recordNums = shortMessageSendRecordMapper.selectShortMessageRecordCountByManageRouteNodeIds(collect); + List recordNums = shortMessageSendRecordMapper.selectShortMessageRecordCountByManageRouteNodeIds(collect);//后续是否加入通用状态 //发送 //发送失败ids List failSignPatientManageRouteNodeIds = new ArrayList<>(); @@ -156,13 +161,7 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { smsInfoDTO.setPhoneNumbers(message.getPatientPhone()); smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName()); // 根据模版id发送 - if (StringUtils.isNotBlank(message.getTextMessageId()) && StringUtils.isBlank(message.getPhoneMessageTemplateCode())){ - smsInfoDTO.setTemplateCode(message.getTextMessageId()); - } else if (StringUtils.isNotBlank(message.getPhoneMessageTemplateCode()) && StringUtils.isBlank(message.getTextMessageId())){ - smsInfoDTO.setTemplateCode(message.getPhoneMessageTemplateCode()); - }else { - smsInfoDTO.setTemplateCode(aliYunSmsTwoConfig.getTemplateCode()); - } + smsInfoDTO.setTemplateCode(message.getTextMessageId()); Boolean aBoolean = smsSendUtils.sendTextMessage(smsInfoDTO); ShortMessageSendRecord shortMessageSendRecord = new ShortMessageSendRecord(); shortMessageSendRecord.setMessageType(ShortMessageTypeEnum.COMMON.getInfo());