springboot整合activity6_删除Key相同的所有流程定义,查询流程实例状态(无废话版)--------------------------------------------(七)

1.源码地址:https://github.com/heidaodageshiwo/springbootactivity

 

有时候我们一个流程定义不需要的,包括所有版本,这时候我们在用户界面上一个一个删除太麻烦;

所有有时候我们又这样的需求,一下子把所有Key相同的流程定义全部删除;

 

我们的思路是这样的;

第一步:根据Key获取所有的流程定义;

第二步:遍历集合,获取每个流程定义的流程部署Id

第三步:我们根据流程部署Id即可删除所有的流程定义;

 

代码:

    /**
     * 删除流程定义
     */
    @RequestMapping("/procdef_delete_suoyoubanben")
    /**
     * 删除所有Key相同的流程定义
     * @throws Exception
     */
     public void deleteByKey()throws Exception{
        List<ProcessDefinition> pdList=repositoryService  // 获取service类
                .createProcessDefinitionQuery() // 创建流程定义查询
                .processDefinitionKey("MySecondProcess") // 根据Key查询
                .list();
        for(ProcessDefinition pd:pdList){  // 遍历集合 获取流程定义的每个部署Id,根据这个id来删除所有流程定义
            repositoryService
                    .deleteDeployment(pd.getDeploymentId(), true);
        }
    }

 

查询流程实例状态

 

在开发中,我们有时候需要查看下某个流程实例的状态,运行中 Or 执行结束 ?

 

这时候我们可以用流程实例Id去运行时执行表去查,假如能查到数据,说明流程实例还是运行,假如没查到,就说明这个流程实例已经运行结束了;

 @Autowired
    RuntimeService runtimeService;
    @RequestMapping("/execution_list")
    /**
     * 查询流程状态(正在执行 or 已经执行结束)
     */
    public String processState(){
        ProcessInstance pi=runtimeService // 获取运行时Service
                .createProcessInstanceQuery() // 创建流程实例查询
                .processInstanceId("17505") // 用流程实例ID查询
                .singleResult();
        if(pi!=null){
            System.out.println("流程正在执行!");
        }else{
            System.out.println("流程已经执行结束!");
        }
        return "processState";
    }

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值