update(REQ-2516) - 测试 maven 自动执行生成代码
This commit is contained in:
parent
a26d1321be
commit
997773182d
@ -1,263 +1,305 @@
|
||||
package cn.axzo.workflow.starter.api;
|
||||
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCarbonCopyDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCountersignDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.util.ThreadUtil;
|
||||
import cn.axzo.workflow.starter.feign.ext.WorkflowEngineStarterFeignConfiguration;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import cn.axzo.workflow.client.feign.bpmn.ProcessInstanceApi;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import cn.axzo.workflow.starter.feign.ext.WorkflowEngineStarterFeignConfiguration;
|
||||
import cn.axzo.workflow.common.util.ThreadUtil;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.ASYNC;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelExtVO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
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.RequestParam;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCarbonCopyDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCheckApproverDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceAdminPageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ProcessNodeDetailVO;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryConfigCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryConfigSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategorySearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryConfigItemVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryItemVO;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.RestBpmnProcessVariable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCountersignDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskRemindDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskTodoPageItemVO;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024/6/11 16:32
|
||||
* Workflow Engine Starter Management Service
|
||||
*/
|
||||
@FeignClient(name = "workflow-engine-starter", url = "${axzo.service.workflow-engine:workflow-engine:8080}", configuration = WorkflowEngineStarterFeignConfiguration.class)
|
||||
@FeignClient(name = "workflow-engine-starter-manage", url = "${axzo.service.workflow-engine:workflow-engine:8080}", configuration = WorkflowEngineStarterFeignConfiguration.class)
|
||||
public interface WorkflowManageService {
|
||||
|
||||
/**
|
||||
* 业务节点唤醒
|
||||
* 获取流程操作按钮列表
|
||||
*
|
||||
* @return 流程操作按钮列表
|
||||
*/
|
||||
@GetMapping("/api/process/config/button/list")
|
||||
List<BpmnButtonMetaInfo> getDefaultButtons();
|
||||
|
||||
/**
|
||||
* 流程模型列表
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "流程模型列表")
|
||||
@GetMapping("/api/process/model/page")
|
||||
BpmPageResult<BpmnModelDetailVO> page(@Validated @RequestBody BpmnModelSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 创建流程,
|
||||
* return modelId的主键
|
||||
*/
|
||||
@Operation(summary = "创建流程模型")
|
||||
@PostMapping("/api/process/model/create")
|
||||
String create(@Validated @RequestBody BpmnModelCreateDTO dto);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 获取模型
|
||||
*/
|
||||
@Operation(summary = "通过模型ID查询指定流程模型")
|
||||
@GetMapping("/api/process/model/get")
|
||||
BpmnModelDetailVO getById(@NotBlank(message = "流程模型 ID 不能为空") @RequestParam(required = false) String processModelId, @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 通过模型 KEY 获取模型
|
||||
*/
|
||||
@Operation(summary = "通过模型KEY查询指定流程模型")
|
||||
@GetMapping("/api/process/model/getByKey")
|
||||
BpmnModelDetailVO getByKey(@NotBlank(message = "流程模型 KEY 不能为空") @RequestParam(required = false) String processModelKey, @NotBlank(message = "租户不能为空") @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 校验是否能更新模型即其关联的流程定义内容
|
||||
* <p>
|
||||
* TODO 接口需要合并,但需要考虑客户端与服务端不同版本间如何兼容
|
||||
* 偏向业务的接口,flowable 引擎是站在流程定义维度进行激活和挂起
|
||||
*
|
||||
* @return true 能更新,表明该模型关联的所有定义版本都是挂起状态
|
||||
*/
|
||||
@GetMapping("/api/process/activity/old/trigger")
|
||||
Boolean trigger(@NotBlank(message = "触发 ID 不能为空") @RequestParam String triggerId);
|
||||
|
||||
@Operation(summary = "业务节点唤醒")
|
||||
@GetMapping("/api/process/activity/trigger")
|
||||
Boolean trigger(@NotBlank(message = "触发 ID 不能为空") @RequestParam String triggerId, @RequestParam(required = false, defaultValue = "false") Boolean async);
|
||||
@Operation(summary = "获取指定模型的扩展属性")
|
||||
@GetMapping("/api/process/model/ext")
|
||||
BpmnModelExtVO getModelExt(@NotBlank(message = "模型 ID 不能为空") @RequestParam(required = false) String modelId);
|
||||
|
||||
/**
|
||||
* 业务节点设置审批人, 不支持重复设置
|
||||
* 修改流程信息
|
||||
*/
|
||||
@Operation(summary = "更新流程模型")
|
||||
@PutMapping("/api/process/model/update")
|
||||
String update(@RequestBody BpmnModelUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 部署模型
|
||||
*
|
||||
* @return 部署完成的流程定义Id
|
||||
*/
|
||||
@Operation(summary = "通过模型 ID 部署流程模型")
|
||||
@PostMapping("/api/process/model/deploy")
|
||||
String deployById(@NotBlank(message = "流程模型 ID 不能为空") @RequestParam(required = false) String processModelId, @RequestParam(required = false, defaultValue = "") String modelTenantId, @RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 通过模型 KEY 部署模型
|
||||
*
|
||||
* @return 部署完成的流程定义Id
|
||||
*/
|
||||
@Operation(summary = "通过模型 KEY 部署流程模型")
|
||||
@PostMapping("/api/process/model/deployByKey")
|
||||
String deployByKey(@NotBlank(message = "流程模型 KEY 不能为空") @RequestParam(required = false) String processModelKey, @NotBlank(message = "租户不能为空") @RequestParam(required = false) String modelTenantId, @RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 取消部署流程模型
|
||||
*
|
||||
* @param processModelId
|
||||
* @param tenantId
|
||||
* @param operator
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "通过模型 ID 取消部署流程模型")
|
||||
@PostMapping("/api/process/model/undeploy")
|
||||
Void unDeployById(@NotBlank(message = "流程模型 ID 不能为空") @RequestParam(required = false) String processModelId, @RequestParam(required = false, defaultValue = "") String tenantId, @RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 删除模型
|
||||
*/
|
||||
@Operation(summary = "删除指定模型 ID 的流程模型")
|
||||
@DeleteMapping("/api/process/model/delete")
|
||||
Void deleteById(@NotBlank(message = "流程模型 ID 不能为空") @RequestParam String processModelId, @RequestParam(required = false, defaultValue = "") String tenantId);
|
||||
|
||||
/**
|
||||
* 通过模型 KEY 删除模型
|
||||
*
|
||||
* @param processModelKey
|
||||
* @param tenantId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除指定模型 KEY 的流程模型")
|
||||
@DeleteMapping("/api/process/model/deleteByKey")
|
||||
Void deleteByKey(@NotBlank(message = "流程模型 KEY 不能为空") @RequestParam String processModelKey, @RequestParam(required = false, defaultValue = "") String tenantId);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 修改模型状态
|
||||
*
|
||||
* @param modelId
|
||||
* @param status
|
||||
* @param operator
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改模型状态")
|
||||
@PostMapping("/api/process/model/changeStatus")
|
||||
Void changeStatus(@NotBlank(message = "模型 ID 不能为空") @RequestParam String modelId, @NotNull(message = "状态不能为空") @RequestParam Integer status, @RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 查询流程模型使用的分类列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询流程模型使用的分类列表")
|
||||
@GetMapping("/api/process/model/category/ids")
|
||||
List<String> getModelCategoryList();
|
||||
|
||||
/**
|
||||
* 查询模型的租户集合
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询模型的租户集合")
|
||||
@GetMapping("/api/process/model/tenant/ids")
|
||||
List<String> getModelTenantIds();
|
||||
|
||||
/**
|
||||
* 查询所有的审批流
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询所有的审批流")
|
||||
@PostMapping("/api/process/instance/page/all")
|
||||
@Manageable
|
||||
BpmPageResult<BpmnProcessInstanceAdminPageItemVO> getAllProcessInstancePage(@Validated @RequestBody BpmnProcessInstanceAdminPageReqVO dto);
|
||||
|
||||
/**
|
||||
* 我发起的审批列表
|
||||
*/
|
||||
@Operation(summary = "我发起的审批列表")
|
||||
@PostMapping("/api/process/instance/page/my")
|
||||
@Manageable
|
||||
BpmPageResult<BpmnProcessInstancePageItemVO> getMyProcessInstancePage(@Validated @RequestBody BpmnProcessInstanceMyPageReqVO dto);
|
||||
|
||||
/**
|
||||
* 创建审批流程并带上表单
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/activity/assignee/set")
|
||||
@Operation(summary = "业务节点设置审批人,不支持重复调用设置审批人,需一次性传入所有审批人")
|
||||
Boolean setAssignee(@Validated @RequestBody BpmnActivitySetAssigneeDTO dto);
|
||||
@Operation(summary = "创建审批流程并带上表单")
|
||||
@PostMapping("/api/process/instance/form/create")
|
||||
@Manageable
|
||||
String createProcessInstanceWith(@Validated @RequestBody BpmnProcessInstanceCreateWithFormDTO dto);
|
||||
|
||||
/**
|
||||
* 创建审批流程
|
||||
* 更新流程定义的状态
|
||||
*
|
||||
* <pre>
|
||||
* MQ 触发规则:
|
||||
* 1. 当前流程实例会依次触发 process-instance-created 和 process-instance-started 事件
|
||||
* 2. 第一个审批任务会依次触发 process-task-assigned 和 process-task-created 事件
|
||||
* </pre>
|
||||
*
|
||||
* @param dto {@link BpmnProcessInstanceCreateDTO}
|
||||
* @param processDefinitionId 流程定义的编号
|
||||
* @param status 1, "active"; 2, "suspended"
|
||||
*/
|
||||
@Operation(summary = "创建审批流程, MQ 触发规则:1. 当前流程实例会依次触发 process-instance-created 和 process-instance-started 事件,2. 第一个审批任务会依次触发 process-task-assigned 和 process-task-created 事件")
|
||||
@PostMapping("/api/process/instance/create")
|
||||
@InvokeMode(SYNC)
|
||||
String createProcessInstance(@Validated @RequestBody BpmnProcessInstanceCreateDTO dto);
|
||||
@Operation(summary = "更新指定流程定义的版本的状态, 处于 suspended 状态的流程模型将不能再发起实例")
|
||||
@PutMapping("/api/process/instance/status/update")
|
||||
@Manageable
|
||||
Boolean updateProcessStatus(@NotBlank(message = "流程定义 ID 不能为空") @RequestParam String processDefinitionId, @NotNull(message = "状态不能为空") @RequestParam Integer status);
|
||||
|
||||
/**
|
||||
* 发起人主动撤回审核
|
||||
*
|
||||
* <pre>
|
||||
* MQ 触发规则:
|
||||
* 1. 当前流程实例中现存的任务会依次触发 process-task-deleted 事件
|
||||
* 2. 当前流程实例会触发 process-instance-cancelled 事件
|
||||
* </pre>
|
||||
*
|
||||
* @param dto {@link BpmnProcessInstanceCancelDTO}
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "发起人主动撤回审核,MQ 触发规则:1. 当前流程实例中现存的任务会依次触发 process-task-deleted 事件,2. 当前流程实例会触发 process-instance-cancelled 事件")
|
||||
@DeleteMapping("/api/process/instance/cancel")
|
||||
Boolean cancelProcessInstance(@Validated @RequestBody BpmnProcessInstanceCancelDTO dto);
|
||||
|
||||
/**
|
||||
* 中止流程实例
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "中止流程实例")
|
||||
@DeleteMapping("/api/process/instance/abort")
|
||||
Boolean abortProcessInstance(@Validated @RequestBody BpmnProcessInstanceAbortDTO dto);
|
||||
|
||||
/**
|
||||
* 批量中止流程实例
|
||||
*
|
||||
* @param dtos
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "批量中止流程实例")
|
||||
@DeleteMapping("/api/process/instance/batch/abort")
|
||||
BatchOperationResultVO batchAbortProcessInstance(@Validated @RequestBody List<BpmnProcessInstanceAbortDTO> dtos);
|
||||
|
||||
/**
|
||||
* 抄送流程实例
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "抄送流程实例")
|
||||
@PostMapping("/api/process/instance/carbon-copy")
|
||||
Boolean carbonCopyProcessInstance(@Validated @RequestBody BpmnProcessInstanceCarbonCopyDTO dto);
|
||||
|
||||
/**
|
||||
* 获得流程实例
|
||||
*
|
||||
* @param dto {@link BpmnProcessInstanceQueryDTO} 可根据 Id,BusinessKey进行查询
|
||||
* @return 流程实例, 租户Id不必传
|
||||
*/
|
||||
@Operation(summary = "获得流程实例")
|
||||
@GetMapping("/api/process/instance/get")
|
||||
BpmnProcessInstanceVO getProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的流程变量
|
||||
* 获取审批流程实例的运行图
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param tenantId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取指定流程实例的流程变量")
|
||||
@GetMapping("/api/process/instance/cooperation-org")
|
||||
Map<String, Object> getProcessVariables(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId, @Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
@GetMapping("/api/process/job/dead-letter/resume")
|
||||
Void executeDeadLetterJobAction(@RequestParam(required = false) String jobId, @RequestParam(required = false) String procInstId);
|
||||
@Operation(summary = "获取审批流程实例的运行图")
|
||||
@GetMapping("/api/process/instance/graphical")
|
||||
@Manageable
|
||||
ObjectNode processInstanceGraphical(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId, @Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 同意
|
||||
* 推断指定流程实例的所有节点执行顺序
|
||||
*
|
||||
* <pre>
|
||||
* MQ 触发规则:
|
||||
* 1. 当前审批任务会依次触发 process-task-completed 和 process-task-deleted 事件(如果有下一级审批,则会触发第 2.1 点中的事件,
|
||||
* 如果当前审核任务最后一级审批,则会触发第 2.2 点中的事件)
|
||||
* 2.1. 下一级审批任务会依次触发 process-task-assigned 和 process-task-created 事件
|
||||
* 2.2. 流程实例正常结束会触发 process-instance-completed 事件
|
||||
* </pre>
|
||||
*/
|
||||
@Operation(summary = "同意,MQ 触发规则:1. 当前审批任务会依次触发 process-task-completed 和 process-task-deleted 事件(如果有下一级审批,则会触发第 2.1 点中的事件,如果当前审核任务最后一级审批,则会触发第 2.2 点中的事件),2.1. 下一级审批任务会依次触发 process-task-assigned 和 process-task-created 事件,2.2. 流程实例正常结束会触发 process-instance-completed 事件")
|
||||
@PostMapping("/api/process/task/approve")
|
||||
Boolean approveTask(@Validated @RequestBody BpmnTaskAuditDTO dto);
|
||||
|
||||
/**
|
||||
* 批量同意
|
||||
*
|
||||
* @param dtos
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "批量同意")
|
||||
@PostMapping("/api/process/task/batch/approve")
|
||||
BatchOperationResultVO batchApproveTask(@Validated @RequestBody List<BpmnTaskAuditDTO> dtos);
|
||||
@Operation(summary = "推断指定流程实例的所有节点执行顺序")
|
||||
@GetMapping("/api/process/instance/node/forecasting")
|
||||
@Manageable
|
||||
List<ProcessNodeDetailVO> processInstanceNodeForecast(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = false) String processInstanceId, @Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 驳回
|
||||
* 推断指定流程实例的过滤掉部分节点执行顺序
|
||||
*
|
||||
* <pre>
|
||||
* MQ 触发规则:
|
||||
* 1. 当前审批任务会触发 process-task-deleted 事件
|
||||
* 2. 当前流程实例会触发 process-instance-rejected 事件
|
||||
* </pre>
|
||||
*/
|
||||
@Operation(summary = "驳回,MQ 触发规则:1. 当前审批任务会触发 process-task-deleted 事件, 2. 当前流程实例会触发 process-instance-rejected 事件")
|
||||
@PostMapping("/api/process/task/reject")
|
||||
Boolean rejectTask(@Validated @RequestBody BpmnTaskAuditDTO dto);
|
||||
|
||||
/**
|
||||
* 批量驳回
|
||||
*
|
||||
* @param dtos 批量请求参数
|
||||
* @param allNode 如果为真时,相当于调用 {@link ProcessInstanceApi#processInstanceNodeForecast(String, String)} 方法,切会直接丢弃 nodeDefinitionKeys 参数
|
||||
* 如果为假时,才结合 nodeDefinitionKeys 过滤掉传入的节点
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/task/batch/reject")
|
||||
BatchOperationResultVO batchRejectTask(@Validated @RequestBody List<BpmnTaskAuditDTO> dtos);
|
||||
@Operation(summary = "推断指定流程实例的过滤掉部分节点执行顺序")
|
||||
@GetMapping("/api/process/instance/node/filter/forecasting")
|
||||
@Manageable
|
||||
List<ProcessNodeDetailVO> processInstanceFilterNodeForecast(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = false) String processInstanceId, @Nullable @RequestParam(required = false) String tenantId, @RequestParam(required = false, defaultValue = "false") Boolean allNode, @Nullable @RequestParam(required = false) List<String> nodeDefinitionKeys);
|
||||
|
||||
/**
|
||||
* 转交
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "直接修改审批任务的审批人")
|
||||
@PostMapping("/api/process/task/transfer")
|
||||
Boolean transferTask(@Validated @RequestBody BpmnTaskTransferDTO dto);
|
||||
|
||||
/**
|
||||
* 批量转交
|
||||
*
|
||||
* @param dtos
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "批量修改审批任务的审批人")
|
||||
@PostMapping("/api/process/task/batch/transfer")
|
||||
BatchOperationResultVO batchTransferTask(@Validated @RequestBody List<BpmnTaskTransferDTO> dtos);
|
||||
|
||||
/**
|
||||
* 评论
|
||||
*
|
||||
* @param dto 评论请求参数
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "审批流程评论")
|
||||
@PostMapping("/api/process/task/comment")
|
||||
Boolean commentTask(@Validated @RequestBody BpmnTaskCommentDTO dto);
|
||||
|
||||
/**
|
||||
* 加签
|
||||
*
|
||||
* @param dto 加签请求参数
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "审批流程加签")
|
||||
@PostMapping("/api/process/task/countersign")
|
||||
Boolean countersignTask(@Validated @RequestBody BpmnTaskCountersignDTO dto);
|
||||
|
||||
/**
|
||||
* 暂停流程任务,并创建机器人节点,等待业务推动
|
||||
*
|
||||
* @param dto
|
||||
* @return 返回机器人节点任务 ID
|
||||
*/
|
||||
@Operation(summary = "创建机器人节点, 暂停流程任务")
|
||||
@PostMapping("/api/process/task/robot/create")
|
||||
String createRobotTask(@Validated @RequestBody BpmnRobotTaskCreateDTO dto);
|
||||
|
||||
/**
|
||||
* 完成机器人节点
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "完成机器人节点, 继续流程任务")
|
||||
@PostMapping("/api/process/task/robot/complete")
|
||||
Boolean completeRobotTask(@Validated @RequestBody BpmnRobotTaskCompleteDTO dto);
|
||||
/**
|
||||
* 查询实例的租户集合
|
||||
*
|
||||
@ -268,6 +310,330 @@ public interface WorkflowManageService {
|
||||
@Manageable
|
||||
List<String> getTenantIds();
|
||||
|
||||
/**
|
||||
* 校验指定流程实例下,是否存在指定的审批人
|
||||
*
|
||||
* @return true 是在当前流程实例中,存在指定的审批人
|
||||
*/
|
||||
@Operation(summary = "校验指定流程实例下,是否存在指定的审批人")
|
||||
@PostMapping("/api/process/instance/check/approver")
|
||||
@Manageable
|
||||
Boolean checkInstanceApprover(@Validated @RequestBody BpmnProcessInstanceCheckApproverDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定业务分类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/api/process/category/get")
|
||||
CategoryItemVO get(@RequestParam Long id);
|
||||
|
||||
/**
|
||||
* 获取指定业务分类集合
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/api/process/category/getByIds")
|
||||
List<CategoryItemVO> getByIds(@RequestParam List<Long> ids);
|
||||
|
||||
/**
|
||||
* 获取指定业务分类集合
|
||||
*
|
||||
* @param values
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/api/process/category/getByValues")
|
||||
List<CategoryItemVO> getByValues(@RequestParam List<String> values);
|
||||
|
||||
/**
|
||||
* 新增业务分类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/create")
|
||||
CategoryItemVO create(@Validated @RequestBody CategoryCreateDTO req);
|
||||
|
||||
/**
|
||||
* 更新业务分类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/api/process/category/update")
|
||||
CategoryItemVO update(@Validated @RequestBody CategoryUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 删除指定业务分类
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/api/process/category/delete")
|
||||
Boolean delete(@RequestParam Long id);
|
||||
|
||||
/**
|
||||
* 更新指定分类状态
|
||||
*
|
||||
* @param id
|
||||
* @param state
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/api/process/category/update/state")
|
||||
Boolean updateState(@RequestParam Long id, @RequestParam Boolean state);
|
||||
|
||||
/**
|
||||
* 获取指定业务分类集合
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/list")
|
||||
List<CategoryItemVO> list(@RequestBody CategorySearchDTO dto);
|
||||
|
||||
/**
|
||||
* 搜索业务分类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/page/search")
|
||||
BpmPageResult<CategoryItemVO> search(@RequestBody CategorySearchDTO dto);
|
||||
|
||||
/**
|
||||
* 业务分类创建黑白名单配置项
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/config/create")
|
||||
Boolean createConfig(@RequestBody CategoryConfigCreateDTO dto);
|
||||
|
||||
/**
|
||||
* 删除指定分类的配置项数据
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/api/process/category/config/delete/{id}")
|
||||
Boolean deleteConfig(@PathVariable Long id);
|
||||
|
||||
/**
|
||||
* 业务分类黑白名单查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/config/page/search")
|
||||
BpmPageResult<CategoryConfigItemVO> configSearch(@RequestBody CategoryConfigSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 更新业务分类的配置类型
|
||||
*
|
||||
* @param id
|
||||
* @param configType
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/category/config/type/update")
|
||||
Boolean updateCategoryConfigType(@RequestParam Long id, @RequestParam String configType);
|
||||
|
||||
/**
|
||||
* 用于业务方判断指定的业务分类的黑白名单配置
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @param categoryCode 业务分类编码
|
||||
* @return true: 可以发起创建流程实例, false: 不可用
|
||||
*/
|
||||
@GetMapping("/api/process/category/check/status")
|
||||
Boolean checkCategoryStatus(@RequestParam Long tenantId, @RequestParam String categoryCode);
|
||||
|
||||
/**
|
||||
* 为指定流程新增变量
|
||||
*/
|
||||
@PostMapping("/api/process/variable/create/{executionId}")
|
||||
Void createVariable(@PathVariable @NotBlank(message = "流程实例 ID 不能为空") String executionId, @RequestBody @Validated RestBpmnProcessVariable restVariable);
|
||||
|
||||
/**
|
||||
* 仅更新流程已存在的变量
|
||||
*
|
||||
* @param executionId
|
||||
* @param restVariable
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/variable/update/{executionId}")
|
||||
Void updateVariable(@PathVariable @NotBlank(message = "流程实例 ID 不能为空") String executionId, @RequestBody @Validated RestBpmnProcessVariable restVariable);
|
||||
|
||||
/**
|
||||
* 批量删除流程变量
|
||||
*/
|
||||
@DeleteMapping("/api/process/variable/delete/{executionId}")
|
||||
Void deleteVariables(@PathVariable("executionId") String executionId, @RequestParam String variableNames, @RequestParam(value = "scope", required = false) String scope);
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
*/
|
||||
@Operation(summary = "待审核列表")
|
||||
@GetMapping("/api/process/task/page/todo")
|
||||
@Manageable
|
||||
BpmPageResult<BpmnTaskTodoPageItemVO> getTodoTaskPage(@Validated @RequestBody BpmnTaskPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*/
|
||||
@Operation(summary = "已完成的审批列表")
|
||||
@GetMapping("/api/process/task/page/done")
|
||||
@Manageable
|
||||
BpmPageResult<BpmnTaskDonePageItemVO> getDoneTaskPage(@Validated @RequestBody BpmnTaskPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的审批过程信息
|
||||
* <p>
|
||||
* 同一层级结构
|
||||
*/
|
||||
@Operation(summary = "获取指定流程实例的审批过程信息")
|
||||
@GetMapping("/api/process/task/list/flat")
|
||||
@Manageable
|
||||
List<BpmnHistoricTaskInstanceVO> getTaskListFlatByProcessInstanceId(@NotBlank(message = "流程实例 ID " + "不能为空") @RequestParam String processInstanceId, @Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的审批过程信息
|
||||
* <p>
|
||||
* 分组结构
|
||||
*/
|
||||
@Operation(summary = "获取指定流程实例的审批过程信息")
|
||||
@GetMapping("/api/process/task/list/group")
|
||||
@Manageable
|
||||
List<BpmnHistoricTaskInstanceGroupVO> getTaskListGroupByProcessInstanceId(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId, @Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 获取实例正在审核的人列表
|
||||
*/
|
||||
@Operation(summary = "获取实例正在审核的人列表")
|
||||
@GetMapping("/api/process/task/active/list")
|
||||
@Manageable
|
||||
List<BpmnTaskInstanceVO> getActiveTasksByProcessInstanceId(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId, @NotBlank(message = "租户不能为空") @RequestParam String tenantId);
|
||||
|
||||
/**
|
||||
* 添加附件
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "添加附件")
|
||||
@PostMapping("/api/process/task/attachment")
|
||||
@Manageable
|
||||
Void addAttachment(@Validated @RequestBody BpmnTaskAttachmentDTO dto);
|
||||
|
||||
/**
|
||||
* 催办
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "审批流程催办")
|
||||
@PostMapping("/api/process/task/remind")
|
||||
@Manageable
|
||||
Boolean remindTask(@Validated @RequestBody BpmnTaskRemindDTO dto);
|
||||
|
||||
/**
|
||||
* 根据实例 ID 和自然人 ID 查询对应待处理的任务 ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "根据实例 ID 和自然人 ID 查询对应待处理的任务 ID")
|
||||
@GetMapping("/api/process/task/find")
|
||||
@Manageable
|
||||
String findTaskIdByInstanceIdAndPersonId(@RequestParam(required = false) @NotBlank(message = "流程实例 ID 不能为空") String processInstanceId, @RequestParam(required = false) @NotBlank(message = "自然人 ID 不能为空") String personId);
|
||||
|
||||
/**
|
||||
* 根据实例 ID列表 和自然人 ID 查询对应待处理的任务 ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "根据实例 ID列表 和自然人 ID 查询对应待处理的任务 ID")
|
||||
@GetMapping("/api/process/task/batch/find")
|
||||
@Manageable
|
||||
Map<String, String> findTaskIdByInstanceIdsAndPersonId(@RequestParam(required = false) @NotEmpty(message = "流程实例 ID列表 不能为空") List<String> processInstanceIds, @RequestParam(required = false) @NotBlank(message = "自然人 ID 不能为空") String personId);
|
||||
|
||||
/**
|
||||
* 获取活跃的流程定义分页
|
||||
*/
|
||||
@GetMapping("/api/process/definition/page")
|
||||
BpmPageResult<BpmnProcessDefinitionVO> getProcessDefinitionPage(@Validated @RequestBody BpmnProcessDefinitionPageDTO dto);
|
||||
|
||||
/**
|
||||
* 通过模型 ID 更新流程定义
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/api/process/definition/update")
|
||||
Boolean updateProcessDefinition(@Validated @RequestBody BpmnProcessDefinitionUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 获得指定定义编号对应的流程定义内容
|
||||
*
|
||||
* @param processDefinitionId 编号
|
||||
* @return 流程定义
|
||||
*/
|
||||
@GetMapping("/api/process/definition/get")
|
||||
BpmnProcessDefinitionVO getProcessDefinition(@NotBlank(message = "流程定义 ID 不能为空") @RequestParam String processDefinitionId);
|
||||
|
||||
/**
|
||||
* 获得 deploymentId 对应的 ProcessDefinition
|
||||
*
|
||||
* @param deploymentId 部署编号
|
||||
* @return 流程定义
|
||||
*/
|
||||
@GetMapping("/api/process/definition/getByDeploymentId")
|
||||
BpmnProcessDefinitionVO getProcessDefinitionByDeploymentId(@NotBlank(message = "流程部署 ID 不能为空") @RequestParam String deploymentId);
|
||||
|
||||
/**
|
||||
* 获得流程定义标识对应的激活的流程定义
|
||||
*
|
||||
* @param key 流程定义的标识
|
||||
* @return 流程定义
|
||||
*/
|
||||
@GetMapping("/api/process/definition/active/getByKey")
|
||||
BpmnProcessDefinitionVO getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key);
|
||||
|
||||
/**
|
||||
* 挂起/激活流程,
|
||||
* 激活:SuspensionState.ACTIVE.getStateCode()
|
||||
* 挂起:SuspensionState.SUSPENDED.getStateCode()
|
||||
* {@see SuspensionState}
|
||||
*/
|
||||
@PutMapping("/api/process/definition/state/update")
|
||||
Boolean getActiveProcessDefinitionByKey(@NotBlank(message = "流程定义ID不能为空") @RequestParam String processDefinitionId, @NotNull(message = "状态不能为空") @RequestParam Integer state);
|
||||
|
||||
/**
|
||||
* 获取指定模型的定义 ID
|
||||
*
|
||||
* @return 流程定义ID
|
||||
*/
|
||||
@GetMapping("/api/process/definition/active/getByCategory")
|
||||
String getActiveProcessDefinitionId(@RequestParam(required = false) String tenantId, @NotBlank(message = "分类不能为空") @RequestParam(required = false) String category);
|
||||
|
||||
/**
|
||||
* 获取指定模型激活的流程定义 JSON 模型
|
||||
*
|
||||
* @return 流程定义ID
|
||||
*/
|
||||
@GetMapping("/api/process/definition/active/json/model")
|
||||
BpmnModelUpdateDTO getActiveProcessDefinitionJsonModel(@NotBlank(message = "模型 ID 不能为空") @RequestParam(required = false) String modelId, @NotBlank(message = "分类不能为空") @RequestParam(required = false) String category, @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 删除流程部署及定义
|
||||
*
|
||||
* @param deploymentId 流程定义部署 ID
|
||||
* @param cascade 是否级联参数定义对应的流程实例及 job 等管理内容
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/api/process/definition/delete")
|
||||
Void delete(@NotBlank(message = "流程定义部署 ID 不能为空") String deploymentId, @RequestParam(required = false) Boolean cascade);
|
||||
|
||||
/**
|
||||
* 强制使用‘异步’模式调用该方法,请在调用真实方法前调用该方法
|
||||
* <pre>
|
||||
* workflowManageService.async().getTenantIds();
|
||||
* </pre>
|
||||
*/
|
||||
default WorkflowManageService sync() {
|
||||
ThreadUtil.set(SYNC);
|
||||
return this;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user