介绍

使用流程自定义事件处理业务逻辑

详情

配置步骤

1. 打开工作流引擎规划页面,点击规划页面空白处,点击【全局事件,弹出全局事件弹框】

2. 在全局事件弹框中,选择类型:动作按钮触发时机;

3. 执行策略选择:自定义方法,填写rpcService名称;

4. 设置好之后点击确定按钮,配置好的事件会显示在全局事件;

案例代码

1、DTO信息注释

/**
* 任务ID
*/
private String taskId;
/**
* 任务名称
*/
private String currentTaskName;
/**
* 目标任务
*/
private String targetTaskName;
/**
* 目标路线
*/
private String targetTransition;
/**
* 提交类型(通过或退回)
*/
private OperatorEnum operatorEnum;
/**
* 提交意见
*/
private String submitComment;
/**
* 处理人信息
*/
private List<Map<String, String>> assignees;
/**
* 执行Bean
*/
private Map<String, Object> dynaBean;

2、创建rpcService,继承接口 WorkFlowExecuteCustomMethodService,实现executeCustomMethod()方法;

2.2.3以后的版本创建普通的service。@Service(name = “myWorkFlowExecuteCustomMethodService”)

@RpcSchema(schemaId = "myWorkFlowExecuteCustomMethodService")
2.2.3以后使用 @Service(value = "myWorkFlowExecuteCustomMethodService")

public class MyWorkFlowExecuteCustomMethodServiceImpl implements WorkFlowExecuteCustomMethodService {

    private static final Logger logger = LoggerFactory.getLogger(MyWorkFlowExecuteCustomMethodServiceImpl.class);

    @Override
    public void executeCustomMethod(EventSubmitDTO eventSubmitDTO) {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(String.format("taskId:%s   ,   ", eventSubmitDTO.getTaskId()));
        stringBuffer.append(String.format("currentTaskName:%s   ,   ", eventSubmitDTO.getCurrentTaskName()));
        stringBuffer.append(String.format("targetTaskName:%s   ,   ", eventSubmitDTO.getTargetTaskName()));
        stringBuffer.append(String.format("targetTransition:%s   ,   ", eventSubmitDTO.getTargetTransition()));
        stringBuffer.append(String.format("operatorEnum:%s   ,   ", eventSubmitDTO.getOperatorEnum().toString()));
        stringBuffer.append(String.format("submitComment:%s   ,   ", eventSubmitDTO.getSubmitComment()));
        stringBuffer.append(String.format("assignees:%s   ,   ", eventSubmitDTO.getAssignees()));
        stringBuffer.append(String.format("funcCode:%s   ,   ", eventSubmitDTO.getFuncCode()));
        stringBuffer.append(String.format("dynaBean:%s   ,   ", eventSubmitDTO.getDynaBean().toString()));
        logger.info(stringBuffer.toString());
        System.out.println(eventSubmitDTO);
    }

}

关键字

  • 自定义方法
  • 全局事件
最后编辑: 于春辉  文档更新时间: 2024-11-08 17:00   作者:肖海杰