待办列表可以用 taskService.createTaskQuery()
但是已办列表就比较麻烦了。为什么呢?直接查询act_hi_procinst是不行的,已办要查询每个环节是否有当前登录工号处理过的记录,那这个记录是在act_hi_taskinst里的。
方式一:left join (不满足分页要求)
select * from act_hi_procinst left join act_hi_taskinst on ahp.PROC_INST_ID_ =aht.PROC_INST_ID_
这样写是没问题的,但是列表这东西不可能说不分页,一分页,由于它们是一对多的关系,因此就会出现一页中条数变少的问题,这个大家都懂,不懂的去补一下知识。
方式二:mybatis collection子查询 (不满足处理人条件过滤)
collection子查询是先查询主表,再根据主表查询结果再去查子表,因此现在子表act_hi_taskinst要过滤处理人条件,无法实现。
方式三:最终方案
select aa.NAME_ as '当前环节',aa.ASSIGNEE_ as '当前环节处理人',aa.START_TIME_ as '当前环节到达时间' ,aa.end_time_,ahp.*
from act_hi_procinst ahp
left join(
select aht.* from act_hi_taskinst aht where aht.START_TIME_ in(
select max(aht1.START_TIME_) from act_hi_taskinst aht1 where aht1.PROC_INST_ID_ in(
select PROC_INST_ID_ from act_hi_taskinst aht2 where aht2.ASSIGNEE_ ='张三'
)
group by aht1.PROC_INST_ID_
)
) aa on ahp.PROC_INST_ID_ =aa.PROC_INST_ID_
order by aa.START_TIME_ desc;

不是说查询“张三”的已办列表么,怎么有一个李四啊?
正常,张三前一个环节办过,所以这个任务也就算张三的已办了,现在是李四的环节。为什么更好的展示当前流程走到哪个环节了,所以处理人显示的是李四。











![LeetCode[中等] 49.字母异位词分组](https://i-blog.csdnimg.cn/direct/054e7cba4b1549938ff036be4cec2dc0.png)



![[Python数据可视化]Plotly Express: 地图数据可视化的魅力](https://i-blog.csdnimg.cn/direct/36e63daaa110498a93ec1bb26765c3c6.jpeg)



