项目实训—flowable开发(二)

目录

获取待办事项

flowable数据库

TodoList待办列表:

FlowMyBusinessMapper.xml:

FlowMyBusinessServiceImpl:

FlowTaskServiceImpl:

FlowTaskController:

获取已办事项

FlowMyBusinessMapper.xml:

FlowMyBusinessServiceImpl:

FlowTaskServiceImpl:

FlowTaskController:

 获取办结事项

流程状态解释

查询到办结事项

实验授课申请的办结事项

实验课任教申请的办结事项


可以在FlowTaskServiceImpl.java中设置相应的办法来处理待办事项、已办事项和办结事项,通过传递serviceKey来获取不同类型的申请

serviceKey定义:

ExcApply: 0

ExtApply: 1

Extarrangement: 2

ChangeScoresApply: 3

实验管理员需要处理多项申请,所以需要获取待办事项和已办事项

获取待办事项

为了获取待办事项,可以调用flowable的接口

TaskQuery taskQuery = taskService.createTaskQuery()
                .active()
                .includeProcessVariables()
                .taskCandidateUser(username)
                .orderByTaskCreateTime().desc();

调用这个接口来获取用户的待办列表

taskService.createTaskQuery()
                .active()
                .includeProcessVariables()
                .taskCandidateUser(username)

taskCandidateUser(username)可以获取到候选人为此用户名的任务,即为待办事项,orderByTaskCreateTime().desc()能够将查询出的task按照创建时间降序排列

但是taskQuery只能获取到task(任务)的id与name,因此需要从数据库中再查询出申请信息。

因此还需要用sql语句查询数据库,但是对于具体流程使用sql语句查询数据库需要很准确地了解flowable数据库的定义以及存储数据

flowable数据库

 flowable数据表分类:

1.ACT_GE_*:通用数据表,各种情况都使用的数据

2.ACT_RE_*:流程定义存储表,'RE'表示repository。此前缀的表存放的都是静态信息,如流程定义等。最开始用前端界面创建流程图是就把信息存储在此类表中

3.ACT_ID_*:身份信息表,'ID'表示identity。这些表中包含标识的信息,如用户、用户组等标识

4.ACT_RU_*:运行时数据库表,'RU'表示runtime,这些表存储着流程变量、用户任务、变量、指责等运行时的数据。

5.ACT_HI_*:'HI'表示history。这些表包含历史相关数据,如结束的流程实例,变量,任务等。

TodoList待办列表:

了解了数据库表格储存的信息,调用flowable的接口,获取到候选人Candidate为用户的任务记录,其id为flow_my_bussiness中的task_id

 获取到task_id,可以在flow_my_business查询到此条申请的data_id,此条申请的data_id就是exc_apply的id

理清数据库的关系,可以写各个服务的todoList()方法

FlowMyBusinessMapper.xml:

首先通过task_id得到这条数据的data_id,然后再通过data_id找到相应的申请数据库中的申请信息

//获取flow_my_business中待办的business
<select id="getTodoBusiness" resultType="org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness">
        select *
        from flow_my_business
        where todo_users like CONCAT('%',#{todousers},'%') and process_definition_key = #{serviceKey}
    </select>
//获取相应的ExcApply
    <select id="getExcApply" resultType="org.jeecg.modules.flowable.apithird.business.entity.ExcApply">
        select *
        from exc_apply
        where id = #{dataid}
    </select>
//获取相应的ExtApply
    <select id="getExtApply" resultType="org.jeecg.modules.flowable.apithird.business.entity.ExtApply">
        select *
        from ext_apply
        where id = #{dataid}
    </select>
//获取相应的Extarrangement
    <select id="getExtarrangement" resultType="org.jeecg.modules.flowable.apithird.business.entity.Extarrangement">
        select *
        from extarrangement
        where id = #{dataid}
    </select>

//获取相应的ChangeScoresApply
    <select id="getChangeScoresApply" resultType="org.jeecg.modules.flowable.apithird.business.entity.ChangeScoresApply">
         select *
        from change_scores_apply
        where id = #{dataid}
    </select>

FlowMyBusinessMapper和IFlowMyBusinessService中只需要加个方法声明,不再赘述

FlowMyBusinessServiceImpl:

 //获取待办
    @Override
    public List<FlowMyBusiness> getTodoBusiness(String todousers,String serviceKey) {
        return this.baseMapper.getTodoBusiness(todousers,serviceKey);
    }

    //获取相应的ExcApply
    @Override
    public ExcApply getExcApply(String dataid) {
        return this.baseMapper.getExcApply(dataid);
    }

    //获取相应的ExtApply
    @Override
    public ExtApply getExtApply(String dataid) {
        return this.baseMapper.getExtApply(dataid);
    }

    //获取相应的Extarrangement
    @Override
    public Extarrangement getExtarrangement(String dataid) {
        return this.baseMapper.getExtarrangement(dataid);
    }

    //获取相应的ChangeScoresApply
    @Override
    public ChangeScoresApply getChangeScoresAply(String dataid) {
        return this.baseMapper.getChangeScoresApply(dataid);
    }

FlowTaskServiceImpl:

之前提到FlowTaskServiceImpl中主要书写了关于任务的处理方式,所以要在FlowTaskServiceImpl中新写todoList1()

@Override
    public Result todoList1(Integer pageNum, Integer pageSize, String serviceType) {
        String username = iFlowThirdService.getLoginUser().getUsername();
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值