Flowable批量修改审批人
如果一个人员离职了,你要变更这个人员所在的流程为其他的审批人,如果一个个的去检察,你是不是很累,这就是我们如果批量修改的原因。
场景很简单,就是人力告诉你有人离职了,需要变更为其他的人
做成界面一键式更新审批人
- 目标:通过界面来修改审批人
- 第一 、获取所有的最新的流程定义
- 第二、修改每一个流程定义的审批人信息
目标:通过界面来修改审批人
1. 界面怎么做在这里就不用讲了
第一 、获取所有的最新的流程定义
public ReturnVo<String> updateTaskAssignee(List<String> keys, String oldAssignee, String newAssignee) {ReturnVo<String> returnVo = new ReturnVo<>(ReturnCode.SUCCESS, "OK");//1. 查询最新的流程定义列表StringBuffer sql = new StringBuffer("SELECT a.* FROM act_re_procdef a INNER JOIN (SELECT key_,MAX(version_) max_version FROM act_re_procdef GROUP BY key_ ) b " +" ON a.key_ = b.key_ AND a.version_ = b.max_version ");StringBuffer inkeys = new StringBuffer("");if (CollectionUtils.isNotEmpty(keys)) {StringBuffer finalInkeys = inkeys;keys.forEach(key -> finalInkeys.append("'").append(key).append("'").append(","));if (inkeys.length() > 0) {inkeys = inkeys.deleteCharAt(inkeys.length() - 1);sql.append(" where a.key_ in (").append(inkeys.toString()).append(")");List<ProcessDefinition> processDefinitions = repositoryService.createNativeProcessDefinitionQuery().sql(sql.toString()).list();if (CollectionUtils.isNotEmpty(processDefinitions)) {processDefinitions.forEach(processDefinition -> this.updateTaskAssignee(processDefinition, oldAssignee, newAssignee));}}}return returnVo;}
第二、修改每一个流程定义的审批人信息
public ReturnVo<String> updateTaskAssignee(ProcessDefinition processDefinition, String oldAssignee, String newAssignee) {ReturnVo<String> returnVo = new ReturnVo<>(ReturnCode.SUCCESS, "OK");BpmnModel model = repositoryService.getBpmnModel(processDefinition.getId());List<UserTask> userTasks = bpmnModelService.findUserTasksByBpmnModel(model);userTasks.forEach(userTask -> {if (userTask.getAssignee() != null && userTask.getAssignee().equals(oldAssignee) && !oldAssignee.equals(newAssignee)) {ObjectNode processInfo = dynamicBpmnService.changeUserTaskAssignee(userTask.getId(), newAssignee);dynamicBpmnService.saveProcessDefinitionInfo(processDefinition.getId(), processInfo);}});}
Flowable批量修改审批人相关推荐
- python修改文件内容_Python批量修改文本文件内容的方法详解
这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...
- 批量修改图片以及加水印
好久木有来写点什么了.. 前段时间挺忙的. 今天上来分享一个,这几天我给商城图片加水印的代码吧.因为产品编辑那边是先把图片都上传完成了,所以只能做批量修改图片来完成给所有图片加水印的效果. 类似DX. ...
- idea 批量修改同一列_学会这个,1秒就可以批量处理文件
[问题1]根据公司名称,批量创建文件夹 拿到老板给到的这个任务后,没关系我很有耐心,不就是右击新建文件夹重命名保存吗,然后加班点鼠标到天荒地老,终于完成了. 结果老板说有些公司名有误要改正过来,还有几 ...
- ansible批量修改linux服务器密码的playbook
从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...
- 关于批量修改AD域用户的脚本
最近几天帮人弄了个脚本,是修改域用户属性的脚本,今天看到徐火军写的 关于批量修改用户属性 脚本,觉得有必要把我的成果分享给大家.什么都不说了,上脚本: Dim oFSO, oTF, i Dim sLi ...
- python修改ppt的字体和颜色_使用python-pptx包批量修改ppt格式的实现
最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置.对齐方式.字体等统一,人工修改又麻烦又容易错. 因此结合网上的pptx包资料,使用python脚本完成处理. 主要的坑点在于,shape ...
- idea批量修改变量快捷键mac_使用Mac自带功能批量修改图片名称、类型和压缩图片大小...
Mac电脑自带的聚焦搜索功能已经很强大,可以快速准确的搜索电脑内的文件,但是从网上下载的文件,特别是一些图片文件都是一串数字组成的文件名,很难记忆和搜索,我们可以使用Mac自带的『自动操作』功能给图片 ...
- 批量修改文件名称(Python)
本程序功能:批量修改文件名称 import os import redef replaceDirName(rootDir): # 修改rootDir路径下的文件夹名num = 0dirs = os.l ...
- 批量修改文件夹下图片名称(Python)
本程序的功能是:批量修改文件夹下图片名称. import os import redef replcaeFileName(pic_path): # 修改pic_path路径下的文件名piclist = ...
最新文章
- 数据通信技术(四:链路聚合)
- linux远程执行shell命令行,linux shell 远程执行命令--ftp
- MySQL-主从架构的搭建
- MPI编程的常用接口速查
- poj2594(二分图,最小路径覆盖变形)
- php可以调用windowsapi吗_2.如何调用WindowsApi
- 如果财富都在部分人手里会怎样?
- 输出调节2.3——内模控制器设计
- angularjs姓名转拼音js
- [转]DOS批处理高级教程精选合编
- 雅虎免费邮箱片头动画:Liam系列
- 推荐3款手机远程控制电脑的软件 专业 好用 免费
- Android像素密度dpi/ppi计算公式,px、sp、dp互转工具类——概念解释
- 小程序 40163_小程序获取openid 出现null,{errcode:40163,errmsg:code been used, hints: [ req_id: WNUzlA0105t...
- Programming Languages PartB Week2学习笔记——用Racket编写解释器
- vue3+vant Failed to resolve import “E:/code3/jianmu-user-yd/node_modules/vant/lib/vant/es/icon/style
- 2011考研数学核心题型-陈文灯
- 【自然语言处理(NLP)】基于预训练模型的机器阅读理解
- html字数不同相同宽度的按钮,HTML_按钮在IE中两边被拉伸的 BUG,大家在写按钮(input、button) - phpStudy...
- 【硬刚大数据】2021年从零到大数据专家之数据仓库篇