update 调整事件办理

This commit is contained in:
gssong 2024-01-15 23:05:46 +08:00
parent 5de71bcf1d
commit efc4f5cfbc
6 changed files with 19 additions and 17 deletions

View File

@ -10,10 +10,11 @@ package org.dromara.workflow.flowable.strategy;
public interface FlowProcessEventHandler {
/**
* 执行办理任务监听 当状态为草稿驳回撤销时说明流程为申请人节点提交办理
* 执行办理任务监听
*
* @param processInstanceId 流程实例id
* @param status 状态
* @param businessKey 业务id
* @param status 状态
* @param submit 当为true时为申请人节点办理
*/
void handleProcess(String processInstanceId, String status);
void handleProcess(String businessKey, String status, boolean submit);
}

View File

@ -13,7 +13,8 @@ public interface FlowTaskEventHandler {
/**
* 执行办理任务监听
*
* @param task 任务
* @param task 任务
* @param businessKey 业务id
*/
void handleTask(Task task);
void handleTask(Task task, String businessKey);
}

View File

@ -18,7 +18,7 @@ public class TestCustomProcessHandler implements FlowProcessEventHandler {
@Override
public void handleProcess(String processInstanceId, String status) {
log.info("流程实例ID:" + processInstanceId + ",状态:" + status);
public void handleProcess(String businessKey, String status, boolean submit) {
log.info("业务ID:" + businessKey + ",状态:" + status);
}
}

View File

@ -18,7 +18,7 @@ import org.springframework.stereotype.Component;
public class TestCustomTaskHandler implements FlowTaskEventHandler {
@Override
public void handleTask(Task task) {
log.info("任务名称:" + task.getName());
public void handleTask(Task task, String businessKey) {
log.info("任务名称:" + task.getName() + ",业务ID:" + businessKey);
}
}

View File

@ -371,7 +371,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason);
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
if (processHandler != null) {
processHandler.handleProcess(historicProcessInstance.getId(), BusinessStatusEnum.INVALID.getStatus());
processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.INVALID.getStatus(), false);
}
return true;
} catch (Exception e) {
@ -504,7 +504,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.CANCEL.getStatus());
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey());
if (processHandler != null) {
processHandler.handleProcess(processInstanceId, BusinessStatusEnum.CANCEL.getStatus());
processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.CANCEL.getStatus(), false);
}
return true;
} catch (Exception e) {

View File

@ -154,14 +154,14 @@ public class ActTaskServiceImpl implements IActTaskService {
String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId());
if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) {
if (processHandler != null) {
processHandler.handleProcess(processInstance.getId(), businessStatus);
processHandler.handleProcess(processInstance.getBusinessKey(), businessStatus, true);
}
}
runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus());
String key = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey();
FlowTaskEventHandler taskHandler = flowEventStrategy.getTaskHandler(key);
if (taskHandler != null) {
taskHandler.handleTask(task);
taskHandler.handleTask(task, processInstance.getBusinessKey());
}
//办理意见
taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage());
@ -176,7 +176,7 @@ public class ActTaskServiceImpl implements IActTaskService {
UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus());
managementService.executeCommand(updateBusinessStatusCmd);
if (processHandler != null) {
processHandler.handleProcess(processInstance.getId(), BusinessStatusEnum.FINISH.getStatus());
processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false);
}
} else {
sendMessage(list, processInstance.getName(), completeTaskBo.getMessageType(), null);
@ -443,7 +443,7 @@ public class ActTaskServiceImpl implements IActTaskService {
runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus());
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
if (processHandler != null) {
processHandler.handleProcess(historicProcessInstance.getId(), BusinessStatusEnum.TERMINATION.getStatus());
processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false);
}
return true;
} catch (Exception e) {
@ -616,7 +616,7 @@ public class ActTaskServiceImpl implements IActTaskService {
runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.BACK.getStatus());
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey());
if (processHandler != null) {
processHandler.handleProcess(processInstanceId, BusinessStatusEnum.BACK.getStatus());
processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.BACK.getStatus(), false);
}
} catch (Exception e) {
throw new ServiceException(e.getMessage());