基于jeecgboot的flowable流程增加节点自动跳过功能

news2024/9/23 11:23:04

为了满足有时候需要在某个节点没有人员处理的时候需要自动跳过,所以增加了这个功能。

一、FlowComment意见里增加一个类型8,跳过流程

/**
 * 流程意见类型
 *
 */
public enum FlowComment {

    /**
     * 说明
     */
    NORMAL("1", "正常意见"),
    REBACK("2", "退回意见"),
    REJECT("3", "驳回意见"),
    DELEGATE("4", "委派意见"),
    ASSIGN("5", "转办意见"),
    STOP("6", "终止流程"),
    RECALL("7","撤回意见"),
    SKIP("8","跳过流程");
二、写一个流程自动跳过的任务监听器,当然可以根据自己需要的逻辑进行编写

 下面的逻辑是任务处理人为空的时候自动跳过

package com.nbcio.modules.flowable.listener;

import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.TaskListener;

import org.flowable.task.service.delegate.DelegateTask;
import org.jeecg.common.util.SpringContextUtils;

import com.nbcio.modules.flowable.common.enums.FlowComment;

/**
 * 自动跳过流程任务监听
 * @author nbacheng
 * @date 2023-02-18
*/

public class AutoSkipTaskListener implements TaskListener{

	private TaskService taskService = SpringContextUtils.getBean(TaskService.class);
	
    @Override
    public void notify(DelegateTask delegateTask) {
    	String processInstanceId = delegateTask.getProcessInstanceId();
        String taskId = delegateTask.getId();
        // 流程实例为空则结束
        if(StringUtils.isBlank(processInstanceId) && StringUtils.isBlank(taskId)){
            return;
        }
        if(StringUtils.isBlank(delegateTask.getAssignee())){
          // 添加处理意见
          taskService.addComment(taskId, processInstanceId,FlowComment.SKIP.getType(), FlowComment.SKIP.getRemark() + ":审批人为空字段跳过");
          // 自动审批通过
          taskService.complete(taskId);
        }
        
    }

}

三、前端处理

显示意见的地方增加下面代码

<el-tag type="warning" v-if="commentitem.type === '8'"> {{commentitem.comment}}</el-tag>  <!--跳过信息-->

四、需要跳过的节点增加任务监听器,如下图所示

