RuntimeService/TaskService

1.启动流程实例

    /**
     * 启动流程实例
     */
    @Test
    public void test1(){
        ProcessInstance instance = processEngine.getRuntimeService()
                .startProcessInstanceByKey("helloworld");
        System.out.println(instance.getId()+"   "+instance.getActivityId());
        System.out.println(instance.getProcessDefinitionId());
    }

 如果是单例流程(没有分支和聚合),流程实例id和执行对象id是相同的,

一个流程中流程实例只有一个,执行对象可以有多个

select * from act_ru_execution;   #正在执行的执行对象表
select * from act_hi_procinst;    #流程实例历史表
select * from act_ru_task;        #正在执行的任务表(只有节点是userTask时,该表中有数据)
select * from act_hi_taskinst;    #任务历史表(只有节点是userTask时,该表中有数据)
select * from act_hi_actinst;         #所有活动节点的历史表

2.查询当前任务节点

    /**
     * 查询当前任务
     */
    @Test
    public void test2(){
        List<Task> tasks = processEngine.getTaskService()
                .createTaskQuery()
                .taskAssignee("张三33")                     //指定个人任务查询
//                .taskName("提交申请")//根据任务名称查询
//                .executionId("35001")                     //根据执行对象id查询
//                .processDefinitionId("helloworld:4:32504")//根据流程定义id查询
//                .processInstanceId("35001")               //根据流程实例id查询当前任务
//                .singleResult()                           //唯一结果集
//                .count()                                  //数量
                .list();
        
        for(Task t:tasks){
            System.out.println(t.getAssignee());
            System.out.println(t.getExecutionId());
            System.out.println(t.getProcessInstanceId());
            System.out.println(t.getProcessDefinitionId());
            System.out.println(t.getTaskDefinitionKey());
            System.out.println(t.getId());
            System.out.println(t.getName());
            System.out.println();
        }
    }

3.根据流程实例判断流程是否结束 

    /**
     * 查询流程是否结束 (流程结束会删除act_ru_**表中的数据,成为历史)
     */
    @Test
    public void test7(){
        ProcessInstance processInstance = processEngine.getRuntimeService()
                .createProcessInstanceQuery()
                .processInstanceId("35001")
                .singleResult();
        if (processInstance==null){
            System.out.println("already ending");
        }else {
            System.out.println("running");
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您想要编写一个Controller用于查看被教师和校长驳回的信息。以下是一个示例代码,供您参考: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/rejected") public class RejectedInfoController { @Autowired private TaskService taskService; @Autowired private HistoryService historyService; @GetMapping public R getRejectedInfo() { // 查询被教师和校长驳回的任务历史记录 List<HistoricTaskInstance> rejectedTasks = historyService .createHistoricTaskInstanceQuery() .taskDeleteReason("rejected") .list(); // 处理查询结果 List<Map<String, Object>> rejectedInfoList = new ArrayList<>(); for (HistoricTaskInstance task : rejectedTasks) { Map<String, Object> rejectedInfo = new HashMap<>(); rejectedInfo.put("taskId", task.getId()); rejectedInfo.put("taskName", task.getName()); rejectedInfo.put("assignee", task.getAssignee()); rejectedInfo.put("processInstanceId", task.getProcessInstanceId()); // 可以根据需要添加更多相关信息 rejectedInfoList.add(rejectedInfo); } return R.ok().put("rejectedInfo", rejectedInfoList); } } ``` 请注意,这只是一个示例代码,您可能需要根据您的具体需求进行适当的修改和调整。还请确保已正确注入相关的服务(如TaskService、HistoryService等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值