flowable用户组的处理

背景

flowable有自己的用户账号信息,用户信息,用户组信息,其实这些用户信息都我们系统可能都存在,那么我们如何去使用一份数据呢?

1.我们可以建立视图直接取我们的组织信息,这个可以参考相关的文档
2.我们可以把组织数据同步到flowable的表中
我们这边的处理时以同步的机制来做的,把我们的数据同步到flowable的表中,这样的好处就是我们不用改动flowable的表结构,flowable升级的话,对我们没有任何影响

具体做法如下:

1.在我们的MDM系统(组织管理系统)通过rabbitmq的消息队列的方式发送到消息队列里面,以后有任何的改动都发送消息。
2.在我们流程中心添加一个监听器,实时监听这个队列的数据,然后把数据添加到我们的flowable表中,实现实时同步的效果。

@Component
@RabbitListener(queues = FlowConstant.FLOWABLE_MDM_DATA_QUEUE, containerFactory = "rabbitListenerContainerFactory")
public class MdmDataSyncReceiver {private static Logger logger = LoggerFactory.getLogger(MdmDataSyncReceiver.class);@Resourceprivate ICompanyService companyService;@Resourceprivate IDepartmentService departmentService;@Resourceprivate IUserVoService userVoService;@RabbitHandlerpublic void process(@Payload String message) {if (StringUtils.isNotBlank(message)) {try {JSONObject map = JSONObject.parseObject(message);JSONArray datas = map.getJSONArray("datas");String type = map.getString("synEhr");if (null != datas && null != type) {switch (SynMDMEnum.getEnum(type)) {case COMPANY:List<CompanyVo> companyVos = JSONArray.parseArray(datas.toJSONString(), CompanyVo.class);companyService.insertOrUpdateList(companyVos.stream().filter(companyVo -> companyVo.getStatus().equals(1)).collect(Collectors.toList()));break;case DEPARTMENT:List<DepartmentVo> departmentVos = JSONArray.parseArray(datas.toJSONString(), DepartmentVo.class);departmentVos.forEach(param -> {if (null != param.getIscancle() && null != param.getStatus()&& param.getIscancle().equals(0)&& param.getStatus().equals(DepartmentStatusEnum.Y.getCode())&& param.getDelFlag().equals(FlowConstant.NO_DELETE_FLAG)) {param.setStatus(DeptStatusEnum.ON.getCode());} else {param.setStatus(DeptStatusEnum.OFF.getCode());}});departmentService.insertOrUpdateList(departmentVos);break;case PERSONAL:List<PersonVo> personVos = JSONArray.parseArray(datas.toJSONString(), PersonVo.class);personVos.forEach(param -> {if (null != param.getStatus() && null != param.getPoststatus()&& param.getStatus().equals(1)&& param.getPoststatus().equals(1)&& param.getDelFlag().equals(FlowConstant.NO_DELETE_FLAG)) {param.setStatus(PersonStatusEnum.ON.getCode());} else {param.setStatus(PersonStatusEnum.OFF.getCode());}});userVoService.insertOrUpdateList(personVos);break;default:}}} catch (Exception e) {logger.error("MdmDataSyncReceiver-error", e);}}}}

在这里我们做了好几张扩展表,以把公司,部门,人员,同步下来。
在这里插入图片描述

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

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

相关文章

微软 SQL Server 2019 将免费支持 Java;Rancher Labs获2500万美元融资;腾讯云进军日本市场……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go “2019世界计算机大会”新闻…

java 监听桌面鼠标事件,鼠标事件的监听和使用

鼠标操作是图形操作系统最常用操作&#xff0c;用户使用鼠标单击&#xff0c;双击&#xff0c;右击&#xff0c;拖动等操作实现与软件的交互。 鼠标事件监听器 鼠标事件监听器由MouseListener接口和MouseMotionListener接口定义&#xff0c;分别定义鼠标捕获不同的鼠标操作方法…

玩 High API 系列之:实现钉钉Ding功能

摘要&#xff1a; 钉钉是企业IM市场上的领先者&#xff0c;深受中小企业客户的喜欢&#xff0c;就再几天前刚刚宣布用户数超过1亿&#xff01;在钉钉里面有个特别实用的功能&#xff0c;那就是Ding一下&#xff0c;如果你发的消息特别紧急&#xff0c;可以直接通过短信、电话等…

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

1、上面的流程图当任务还没有到的节点&#xff0c;用户想看看节点的人的信息&#xff0c;如果我们常规的是不能实现的。 2、思路就是我们取出节点的表达式&#xff0c;然后用我们流程实例的变量来给他翻译出来即可&#xff0c;如何做呢&#xff1f; 2.1、通过流程实例id查出历…

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

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

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

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

Flowable通过api查询流程返回流程图节点

通过传入流程启动id去查询当前流执行节点 返回流程图 到期节点 标红显示 /*** 生成流程图** param processId 任务ID*/RequestMapping(value "processDiagram")public void genProcessDiagram(HttpServletResponse httpServletResponse, String processId) throws E…

玩 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;直接…

flowable笔记 - 简单的通用流程

简介 通用流程可以用于一些基本的申请&#xff0c;例如请假、加班。 大致过程是: 1. 创建申请 2. 分配给审批人&#xff08;需要审批人列表&#xff0c;当前审批人&#xff09; -> 有下一个审批人 -> 3 -> 无 -> 4 3. 审批人审批 -> 同意 -> 2 -> 拒绝 -…

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

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

matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...

点击查看MATLAB求1的阶乘加到n的阶乘和 不要现有的函数&#xff0c;要自己编写出来的具体信息答&#xff1a;myfactorial (n) factorial(n) myfactorial (n) prod(1:n) 两个都可以吧。&#xff1a;)答&#xff1a;编写一个matlab文件&#xff0c;求1到n的阶乘之和。其代码编写…

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…

maven打包时跳过测试

在运行mvn install或mvn package时跳过Test <project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1<…

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 应用…

MATLAB灰度级数为1,图像处理 – 在matlab中更改灰度图像中的灰度级数

虽然result (img / 8)* 8确实将范围[0,255]中的灰度图像转换为该范围的子集但现在仅使用32个值,但它可能会产生不希望的伪像.可能产生视觉上更好的图像的方法称为改进的灰度量化(缩写为IGS).执行它的伪代码可以如下&#xff1a;mult 256 / (2^bits)mask 2^(8 - bits) - 1prev…

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

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