基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(一)

news2024/10/5 18:31:48

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

gitee源代码地址

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

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

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

gitee源代码地址

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

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888

1、对于实际业务,自定义业务对应的流程可能是多个,需要用户发起流程的时候进行选择

比如下面

相同服务名称有两个相同的流程,不进行选择可能就会有问题了

2、发起的时候首先要去检查流程,把符合要求的都取出来


	List<WfCustomForm> selectSysCustomFormByServiceName(String serviceName) {
		List<WfCustomForm> wfCustomFormList = wfCustomFormService.selectSysCustomFormByServiceName(serviceName);
		List<WfCustomForm> newCustomFormList = new ArrayList<WfCustomForm>();
		 if(ObjectUtil.isNotEmpty(wfCustomFormList)){
			 for(WfCustomForm wfCustomForm: wfCustomFormList) {
				JSONArray jsonArray =  JSONArray.parseArray(wfCustomForm.getAuthorize());
				if (ObjectUtil.isNotEmpty(jsonArray)) {
					for (int i = 0; i < jsonArray.size(); i++) {
		        		JSONObject jsonObject = jsonArray.getJSONObject(i);
		        			newCustomFormList.add(wfCustomForm);
					}
	            }
			 }
			return newCustomFormList;
		 }
		return null;
	}

3、取出来后,要是超过1个,那就需要用户进行前端选择

this.submitLoading = true;
              const processParams = {
                 serviceName: this.serviceName
              }
              getProcesss(processParams).then(res => {/**查询关联流程信息 */
                this.processList = res.data;
                  this.submitLoading = false;
                  console.log("getProcesss this.processList",this.processList)
                  if (this.processList && this.processList.length > 1) {
                    this.flowOpen = true;
                  }
                  else if (this.processList && this.processList.length === 1) {
                    this.selectFlowId = res.data[0].id;
                    var params = Object.assign({
                      dataId: this.dataId
                    }, this.variables);
                    startByDataId(this.dataId, this.selectFlowId, this.serviceName, params)
                      .then(res => {
                        console.log("startByDataId res",res);
                        if (res.code == 200 ) {
                          this.$message.success(res.msg);
                          this.$emit('success');
                        } else {
                          this.$message.error(res.msg);
                        }
                      })
                      .finally(() => (this.submitLoading = false));
                  } else {
                    this.$message.error("检查该业务是否已经关联流程!");
                  }
              })
              .finally(() => (this.submitLoading = false));

4、显示需要选择的流程界面

<!--挂载关联多个流程-->
      <a-modal @cancel="flowOpen = false" :title="flowTitle" :visible.sync="flowOpen" width="70%" append-to-body>
        <el-row :gutter="64">
          <el-col :span="20" :xs="64" style="width: 100%">
            <el-table ref="singleTable" :data="processList" border highlight-current-row style="width: 100%">
               <el-table-column type="selection" width="55" align="center" />
               <el-table-column label="主键" align="center" prop="id" v-if="true"/>
               <el-table-column label="业务表单名称" align="center" prop="businessName" />
               <el-table-column label="业务服务名称" align="center" prop="businessService" />
               <el-table-column label="流程名称" align="center" prop="flowName" />
               <el-table-column label="关联流程发布主键" align="center" prop="deployId" />
               <el-table-column label="前端路由地址" align="center" prop="routeName" />
               <el-table-column label="组件注入方法" align="center" prop="component" />
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                   <el-button size="mini" type="text" @click="selectProcess(scope.row)">确定</el-button>
                 </template>
               </el-table-column>
              </el-table>
          </el-col>
        </el-row>
      </a-modal>

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

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

相关文章

基于PLC全自动药品包装机系统的设计5.26

摘 要 在科技迅猛发展的今天&#xff0c;人民生活水平也在逐步上升的同时&#xff0c;我们国家的医药包装行业却停滞不前&#xff0c;仍停留在使用继电器控制系统生产产品&#xff0c;然而这种控制系统却有着不可靠&#xff0c;线路极其复杂&#xff0c;出现故障问题难以解决的…

接口日志:储存到MySQL数据库

1、定义一个日志注解&#xff0c;把模块的接口调用日志储存到数据库中。 2、后续可能会产生性能问题&#xff0c;但对于当前快速扩张的业务而言&#xff0c;这种过渡性的功能&#xff0c;还是可以接受的。 用法&#xff1a; 一、自定义注解对象 package com.pkg.modelname.ann…

罐头鱼AI短视频矩阵营销|视频批量剪辑|矩阵系统

AI批量视频剪辑系统是一款功能丰富的视频编辑软件&#xff0c;提供了以下主要功能&#xff1a; 首页显示&#xff1a;在首页上显示用户的登录状态、已绑定的账号数量以及最近上传的视频素材和新上传素材列表。 抖音账号绑定功能&#xff1a;用户可以绑定抖音账号&#xff0c;Q…

【Python】新手入门学习:什么是硬编码?如何避免硬编码?

【Python】新手入门学习&#xff1a;什么是硬编码&#xff1f;如何避免硬编码&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教…

在ubuntu上安装FastSufer【本机安装】

亲测:FastSurfer分割并重建一个大脑需要1个小时,而freeSurfer需要8个小时。确实很快! 这里我在网页端搭建了一个小的工具包,里面集成了经典的freeSurfer和较快的FastSurfer。如果你不想安装或者手头没有linux设备,您也可以直接从以下网址直接使用,跳过繁琐的安装步骤!!…

基于PLC的智能楼宇控制系统设计

