flowable工作流设置审批人为指定角色+部门的实现方式

一、绘制流程图页面配置

 

1、指定固定审批角色+组织的实现

如上图红框部分,需要修改此处为需求对应。比如此时红框不支持指定某个部门下的指定角色这种组合判断的审批人。则需要修改页面变成选完角色同时也选择上部门统一生成一个group标识。

修改完后,生成类似 ROLE001DEPT130000 的group标识。

在xml中设置 CandidateGroup时,设置为固定值就可以。

2、指定审批人为发起人所在部门的指定角色

此时,用方式1显然不支持,因为发起人是变化的,dept也会跟着变,只能在发起审批流程时读取到传入发起人信息后进行设置。

在xml中设置 CandidateGroup时,需要指定为可变参数,类似下图这种

 设置这个参数有几种方式:

2.1直接基于框架进行表单设置

 

 2.2 在后端代码中发起流程这个步骤时,通过setVariable()的方式设置deptId这个参数

二、流程查询时找到对应审批人

我们设置好对应审批人后,还需要在该查到的时候查到,比如 有一个部门d1,里面有 张三-员工 李四-部门领导 两个人。张三发起了一个审批,审批人设置的是本部门领导角色。此时,在李四登录时应该在待办列表里看到这条审批。

查询这块包含了发起中所有情况,因为查的时候要遵循宁可把可能的群组都查,也不能漏掉。

直接上代码吧:

