update - 新增转交、更新流程变量功能
This commit is contained in:
parent
0cab9d6e0a
commit
66d73c3579
@ -43,7 +43,8 @@ public enum BpmErrorCode implements IProjectRespCode {
|
|||||||
PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF("05003", "流程取消失败,该流程不是你发起的"),
|
PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF("05003", "流程取消失败,该流程不是你发起的"),
|
||||||
PROCESS_INSTANCE_NOT_EXISTS("05004", "流程实例不存在"),
|
PROCESS_INSTANCE_NOT_EXISTS("05004", "流程实例不存在"),
|
||||||
PROCESS_INSTANCE_ID_NOT_EXISTS("05005", "流程实例【{}】不存在"),
|
PROCESS_INSTANCE_ID_NOT_EXISTS("05005", "流程实例【{}】不存在"),
|
||||||
PROCESS_INSTANCE_CREATE_ERROR("05002", ""),
|
PROCESS_INSTANCE_CREATE_ERROR("05006", ""),
|
||||||
|
PROCESS_INSTANCE_VARIABLES_UPDATE_NOT_SUPPORTED("05006", "该流程实例不支持更新变量"),
|
||||||
// ========== bpmn task 06-001 ==========
|
// ========== bpmn task 06-001 ==========
|
||||||
TASK_COMPLETE_FAIL_NOT_EXISTS("06001", "未找到指定审批任务"),
|
TASK_COMPLETE_FAIL_NOT_EXISTS("06001", "未找到指定审批任务"),
|
||||||
TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF("06002", "该任务的审批人不是你"),
|
TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF("06002", "该任务的审批人不是你"),
|
||||||
|
|||||||
@ -1,6 +1,12 @@
|
|||||||
package cn.axzo.workflow.core.service;
|
package cn.axzo.workflow.core.service;
|
||||||
|
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.*;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCancelDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessVariablesUpdateDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.HistoricProcessInstanceSearchDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||||
@ -90,4 +96,6 @@ public interface BpmnProcessInstanceService {
|
|||||||
ObjectNode getProcessInstanceGraphical(String processInstanceId, @Nullable String tenantId);
|
ObjectNode getProcessInstanceGraphical(String processInstanceId, @Nullable String tenantId);
|
||||||
|
|
||||||
BpmPageResult<HistoricProcessInstanceVO> historicProcessInstancePage(HistoricProcessInstanceSearchDTO dto);
|
BpmPageResult<HistoricProcessInstanceVO> historicProcessInstancePage(HistoricProcessInstanceSearchDTO dto);
|
||||||
|
|
||||||
|
Boolean updateProcessVariables(BpmnProcessVariablesUpdateDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,13 @@ import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
|||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTransferDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.*;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskDonePageItemVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskInstanceVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskTodoPageItemVO;
|
||||||
import org.flowable.form.api.FormInfo;
|
import org.flowable.form.api.FormInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -73,5 +78,5 @@ public interface BpmnTaskService {
|
|||||||
|
|
||||||
void commentTask(BpmnTaskCommentDTO dto);
|
void commentTask(BpmnTaskCommentDTO dto);
|
||||||
|
|
||||||
|
Boolean transferTask(BpmnTaskTransferDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新流程实例变量
|
||||||
|
*
|
||||||
|
* @author wangli
|
||||||
|
* @since 2024/5/23 16:04
|
||||||
|
*/
|
||||||
|
@ApiModel("更新流程实例变量")
|
||||||
|
@Data
|
||||||
|
public class BpmnProcessVariablesUpdateDTO {
|
||||||
|
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
private Map<String, Object> variables;
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package cn.axzo.workflow.core.service.dto.request.bpmn.task;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转交审批任务的入参模型
|
||||||
|
*
|
||||||
|
* @author wangli
|
||||||
|
* @since 2024/5/23 16:03
|
||||||
|
*/
|
||||||
|
@ApiModel("转交审批任务的入参模型")
|
||||||
|
@Data
|
||||||
|
public class BpmnTaskTransferDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务id列表
|
||||||
|
*/
|
||||||
|
private String taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原任务处理人id
|
||||||
|
*/
|
||||||
|
private String originUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 目标任务处理人id
|
||||||
|
*/
|
||||||
|
private String targetUserId;
|
||||||
|
|
||||||
|
}
|
||||||
@ -13,6 +13,7 @@ import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanc
|
|||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessVariablesUpdateDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.HistoricProcessInstanceSearchDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.HistoricProcessInstanceSearchDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||||
@ -88,6 +89,7 @@ import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_DEFINITION
|
|||||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS;
|
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS;
|
||||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF;
|
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF;
|
||||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_NOT_EXISTS;
|
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_NOT_EXISTS;
|
||||||
|
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_INSTANCE_VARIABLES_UPDATE_NOT_SUPPORTED;
|
||||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_OPERATION_PARAM_VALID_ERROR;
|
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.PROCESS_OPERATION_PARAM_VALID_ERROR;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ -930,4 +932,23 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
return stringBuilder.replace(start + 7, 10, "count(1)").toString();
|
return stringBuilder.replace(start + 7, 10, "count(1)").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean updateProcessVariables(BpmnProcessVariablesUpdateDTO dto) {
|
||||||
|
if (CollectionUtils.isEmpty(dto.getVariables())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(dto.getProcessInstanceId()).includeProcessVariables().singleResult();
|
||||||
|
if (Objects.isNull(processInstance)) {
|
||||||
|
throw new WorkflowEngineException(PROCESS_INSTANCE_VARIABLES_UPDATE_NOT_SUPPORTED);
|
||||||
|
}
|
||||||
|
Map<String, Object> processVariables = processInstance.getProcessVariables();
|
||||||
|
Map<String, Object> newVariables = new HashMap<>();
|
||||||
|
dto.getVariables().forEach((key, value) -> {
|
||||||
|
if (processVariables.containsKey(key)) {
|
||||||
|
newVariables.put(key, value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
runtimeService.setVariables(dto.getProcessInstanceId(), newVariables);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
|||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTransferDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||||
@ -547,4 +548,13 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
|||||||
return multiInstanceRootExecution;
|
return multiInstanceRootExecution;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean transferTask(BpmnTaskTransferDTO dto) {
|
||||||
|
if (!StringUtils.hasText(dto.getTaskId())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Task task = checkTask(null, dto.getOriginUserId(), dto.getTaskId());
|
||||||
|
taskService.setAssignee(task.getId(), dto.getTargetUserId());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,13 @@ package cn.axzo.workflow.server.controller.web.bpmn;
|
|||||||
|
|
||||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||||
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
|
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.*;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCancelDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessVariablesUpdateDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.process.HistoricProcessInstanceSearchDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||||
@ -14,7 +20,14 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
@ -53,6 +66,17 @@ public class BpmnProcessInstanceController {
|
|||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新流程实例变量
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/update")
|
||||||
|
public CommonResponse<Boolean> updateProcessVariables(@Validated @RequestBody BpmnProcessVariablesUpdateDTO dto) {
|
||||||
|
log.info("更新流程实例变量updateProcessVariables===>>>参数:{}", JSON.toJSONString(dto));
|
||||||
|
return success(bpmnProcessInstanceService.updateProcessVariables(dto));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/form/create")
|
@PostMapping("/form/create")
|
||||||
public CommonResponse<String> createProcessInstanceWith(@Validated @RequestBody BpmnProcessInstanceCreateWithFormDTO dto) {
|
public CommonResponse<String> createProcessInstanceWith(@Validated @RequestBody BpmnProcessInstanceCreateWithFormDTO dto) {
|
||||||
log.info("发起审核createProcessInstanceWith===>>>参数:{}", JSON.toJSONString(dto));
|
log.info("发起审核createProcessInstanceWith===>>>参数:{}", JSON.toJSONString(dto));
|
||||||
|
|||||||
@ -4,14 +4,25 @@ import cn.axzo.workflow.core.service.BpmnTaskService;
|
|||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskPageSearchDTO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTransferDTO;
|
||||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.*;
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskDonePageItemVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskInstanceVO;
|
||||||
|
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskTodoPageItemVO;
|
||||||
import cn.azxo.framework.common.model.CommonResponse;
|
import cn.azxo.framework.common.model.CommonResponse;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.form.api.FormInfo;
|
import org.flowable.form.api.FormInfo;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
@ -75,7 +86,12 @@ public class BpmnTaskController {
|
|||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "转办")
|
||||||
|
@PostMapping("/transfer")
|
||||||
|
public CommonResponse<Boolean> transferTask(@Validated @RequestBody BpmnTaskTransferDTO dto) {
|
||||||
|
bpmnTaskService.transferTask(dto);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获取指定流程实例的审批过程信息
|
* 获取指定流程实例的审批过程信息
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user