需要了解已办任务中的数据是怎么来的?点击获取流程时表单的数据是怎么生成的?以及搜索的方式是什么?
1.已办任务中的数据来源
获取已办任务接口地址: /workflow/process/finishedList
方法中参数介绍:参数1:搜索字段实体类,用于接受前端字段,参数2:分页实体类,页码,排序等作用
查询的主要实现
// 框架是以WfTaskVo实体类作为视图类,以下3个搜索出来的数据取出关键字段,封装到此实体类中作为展示
// 注意:需要手动进行分页
// 1、查询历史任务实例
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
.includeProcessVariables()
// 查询已完成的任务
.finished()
// 根据任务被指派人查询历史任务实例
.taskAssignee(TaskUtils.getUserId())
.orderByHistoricTaskInstanceEndTime()
.desc();
// 后续可以拼接查询条件 以下以processVaiavleValue开头的是指在自定义表单中设置的字段,参数1:表单字段;参数2:条件字段
query.processVariableValueLike("name","%" + name + "%") // 模糊查询,需要手动添加%号
query.processVariableValueGreaterThanOrEqual("time", process.getStartTime());// 大于等于,注意存储的类型
query.processVariableValueLessThanOrEqual("time", process.getEndTime());// 小于等于
query.processVariableValueEquals("streetId", process.getStreetId()); // 精准等于
// 准备分页 设置起始页
int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1);
// 开始查询!拿到分页后的数据
// 左表:ACT_HI_TASKINST(历史流程任务表) 子表:ACT_HI_VARINST(流程历史变量表)
// 连接条件:RES.PROC_INST_ID_ = VAR.EXECUTION_ID_
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(offset, pageQuery.getPageSize());
// 2、流程定义信息
// 表:ACT_RE_PROCDEF(流程定义信息表) 条件:历史流程任务表中的PROC_DEF_ID
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
// 流程定义信息表
.processDefinitionId(histTask.getProcessDefinitionId())
.singleResult();
//3、 流程发起人信息 主要作用查询发起人的id
// 左表:ACT_HI_PROCINST(历史流程实例表)-发起人id:START-USER-ID 子表:ACT_RE_PROCDEF(流程定义信息表)
// 连接条件:RES.PROC_DEF_ID_ = DEF.ID_
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(histTask.getProcessInstanceId())
.singleResult();
流程: