activiti基础应用

Proxmox(pve)集群(4)存储(1)配置分布式存储ceph 它使用一种称为CRUSH(Controlled Replication Under Scalable Hashing)算法的数据分布算法来将数据均匀地分布在多个存储节点上,并确保数据的冗余和容错。它负责管理数据的分布、冗余和自动修复。PVE支持本地存储、LVM、NFS、iSCSI、CephFS、RBD、ZFS等存储方式,我这里使用两种存储方式,一种是通过ceph实现分布式存储,一种是通过truenas实现集中式存储。自我管理和自动恢复:Ceph具有自我管理的特性,可以动态地调整和优化存储集群的配置。 阅读详情

花了这么久的时间,终于把所有的异常都撸完,终于可以撸实例了
这里写图片描述

package com.shikun.activiti;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.zip.ZipInputStream;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.junit.Test;




public class HellowWorld {
     ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();

    /**
     * 使用默认配置 1、配置文件必须在classpath根目录下
     * 2、配置文件名称必须为activiti-context.xml或者activiti.cfg.xml
     * 3、配置文件中配置对象的id必须为processEngineConfiguration 4、工厂对象的id必须为processEngine
     */
       @Test
        public  void  test1(){
              ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();
        }
       /**
         * 部署流程定义,操作的数据表:act_re_deployment(部署表)、act_re_procdef(流程定义表)、
         * act_ge_bytearray(二进制表)
     * @throws FileNotFoundException 
         */
       @Test
       public void test2() throws FileNotFoundException{
              //创建一个部署构建器对象
           //方式一:加载单个的流程定义文件
            DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();
              //读取流程定义文件
            /*    deploymentBuilder.addClasspathResource("qjlc.bpmn");
              deploymentBuilder.addClasspathResource("qjlc.png");
              //部署流程定义
              Deployment deployment = deploymentBuilder.deploy();
              System.out.println(deployment.getId());*/

            //方式二:加载zip文件
              ZipInputStream zipInputStream  = new ZipInputStream( new FileInputStream(new  File("d:\\process.zip")));
              deploymentBuilder.addZipInputStream(zipInputStream);
              deploymentBuilder.deploy();
       }
       /**
        * 查询流程定义,操作数据表:act_re_procdef
        */
       @Test
       public void test3(){
             //流程定义查询对象
           ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();
           List<ProcessDefinition> list = query.list();
           for (ProcessDefinition processDefinition : list) {
               System.out.println("id = "+processDefinition.getId()+"name = "+processDefinition.getName()+"varsion = "
                                              +processDefinition.getVersion()+"key = " +processDefinition.getKey());
        }
       }

       /**
        * 根据流程定义启动流程实例,操作的数据表:act_ru_execution(流程实例表)、act_ru_task(任务表)
        * 方式二:根据流程定义key启动流程实例(建议)-----可以根据当前最新版本的流程定义启动流程实例
        */
       @Test
       public void test4(){
//          String processDefinitionId = "qjlc:1:304";
//          ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId );
//         System.out.println(processInstance.getId());
               String processDefinitionKey ="qjlc";
               ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey);
               System.out.println(processInstance.getId()+processInstance.getProcessDefinitionId());
       }
       /**
        * 查询个人任务,操作的数据表:act_ru_task(任务表)
        */
       @Test
        public void test6() {
            // 任务查询对象
            TaskQuery query = processEngine.getTaskService().createTaskQuery();
            query.taskAssignee("张三");// 根据办理人过滤
            query.orderByTaskCreateTime().desc();
            List<Task> list = query.listPage(0, 10);
            for (Task task : list) {
                System.out.println("id = " + task.getId() + " name = "
                        + task.getName() + " processInstanceId = "
                        + task.getProcessInstanceId());
            }
        }
       /**
         * 办理个人任务,操作的数据表:act_ru_execution(流程实例表)、act_ru_task(任务表)
         */
        @Test
       public void test7(){
            TaskQuery query = processEngine.getTaskService().createTaskQuery();
            query.taskAssignee("张三");
            query.orderByTaskCreateTime().desc();
            List<Task> list = query.list();
            for (Task task : list) {
                System.out.println(task.getId());
            }
       }
        /**
         * 删除流程定义
         */
        @Test
        public void test8(){
              String deploymentId = "701";   //部署id
            boolean cascade = true;   //级联删除
            processEngine.getRepositoryService().deleteDeployment(deploymentId, cascade );
        }
        /**
         * 删除流程实例
         */
        @Test
        public void test9(){
            String processInstanceId = "1201";
            String deleteReason = "不请假了 哈哈哈";
            processEngine.getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason);
        }
}
双目摄像头全景解析:从几何光学到深度智能 双目视觉系统基于仿生学原理,通过水平排列的双摄像头模拟人眼视差机制实现三维感知。其核心是通过标定、校正、匹配等算法流程,将视差转换为深度信息,最终生成三维点云。该系统在自动驾驶、机器人导航、工业检测等领域有广泛应用,但面临弱纹理、重复图案等挑战。未来发展趋势包括与事件相机、深度学习等技术的融合,进一步提升精度和动态性能。 阅读详情

