taskservice

activiti任务TASK
一、概要
设计TASK的表主要是:ACT_RU_TASK,ACT_HI_TASKINST(见参考-activiti表);
任务主要有:人工任务(usertask),服务任务(servicetask)等;
候选人/候选组(candidate):可以执行任务的一类人或者多个组,候选人/候选组中都可以去签收任务,一旦某人签收,就成为受理人,其他人就不能再签收受理此任务;usertask流程图中,candidate标示候选;候选人涉及的表ACT_RU_IDENTITYLINK;
受理人(assignee):有两种情况,一种是候选人/组中有人签收任务后成为受理人,另外一种是流程图中直接指定受理人,但是可以指定一个动态受理人;受理人涉及的表ACT_RU_TASK;
持有人(owner):持有人设置主要是存入历史表中,用于历史任务的查询,涉及的表ACT_HI_TASKINST;
二、任务操作
创建TASK任务与设置权限:可以使用代码创建任务,但是实际操作中都是绘制流程图。绘制TASK后,在属性可以设置候选人和受理人,一般都是设置候选人,因为固定受理人不太符合程序变动;
候选人设置了deptleader,该值将部署在表ACT_RU_IDENTITYLINK中,查看xml看见:    
//设置了候选组
<userTask id="deptLeaderAudit" name="部门领导审批" activiti:candidateGroups="deptLeader">
</userTask>

完整的XML(无图形位置信息)

<process id="leave" name="请假流程" isExecutable="true">
<documentation>请假流程演示</documentation>
<startEvent id="startevent1" name="Start" activiti:initiator="applyUserId"></startEvent>
<userTask id="deptLeaderAudit" name="部门领导审批" activiti:candidateGroups="deptLeader"></userTask>
<exclusiveGateway id="exclusivegateway5" name="Exclusive Gateway"></exclusiveGateway>
<userTask id="modifyApply" name="调整申请" activiti:assignee="${applyUserId}">
<extensionElements>
<activiti:taskListener event="complete" delegateExpression="${afterModifyApplyContentProcessor}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="hrAudit" name="人事审批" activiti:candidateGroups="hr"></userTask>
<exclusiveGateway id="exclusivegateway6" name="Exclusive Gateway"></exclusiveGateway>
<userTask id="reportBack" name="销假" activiti:assignee="${applyUserId}">
<extensionElements>
<activiti:taskListener event="complete" delegateExpression="${reportBackEndProcessor}"></activiti:taskListener>
</extensionElements>
</userTask>
<endEvent id="endevent1" name="End"></endEvent>
<exclusiveGateway id="exclusivegateway7" name="Exclusive Gateway"></exclusiveGateway>
<sequenceFlow id="flow2" sourceRef="startevent1" targetRef="deptLeaderAudit"></sequenceFlow>
<sequenceFlow id="flow3" sourceRef="deptLeaderAudit" targetRef="exclusivegateway5"></sequenceFlow>
<sequenceFlow id="flow4" name="不同意" sourceRef="exclusivegateway5" targetRef="modifyApply">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!deptLeaderPass}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="同意" sourceRef="exclusivegateway5" targetRef="hrAudit">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${deptLeaderPass}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow6" sourceRef="hrAudit" targetRef="exclusivegateway6"></sequenceFlow>
<sequenceFlow id="flow7" name="同意" sourceRef="exclusivegateway6" targetRef="reportBack">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${hrPass}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow8" sourceRef="reportBack" targetRef="endevent1"></sequenceFlow>
<sequenceFlow id="flow9" name="不同意" sourceRef="exclusivegateway6" targetRef="modifyApply">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!hrPass}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow10" name="重新申请" sourceRef="exclusivegateway7" targetRef="deptLeaderAudit">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${reApply}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow11" sourceRef="modifyApply" targetRef="exclusivegateway7"></sequenceFlow>
<sequenceFlow id="flow12" name="结束流程" sourceRef="exclusivegateway7" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!reApply}]]></conditionExpression>
</sequenceFlow>
</process>

2.查询候选任务

//根据候选组ID查询拥有任务
List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(groupA.getId()).list();
for (Task task : tasks){
System.out.println(task.getName());
}
//根据用户ID查询任务
tasks = taskService.createTaskQuery().taskCandidateUser(user.getId()).list();
for (Task task : tasks){
System.out.println(task.getName());
}

//调用taskCandidateGroupIn
List<String> groupIds = new ArrayList<String>();
groupIds.add(groupA.getId());
groupIds.add(groupB.getId());
tasks = taskService.createTaskQuery().taskCandidateGroupIn(groupIds).list();
for (Task task : tasks){
System.out.println(task.getName());
}

