activiti6中不使用工作流原生api直接从库中读取已办和待办

883

待办的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