相关推荐

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 587

Activiti6.0(一)Activiti-app的安装使用及流程入门

目录 一、前言 二、Activiti简介 三、Activiti-app安装使用 四、创建第一个流程 1、创建用户 2、创建流程定义 3、测试流程 五、使用Activiti-admin查看历史记录 六、获取xml文件 七、工作流小结 一、前言 在流程服务方面也工作了挺长时间,项目上的工作流框架也在中途重构了一下子,底层工作流也从原先的手写到之后的重构成开源工作流框架Activ...

清茶的博客 1万+

Cube.js 安装避坑指南:从零到一键启动

本文是一份详细的Cube.js安装避坑指南,旨在帮助开发者从零开始顺利启动Cube.js。文章重点强调了安装前的环境准备,包括Node.js版本、包管理工具和项目路径等关键“地基”,并深入解析了使用npx安装的优势、数据库类型选择以及数据库连接配置的核心步骤与常见陷阱,确保您能高效完成安装并成功启动服务。

weixin_29218509的博客 429

【入门篇】Activiti流程实例启动

需求 对于部署好的流程,启动该流程,开始走业务流程,保证流程顺利完成的第一步就是开个好头 涉及到的activiti表 1.act_ru_execution插入一条数据,表明当前流程实例的当前状态(该哪一级执行了) 2.act_ru_task:插入一条当前执行任务实例 3.act_ru_identitylink:任务参与者数据表。主要存储当前节点参与者的信息。插入参与者信息 方案 根据...

好学若饥,谦卑若愚 6683

AI使用指南:6个超实用的Prompt提示词模板

最近越来越多人开始接触AI,但其实想要让AI更懂你,关键是掌握对的提示词模板!今天就给大家分享6种超实用的Prompt提示词模板,不管你是小白还是老手都能用

程序员世杰 8177

OpenSSL玩转证书链:从Windows CA根证书到签发多域名/IP的服务器证书全攻略

本文详细介绍了如何使用OpenSSL在Windows环境下构建私有CA体系,从创建CA根证书到签发支持多域名/IP的服务器证书的全流程。通过实战指南,读者可以掌握零成本证书管理技术,灵活配置SAN扩展,并了解在Nginx、Apache等主流服务器中的证书部署方法,适用于企业内网、IoT设备等HTTPS加密场景。

weixin_28731223的博客 440

Activiti学习一:Activiti基本介绍

这段时间在学习Activiti,网上找了一些资料,感觉挺不错的,给汇总一下,一方面怕关掉后就找不到了,另一方面也方便后面的人能更快上手,于是就写了这么一篇文章。 工作流介绍:工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递信息的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 通俗的说...

qq_35247674的博客 871

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

activiti基础介绍

1、工作流基本概念 工作流:业务过程的部分或整体在计算机应用环境下的自动化 工作流管理系统:工作流的定义和管理,按照在系统中预定义好的工作流规则进行工作流实例的执行。 工作流管理系统的目标:管理工作流程以确保工作在正确的时间被期望的人员执行–在自动化进行的业务过程中插入人工的执行和干预。 2、工作流生命周期 定义 业务人员收集业务需求并转化为流程定义,交与开发人员加工转化为计算机...

wangxiaohua_001的博客 1352

DJI O2协议物理层逆向工程解析:揭开无人机通信的神秘面纱

DJI的O2协议是其OcuSync传输技术的最新演进,应用于Mini 2、Mavic Air 2、Mavic Air 2s和Mavic 3等无人机模型。这种协议结合了多种先进无线通信技术,能够在远距离提供稳定可靠的低延迟连接。O2协议物理层(PHY)是OSI模型的最底层,负责在物理媒介上传输原始数据比特流。它定义了电气特性、调制方式、编码方案、数据传输速率和同步机制等。DJI O2协议的物理层逆向工程是一个复杂但极具价值的领域。

QQ_778132974的博客 2389

备战2025数学建模国赛(算法46):多目标优化

本篇博客将深入浅出地介绍多目标优化的核心概念、主流算法,并重点结合一个数学建模竞赛的经典案例,提供完整的Python代码实现,助你在未来的竞赛中游刃有余。它通过寻找帕累托最优解集,完美地诠释了“鱼与熊掌不可兼得”的权衡思想,为最终决策提供科学依据。这些问题都包含多个相互冲突的目标,传统的单目标优化方法(如梯度下降、单纯形法)对此无能为力,因为它们无法同时优化多个目标。在数学建模竞赛中,我们面临的绝大多数问题都不是单一的“最好”,而是充满权衡与妥协的“最优”。记住,成功的建模不仅在于解出问题,更在于清晰地。

YOLO 285

工作流activity_全球第一免费开源ERP Odoo 最新版工作流审批定义详解

ODOO在10版本之后就删除了workflow。在11、12代码里,可以发现了其他实现工作流的方式。拿PLM的工程变更单为例。在每个阶段,我们都可以配置多个审批用户,而批准类型为三种:批准,但审批是可选的;必须批准;仅备注。很好奇。看看代码。阶段的对象为“mrp.eco.stage”:class MrpEcoStage(models.Model): _name = 'mrp.eco.stage' ...

