背景

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);}}}}

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

flowable用户组的处理相关推荐

  1. SpringBoot+flowable快速实现工作流,so easy!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zhan107876/article/ details/120815560 总览 使用flowab ...

  2. 工作流引擎 SpringBoot+flowable完美结合,快速实现工作流,so easy

    flowable 起源 在2016.7~2017.5期间activiti团队内部已经产生了重大的分歧.关于新的activiti新团队与原有的团队重要开发人员我们罗列一下,细节如下: 上图是Tijs R ...

  3. flowable画图教程_flowable画图教程_Flowable 学习笔记

    一.Flowable 入门介绍 官网地址:https://www.flowable.org/ Flowable6.3中文教程:https://tkjohn.github.io/flowable-use ...

  4. Flowable学习笔记(一、入门)

    转载自  Flowable学习笔记(一.入门) 一.Flowable简介 1.Flowable是什么 Flowable是一个使用Java编写的轻量级业务流程引擎.Flowable流程引擎可用于部署BP ...

  5. flowable 表结构大全

    文章目录 表名称 表名 对照表名称 表名 二进制数据表 act_ge_bytearray 属性数据表 act_ge_property 历史附件表 act_hi_attachment 历史意见表 act ...

  6. flowable 动态多实例

    <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http:// ...

  7. springboot项目集成Flowable资料汇总

    集成思路: 以guns-flowable企业版本为基础模板,参考guns开源版本和 springboot-flowable-modeler 快速开发工作流 +在线绘制流程图 https://gitee ...

  8. flowable工作流架构介绍及集成实现

    目录 发展历程 架构结构 表结构 命名规则说明 表说明 在线设计器 设计方案 方案一 ​方案二 功能实践 官网:https://flowable.com/open-source/ 中文文档:https ...

  9. Flowable工作流引擎

    Flowable工作流引擎 Flowable-基础篇(根据BV1Pb4y1p7Ku整理) 一.简介 Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有 ...

最新文章

  1. 前端/投资者能从阿里巴巴CACSC全球总决赛的项目路演中获得什么
  2. linux c 字符串函数 replace indexOf substring 实现
  3. 2020华南理工计算机考研分数线,华南理工大学2020考研复试分数线已公布
  4. 网易云信又双叒受到Gartner关注,看看这次的报告说了什么?
  5. ubuntu中以root权限打开文件(夹)
  6. 系统架构师学习笔记-操作系统(三)
  7. 歌德语言证书c1考什么,Goethe-Zertifikat C1 (歌德中级证书C1)考试细则 2010.2.1版.pdf...
  8. (66)Verilog HDL模块参数化例化
  9. Qt4_子类化QTableWidget
  10. Spring Data REST PATCH请求远程代码执行漏洞(CVE-2017-8046) 本地复现方法
  11. 使用计算机网络时mad的作用,计算机网络基础试题库7
  12. VisualSVN 5.1.7破译License Key
  13. 学位论文精读-hBMSCs在肿瘤微环境中分泌IL-6并上调IL-17水平协同促进DLBCL生长的研究
  14. Oracle 11g如何清理数据库的历史日志详解
  15. 坏掉充电宝内部电池怎么充电?教你用它的电池做一个新的充电宝
  16. 【毕业设计】 大数据二手房数据爬取与分析可视化 -python 数据分析 可视化
  17. 2021年中式烹调师(中级)试题及解析及中式烹调师(中级)模拟试题
  18. Zigbee OSAL睡眠管理
  19. opencv入门:支持向量机,K均值聚类
  20. Esper学习之十三:EPL语法(九)

热门文章

  1. linux内核优化策略,linux系统调优小结
  2. php 变量调试,PHP变量调试函数
  3. 500张思维导图记38000单词_思维导图记单词,环环相扣难遗忘——2020奇速英语夏令营第三天...
  4. 如何用阿里云实行全链路数据追踪
  5. 封神-运维大脑 | 日志检测工具
  6. 记一次Cassandra Java堆外内存排查经历
  7. iOS13 一次Crash定位 - 被释放的NSURL.host
  8. 编码规范 | Java函数优雅之道(上)
  9. 机器学习算法概述:随机森林逻辑回归
  10. 关于CNN图像分类的一份综合设计指南