flowable中动态显示节点的审批人信息

在这里插入图片描述
1、上面的流程图当任务还没有到的节点,用户想看看节点的人的信息,如果我们常规的是不能实现的。

2、思路就是我们取出节点的表达式,然后用我们流程实例的变量来给他翻译出来即可,如何做呢?

2.1、通过流程实例id查出历史表中的所有的变量列表

List<HistoricVariableInstance> hvis = historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId).list();

2.2、通过流程实例id获取所有的节点信息

List<Process> processes = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()).getProcesses();
if (CollectionUtils.isNotEmpty(processes)) {for (Process process : processes) {Collection<FlowElement> flowElements = process.getFlowElements();if (CollectionUtils.isNotEmpty(flowElements)) {for (FlowElement flowElement : flowElements) {if (flowElement instanceof UserTask) {..........}}}}
}

2.3、取出节点的表达式

if (StringUtils.isNotBlank(userTask.getAssignee())) {//处理多实例的显示MultiInstanceLoopCharacteristics loopCharacteristics = userTask.getLoopCharacteristics();if(loopCharacteristics == null) {String expressionValue = null;if (userTask.getName().equals(FlowConstant.FLOW_SUBMITTER)) {expressionValue = processInstance.getStartUserId();}else {expressionValue = juelExpression.getValue(hvis, userTask.getAssignee());}if(StringUtils.isNotBlank(expressionValue)) {List<UserVo> userVos = userVoService.getUserByCodeOrGroupId(expressionValue);}}else {String inputDataItem = loopCharacteristics.getInputDataItem();List<String> values = (List)juelExpression.getValue(hvis, inputDataItem, List.class);if (CollectionUtils.isNotEmpty(values)) {List<UserVo> users = new ArrayList<>();values.forEach(code->{List<UserVo> userVos = userVoService.getUserByCodeOrGroupId(code);users.addAll(userVos);});}}
}

2.4、工具类