weixin_39622332的博客 702

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2140

Activiti笔记(二) —— 基础应用及入门介绍

引入pom依赖 <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency> <!

成长笔记 243

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Activiti 7 配置及相关流程一站式介绍(包含基础流程及网关应用)

本文介绍了activit7的配置和流程相关信息,基于bpm设计构建xml进行工作流生成。是刚接触工作流学习的入门文章,欢迎大家参考评论~

轨迹的博客 3614

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Activiti入门指南:零基础搭建第一个工作流应用

使用BPMN 2.0规范创建报销审批流程图。主要包含三个节点:员工提交报销申请、主管审批、财务处理。每个节点要有明确的处理人设置。Activiti提供了可视化设计器,也可以在IDE中直接编写XML。

EmeraldWolf23的博客 374

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Activiti的介绍

Activiti的介绍 一、背景介绍 公司最近接了一个监狱AB门系统的项目,在对项目进行调研时,发现客户的关注点主要是在AB门流程这块,项目大部分功能都是审批流程和单据流动状态等。而之前公司的项目关于流程主要都是在表中设置状态后使用代码进行流程控制,正好基于此项目,将工作流框架整合到项目中,记录整合过程中框架知识和在整合过程中的问题。 二、Activiti与JBPM对比 在进行工作流框架选择上,根据市场占用率主要有Activiti和jBPM。既然这样,我们就在这两个框架中选择一个,由于首次引入项目,主要考虑

weixin_42057844的博客 624

Activiti(一)基础篇

一、Activiti 基础篇 二、Activiti 介绍 2.1 介绍 2.2

qq_42082278的博客 445

【Activiti7零基础入门到精通】(一) Activiti7概述

Activiti7零基础入门到精通(一)Activiti7概述,工作流介绍

三两肉的博客 1万+

【真干货】Activiti7工作流如何使用?看这里

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目 标的实现”。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则 等)。Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 4218

activiti 多部门审批_Activiti 基本介绍

简介这两天工作中要用到Activiti,就简单学习了下,做一个记录,好脑子不如烂笔头,记下来牢靠些,来吧,话不多说,一个字:干。Activiti是什么,为什么要用它Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),可以定义流程、执行流程并以不同方式对其实现运行。(巴拉巴拉一大堆,其实我也...

weixin_30015183的博客 1716

Activiti实战01_认识Activiti

什么是ActivitiActiviti是为解决工作流而创建的一套流程引擎。举个最简单的例子,请假流程就是一个工作流,从开始到审批到结束,像流一样的贯穿整个流程。在工作中最常见的就是OA了。工作流总是以任务(Task)的形式驱动人处理业务或者驱动业务系统自动完成作业。有了工作流之后,作为流程中的一员,我们只需要关心自己在流程中的待办任务,而不用关心其他人的待办任务。之所以称为Activiti是因为在...

随便写写 339

第2章 什么是Activiti7

目录 第2章 什么是Activiti7 2.1Activiti 介绍 2.1.1 BPM 2.1.2 BPM 软件 2.1.3 BPMN 2.2Activit 如何使用 2.2.1部署Activit 2.2.2流程定义 2.2.3流程定义部署 2.2.4启动一个流程实例(ProcessInstance) 2.2.5用户查询待办任务(Task) 2.2.6用户办理任务 2.2.7流程结束 第2章 什么是Activiti7 2.1Activiti 介绍 Alfresco 软件在

qq_42053493的博客 645

Activiti学习(五)——基础构件

本文主要介绍activiti构建流程定义时使用的基础构件:需要和Activiti学习(六)——基本事件一起理解 下图时idea中actiBPM插件中构件流程图使用的基本构件: 构件主要有开始事件、中间事件、边界事件、结束事件四种 。下面是各种构件的详细介绍。 StartEve...

417

Activiti(基础)

Activiti(基础) 一. 工作流简述 1.1工作流是什么 工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“**使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现**”。工作流就是通过计算机技术对业务流程进行自动化管理。实现多个参与者按照预定的流程去自动执行业务流程。工作流管理系统的...

本人热爱计算机技术,欢迎爱好技术的朋友一起交流 864

Activiti入门

简介 这两天工作中要用到Activiti,就简单学习了下,做一个记录,好脑子不如烂笔头,记下来牢靠些,来吧,话不多说,一个字:干。 Activiti是什么,为什么要用它 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),可以定义流程、执行流程并以不同方式对其实现运行。(巴拉巴拉一大堆,其实我也没听懂)。 还是用自己的化总结下吧。 其实就是一个工作审批流,在我们日常生活中,审批是非常常见的,加班打车,需要把发

qq_31493411的博客 435
上一篇: 程序员的3年之痒改变的不止薪水
下一篇: Access restriction: The type JPEGImageEncoder is not accessible due to restriction
shi-Yjanuary
博客等级 码龄10年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值