activiti 任务中指派人优先级大于候选人

来源:互联网 发布:美拍用的抽奖软件 编辑:程序博客网 时间:2024/05/16 13:45

activiti 任务中指派人其实跟候选人并不平等。指派人优先级大于候选人,当有指派人的时候,会忽略掉候选人。只有未指定指派人的时候,候选人才会生效。这是任务查询命令的sql语句分析。可以发现只有

RES.ASSIGNEE_ is null
的时候才会执行后面的候选人查找。


taskCandidateOrAssigned 实际执行的SQL为  

select distinct RES.* from ACT_RU_TASK RESleft join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_WHERE (  RES.ASSIGNEE_ = ?  or (    RES.ASSIGNEE_ is null    and (      I.USER_ID_ = ?      or      I.GROUP_ID_ IN (        select g.GROUP_ID_ from ACT_ID_MEMBERSHIP g where g.USER_ID_ = ?      )    )  ))
taskCandidateGroup实际执行的SQL为  
select distinct RES.* from ACT_RU_TASK RESinner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_WHERE RES.ASSIGNEE_ is nulland I.TYPE_ = 'candidate'and ( I.GROUP_ID_ IN ( ? ) )