springboot整合activity6_查询最新版本的流程定义集合(无废话版)--------------------------------------------(六)

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

因为每个流程定义都可能会有好几个版本,所以有时候我们有这样的需求,查询出最新版本的流程定义的集合;

思路是这样的。

第一步:我们通过Activiti接口来获取根据流程定义Version升序排序的流程定义的集合;

第二步:定义一个有序的Map, Map的key就是我们流程定义的Key,Map的值就是流程定义对象;

第三步:我们遍历第一步的集合,put(key,value)  假如Key相同,后者会覆盖前者;

第四步:我们获取Map的values。即我们需要的最新版本的流程定义的集合;

 

我们搞一个MySecondProcess流程定义;

然后我们部署流程定义三次;

 

 

数据库表里对应的添加三条流程定义信息;

@RequestMapping("/procdef_list_new")
    /**
     * 查询最新版本的流程定义
     */
     public String listLastVersion()throws Exception{

        // 获取流程定义集合,根据Key升序排序
        List<ProcessDefinition> listAll=repositoryService // 获取service类
                .createProcessDefinitionQuery() // 创建流程定义查询
                .orderByProcessDefinitionVersion().asc() // 根据流程定义版本升序
                .list();
        // 定义有序Map 相同的key 假如添加map的值 后面的值会覆盖前面相同key的值
        Map<String,ProcessDefinition> map=new LinkedHashMap<String,ProcessDefinition>();
        // 遍历集合 根据key来覆盖前面的值 来保证最新的Key覆盖前面的所有老的Key的值
        for(ProcessDefinition pd:listAll){
            map.put(pd.getKey(), pd);
        }
        List<ProcessDefinition> pdList=new LinkedList<ProcessDefinition>(map.values());
        for(ProcessDefinition pd:pdList){
            System.out.println("ID_:"+pd.getId());
            System.out.println("NAME_:"+pd.getName());
            System.out.println("KEY_:"+pd.getKey());
            System.out.println("VERSION_:"+pd.getVersion());
            System.out.println("===================");
        }
        return "";
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值