| | |
| | | package cn.iocoder.yudao.module.bpm.service.message; |
| | | |
| | | import cn.iocoder.yudao.framework.web.config.WebProperties; |
| | | import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert; |
| | | import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum; |
| | | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskTimeoutReqDTO; |
| | | import cn.iocoder.yudao.module.system.api.sms.SmsSendApi; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import jakarta.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * BPM 消息 Service 实现类 |
| | | * |
| | | * 注意:已关闭短信通知功能,相关方法仅记录日志,不再调用短信发送接口, |
| | | * 以避免“短信模板不存在”等问题。 |
| | | * |
| | | * @author 超级管理员 |
| | | */ |
| | |
| | | @Slf4j |
| | | public class BpmMessageServiceImpl implements BpmMessageService { |
| | | |
| | | @Resource |
| | | private SmsSendApi smsSendApi; |
| | | |
| | | @Resource |
| | | private WebProperties webProperties; |
| | | |
| | | @Override |
| | | public void sendMessageWhenProcessInstanceApprove(BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO) { |
| | | Map<String, Object> templateParams = new HashMap<>(); |
| | | templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); |
| | | templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); |
| | | smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(), |
| | | BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsTemplateCode(), templateParams)); |
| | | log.info("[sendMessageWhenProcessInstanceApprove][已关闭短信通知,跳过发送][processInstanceId: {}]", reqDTO.getProcessInstanceId()); |
| | | } |
| | | |
| | | @Override |
| | | public void sendMessageWhenProcessInstanceReject(BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO) { |
| | | Map<String, Object> templateParams = new HashMap<>(); |
| | | templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); |
| | | templateParams.put("reason", reqDTO.getReason()); |
| | | templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); |
| | | smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(), |
| | | BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsTemplateCode(), templateParams)); |
| | | log.info("[sendMessageWhenProcessInstanceReject][已关闭短信通知,跳过发送][processInstanceId: {}]", reqDTO.getProcessInstanceId()); |
| | | } |
| | | |
| | | @Override |
| | | public void sendMessageWhenTaskAssigned(BpmMessageSendWhenTaskCreatedReqDTO reqDTO) { |
| | | Map<String, Object> templateParams = new HashMap<>(); |
| | | templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); |
| | | templateParams.put("taskName", reqDTO.getTaskName()); |
| | | templateParams.put("startUserNickname", reqDTO.getStartUserNickname()); |
| | | templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); |
| | | smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getAssigneeUserId(), |
| | | BpmMessageEnum.TASK_ASSIGNED.getSmsTemplateCode(), templateParams)); |
| | | log.info("[sendMessageWhenTaskAssigned][已关闭短信通知,跳过发送][processInstanceId: {}]", reqDTO.getProcessInstanceId()); |
| | | } |
| | | |
| | | @Override |
| | | public void sendMessageWhenTaskTimeout(BpmMessageSendWhenTaskTimeoutReqDTO reqDTO) { |
| | | Map<String, Object> templateParams = new HashMap<>(); |
| | | templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); |
| | | templateParams.put("taskName", reqDTO.getTaskName()); |
| | | templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); |
| | | smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getAssigneeUserId(), |
| | | BpmMessageEnum.TASK_TIMEOUT.getSmsTemplateCode(), templateParams)); |
| | | } |
| | | |
| | | private String getProcessInstanceDetailUrl(String taskId) { |
| | | return webProperties.getAdminUi().getUrl() + "/bpm/process-instance/detail?id=" + taskId; |
| | | log.info("[sendMessageWhenTaskTimeout][已关闭短信通知,跳过发送][processInstanceId: {}]", reqDTO.getProcessInstanceId()); |
| | | } |
| | | |
| | | } |