activiti针对将未签收任务和已签收任务一起查询出来 然后分页

您所在的位置:网站首页 activiti查询已办任务 activiti针对将未签收任务和已签收任务一起查询出来 然后分页

activiti针对将未签收任务和已签收任务一起查询出来 然后分页

2023-09-01 14:29| 来源: 网络整理| 查看: 265

说明:userId代表用户登录名,就是将系统用户同步到activiti用户中的id

1.activiti查询未签收任务:TaskQuery toClaimQuery = taskService.createTaskQuery().taskCandidateUser(userId).active()

2.activiti查询已签收任务:TaskQuery todoTaskQuery = taskService.createTaskQuery().taskAssignee(userId).active()

但是这种要分两步,有的需求是想将这两种任务合并在一起,这样更加方便,如果将两个合在一起的话 就不好分页,解决办法是运用activiti提供的原始sql,而不使用它所提供的api:

SELECT * FROM (     SELECT DISTINCT         RES1.*     FROM         ACT_RU_TASK RES1 inner join ACT_RE_PROCDEF D on RES1.PROC_DEF_ID_ = D.ID_   inner join ACT_RU_VARIABLE V ON V.PROC_INST_ID_=RES1.PROC_INST_ID_     WHERE         RES1.ASSIGNEE_ = 'wbzr'    //查询用户名为wbzr的已签收任务 UNION ALL     //连接     SELECT DISTINCT         RES1.*     FROM         ACT_RU_TASK RES1  inner join ACT_RE_PROCDEF D on RES1.PROC_DEF_ID_ = D.ID_   inner join ACT_RU_VARIABLE V ON V.PROC_INST_ID_=RES1.PROC_INST_ID_     LEFT JOIN ACT_RU_IDENTITYLINK I ON I.TASK_ID_ = RES1.ID_     WHERE         RES1.ASSIGNEE_ IS NULL     AND I.TYPE_ = 'candidate'//查询根据角色,我这里提供的是自定义的用户角色,就是自己系统中的用户角色,如果你没有同步,就要查询activiti中的角色ACT_ID_MEMBERSHIP        //ACT_ID_MEMBERSHIP,ACT_ID_USER,ACT_ID_GROUP     AND (         I.USER_ID_ = 'wbzr'            OR I.GROUP_ID_ IN (             SELECT                 r.enname    //我的数据库角色名字段为enname,可以根据你的调整 ,主要找到wbzr的角色在,然后查询出角色名enname,然后查处I.GROUP_ID_在此角色中的任务             FROM                 SYS_USER U             LEFT JOIN SYS_USER_ROLE ur ON U . ID = ur.user_id             LEFT JOIN SYS_ROLE r ON ur.role_id = r. ID             WHERE                 U .LOGIN_NAME = 'wbzr'  //当用户名为wbzr时查出其角色         )     )      ) ORDER BY         CREATE_TIME_ DESC



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3