| | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 流程定义key与流程节点标识(拼接方式:流程定义key_流程节点) |
| | | * 流程定义key |
| | | */ |
| | | private String keyNode; |
| | | private String key; |
| | | |
| | | /** |
| | | * 审批节点key |
| | | */ |
| | | private String taskDefinitionKey; |
| | | |
| | | /** |
| | | * 任务id |
| | |
| | | /** |
| | | * 执行办理任务监听 |
| | | * |
| | | * @param keyNode 流程定义key与流程节点标识(拼接方式:流程定义key_流程节点) |
| | | * @param taskId 任务id |
| | | * @param businessKey 业务id |
| | | * @param key 流程key |
| | | * @param taskDefinitionKey 审批节点key |
| | | * @param taskId 任务id |
| | | * @param businessKey 业务id |
| | | */ |
| | | public void processTaskHandler(String keyNode, String taskId, String businessKey) { |
| | | public void processTaskHandler(String key, String taskDefinitionKey, String taskId, String businessKey) { |
| | | ProcessTaskEvent processTaskEvent = new ProcessTaskEvent(); |
| | | processTaskEvent.setKeyNode(keyNode); |
| | | processTaskEvent.setKey(key); |
| | | processTaskEvent.setTaskDefinitionKey(taskDefinitionKey); |
| | | processTaskEvent.setTaskId(taskId); |
| | | processTaskEvent.setBusinessKey(businessKey); |
| | | SpringUtils.context().publishEvent(processTaskEvent); |
| | |
| | | } |
| | | runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus()); |
| | | //办理监听 |
| | | String keyNode = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey(); |
| | | flowProcessEventHandler.processTaskHandler(keyNode, task.getId(), processInstance.getBusinessKey()); |
| | | flowProcessEventHandler.processTaskHandler(processInstance.getProcessDefinitionKey(), task.getTaskDefinitionKey(), |
| | | task.getId(), processInstance.getBusinessKey()); |
| | | //办理意见 |
| | | taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage()); |
| | | //办理任务 |
| | |
| | | |
| | | /** |
| | | * 执行办理任务监听 |
| | | * 示例:也可通过 @EventListener(condition = "#processTaskEvent.key=='leave1'")进行判断 |
| | | * 在方法中判断流程节点key |
| | | * if ("xxx".equals(processTaskEvent.getTaskDefinitionKey())) { |
| | | * //执行业务逻辑 |
| | | * } |
| | | * |
| | | * @param processTaskEvent 参数 |
| | | */ |
| | | @EventListener(condition = "#processTaskEvent.keyNode=='leave1_Activity_14633hx'") |
| | | @EventListener(condition = "#processTaskEvent.key=='leave1' && #processTaskEvent.taskDefinitionKey=='Activity_14633hx'") |
| | | public void processTaskHandler(ProcessTaskEvent processTaskEvent) { |
| | | log.info("当前任务执行了{}", processTaskEvent.toString()); |
| | | TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessKey())); |