Activiti 查看流程任务表单信息

SpringBoot集成的Activiti6.0代码(绘制工具界面代码 + 审批代码)

最近工作中需要搞定Activiti的工作流引擎,本文主要是记录一下获取流程任务Form表单的思路,特此记录便于日后查阅。

@Override
public List<Map<String, Object>> listPersonalTasks(String assignee) {
        //创建查询对象
        TaskQuery query = taskService.createTaskQuery();
        //设置查询条件
        query.taskAssignee(assignee);
        query.orderByProcessDefinitionId().desc();//相同规则放到一起
        query.orderByTaskCreateTime().desc();//按时间倒序
        //做查询-List<Task>
        List<Task> list = query.list();
        //声明要返回类型
        List<Map<String, Object>> result = new ArrayList<>();
        //转换
        for (Task task : list) {
        //一个task就是一个map
        result.add(task2map(task));
        }
        //返回
        return result;
}

private Map<String, Object> task2map(Task task) {
        Map<String, Object> obj2map = CommUtil
        .obj2map(task, new String[] { "id", "name", "assignee", "createTime", "description" });
        //为了构造动态表单,需要将formKey businessObjType businessObjId这三个参数和task属性一起返回 
        obj2map.put("businessObjType", getBusinessObjType(task));
        obj2map.put("businessObjId", getBusinessObjId(task));
        obj2map.put("formKey", getFormKey(task));
        return obj2map;
}


private String getFormKey(Task task) {
        String formKey = task.getFormKey();
        return formKey;
}

private Long getBusinessObjId(Task task) {
        return taskService.getVariable(task.getId(), "businessObjId", Long.class);
}

private String getBusinessObjType(Task task) {
        String businessObjType = taskService.getVariable(task.getId(), "businessObjType", String.class);
        businessObjType = businessObjType.substring(0, 1).toLowerCase()+businessObjType.substring(1);
        return businessObjType;
}

网上搜不到什么相关资料,我现在猜测获取流程任务Form表单数据,是通过自己建业务表写代码存储的,但是每个流程节点的表单关键信息通过 taskService.setVariable() 方法进行存储。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BasicLab基础架构实验室

你的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值