REQ-3290-转交任务不能转交给自己当前任务

This commit is contained in:
yangqicheng 2024-11-21 09:41:14 +08:00
parent 00784efff6
commit 2e940e2c7a
4 changed files with 14 additions and 0 deletions

View File

@ -40,6 +40,7 @@ public enum BpmnTaskRespCode implements IModuleRespCode {
BACK_TARGET_ACTIVITY_NOT_EXISTS("023", "回退到指定节点【{}】失败!"),
BACK_NODE_CANNOT_REACHABLE("024", "退回节点【{}】不可达,不允许退回"),
REACHED_BACKED_MAXIMUM_NUM("025", "达到回退操作次数上限【{}】次"),
TRANSFER_TO_SELF("026", "任务不能转交给自己"),
;
private final String code;

View File

@ -21,6 +21,7 @@ import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTask
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTaskAssignerCount;
public class CustomCountersignUserTaskAsyncCmd extends AbstractCommand<Void> implements Serializable {
private static final long serialVersionUID = -6072764832727629141L;
private final BpmnTaskCountersignDTO dto;
public CustomCountersignUserTaskAsyncCmd(BpmnTaskCountersignDTO dto) {

View File

@ -1,6 +1,7 @@
package cn.axzo.workflow.core.engine.cmd;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO;
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
import cn.axzo.workflow.core.engine.job.AsyncTransferUserTaskJobHandler;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
@ -17,6 +18,7 @@ import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import java.io.Serializable;
import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.TRANSFER_TO_SELF;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTask;
/**
@ -39,6 +41,10 @@ public class CustomTransferUserTaskAsyncCmd extends AbstractCommand<Void> implem
@Override
public Void execute(CommandContext commandContext) {
//不能转交给自己
if (dto.getOriginAssigner().buildAssigneeId().equals(dto.getTargetAssigner().buildAssigneeId())) {
throw new WorkflowEngineException(TRANSFER_TO_SELF);
}
ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(commandContext);
HistoricTaskInstanceQuery taskQuery = processEngineConfiguration.getHistoryService().createHistoricTaskInstanceQuery();
HistoricTaskInstance historicTaskInstance = taskQuery.taskId(dto.getTaskId()).singleResult();

View File

@ -2,6 +2,7 @@ package cn.axzo.workflow.core.engine.cmd;
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
@ -32,6 +33,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_ASSIGNEE_SKIP_
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.TRANSFER;
import static cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner.buildDummyAssigner;
import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.TRANSFER_TO_SELF;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.addComment;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.addMultiTask;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment;
@ -79,6 +81,10 @@ public class CustomTransferUserTaskCmd extends AbstractCommand<Void> implements
@Override
public Void execute(CommandContext commandContext) {
//不能转交给自己
if (targetTaskAssignee.buildAssigneeId().equals(originTaskAssignee.buildAssigneeId())) {
throw new WorkflowEngineException(TRANSFER_TO_SELF);
}
ProcessEngineConfigurationImpl processEngineConfiguration =
CommandContextUtil.getProcessEngineConfiguration(commandContext);
HistoricTaskInstanceQuery taskQuery =