// 定义的一些标识
public class TaskConstants {/*** 流程发起人*/public static final String PROCESS_INITIATOR = "initiator";/*** 角色候选组前缀*/public static final String ROLE_GROUP_PREFIX = "ROLE";/*** 部门候选组前缀*/public static final String DEPT_GROUP_PREFIX = "DEPT";/*** 分割符*/public static final String SPLIT = "-";
}
    /*** 获取用户组信息,包含了当前所有组合:role、dept、role+dept作为群组** @return candidateGroup*/public static List<String> getCandidateGroup() {List<String> list = new ArrayList<>();
// 获取当前登录人信息,不同框架有不同的获取方法,适当修改LoginUser user = LoginHelper.getLoginUser();if (ObjectUtil.isNotNull(user)) {if (ObjectUtil.isNotEmpty(user.getRoles())) {user.getRoles().forEach(role -> {list.add(TaskConstants.ROLE_GROUP_PREFIX + role.getRoleId());list.add(TaskConstants.ROLE_GROUP_PREFIX + role.getRoleId() + TaskConstants.SPLIT+ TaskConstants.DEPT_GROUP_PREFIX + user.getDeptId());});}if (ObjectUtil.isNotNull(user.getDeptId())) {list.add(TaskConstants.DEPT_GROUP_PREFIX + user.getDeptId());}}return list;}
// 查询待办事项列表        
TaskQuery taskQuery = taskService.createTaskQuery().active().includeProcessVariables().taskCandidateOrAssigned(TaskUtils.getUserId()).taskCandidateGroupIn(TaskUtils.getCandidateGroup()).orderByTaskCreateTime().desc();

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

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

相关文章

股指期货基差衡量的是什么?

在股指期货市场中&#xff0c;基差、升水和贴水是三个关键的术语&#xff0c;这些基差衡量的是现货市场的价格与期货市场的价格之间的差异。 一、基差&#xff1a;现货与期货的价差 1. 定义&#xff1a;基差是指现货价格与相应期货合约价格之间的差额。计算方式是现货价格减去…

SFTPGO 整合minio AD群组 测试 |sftpgo with minio and ldap group test

SFTP-GO 研究 最近在测试sftpgo&#xff0c;发现中文的资料比较少&#xff0c;在企业中很多存储开始支持S3&#xff0c;比如netapp 于是想尝试把文件服务器换成sftpgoS3的存储&#xff0c;sftp go和AD 群组的搭配测试比较少 自己测试了一把&#xff0c;觉得还是没有server-u的A…

JVS物联网、无忧企业文档、规则引擎5.14功能新增说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了 低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&am…

函数的递归调用

在调用一个函数的过程中又出现直接或间接地调用该函数本身&#xff0c;称为函数的递归&#xff08;recursive&#xff09;调用。C和C允许函数的递归调用。例如&#xff1a; int f(int x) { int y,z; zf(y); //在调用函数 f 的过程中&…

云服务器修改端口通常涉及几个步骤

云服务器修改端口通常涉及几个步骤 远程连接并登录到Linux云服务器&#xff1a; 使用SSH工具&#xff08;如PuTTY、SecureCRT等&#xff09;远程连接到云服务器。 输入云服务器的IP地址、用户名和密码&#xff08;或密钥&#xff09;进行登录。 修改SSH配置文件&#xff1a…

Jmeter使用While控制器

1.前言 对于性能测试场景中&#xff0c;需要用”执行某个事物&#xff0c;直到一个条件停止“的概念时&#xff0c;While控制器控制器无疑是首选&#xff0c;但是在编写脚本时&#xff0c;经常会出现推出循环异常&#xff0c;获取参数异常等问题&#xff0c;下面总结两种常用的…

如何将Excel表格中的图片链接直接显示成图片?

在 Excel 中&#xff0c;你可以通过以下步骤将图片链接转换为直接显示图片&#xff1a; 1. **插入图片链接**&#xff1a;首先&#xff0c;在 Excel 表格中插入图片的链接。你可以在某个单元格中输入图片的链接地址&#xff0c;或者使用 Excel 的“插入图片”功能插入链接。 2.…

从新手到高手,教你如何改造你的广告思维方式!

想要广告震撼人心又让人长时间记住&#xff1f;答案肯定是“创意”二字。广告创意&#xff0c;说白了就是脑洞大开&#xff0c;想法新颖。那些很流行的广告&#xff0c;都是因为背后的想法特别、新颖。做广告啊&#xff0c;就得不停地思考&#xff0c;创新思维是关键。 广告思…

天锐绿盾 | 如何防止电脑内文件遭到泄露?

天锐绿盾是一款专为企业设计的数据防泄漏软件系统&#xff0c;它通过一系列综合性的安全措施来有效防止电脑内文件遭到泄露。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是天锐绿盾防止文件泄露的主要功能和方法&a…

【CSP CCF记录】202009-1 称检测点查询

题目 过程 难点&#xff1a;编号和位置的一一对应&#xff0c;不同位置的距离可能相等。 所以使用一个结构体记录不同检测点的编号和到居民地的距离。 sort函数进行排序。Sort函数使用方法 参考&#xff1a;http://t.csdnimg.cn/Y0Hpi 代码 #include <bits/stdc.h>…

人工智能AI聊天chatgpt系统openai对话创作文言一心源码APP小程序功能介绍

你提到的是一个集成了多种智能AI创作能力的系统&#xff0c;它结合了OpenAI的ChatGPT、百度的文言一心&#xff08;ERNIE Bot&#xff09;以及可能的微信WeLM&#xff08;或其他类似接口&#xff09;等。这样的系统确实能够极大地提高创作效率&#xff0c;并且在各种场景下为用…

Rust Web开发框架actix-web入门案例

概述 在看书的时候&#xff0c;用到了actix-web这个框架的案例。 书里面的版本是1.0&#xff0c;但是我看官网最新都4.4了。 为了抹平这种信息差&#xff0c;所以我决定把官方提供的示例代码过一遍。 核心代码 Cargo.toml [package] name "hello" version &q…

随笔:贝特弹琴

半年前&#xff0c;我买了一架朗朗代言的智能电子琴。所谓智能是指&#xff0c;它配套的手机软件知道你在按哪个键&#xff0c;它还能让任意按键发光。用专业术语说&#xff0c;它的键盘具有输入和输出功能&#xff0c;和软件组合起来是一个完整的计算机系统。 随着软件练习曲…

使用Postman来调用Salesforce Bulk API 2.0的方法

简介 Bulk API 2.0 可以支持大量数据增删改查&#xff0c; 用新版的Dataloader也可以进行访问&#xff0c;但Dataloader会把CSV里的数据先转成Bean对象&#xff0c;这样会耗费大量的时间&#xff0c;而且数据量过大会卡死&#xff0c;所以直接上传CSV会节省大量时间和避免卡死风…

关于电源1

电源的定义 广义定义&#xff1a;电源是将其它形式的能转换成电能的装置。 例如&#xff1a;发电机&#xff1a;将热能、水能、风能、核能、光照、震动等转化为电能的装置。 电池&#xff1a;将化学能转换为电能。 狭义定义&#xf…

每天认识新职业——程序员

一、程序员是什么 程序员是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员&#xff0c;但两者的界限并不非常清楚。随着互联网的不断普及&#xff0c;网络上把男程序员称作“程序猿"&#xff0c;女程序员称作“程序媛"。或统称…

Java进阶11 IO流、功能流

Java进阶11 IO流-功能流 一、字符缓冲流 字符缓冲流在源代码中内置了字符数组&#xff0c;可以提高读写效率 1、构造方法 方法说明BufferedReader(new FileReader(文件路径))对传入的字符输入流进行包装BufferedWriter(new FileWriter(文件路径))对传入的字符输出流进行包装…

电子商务电商数据采集接口||电子商务市场数据采集方法,你学到了吗?

小刘从某职业院校电子商务专业毕业后&#xff0c;-直在某品牌电商部负责运营工作&#xff0c;近期&#xff0c;同班同学小王邀请小刘加入创业大军&#xff0c;共同开设网店&#xff0c;销售家乡的螃蟹、鲜虾、扇贝等生鲜水产。 运营经验丰富的小刘决定&#xff0c;在创业开始前…

IT工具集项目

网址 https://github.com/CorentinTh/it-tools?tabreadme-ov-file 类似的项目应该有很多&#xff0c;提供各种it人员的小工具