目录 摘要 2 第一章 绪论 5 1.1 引言 5 1.2 智能楼宇的课题背景 5 1.3 智能楼宇的功能和优势 6 第二章 智能楼宇系统总体方案确定 7 2.1 智能楼宇系统总体方案的设计 7 2.1.1 智能楼宇概述 7 2.1.2 智能楼宇的分类 7 1、建筑设备自动化系统(BA) 7 2、通讯自动化系统&#xff0…

融资项目——网关微服务

1. 网关的路由转发功能 在前后端分离的项目中&#xff0c;网关服务可以将前端的相关请求转发到相应的后端微服务中。 2. 网关微服务的配置 首先需要创建一个网关微服务&#xff0c;并添加依赖。 <!-- 网关 --><dependency><groupId>org.springframework.cl…

更深层的去理解负载均衡

目录 前言&#xff1a; 一、进行负载均衡的原因 二、什么是负载均衡 三、负载均衡的分类 二层负载均衡 三层负载均衡 四层负载均衡 七层负载均衡 四、负载均衡工具 LVS &#xff1a;LVS主要用来做四层负载均衡 Nginx &#xff1a;Nginx主要用来做七层负载均衡 HAProxy &#xf…

推荐5款知道的人不多的小众软件

​ 今天推荐5款十分小众的软件&#xff0c;知道的人不多&#xff0c;但是每个都是非常非常好用的&#xff0c;有兴趣的小伙伴可以自行搜索下载。 1. 3D建模与设计——Fusion360 ​ Fusion360是一款强大的3D建模与设计软件&#xff0c;集CAD、CAM和CAE功能于一体。它支持从概念…

【Greenhills】MULTI IDE工程管理的目录结构

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 关于的GHS的Project Manager中工程的目录结构的组成 2、 问题场景 在GHS中去创建项目后&#xff0c;对于在Project Manager窗口中的目录结构不太清晰&#xff0c;目录中有多个gpj文件&#xff0c;无法确认哪个是…

制冷系统管道焊接气焊安全操作

气焊操作安全教育&#xff1a; 1、检查气焊用具完好牢固无损&#xff0c;不得贴粘有&#xff08;机油&#xff09;&#xff1b; 2、气瓶余压&#xff08;2KG&#xff09;停止使用&#xff1b;清除动火 10 米范围内易燃易爆物料&#xff1b; 3、库房内动火要 做好通风排气&…

时间序列处理相关函数及案例

目录 常用函数日期对象ee.Date.fromYMD&#xff08;&#xff09;ee.List.sequence&#xff08;&#xff09; 序列影像处理ee.ImageCollection.fromImages&#xff08;&#xff09;ee.Filter.calendarRange&#xff08;&#xff09;.set&#xff08;&#xff09; 案例&#xff1…

15.0 Scrapy 使用中出现的错误分享

目录 一、把 Scrapy项目创建在一个 python 项目中 1、导致情况及解决方法(简述) 2、导致情况及解决方法(详述) 2.1 导致引入模块时找不到 2.2 后续 scrapy crawl 命令报错 一、把 Scrapy项目创建在一个 python 项目中 1、导致情况及解决方法(简述) &#xff08;1&#x…

Linux 多线程开发

第三章 Linux 多线程开发 3.1 线程3.1.2 线程操作3.1.2 线程属性 3.2 线程同步3.2.1 互斥量/锁3.2.2 死锁3.2.3 读写锁 3.3 生产者消费者模型3.3.1 条件变量3.3.2 信号量/灯 网络编程系列文章&#xff1a; 第1章 Linux系统编程入门&#xff08;上&#xff09; 第1章 Linux系统…

返回值不同算方法重载么?为什么?

1、典型回答 返回值不同不算方法重载 方法重载&#xff08;Overloading&#xff09;是指在同一个类中定义了多个同名方法&#xff0c;但它们的参数列表不同&#xff0c;方法重载要求方法&#xff1a; 名称相同参数类型、参数个数或参数顺序&#xff0c;至少有一个不同 方法…

QT----计算器

目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接&#xff1a;基于qt的计算器 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点&#xff0c;同时对按钮分组进行样式编辑&#xff0c;添加字符串name,为number&#xff0c;其他按键为other。之前的文章…

2024会声会影 软件介绍、下载,功能介绍及问题解答

会声会影正式版是一款使用起来十分件便捷的影视后期视频编辑处理软件&#xff0c;会声会影正式版操作简单&#xff0c;还具备了独特创意、灵活有趣等特点&#xff0c;并且软件还具备了上百种滤镜和特效、调控速度、从多机新增视讯片段等等功能&#xff0c;会声会影官方版便捷好…

2024上海网络安全产业创新大会成功举办,天空卫士成为焦点

2月28日&#xff0c;由上海市经济和信息化委员会、上海市普陀区人民政府主办的2024上海网络安全产业创新大会在上海跨国采购会展中心举办。天空卫士受邀参加2023年重点行业网络安全解决方案揭榜结果发布暨合作签约仪式&#xff0c;并参加了工业互联网安全产业创新论坛和数据安全…

【Python】新手入门学习:什么是python解释器,它的作用是什么?

【Python】新手入门学习&#xff1a;什么是python解释器&#xff0c;它的作用是什么&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基…

Day37:安全开发-JavaEE应用JNDI注入RMI服务LDAP服务JDK绕过调用链类

目录 JNDI注入-RMI&LDAP服务 JNDI远程调用-JNDI-Injection JNDI远程调用-marshalsec JNDI-Injection & marshalsec 实现原理 JNDI注入-FastJson漏洞结合 JNDI注入-JDK高版本注入绕过 思维导图 Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文…