短信推送修改
This commit is contained in:
parent
57a67a0509
commit
97140adfee
@ -81,8 +81,8 @@ public class PatientTaskExecuteRecordController extends BaseController {
|
|||||||
* 根据患者信息查询就诊记录
|
* 根据患者信息查询就诊记录
|
||||||
*/
|
*/
|
||||||
@GetMapping("/selectVisitRecord")
|
@GetMapping("/selectVisitRecord")
|
||||||
public AjaxResult selectVisitRecord(Long id) {
|
public AjaxResult selectVisitRecord(Long id, Long patientId) {
|
||||||
return patientTaskExecuteRecordService.selectVisitRecord(id);
|
return patientTaskExecuteRecordService.selectVisitRecord(id, patientId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.xinelu.manage.mapper.patienttaskexecuterecord;
|
|||||||
|
|
||||||
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
|
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
|
||||||
import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO;
|
import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -74,5 +75,5 @@ public interface PatientTaskExecuteRecordMapper {
|
|||||||
* @param id id
|
* @param id id
|
||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
*/
|
*/
|
||||||
PatientTaskExecuteRecordVO selectVisitRecord(Long id);
|
PatientTaskExecuteRecordVO selectVisitRecord(@Param("id") Long id, @Param("patientId") Long patientId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.xinelu.manage.mapper.shortmessagesendrecord;
|
package com.xinelu.manage.mapper.shortmessagesendrecord;
|
||||||
|
|
||||||
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
||||||
|
import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -58,4 +60,12 @@ public interface ShortMessageSendRecordMapper {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
int deleteShortMessageSendRecordByIds(Long[] ids);
|
int deleteShortMessageSendRecordByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 节点推送数量
|
||||||
|
*
|
||||||
|
* @param manageRouteNodeIds 节点id
|
||||||
|
* @return RecordNum
|
||||||
|
*/
|
||||||
|
List<RecordNum> selectShortMessageRecordCountByManageRouteNodeIds(@Param("manageRouteNodeIds") List<Long> manageRouteNodeIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,21 +103,23 @@ public interface SignPatientManageRouteNodeMapper {
|
|||||||
*/
|
*/
|
||||||
int updateMessageStatus(SignPatientManageRouteNode signPatientManageRouteNode);
|
int updateMessageStatus(SignPatientManageRouteNode signPatientManageRouteNode);
|
||||||
|
|
||||||
List<SpecialDiseaseNodeAuditVo> selectByRouteId(Long manageRouteId);
|
List<SpecialDiseaseNodeAuditVo> selectByRouteId(Long manageRouteId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务审核,查询手动创建的任务节点详情
|
* 任务审核,查询手动创建的任务节点详情
|
||||||
* @param manageRouteIds 路径主键列表
|
*
|
||||||
* @return 节点详细信息列表
|
* @param manageRouteIds 路径主键列表
|
||||||
*/
|
* @return 节点详细信息列表
|
||||||
List<SignPatientManageNodeAuditVo> selectAuditNodeInfo(@Param("manageRouteIds") List<Long> manageRouteIds);
|
*/
|
||||||
|
List<SignPatientManageNodeAuditVo> selectAuditNodeInfo(@Param("manageRouteIds") List<Long> manageRouteIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据路径主键列表查询节点列表
|
* 根据路径主键列表查询节点列表
|
||||||
* @param manageRouteIds 路径主键列表
|
*
|
||||||
* @return 节点列表
|
* @param manageRouteIds 路径主键列表
|
||||||
*/
|
* @return 节点列表
|
||||||
List<SignPatientManageRouteNode> selectNodesByManageIds(@Param("manageRouteIds") List<Long> manageRouteIds);
|
*/
|
||||||
|
List<SignPatientManageRouteNode> selectNodesByManageIds(@Param("manageRouteIds") List<Long> manageRouteIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询患者管理路径节点内容
|
* 查询患者管理路径节点内容
|
||||||
@ -135,10 +137,14 @@ public interface SignPatientManageRouteNodeMapper {
|
|||||||
List<TextMessage> selectMessagePushSign();
|
List<TextMessage> selectMessagePushSign();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据节点id修改状态
|
* 修改执行状态
|
||||||
*
|
*
|
||||||
* @param ids 节点ids
|
* @param manageRouteNodeIds 节点id
|
||||||
|
* @param nodeExecuteStatus 执行状态
|
||||||
|
* @param appletStatus 小程序发送状态
|
||||||
|
* @param messageStatus 短信发送状态
|
||||||
|
* @param officialStatus 公众号发送状态
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
int updateMessageStatusByIds(@Param("ids") List<Long> ids);
|
int updateNodeExecuteStatusByIds(@Param("manageRouteNodeIds") List<Long> manageRouteNodeIds, @Param("nodeExecuteStatus") String nodeExecuteStatus, @Param("appletStatus") String appletStatus, @Param("messageStatus") String messageStatus, @Param("officialStatus") String officialStatus);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,10 +64,11 @@ public interface IPatientTaskExecuteRecordService {
|
|||||||
/**
|
/**
|
||||||
* 根据患者信息查询就诊记录
|
* 根据患者信息查询就诊记录
|
||||||
*
|
*
|
||||||
* @param id 记录id
|
* @param id 记录id
|
||||||
|
* @param patientId 患者id
|
||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
*/
|
*/
|
||||||
AjaxResult selectVisitRecord(Long id);
|
AjaxResult selectVisitRecord(Long id, Long patientId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据任务执行记录查询患者问卷信息
|
* 根据任务执行记录查询患者问卷信息
|
||||||
|
|||||||
@ -104,9 +104,9 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
|
|||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult selectVisitRecord(Long id) {
|
public AjaxResult selectVisitRecord(Long id, Long patientId) {
|
||||||
PatientTaskExecuteRecordVO patientTaskExecuteRecordVO = patientTaskExecuteRecordMapper.selectVisitRecord(id);
|
PatientTaskExecuteRecordVO patientTaskExecuteRecordVO = patientTaskExecuteRecordMapper.selectVisitRecord(id, patientId);
|
||||||
if (Objects.nonNull(patientTaskExecuteRecordVO.getBirthDate())) {
|
if (Objects.nonNull(patientTaskExecuteRecordVO) && Objects.nonNull(patientTaskExecuteRecordVO.getBirthDate())) {
|
||||||
patientTaskExecuteRecordVO.setAge(AgeUtil.getAgeMonth(patientTaskExecuteRecordVO.getBirthDate().toString()));
|
patientTaskExecuteRecordVO.setAge(AgeUtil.getAgeMonth(patientTaskExecuteRecordVO.getBirthDate().toString()));
|
||||||
}
|
}
|
||||||
return AjaxResult.success(patientTaskExecuteRecordVO);
|
return AjaxResult.success(patientTaskExecuteRecordVO);
|
||||||
|
|||||||
@ -303,20 +303,28 @@
|
|||||||
|
|
||||||
<select id="selectVisitRecord"
|
<select id="selectVisitRecord"
|
||||||
resultType="com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO">
|
resultType="com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO">
|
||||||
select pvr.in_hospital_info,
|
select
|
||||||
pvr.out_hospital_info,
|
pvr.in_hospital_info,
|
||||||
pvr.surgical_record,
|
pvr.out_hospital_info,
|
||||||
ri.patient_name,
|
pvr.surgical_record,
|
||||||
ri.patient_phone,
|
ri.patient_name,
|
||||||
ri.family_member_phone,
|
ri.patient_phone,
|
||||||
ri.birth_date,
|
ri.family_member_phone,
|
||||||
ri.card_no,
|
ri.birth_date,
|
||||||
ri.sex,
|
ri.card_no,
|
||||||
ri.address
|
ri.sex,
|
||||||
FROM patient_task_execute_record pter
|
ri.address
|
||||||
LEFT JOIN patient_visit_record pvr ON pter.visit_record_id = pvr.id
|
FROM patient_info pi
|
||||||
LEFT JOIN patient_info pi ON pi.id = pter.patient_id
|
LEFT JOIN patient_task_execute_record pter ON pi.id = pter.patient_id
|
||||||
LEFT JOIN resident_info ri ON ri.id = pi.resident_id
|
LEFT JOIN patient_visit_record pvr ON pter.visit_record_id = pvr.id
|
||||||
where pter.id = #{id}
|
LEFT JOIN resident_info ri ON ri.id = pi.resident_id
|
||||||
|
<where>
|
||||||
|
<if test="id != null">
|
||||||
|
and pter.id = #{id}
|
||||||
|
</if>
|
||||||
|
<if test="patientId != null">
|
||||||
|
and pi.id = #{patientId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -198,4 +198,16 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<select id="selectShortMessageRecordCountByManageRouteNodeIds"
|
||||||
|
resultType="com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum">
|
||||||
|
select
|
||||||
|
manage_route_node_id,
|
||||||
|
COUNT(1) num
|
||||||
|
from short_message_send_record
|
||||||
|
where manage_route_node_id IN
|
||||||
|
<foreach item="manageRouteNodeId" collection="manageRouteNodeId" open="(" separator="," close=")">
|
||||||
|
#{manageRouteNodeId}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -872,14 +872,28 @@
|
|||||||
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'
|
||||||
|
and (spmrn.message_node_execute_result_status is null or spmrn.message_node_execute_result_status = ' ')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<update id="updateMessageStatusByIds">
|
<update id="updateNodeExecuteStatusByIds">
|
||||||
update sign_patient_manage_route_node
|
update sign_patient_manage_route_node
|
||||||
set message_status = 'EXECUTED'
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="nodeExecuteStatus != null">node_execute_status =
|
||||||
|
#{nodeExecuteStatus},
|
||||||
|
</if>
|
||||||
|
<if test="appletStatus != null">applet_node_execute_result_status =
|
||||||
|
#{appletStatus},
|
||||||
|
</if>
|
||||||
|
<if test="messageStatus != null">message_node_execute_result_status =
|
||||||
|
#{messageStatus},
|
||||||
|
</if>
|
||||||
|
<if test="officialStatus != null">official_node_execute_result_status =
|
||||||
|
#{officialStatus},
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
where id in
|
where id in
|
||||||
<foreach item="ids" collection="ids" open="(" separator="," close=")">
|
<foreach item="manageRouteNodeIds" collection="manageRouteNodeIds" open="(" separator="," close=")">
|
||||||
#{ids}
|
#{manageRouteNodeIds}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -242,6 +242,5 @@
|
|||||||
<foreach item="manageRouteNodeId" collection="manageRouteNodeId" open="(" separator="," close=")">
|
<foreach item="manageRouteNodeId" collection="manageRouteNodeId" open="(" separator="," close=")">
|
||||||
#{manageRouteNodeId}
|
#{manageRouteNodeId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -60,14 +60,6 @@ public interface HomePageMapper {
|
|||||||
*/
|
*/
|
||||||
List<PatientVO> selectSignPatientManageRouteNode(@Param("patientId") List<Long> patientId);
|
List<PatientVO> selectSignPatientManageRouteNode(@Param("patientId") List<Long> patientId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改执行状态
|
|
||||||
*
|
|
||||||
* @param signPatientManageRouteNodeIds 节点id
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
int updateNodeExecuteStatusByIds(@Param("signPatientManageRouteNodeIds") List<Long> signPatientManageRouteNodeIds, @Param("nodeExecuteStatus") String nodeExecuteStatus, @Param("appletNodeExecuteResultStatus") String appletNodeExecuteResultStatus);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询个人任务消息
|
* 查询个人任务消息
|
||||||
*
|
*
|
||||||
|
|||||||
@ -147,17 +147,6 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<update id="updateNodeExecuteStatusByIds">
|
|
||||||
update sign_patient_manage_route_node
|
|
||||||
set node_execute_status = #{nodeExecuteStatus},
|
|
||||||
applet_node_execute_result_status = #{appletNodeExecuteResultStatus}
|
|
||||||
where id in
|
|
||||||
<foreach item="signPatientManageRouteNodeIds" collection="signPatientManageRouteNodeIds" open="(" separator=","
|
|
||||||
close=")">
|
|
||||||
#{signPatientManageRouteNodeIds}
|
|
||||||
</foreach>
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<select id="selectManageRouteByResidentId"
|
<select id="selectManageRouteByResidentId"
|
||||||
resultType="com.xinelu.mobile.vo.homepage.MessageTabulationVO">
|
resultType="com.xinelu.mobile.vo.homepage.MessageTabulationVO">
|
||||||
select spmrn.id manageRouteNodeId,
|
select spmrn.id manageRouteNodeId,
|
||||||
|
|||||||
@ -2,10 +2,17 @@ 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.config.PushMessageRestrictions;
|
||||||
|
import com.xinelu.common.enums.ErrorStatusEnum;
|
||||||
|
import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
|
||||||
|
import com.xinelu.common.enums.NodeExecuteStatusEnum;
|
||||||
import com.xinelu.common.enums.RouteNodeNameEnum;
|
import com.xinelu.common.enums.RouteNodeNameEnum;
|
||||||
|
import com.xinelu.manage.domain.subscribemessagesendrecord.SubscribeMessageSendRecord;
|
||||||
import com.xinelu.manage.dto.smssend.SmsInfoDTO;
|
import com.xinelu.manage.dto.smssend.SmsInfoDTO;
|
||||||
|
import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper;
|
||||||
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
||||||
import com.xinelu.manage.vo.signpatientmanageroutenode.TextMessage;
|
import com.xinelu.manage.vo.signpatientmanageroutenode.TextMessage;
|
||||||
|
import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum;
|
||||||
import com.xinelu.mobile.utils.SmsSendUtils;
|
import com.xinelu.mobile.utils.SmsSendUtils;
|
||||||
import com.xinelu.quartz.service.SendTextMessageService;
|
import com.xinelu.quartz.service.SendTextMessageService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -18,6 +25,7 @@ import java.time.LocalDate;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description 短信发送定时任务业务层
|
* @Description 短信发送定时任务业务层
|
||||||
@ -34,6 +42,10 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
private SmsSendUtils smsSendUtils;
|
private SmsSendUtils smsSendUtils;
|
||||||
@Resource
|
@Resource
|
||||||
private AliYunSmsTwoConfig aliYunSmsTwoConfig;
|
private AliYunSmsTwoConfig aliYunSmsTwoConfig;
|
||||||
|
@Resource
|
||||||
|
private PushMessageRestrictions pushMessageRestrictions;
|
||||||
|
@Resource
|
||||||
|
private ShortMessageSendRecordMapper shortMessageSendRecordMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约患者管理任务路径节点短信发送定时任务
|
* 签约患者管理任务路径节点短信发送定时任务
|
||||||
@ -44,7 +56,13 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
public void sendTextMessageSendTask() throws ClientException {
|
public void sendTextMessageSendTask() throws ClientException {
|
||||||
//查询短信发送数据
|
//查询短信发送数据
|
||||||
List<TextMessage> textMessages = signPatientManageRouteNodeMapper.selectMessagePushSign();
|
List<TextMessage> textMessages = signPatientManageRouteNodeMapper.selectMessagePushSign();
|
||||||
|
if (CollectionUtils.isEmpty(textMessages)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//条件过滤后短信信息
|
||||||
List<TextMessage> messages = new ArrayList<>();
|
List<TextMessage> messages = new ArrayList<>();
|
||||||
|
//超时短信ids
|
||||||
|
List<Long> expiredManageRouteNodeIds = new ArrayList<>();
|
||||||
for (TextMessage textMessage : textMessages) {
|
for (TextMessage textMessage : textMessages) {
|
||||||
//判断推送状态
|
//判断推送状态
|
||||||
if (Objects.isNull(textMessage.getMessagePushSign()) || textMessage.getMessagePushSign() != 1) {
|
if (Objects.isNull(textMessage.getMessagePushSign()) || textMessage.getMessagePushSign() != 1) {
|
||||||
@ -70,10 +88,20 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
}
|
}
|
||||||
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now());
|
||||||
if (before) {
|
if (before) {
|
||||||
|
//超出7天,更改状态
|
||||||
|
int i = LocalDate.now().compareTo(localDate);
|
||||||
|
if (i >= pushMessageRestrictions.getTime()) {
|
||||||
|
expiredManageRouteNodeIds.add(textMessage.getSignPatientManageRouteNodeId());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
textMessage.setRouteNodeName(RouteNodeNameEnum.getNameByInfo(textMessage.getRouteNodeName()).getName());
|
textMessage.setRouteNodeName(RouteNodeNameEnum.getNameByInfo(textMessage.getRouteNodeName()).getName());
|
||||||
messages.add(textMessage);
|
messages.add(textMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//更改过期执行状态
|
||||||
|
if (CollectionUtils.isNotEmpty(expiredManageRouteNodeIds)) {
|
||||||
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(expiredManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), null, NodeExecuteResultStatusEnum.EXPIRED.getInfo(), null);
|
||||||
|
}
|
||||||
|
|
||||||
//判断路径节点,组装数据
|
//判断路径节点,组装数据
|
||||||
// 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())) {
|
||||||
@ -107,7 +135,12 @@ 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);
|
||||||
//发送
|
//发送
|
||||||
|
//发送失败ids
|
||||||
|
List<Long> failSignPatientManageRouteNodeIds = new ArrayList<>();
|
||||||
if (CollectionUtils.isNotEmpty(messages)) {
|
if (CollectionUtils.isNotEmpty(messages)) {
|
||||||
List<Long> ids = new ArrayList<>();
|
List<Long> ids = new ArrayList<>();
|
||||||
for (TextMessage message : messages) {
|
for (TextMessage message : messages) {
|
||||||
@ -117,13 +150,30 @@ public class SendTextMessageServiceImpl implements SendTextMessageService {
|
|||||||
// 根据模版id发送
|
// 根据模版id发送
|
||||||
smsInfoDTO.setTemplateCode(message.getTextMessageId());
|
smsInfoDTO.setTemplateCode(message.getTextMessageId());
|
||||||
Boolean aBoolean = smsSendUtils.sendTextMessage(smsInfoDTO);
|
Boolean aBoolean = smsSendUtils.sendTextMessage(smsInfoDTO);
|
||||||
|
SubscribeMessageSendRecord subscribeMessageSendRecord = new SubscribeMessageSendRecord();
|
||||||
|
//成功
|
||||||
if (aBoolean) {
|
if (aBoolean) {
|
||||||
ids.add(message.getSignPatientManageRouteNodeId());
|
ids.add(message.getSignPatientManageRouteNodeId());
|
||||||
|
subscribeMessageSendRecord.setErrorCode(0);
|
||||||
|
subscribeMessageSendRecord.setErrorStatus(ErrorStatusEnum.success.getValue());
|
||||||
|
} else {
|
||||||
|
//失败
|
||||||
|
subscribeMessageSendRecord.setErrorCode(1);
|
||||||
|
subscribeMessageSendRecord.setErrorStatus(ErrorStatusEnum.fail.getValue());
|
||||||
|
RecordNum recordNum = recordNums.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getManageRouteNodeId()) && item.getManageRouteNodeId().equals(message.getSignPatientManageRouteNodeId())).findFirst().orElse(new RecordNum());
|
||||||
|
//三次失败
|
||||||
|
if (Objects.nonNull(recordNum.getNum()) && recordNum.getNum() >= pushMessageRestrictions.getNumber()) {
|
||||||
|
failSignPatientManageRouteNodeIds.add(message.getSignPatientManageRouteNodeId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//修改节点状态
|
//修改节点状态
|
||||||
if (CollectionUtils.isNotEmpty(ids)) {
|
if (CollectionUtils.isNotEmpty(expiredManageRouteNodeIds)) {
|
||||||
signPatientManageRouteNodeMapper.updateMessageStatusByIds(ids);
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(ids, NodeExecuteStatusEnum.EXECUTED.getInfo(), null, NodeExecuteResultStatusEnum.SUCCESS.getInfo(), null);
|
||||||
|
}
|
||||||
|
//修改节点状态
|
||||||
|
if (CollectionUtils.isNotEmpty(expiredManageRouteNodeIds)) {
|
||||||
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(failSignPatientManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), null, NodeExecuteResultStatusEnum.FAILURE.getInfo(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.xinelu.common.config.WeChatAppletChatConfig;
|
|||||||
import com.xinelu.common.enums.*;
|
import com.xinelu.common.enums.*;
|
||||||
import com.xinelu.common.utils.SecurityUtils;
|
import com.xinelu.common.utils.SecurityUtils;
|
||||||
import com.xinelu.manage.domain.subscribemessagesendrecord.SubscribeMessageSendRecord;
|
import com.xinelu.manage.domain.subscribemessagesendrecord.SubscribeMessageSendRecord;
|
||||||
|
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
||||||
import com.xinelu.manage.mapper.subscribemessagesendrecord.SubscribeMessageSendRecordMapper;
|
import com.xinelu.manage.mapper.subscribemessagesendrecord.SubscribeMessageSendRecordMapper;
|
||||||
import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum;
|
import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum;
|
||||||
import com.xinelu.mobile.domain.TemplateContent;
|
import com.xinelu.mobile.domain.TemplateContent;
|
||||||
@ -44,6 +45,8 @@ public class subscribeTaskServiceImpl implements SubscribeTaskService {
|
|||||||
private SubscribeMessageSendRecordMapper subscribeMessageSendRecordMapper;
|
private SubscribeMessageSendRecordMapper subscribeMessageSendRecordMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PushMessageRestrictions pushMessageRestrictions;
|
private PushMessageRestrictions pushMessageRestrictions;
|
||||||
|
@Resource
|
||||||
|
private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送任务组装数据
|
* 推送任务组装数据
|
||||||
@ -96,7 +99,7 @@ public class subscribeTaskServiceImpl implements SubscribeTaskService {
|
|||||||
}
|
}
|
||||||
//更改过期执行状态
|
//更改过期执行状态
|
||||||
if (CollectionUtils.isNotEmpty(expiredManageRouteNodeIds)) {
|
if (CollectionUtils.isNotEmpty(expiredManageRouteNodeIds)) {
|
||||||
homePageMapper.updateNodeExecuteStatusByIds(expiredManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.EXPIRED.getInfo());
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(expiredManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.EXPIRED.getInfo(), null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// //如果节点 适用范围是 出院后或就诊/出院后
|
// //如果节点 适用范围是 出院后或就诊/出院后
|
||||||
@ -190,11 +193,11 @@ public class subscribeTaskServiceImpl implements SubscribeTaskService {
|
|||||||
}
|
}
|
||||||
//更改成功执行状态
|
//更改成功执行状态
|
||||||
if (CollectionUtils.isNotEmpty(signPatientManageRouteNodeIds)) {
|
if (CollectionUtils.isNotEmpty(signPatientManageRouteNodeIds)) {
|
||||||
homePageMapper.updateNodeExecuteStatusByIds(signPatientManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.SUCCESS.getInfo());
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(signPatientManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.SUCCESS.getInfo(), null, null);
|
||||||
}
|
}
|
||||||
//更改失败执行状态
|
//更改失败执行状态
|
||||||
if (CollectionUtils.isNotEmpty(failSignPatientManageRouteNodeIds)) {
|
if (CollectionUtils.isNotEmpty(failSignPatientManageRouteNodeIds)) {
|
||||||
homePageMapper.updateNodeExecuteStatusByIds(failSignPatientManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.FAILURE.getInfo());
|
signPatientManageRouteNodeMapper.updateNodeExecuteStatusByIds(failSignPatientManageRouteNodeIds, NodeExecuteStatusEnum.EXECUTED.getInfo(), NodeExecuteResultStatusEnum.FAILURE.getInfo(), null, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user