栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Flowable流程实例processInstance开启,中止,激活,删除,查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flowable流程实例processInstance开启,中止,激活,删除,查询

介绍

Flowable流程实例processInstance基本操作

流程开启流程中止流程激活流程删除流程查询 1. maven项目依赖


	org.flowable
	flowable-spring-boot-starter-process
	6.7.2

2. 流程processInstance基本操作
public class ProcessInstanceServiceImpl implements ProcessInstanceService {
  private final RuntimeService runtimeService;

  @Override
  public ProcessInstance startProcessInstanceByKey(@NonNull String processDefinitionKey, Map variables) {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
    if (log.isDebugEnabled()) {
      log.debug("start process instance key: {}, piId: {}", processDefinitionKey, processInstance.getProcessInstanceId());
    }
    return processInstance;
  }

  @Override
  public ProcessInstance startProcessInstanceByKeyAndTenantId(@NonNull String processDefinitionKey, String tenantId, Map variables) {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(processDefinitionKey, variables, tenantId);
    if (log.isDebugEnabled()) {
      log.debug("start process instance key: {}, tenantId: {}, piId: {}", processDefinitionKey, tenantId, processInstance.getProcessInstanceId());
    }
    return processInstance;
  }

  @Override
  public ProcessInstance startProcessInstanceByKey(@NonNull String processDefinitionKey, String businessKey, Map variables) {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables);
    if (log.isDebugEnabled()) {
      log.debug("start process instance key: {}, bizId: {}, piId: {}", processDefinitionKey, businessKey, processInstance.getProcessInstanceId());
    }
    return processInstance;
  }

  @Override
  public ProcessInstance startProcessInstanceByKeyAndTenantId(@NonNull String processDefinitionKey, String businessKey, String tenantId, Map variables) {
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(processDefinitionKey, businessKey, variables, tenantId);
    if (log.isDebugEnabled()) {
      log.debug("start process instance key: {}, bizId: {}, tenantId: {}, piId: {}", processDefinitionKey, businessKey, tenantId, processInstance.getProcessInstanceId());
    }
    return processInstance;
  }

  @Override
  public void suspendProcessInstanceById(@NonNull String processInstanceId) {
    if (log.isDebugEnabled()) {
      log.debug("suspend process id: {}", processInstanceId);
    }
    runtimeService.suspendProcessInstanceById(processInstanceId);
  }

  @Override
  public void activateProcessInstanceById(@NonNull String processInstanceId) {
    if (log.isDebugEnabled()) {
      log.debug("active process id: {}", processInstanceId);
    }
    runtimeService.activateProcessInstanceById(processInstanceId);
  }

  @Override
  public void deleteProcessInstance(@NonNull String processInstanceId, String deleteReason) {
    if (log.isDebugEnabled()) {
      log.debug("delete process id: {}", processInstanceId);
    }

    runtimeService.deleteProcessInstance(processInstanceId, deleteReason);
  }
}
3. 流程processInstance查询
public class ProcessInstanceQueryServiceImpl implements ProcessInstanceQueryService {
  private final RuntimeService runtimeService;

  
  @Override
  public ProcessInstance findOne(String processInstanceId) {
    return createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
  }

  private ProcessInstanceQuery createProcessInstanceQuery() {
    return runtimeService.createProcessInstanceQuery();
  }
}
4.Controller请求定义
public class ProcessInstanceController {
  private final ProcessInstanceService processInstanceService;

  
  @PostMapping("/start/key/{processDefinitionKey}")
  public R start(@PathVariable String processDefinitionKey, @RequestBody Map variables) {
    ProcessInstance instance = processInstanceService.startProcessInstanceByKey(processDefinitionKey, variables);
    return R.data(ProcessVo.of(instance));
  }

  
  @PostMapping("/start/key/{processDefinitionKey}-{tenantId}")
  public R start(@PathVariable String processDefinitionKey, @PathVariable String tenantId, @RequestBody Map variables) {
    ProcessInstance instance = processInstanceService.startProcessInstanceByKeyAndTenantId(processDefinitionKey, tenantId, variables);
    return R.data(ProcessVo.of(instance));
  }

  
  @PostMapping("/start/key/biz/{processDefinitionKey}-{bizId}")
  public R startByBizId(@PathVariable String processDefinitionKey, @PathVariable String bizId, @RequestBody Map variables) {
    ProcessInstance instance = processInstanceService.startProcessInstanceByKey(processDefinitionKey, bizId, variables);
    return R.data(ProcessVo.of(instance));
  }

  
  @PostMapping("/start/key/{processDefinitionKey}-{tenantId}-{bizId}")
  public R start(@PathVariable String processDefinitionKey, @PathVariable String tenantId, @PathVariable String bizId, @RequestBody Map variables) {
    ProcessInstance instance = processInstanceService.startProcessInstanceByKeyAndTenantId(processDefinitionKey, bizId, tenantId, variables);
    return R.data(ProcessVo.of(instance));
  }

  
  @PostMapping("/suspend/{processInstanceId}")
  public R suspend(@PathVariable String processInstanceId) {
    processInstanceService.suspendProcessInstanceById(processInstanceId);
    return R.data(Boolean.TRUE);
  }

  
  @PostMapping("/activate/{processInstanceId}")
  public R activate(@PathVariable String processInstanceId) {
    processInstanceService.activateProcessInstanceById(processInstanceId);
    return R.data(Boolean.TRUE);
  }

  
  @PostMapping("/delete/{processInstanceId}")
  public R delete(@PathVariable String processInstanceId, @RequestBody ProcessDelVo vo) {
    processInstanceService.deleteProcessInstance(processInstanceId, vo.getReason());
    return R.data(Boolean.TRUE);
  }
}
4.项目完整地址

Flowable流程实例processInstance开启,中止,激活,删除,查询 Github 地址

Flowable流程实例processInstance开启,中止,激活,删除,查询 Gitee 地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号