activiti6中不使用工作流原生api直接从库中读取已办和待办
待办的sql语句
select t1.* from
业务表 t1
RIGHT JOIN (
SELECT
RES.TASK_DEF_KEY_ AS formType,
RES.NAME_ AS taskName,
RES.ID_ AS taskId,
RES.PROC_INST_ID_ AS instanceId,
RES.CREATE_TIME_ AS startTime
FROM
ACT_RU_TASK RES
LEFT JOIN ACT_RU_IDENTITYLINK I ON I.TASK_ID_ = RES.ID_
LEFT JOIN act_re_procdef PROD ON RES.PROC_DEF_ID_ = PROD.ID_
where
(RES.ASSIGNEE_ = #{user.account}
OR (
RES.ASSIGNEE_ IS NULL
AND (I.USER_ID_ = #{user.account}))
OR I.GROUP_ID_ = #{user.roleName})
AND PROD.KEY_ = #{definitionkey}
GROUP BY
RES.PROC_INST_ID_) t2 on t1.instance_id = t2.instanceId
已办的sql语句
t1为业务表,RES则是工作流的表,t1表必须要有实例id与RES表进行绑定,
userAccount是用户账户或用户名,definitionkey是流程key
SELECT
t1.apply_time AS applyTime,
t1.id as id,
RES.END_TIME_ as doneTime,
RES.PROC_INST_ID_ as instanceId
FROM ACT_HI_TASKINST RES
LEFT JOIN act_re_procdef PROD ON RES.PROC_DEF_ID_ = PROD.ID_
LEFT JOIN 业务表 t1 ON t1.instance_id = RES.PROC_INST_ID_
WHERE
RES.ASSIGNEE_ = #{userAccount}
AND PROD.KEY_ = #{definitionkey}
AND RES.END_TIME_ IS NOT NULL
AND t1.id IS NOT NULL
ORDER BY RES.END_TIME_ DESC