activiti针对将未签收任务和已签收任务一起查询出来 然后分页 |
您所在的位置:网站首页 › activiti查询已办任务 › activiti针对将未签收任务和已签收任务一起查询出来 然后分页 |
说明: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 |