 同时设置对应的这个节点审批人为空

五、效果图

 

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

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

相关文章

Java8新特性全面

文章目录一、函数式接口二、Java内置函数式接口三、接口内允许添加默认实现的方法四、Lambda表达式五、方法引用六、Stream API七、Stream API示例1. Filter过滤2. Sorted排序3. Map转换4. Match匹配5. Count计数6. Reduce7. Parallel-Streams并行流8. Map集合八、新时间日期接…

天津+发展得到的权重

添加评分添加评分的依据高德地图找到如图数据&#xff0c;容积率体现楼层高度近似反映人口密度&#xff0c;繁华程度近似等价霓虹灯照明时长住房容积率具体是指在城市规划区的某一宗地内&#xff0c;房屋的总建筑面积与宗地面积的比值&#xff0c;分为实际容积率和规划容积率两…

链表学习基础

链表 通过指针串联在一起的线性结构&#xff0c;每个节点由数据域和指针域两部分组成。链表节点在内存中的存储通常不是连续的&#xff0c;各节点通过指针连接在一起&#xff0c;其内存分布大致如下图所示。 定义 单链表 struct ListNode {// DATATYPE 可以是任意存放数据的…

HTTP基础知识

关键字&#xff1a;一问一答用于和服务器交互什么是HTTPHTTP是个应用层协议&#xff0c;是HTTP客户端和HTTP服务器之间的交互数据格式。所以这里有个实例&#xff1a;在浏览网页的时候&#xff0c;浏览器会向服务器发送一个HTTP请求&#xff0c;告诉服务器我想访问什么..然后服…

图论学习03

图神经网络模型介绍 将图神经网络分为基于谱域上的模型和基于空域上的模型&#xff0c;并按照发展顺序详解每个类别中的重要模型。 基于谱域的图神经网络 谱域上的图卷积在图学习迈向深度学习的发展历程上起到了关键性的作用。三个具有代表性的谱域图神经网络 谱图卷积网络切…

c++中超级详细的一些知识,新手快来

目录 2.文章内容简介 3.理解虚函数表 3.1.多态与虚表 3.2.使用指针访问虚表 4.对象模型概述 4.1.简单对象模型 4.2.表格驱动模型 4.3.非继承下的C对象模型 5.继承下的C对象模型 5.1.单继承 5.2.多继承 5.2.1一般的多重继承&#xff08;非菱形继承&#xff09; 5.2…

奥地利、爱沙尼亚重要机构或正成为俄黑客目标

近日&#xff0c;网络安全公司Sekoia有一项新发现&#xff1a;由俄罗斯政府支持的黑客组织“图拉”&#xff08;Turla&#xff09;正在对奥地利经济商会、北约平台、波罗的海国防学院&#xff08;Baltic Defense College&#xff09;发动一系列攻击。这是Sekoia公司基于Google …

One Fuzzing Strategy to Rule Them All

One Fuzzing Strategy to Rule Them All 文章目录One Fuzzing Strategy to Rule Them All相关链接概述背景实验测试RQ1&#xff1a;RQ2相关工作总结最后相关链接 One Fuzzing Strategy to Rule Them All 参考链接 概述 在本文中作者提出了对变异策略havoc的研究&#xff0c…

linux异步IO编程实例分析

在Direct IO模式下&#xff0c;异步是非常有必要的&#xff08;因为绕过了pagecache&#xff0c;直接和磁盘交互&#xff09;。linux Native AIO正是基于这种场景设计的&#xff0c;具体的介绍见&#xff1a;KernelAsynchronousI/O (AIO)SupportforLinux。下面我们就来分析一下…

大数值金额大写转换(C语言)

关于大数值金额大写转换&#xff0c;在财务管理的应用方面没什么意义。一般来说&#xff0c;千亿级&#xff0c;万亿级的数值就够了。因为在国家级层面是以亿为单位的&#xff0c;也就表达为千万亿&#xff0c;万万亿。在企业层面数值金额转换设置到千亿、万亿就行了。大的集团…

RabbitMQ 入门到应用 ( 四 ) 与SpringBoot整合

5.与SpringBoot整合 5.1.SpringBoot项目中配置环境 5.1.1.pom.xml配置依赖 在 pom.xml 配置文件中声明依赖, 通过Maven导入 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> &l…

天津数据得出的权重

目标层&#xff1a;评价光污染准则层为四个大类&#xff1a;道路、商业、住宅、绿化方案层为25个小类指标但每个大类只和自己下面的几个小类指标相关&#xff0c;不是图示的下面两层全有关联或许考虑把25个小指标提取公共部分&#xff0c;比如路灯亮度、高度、和外墙的距离、光…

RocketMQ 2m-2s-async搭建

本文档是RocketMQ4.8两主两从异步复制的搭建过程&#xff08;也可单机部署&#xff0c;更简单一点&#xff09;,包括监控台界面. 写在前面&#xff1a;本文档适用于4.8版本&#xff0c;其它版本的坑没有踩过不清楚。我是用VMware启了两台虚拟机&#xff0c;环境&#xff1a;Ce…

10 OpenCV图像识别之人脸追踪

文章目录1 级联分类器2 人脸跟踪2.1 相关方法2.2 代码示例CV2中内置了人脸识别等常用的算法&#xff0c;这类算法是通过级联分类器实现的。 1 级联分类器 级联分类器的核心思想是使用多个分类器级联&#xff0c;每个分类器负责检测不同的特征&#xff0c;逐步排除不可能是目标…

Prometheus离线tar.gz包安装

Prometheus离线tar.gz包安装实验环境一、部署前操作二、Master2.1下载2.2解压2.3更改服务目录名称2.4创建系统服务启动文件2.5配置修改2.6启动并设置开机自启2.7访问2.8添加node节点2.8.1 添加方法2.8.2修改Prometheus配置&#xff08;Master&#xff09;实验环境节点ipcpu内存…

数据结构:归并排序和堆排序

归并排序 归并排序(merge sort)是利用“归并”操作的一种排序方法。从有序表的讨论中得知,将两个有序表“归并”为一个有序表,无论是顺序表还是链表,归并操作都可以在线性时间复杂度内实现。归并排序的基本操作是将两个位置相邻的有序记录子序列R[i…m]R[m1…n]归并为一个有序…

已解决zipfile.BadZipFile: File is not a zip file

已解决Python openpyxl 读取Excel文件&#xff0c;抛出异常zipfile.BadZipFile: File is not a zip file的正确解决&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 文章目录报错问题报错翻译报错原因解决方法联系博主免费帮忙解决报错报错问题 一个小伙伴遇到问题跑…

python基于django+vue微信小程序的校园二手闲置物品交易

在大学校园里,存在着很多的二手商品,但是由于信息资源的不流通以及传统二手商品信息交流方式的笨拙,导致了很多仍然具有一定价值或者具有非常价值的二手商品的囤积,乃至被当作废弃物处理。现在通过微信小程序的校园二手交易平台,可以方便快捷的发布和交流任何二手商品的信息,并…

【CS224W】(task2)传统图机器学习和特征工程

note 和CS224W课程对应&#xff0c;将图的基本表示写在task1笔记中了&#xff1b;传统图特征工程&#xff1a;将节点、边、图转为d维emb&#xff0c;将emb送入ML模型训练Traditional ML Pipeline Hand-crafted feature ML model Hand-crafted features for graph data Node-l…

被滥用的Slack服务:APT29针对意大利的攻击活动分析

背景 APT29&#xff0c;又名CozyBear, Nobelium, TheDukes&#xff0c;奇安信内部编号APT-Q-77&#xff0c;被认为是与东欧某国政府有关的APT组织。该组织攻击活动可追溯至2008年&#xff0c;主要攻击目标包括西方政府组织机构、智囊团。APT29曾多次实施大规模鱼叉攻击&#x…