2025-04-24 16:31

return {

  fixedSearch: { settlement: '0' }

}  但是,如何去监听页面里某个字段的值,来达到动态传参的效果 


2025-04-24 15:32

老师第一次接触这个,我也有这样的需求,能说详细点吗,这个配置在哪里?谢谢

2025-04-17 18:15

看了一下错误日志是因为没配短信通道,可以在流程审批的时候,将sendSingleSmsToAdmin注释掉的


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.system.api.sms.SmsSendApi;

import lombok.extern.slf4j.Slf4j;

import org.springframework.stereotype.Service;

import org.springframework.validation.annotation.Validated;


import javax.annotation.Resource;

import java.util.HashMap;

import java.util.Map;


/**

 * BPM 消息 Service 实现类

 *

 * @author 芋道源码

 */

@Service

@Validated

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

    }


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

    }


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

    }


    private String getProcessInstanceDetailUrl(String taskId) {

        return webProperties.getAdminUi().getUrl() + "/bpm/process-instance/detail?id=" + taskId;

    }