Compare commits

...

5 Commits

Author SHA1 Message Date
zhangheng
58e271dc56 短信发送修改 2025-12-21 16:30:49 +08:00
zhangheng
4343d60bbd Merge remote-tracking branch 'origin/dev' into dev_hekoufirsthospital 2025-12-20 18:19:19 +08:00
zhangheng
16abd0c220 配置初始化 2025-12-19 10:54:51 +08:00
zhangheng
884e26b70c 配置初始化 2025-12-19 10:26:13 +08:00
zhangheng
da5d7a494d 河口第二人民代码初始化 2025-12-05 10:02:49 +08:00
7 changed files with 34 additions and 38 deletions

View File

@ -6,11 +6,9 @@ spring:
druid:
# 主库数据源
master:
# url: jdbc:mysql://192.168.16.64:3306/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
url: jdbc:mysql://127.0.0.1:3306/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
# url: jdbc:mysql://182.92.166.109:8000/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
url: jdbc:mysql://127.0.0.1:3306/post-discharge-hkey?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: Xinyilu@1qaz!@#$1234
password: Hk2y!@#$
# 从库数据源
slave:
# 从数据源开关/默认关闭
@ -21,9 +19,9 @@ spring:
hkhis:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:mysql://127.0.0.1:3306/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
url: jdbc:mysql://127.0.0.1:3306/post-discharge-hkey?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: sa123456
password: Hk2y!@#$
driverClassName: com.mysql.cj.jdbc.Driver
# 初始连接数
initialSize: 5

View File

@ -9,7 +9,7 @@ xinelu:
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/postdischarge/uploadPathLinux配置 /home/postdischarge/uploadPath
profile: E:/postdischarge/uploadPath
profile: D:/postdischarge/uploadPath
# profile: E:/postdischarge/uploadPath/xf
# 签约知情书上传
sign-informed-file-url: /signInformed
@ -292,10 +292,7 @@ aiob:
accessKey: 9a61c68abf134ab9823e39f61f2c2f72
secretKey: 4287bfa1d5a34c229aacb5e056c94682
# 任务执行回调地址--测试
callBackUrl: http://182.92.166.109:9707/api/taskCallBack
# callBackUrl: http://182.92.166.109:19090/api/taskCallBack
# callBackUrl: http://101.200.89.70:19090/api/taskCallBack
# callBackUrl: http://8.131.93.145:54011/api/taskCallBack
callBackUrl: http://192.168.4.7:19090/api/taskCallBack
xinyilu-database:
# 公共机构ID新医路用于宣教库公共库查询

View File

@ -160,4 +160,4 @@ public class AgencyController extends BaseController {
public AjaxResult getAgencyList(HospitalDTO hospitalDTO) {
return agencyService.getAgencyList(hospitalDTO);
}
}
}

View File

@ -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("短信发送成功");
}

View File

@ -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;
}

View File

@ -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 = ' ')
</select>

View File

@ -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<Long> collect = messages.stream().filter(Objects::nonNull).map(TextMessage::getSignPatientManageRouteNodeId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
List<RecordNum> recordNums = shortMessageSendRecordMapper.selectShortMessageRecordCountByManageRouteNodeIds(collect);
List<RecordNum> recordNums = shortMessageSendRecordMapper.selectShortMessageRecordCountByManageRouteNodeIds(collect);//后续是否加入通用状态
//发送
//发送失败ids
List<Long> 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());