日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flowable用户组的处理

發布時間:2024/9/27 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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);}}}}

在這里我們做了好幾張擴展表,以把公司,部門,人員,同步下來。

總結

以上是生活随笔為你收集整理的flowable用户组的处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。