//查询权限数据
List<IdentityLink> links = taskService.getIdentityLinksForTask(tasks.get(0).getId());
System.out.println("关系数据量: " + links.size());}
喜欢阅读
  • 龙武主宰

    龙武主宰

    少年陆凡,因天赋低下,被女友背叛,受尽屈辱。幸得高人相助,脱胎换骨,从此脚踏天才,一路逆袭,终成万道龙皇。

  • 茅山异术

    茅山异术

    中国众多道派中要说捉鬼降妖,最有名的莫过于茅山天师道,捉鬼天师之名深入人心。宝剑,符篆,咒语,八卦盘,四宝齐出神鬼辟易。且看茅山真传弟子如何驱鬼除妖。僵尸,异灵,厉鬼,降头,邪道祸乱一方,却在天师道面前纷纷落马授首,看更多精彩故事,尽在茅山鬼道……

  • 冥婚难逃:鬼王夫君求放过

    冥婚难逃:鬼王夫君求放过

    一纸婚配,花轿临门,她被迫嫁给鬼界之王杨柒,成了三界闻名的“鬼后”。世人皆知这鬼王手掌生死,令人闻风丧胆,但谁又知他爱妻如命,宠溺无度……洞房花烛夜,良辰美景时,本该谈天说地聊人生,可他却攻城略地无下限!某女这才发现其实他就是一只腹黑的大尾狼!偏偏肚子里还怀上了这只大尾狼的孩子……望着这俊美如神般的男人,她咬牙切齿:“杨柒,咱们友尽!”鬼王一笑,宠溺的拥她入怀:“你是我的夫人,哪来的友尽?”

  • 无双小管家

    无双小管家

    出身平凡的最强兵王回归都市,给女上司当贴身保镖。斗强者、打土豪、做生意、拼学识,堪称全能小管家。有谁知道面对这么多要求的女上司该怎么办么?在线等,挺急的。

  • 别闹,捉鬼呢

    别闹,捉鬼呢

    时移世易,鬼神的传说已经湮没在急速发展的高科技时代里,但是有明必有暗,有阳必有阴,总有这么一些人,可以突破阴阳的桎梏。在他们身上,发生着我们难以想象的精彩故事而这是一个学了一身三脚猫道术的小姑娘,磕磕绊绊在都市里慢慢成长的故事。她本以为自己能和师父一样,能凭着两三手道术过上“三年不开张开张吃三年”的美好日子。却没想,双胞胎姐姐因车祸丧生,为了照顾有心脏病的母亲,不得不以姐姐的身份继续生活下去。好不容易打算金盆洗手做一个安静的美女子,却出现了一个戾气冲天的鬼婴对着她一口一个妈咪。为了天下苍生,她忍痛认下了这个孩子。但孩子的父亲还是手动再见吧……颜值再高,来头再大,也拯救不了这惹人嫌的臭脾气。

  • 让我做你的恒星

    让我做你的恒星

    凌冉冉爱上青梅竹马的徐知林,分离八年之后得知徐知林已有恋人,为了忘掉徐知林,对相亲很抗拒的凌冉冉毅然决定去相亲,遇见儿科医生温言,两人开始正常的交往。与此同时,凌冉冉的邻居陈润之一直深爱着她,当凌冉冉得知温言家世显赫的同时却发现自己已在不知不觉中爱上了陈润之……如果她是月亮,那陈润之就是她的恒星,照亮自己,也灿烂着她。光阴似苒,他们仍旧恒久而坚定的运行,他们的爱,物不换星不移!如果陈润之是她的恒星,那温言就是流星,短暂而美丽。无论他飞向哪里,都是她最闪亮最温暖的记忆。她这一生最成功的事,就是有个叫温言的男人爱过她。

  • 残王诱宠:绝世狂妃三小姐

    残王诱宠:绝世狂妃三小姐

    她是二十一世纪古医特工,轮回之术逆世重生。一夕穿越,成为苏家废柴三小姐。灵根废脉、武修无为,身为苏家嫡系却被家族恶霸辣手摧花?凤凰涅槃,浴火重生!废柴觉醒,傲世为尊!一针在手神阻杀神魔阻屠魔,重生一世她经商道驭人心之术步步惊心。“宁可我负天下人,不可天下人负我。“未曾想,她早已被人盯作猎物他冷傲嗜血,轻狂神秘,却对这个可口的猎物,渐生情愫。“死妖孽,你起开!”某女手脚齐踹。某妖孽压低身子,“爽过了就不认账?那我们再来一次?”  

  • 再世之巅

    再世之巅

    两年前,她是丑女,我是男神;两年后,她是校花,我是屌丝。三天被打七次,我也屹立不倒!“你看,我以前能保护你,现在也能保护你。”——左飞两年后,左飞开始一段热血传奇!注:本故事纯属虚构,如有雷同,实属巧合,请不要与真实人物事件挂钩。

  • 猜你喜欢
    热门推荐
  • 哪部包青天展昭受伤
  • 春娇救志明片尾曲歌词
  • 知乎扒皮密子君催吐
  • would rather虚拟
  • 科学中国人杂志社
  • 洗台布用什么设备
  • cardlayout
  • 塔格奥套装 杰西斯
  • 怎么屏蔽艾特全体
  • 毕业设计选题系统
  • 校园网络不稳定 网线
  • 隐漫画爱的名言
  • wee sing翻译中文
  • 宝贝日语怎么说谐音
  • 钢铁雄心4 波兰成就
  • 新区了新楼盘鹤壁
  • the alphabet tree音频
  • yunos流畅
  • 常用韩语带发音带韩文
  • netstat sendq
  • All Right Reserved 果粒网