基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

因为之前不支持在流程设计器进行自定义业务表单的关联选择,所以这部分实现这个。

1、前端

对不同应用类型做不同的处理

 /** 查询表单列表 */getFormList() {if(this.appType[0].id === 'OA' ) {listForm().then(response => {this.formOptions = response.rows;console.log("listForm this.formOptions=",this.formOptions);});}else if(this.appType[0].id === 'ZDYYW') {listCustomForm().then(response => {this.formOptions = response.rows;console.log("listCustomForm this.formOptions=",this.formOptions);});}},

同时自定义业务表单类型,只能在开始节点进行选择,用户节点不能选择

2、后端

发布的时候增加一个自定义业务表单的关联处理

if(StrUtil.equalsAnyIgnoreCase(appType, "OA")) {return deployFormService.saveInternalDeployForm(deployment.getId(), bpmnModel);} else if(StrUtil.equalsAnyIgnoreCase(appType, "ZDYYW")) {return customFormService.saveCustomDeployForm(deployment.getId(), deployment.getName(), bpmnModel);}

具体处理实现如下:

@Override@Transactional(rollbackFor = Exception.class)public boolean saveCustomDeployForm(String deployId, String deployName, BpmnModel bpmnModel) {// 获取开始节点StartEvent startEvent = ModelUtils.getStartEvent(bpmnModel);if (ObjectUtil.isNull(startEvent)) {throw new RuntimeException("开始节点不存在,请检查流程设计是否有误!");}// 更新开始节点表单信息与流程信息到自定义业务关联表WfCustomFormBo customFormBo = buildCustomForm(deployId, deployName, startEvent);if (ObjectUtil.isNotNull(customFormBo)) {updateByBo(customFormBo);return true;}return false;}/*** 构建部署表单关联信息对象* @param deployId 部署ID* @param node 节点信息* @return 部署表单关联对象。若无表单信息(formKey),则返回null*/private WfCustomFormBo buildCustomForm(String deployId, String deployName, FlowNode node) {String formKey = ModelUtils.getFormKey(node);if (StringUtils.isEmpty(formKey)) {return null;}Long formId = Convert.toLong(StringUtils.substringAfter(formKey, "key_"));WfCustomFormVo customFormVo = queryById(formId);if (ObjectUtil.isNull(customFormVo)) {throw new ServiceException("表单信息查询错误");}WfCustomFormBo customFormBo = new WfCustomFormBo();customFormBo.setId(formId);customFormBo.setBusinessName(customFormVo.getBusinessName());customFormBo.setBusinessService(customFormVo.getBusinessService());customFormBo.setCreateBy(customFormBo.getCreateBy());customFormBo.setRouteName(customFormVo.getRouteName());customFormBo.setDeployId(deployId);customFormBo.setFlowName(deployName);return customFormBo;}

3、效果图如下:

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

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

相关文章

PyTorch技术和深度学习——三、深度学习快速入门

文章目录 1.线性回归1)介绍2)加载自由泳冠军数据集3)从0开始实现线性回归模型4)使用自动求导训练线性回归模型5)使用优化器训练线性回归模型 2.使用torch.nn模块构建线性回归模型1)使用torch.nn.Linear训练…

基于springboot实现校园医疗保险管理系统【项目源码】

基于springboot实现校园医疗保险管理系统演示 系统开发平台 在线校园医疗保险系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其…

linux高级篇基础理论(详细文档)二

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

自定义注解实现服务的动态开关

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 🧑‍💻🧑‍💻🧑‍💻Make things differe…

多级缓存之实现多级缓存

多级缓存的实现离不开Nginx编程,而Nginx编程又离不开OpenResty。 1. OpenResty快速入门 我们希望达到的多级缓存架构如图: 其中: windows上的nginx用来做反向代理服务,将前端的查询商品的ajax请求代理到OpenResty集群 OpenRest…

【教3妹学编程-算法题】K 个元素的最大和

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开发。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&#x…

2.5 Windows驱动开发:DRIVER_OBJECT对象结构

在Windows内核中,每个设备驱动程序都需要一个DRIVER_OBJECT对象,该对象由系统创建并传递给驱动程序的DriverEntry函数。驱动程序使用此对象来注册与设备对象和其他系统对象的交互,并在操作系统需要与驱动程序进行交互时使用此对象。DRIVER_OB…

半导体应用系统一些小知识收集(stripwafer mapping,EAPscada)

单一元件追踪Single Device Traceability ,指的是在制造封装流程中对任何一个点上的任何一台单一设备进行实时追踪,并将相关历史数据储存进数据库服务器,同时在需要的情况下能够查询这些历史数据的能力。 SDT系统的核心特性可以被概括为如下: Wafer Map …

【深度学习】吴恩达课程笔记(四)——优化算法

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【吴恩达课程笔记专栏】 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络 【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度…

2024 AIGC 规划:探索交互体验变革及 智能硬件基础设施篇

TL;DR Run LLM/Embedding on Android: https://github.com/unit-mesh/android-semantic-search-kitInference SDK:https://github.com/unit-mesh/inference 正文: 在过去的一年时间里,国内外大中型公司都在探索、引入了 GenAI / AIGC&#xf…

Seaborn数据可视化综合应用Basemap和Seaborn在线闯关_头歌实践教学平台

Seaborn数据可视化综合应用Basemap和Seaborn 第1关 Seaborn第2关 Seaborn图形介绍第3关 Basemap 第1关 Seaborn 任务描述 本关任务:编写一个绘制每个月销售总额的折线图。 编程要求 本关的编程任务是补全右侧上部代码编辑区内的相应代码,根据输入文件路…

优选算法精品解析

1.双指针(前后/左右双指针) 1.1 283.移动零 快排双指针的核心算法 左边所有数 < tmp,右边所有数 > tmp,以tmp这个数为标准 1.2 1089.复习零 如果一对双指针从左向右不行,那么就从右向左,换一个方向 1.3 202.快乐数 双指针中的快慢指针: slow1,fast2 1.4 11.最多盛水的…