feat(REQ-4100) - 支撑业务节点操作回退
This commit is contained in:
parent
2b83b07774
commit
b17582842d
@ -5,7 +5,6 @@ import cn.axzo.workflow.common.enums.BpmnCountersignTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeType;
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO;
|
||||
@ -51,9 +50,6 @@ import cn.axzo.workflow.core.engine.cmd.CustomResetTaskApproversAsyncCmd;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomResetTaskApproversCmd;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomTransferUserTaskAsyncCmd;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomTransferUserTaskCmd;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventBuilder;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventImpl;
|
||||
import cn.axzo.workflow.core.engine.event.MessagePushEventType;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessTaskService;
|
||||
@ -65,15 +61,12 @@ import cn.axzo.workflow.core.service.converter.BpmnTaskConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmnTaskDonePageItemConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmnTaskTodoPageItemConverter;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.flowable.bpmn.model.BaseElement;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher;
|
||||
import org.flowable.common.engine.impl.identity.Authentication;
|
||||
import org.flowable.common.engine.impl.interceptor.CommandExecutor;
|
||||
import org.flowable.engine.HistoryService;
|
||||
@ -83,9 +76,6 @@ import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstanceQuery;
|
||||
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
|
||||
import org.flowable.engine.impl.util.CommandContextUtil;
|
||||
import org.flowable.engine.impl.util.ProcessDefinitionUtil;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.engine.task.Attachment;
|
||||
import org.flowable.engine.task.Comment;
|
||||
@ -131,7 +121,6 @@ import static cn.axzo.workflow.common.code.BpmnTaskRespCode.FIND_TASK_BY_PERSON_
|
||||
import static cn.axzo.workflow.common.code.BpmnTaskRespCode.REACHED_BACKED_MAXIMUM_NUM;
|
||||
import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_COMPLETE_FAIL_NOT_EXISTS;
|
||||
import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_HAS_BEEN_COMPLETE;
|
||||
import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_REMIND_ERROR_NOT_EXISTS;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_ADVICE;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_COMMENT_EXT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC;
|
||||
@ -156,7 +145,6 @@ import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.valueO
|
||||
import static cn.axzo.workflow.common.util.BpmnNativeQueryUtil.countSql;
|
||||
import static cn.axzo.workflow.common.util.BpmnNativeQueryUtil.sqlConnectors;
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.convertSet;
|
||||
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getActivitySignature;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@ -882,7 +870,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void resetTaskApprovers(BpmnTaskResetApproversDTO dto) {
|
||||
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor();
|
||||
if(dto.getAsync() != null && dto.getAsync()) {
|
||||
if (dto.getAsync() != null && dto.getAsync()) {
|
||||
commandExecutor.execute(new CustomResetTaskApproversAsyncCmd(dto));
|
||||
} else {
|
||||
commandExecutor.execute(new CustomResetTaskApproversCmd(dto.getTaskId(), dto.getAdvice(),
|
||||
@ -916,8 +904,11 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
|
||||
@Override
|
||||
public String findTaskIdByInstanceIdAndPersonId(String processInstanceId, String personId) {
|
||||
List<Task> list = taskService.createTaskQuery().processInstanceId(processInstanceId)
|
||||
.taskAssigneeLike("%|" + personId)
|
||||
TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(processInstanceId);
|
||||
if (StringUtils.hasText(personId)) {
|
||||
taskQuery.taskAssigneeLike("%|" + personId);
|
||||
}
|
||||
List<Task> list = taskQuery
|
||||
.active()
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(list) || list.size() > 1) {
|
||||
|
||||
@ -196,7 +196,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp
|
||||
if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) {
|
||||
throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID);
|
||||
}
|
||||
if (!StringUtils.hasText(dto.getTaskId()) && StringUtils.hasText(dto.getApprover().getPersonId())) {
|
||||
if (!StringUtils.hasText(dto.getTaskId())) {
|
||||
dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId()));
|
||||
}
|
||||
populateUsersAvatar(dto.getApprover());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user