public Object getValue(List<HistoricVariableInstance> hvis, String exp, Class<?> clazz) {ExpressionFactory factory = new ExpressionFactoryImpl();SimpleContext context = new SimpleContext();for (HistoricVariableInstance entry : hvis) {context.setVariable(entry.getVariableName(), factory.createValueExpression(entry.getValue(), Object.class));}ValueExpression e = factory.createValueExpression(context, exp, clazz);return e.getValue(context);}public String getValue(List<HistoricVariableInstance> hvis, String exp) {return (String) getValue(hvis, exp, String.class);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InfoComm China 2019,揭秘“NVIDIA风格”数据科学!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者|刘晶晶在炫酷的复联4电影中&#xff0c;超过2600个特效镜头层出不穷&#xff0c;意味着电影的后期剪辑与特效对于硬件设备的要求越发提高&#xff0c;毕竟特效制作着力依赖画面渲染。我们了解&#xff0c;在没有GPU之前&#x…

玩 High API 系列之:智能云相册

摘要&#xff1a; 相册是手机中的一个非常重要的功能&#xff0c;然而目前的大部分手机的相册非常普通&#xff0c;仅仅有查看照片&#xff0c;编辑相片的等几个简单功能。我们来看看如果在API时代&#xff0c;如何通过调用API快速实现一个好玩的&#xff0c;具备智能分析识别、…

玩 High API 系列好文:UGC内容检测、视频智能、拍照翻译、懂天气的草地喷水头...

摘要&#xff1a;玩 High API 系列好文&#xff1a;UGC内容检测、视频智能、拍照翻译、懂天气的草地喷水头 导读&#xff1a;初创公司可以利用API来解决问题。了解更多场景如何玩High API&#xff1f;如何将API变现&#xff1f;请下载阿里云 API Playbook&#xff08;免费下载&…

java项目功能详情介绍,JAVAEE—spring的详细介绍

一、spring介绍1.三层架构中spring位置2.spring一站式框架正是因为spring框架性质是属于容器性质的.容器中装什么对象就有什么功能.所以可以一站式.不仅不排斥其他框架,还能帮其他框架管理对象.aop支持、ioc思想、spring jdbc、aop 事务、junit 测试支持二、spring搭建1.导包日…

乘势而起,走进2019年风口“边缘计算”

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者| pasca原创 | 蛋蛋团&#xff08;ID&#xff1a;dandan_tuan&#xff09;5G火了&#xff0c;也带火了边缘计算。2019年3月&#xff0c;一篇《5G风口扩散&#xff0c;超清视频边缘计算概念崛起》的文章意外走红&#xff0c;直接…

详解SLB、EIP、NAT网关之间区别, 合理选择云上公网入口

摘要&#xff1a; 概述 阿里云的公网入口产品共有三个&#xff0c;SLB、EIP、NAT网关&#xff0c;这几个产品都可以作为云上资源的公网入口&#xff0c;他们之间有何区别&#xff0c;又分别应该在什么场景下使用呢&#xff1f; 点此查看原文&#xff1a;http://click.aliyun.co…

Hadoop常见问题 | Hadoop能干什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;我们很荣幸能够见证Hadoop十几年间经历了从无到有&#xff0c;再到称王。感动于技术的日新月异时&#xff0c;希望通过本篇有问有答&#xff0c;带大家解决Hadoop的常见问题。1Q&#xff1a; Hadoop 的发展历史A&#xff1a;2Q&…

matlab 导入元胞,MATLAB导入xls文件以及cell的使用方法

使用matlab读入.xls的文件时候可以用[T,TXT,RAW]xlsread("filename.xls")导入也可以使用import data 的办法手动导入文件。但是我比较倾向于自动化程度比较高的前者&#xff0c;毕竟有时候导入的文件数量是几百个手动导入不科学。xlsread返回的参数有三个&#xff0c…

uDevice Center - IoT弹性在线多设备开发平台

摘要&#xff1a; IoT开发的一大痛点在于&#xff1a;硬件获取与setup路径太长&#xff1b;开发工具难以支持多设备联合开发。我们用uDevice Center把开发板/设备都搬到了线上&#xff0c;让用户可以不用买硬件接线&#xff0c;在线就能做IoT开发调试了。同时&#xff0c;uDevi…

快报:Python 被爆重大“黑料”!程序员:劲爆!

坐拥各大编程排行榜的Python&#xff0c;真的无敌了吗&#xff1f;在我一个朋友看来&#xff0c;他坚信 Python 可以做任何事情。但其实我是不服的&#xff0c;我相信很多人都有这种感觉。但是我最近当看 GitHub 年度项目数量时&#xff0c;我哭了&#xff0c;因为 Python 应用…

SpringBoot集成flowable-modeler(6.4.1) 实现免登

因公司需求需要将flowable的流程设计器集成到项目中&#xff0c;下面将最近的研究成果记录一下。 文章目录一、下载flowable-modeler源码二、添加相关maven包三、调用idm服务重新接口四、配置类五、启动类跳过登陆拦截六、配置文件一、下载flowable-modeler源码 把flowable-ui…

时代在召唤5G

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者| 白告天原创 |边缘计算社区错过房价飞涨的年代&#xff0c;你还要错过5G这班车吗&#xff1f;一 5G是什么&#xff1f;5G&#xff0c;就是第五代移动通信技术。和大哥大变成智能手机&#xff0c;绿皮火车变成和谐号都是一种大幅…

jboss连接池,断开后自动重连功能

最近客户现场的测试环境连的数据库极不稳定&#xff0c;经常会出现需要重新启动数据库的情况&#xff0c; 但是一旦重启数据库 则会出现 提示 ,执行sql错误&#xff0c;原因就是datasource 没有获取新的连接&#xff01; 那么解决办法就是怎样让jboss每次提供连接的时候都给我们…

API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务

摘要&#xff1a; 近日&#xff0c;阿里云API网关对接了日志服务&#xff0c;可以输出用户在API网关产生的API调用日志&#xff0c;目前支持将 API 接入 API 网关的用户查看日志明细、概况、报表分析、在线查询等。 访问日志&#xff08;Acccess Log&#xff09;是由应用服务生…

GitHub 被爆开始实名制,以便于执行美国贸易制裁;特斯拉推出超大储能产品Megapack;高通宣布与腾讯游戏达成战略合作……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 尼展示圆柱型透明式显示屏&a…

几何级数 函数 matlab,matlab 实验05数据的统计分析

数据的统计分析在日常生活中我们会在很多事件中收集到一些数据(比如&#xff1a;考试分数、窗口排队人数、月用电量、灯泡寿命、测量误差、产品质量、月降雨量等数据)&#xff0c;这些数据的产生一般都是随机的&#xff0e;这些随机数据乍看起来并没有什么规律&#xff0c;但通…

IDEA解决sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容 import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder;在项目中&#xff0c;设计到64位编码的。有时开发会用到JDK中自带的BASE64工具。但sun公司是建议不这样做的。尤其是更新了JDK版本&#xff0c;项目甚…

MaxCompute印尼开服,成为阿里云第十二个大数据服务节点

摘要&#xff1a; 人口超2.5亿的印度尼西亚&#xff0c;政府、通讯公司和银行等机构拥有繁杂的数据沉淀&#xff0c;他们正在加快应用大数据开发框架。MaxCompute势必加速这一进程&#xff0c;唤醒沉淀数据&#xff0c;最大化挖掘数据价值。 点此查看原文&#xff1a;http://cl…

大数据年代,我们的思想已被算法剥夺

戳蓝字“CSDN云计算”关注我们哦&#xff01;在这个信息爆炸的年代&#xff0c;我们能够获取信息的途径正越来越多。各类信息通过各种文字APP&#xff0c;图片APP&#xff0c;视频APP乃至微信朋友圈传达到你面前。任何一个新闻都可以在发酵后的1天内传遍整个世界。看起来人们正…

SpringBoot整合Editor.md实现Markdown编辑器

Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器&#xff08;组件&#xff09;&#xff0c;基于 CodeMirror、jQuery 和 Marked 构建。 文章目录一、技术选型及分支部署二、集成手册2.1. 下载项目2.2. 创建数据库2.3. 初始化数据库脚本2.4. 修改数据库用户名/密码 默认r…