项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
视频地址:https://www.bilibili.com/video/av79774697/
** 如何使用serverTask实现抄送功能
使用推送消息的方式实现抄送,抄送不涉及流程审批,没有任何决策权,只是一个查看权 **
由于公司实现的是钉钉,那么抄送就采用钉钉的消息来实现抄送功能
Flowable集成钉钉实现抄送发送消息
1、 配置serverTask组件

2、 配置监听器


这里一定要设置一下表达式,否则验证错误
3、监听器实现
/**
* @Description: 发送消息的监听器
* @Author: Bruce.liu
* @Since:13:40 2021/1/9
* 爱拼才会赢 2018 ~ 2030 版权所有
*/
@Component(value = "sendMessageExecutionCallListener")
public class SendMessageExecutionCallListener implements ExecutionListener {
private static final long serialVersionUID = -5140234938739863473L;
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private HistoryService historyService;
@Autowired
private RepositoryService repositoryService;
@Autowired
private ISystemCallBackMqService systemCallBackMqService;
/**
* 抄送的用户的表达式 如${userIds}
*/
private Expression userList;
@Override
public void notify(DelegateExecution execution) {
List<String> userIds = (List<String>) this.userList.getValue(execution);
if (CollectionUtils.isNotEmpty(userIds)){
SendMessageVo sendMessageVo = new SendMessageVo();
String processInstanceId = execution.getProcessInstanceId();
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String rootProcessInstanceId = historicProcessInstance.getSuperProcessInstanceId();
if (StringUtils.isNotBlank(rootProcessInstanceId)){
HistoricProcessInstance superHistoricProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(rootProcessInstanceId).singleResult();
if (superHistoricProcessInstance != null){
sendMessageVo.setSuperModelKey(superHistoricProcessInstance.getProcessDefinitionKey());
}
}
ProcessDefinition processDefinition = repositoryS

本文介绍了如何在Flowable中利用serverTask组件配置抄送功能,通过监听器触发钉钉消息发送,以钉钉API为例,详细讲解了配置、监听器实现和消息发送流程。
最低0.47元/天 解锁文章
1961





