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 { public interface FlowProcessEventHandler {
/** /**
* 执行办理任务监听 当状态为草稿驳回撤销时说明流程为申请人节点提交办理 * 执行办理任务监听
* *
* @param processInstanceId 流程实例id * @param businessKey 业务id
* @param status 状态 * @param status 状态
* @param submit 当为true时为申请人节点办理
*/ */
void handleProcess(String processInstanceId, String status); void handleProcess(String businessKey, String status, boolean submit);
} }

View File

@ -14,6 +14,7 @@ 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 @Override
public void handleProcess(String processInstanceId, String status) { public void handleProcess(String businessKey, String status, boolean submit) {
log.info("流程实例ID:" + processInstanceId + ",状态:" + status); log.info("业务ID:" + businessKey + ",状态:" + status);
} }
} }

View File

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

View File

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

View File

@ -154,14 +154,14 @@ public class ActTaskServiceImpl implements IActTaskService {
String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId()); String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId());
if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) { if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) {
if (processHandler != null) { if (processHandler != null) {
processHandler.handleProcess(processInstance.getId(), businessStatus); processHandler.handleProcess(processInstance.getBusinessKey(), businessStatus, true);
} }
} }
runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus()); runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus());
String key = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey(); String key = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey();
FlowTaskEventHandler taskHandler = flowEventStrategy.getTaskHandler(key); FlowTaskEventHandler taskHandler = flowEventStrategy.getTaskHandler(key);
if (taskHandler != null) { 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()); 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()); UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus());
managementService.executeCommand(updateBusinessStatusCmd); managementService.executeCommand(updateBusinessStatusCmd);
if (processHandler != null) { if (processHandler != null) {
processHandler.handleProcess(processInstance.getId(), BusinessStatusEnum.FINISH.getStatus()); processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false);
} }
} else { } else {
sendMessage(list, processInstance.getName(), completeTaskBo.getMessageType(), null); sendMessage(list, processInstance.getName(), completeTaskBo.getMessageType(), null);
@ -443,7 +443,7 @@ public class ActTaskServiceImpl implements IActTaskService {
runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus()); runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus());
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
if (processHandler != null) { if (processHandler != null) {
processHandler.handleProcess(historicProcessInstance.getId(), BusinessStatusEnum.TERMINATION.getStatus()); processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false);
} }
return true; return true;
} catch (Exception e) { } catch (Exception e) {
@ -616,7 +616,7 @@ public class ActTaskServiceImpl implements IActTaskService {
runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.BACK.getStatus()); runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.BACK.getStatus());
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey());
if (processHandler != null) { if (processHandler != null) {
processHandler.handleProcess(processInstanceId, BusinessStatusEnum.BACK.getStatus()); processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.BACK.getStatus(), false);
} }
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(e.getMessage()); throw new ServiceException(e.getMessage());