snakeflow的springboot项目

Gitee搜索“liuxz/snakerflow”,它是spring boot集成了一款国产工作流引擎snakerflow。

下面是安装步骤:

创建数据库snaker-web,字符集设置成utf8mb4和utf8mb4_generic。不然的话,中文插入不进去。
在这里插入图片描述
运行sql命令

CREATE TABLE wf_process (id                VARCHAR(32) PRIMARY KEY NOT NULL comment '主键ID',name              VARCHAR(100) comment '流程名称',display_Name      VARCHAR(200) comment '流程显示名称',type              VARCHAR(100) comment '流程类型',instance_Url      VARCHAR(200) comment '实例url',state             TINYINT(1) comment '流程是否可用',content           LONGBLOB comment '流程模型定义',version           INT(2) comment '版本',create_Time       VARCHAR(50) comment '创建时间',creator           VARCHAR(50) comment '创建人'
)comment='流程定义表';CREATE TABLE wf_order (id                VARCHAR(32) NOT NULL PRIMARY KEY comment '主键ID',parent_Id         VARCHAR(32) comment '父流程ID',process_Id        VARCHAR(32) NOT NULL comment '流程定义ID',creator           VARCHAR(50) comment '发起人',create_Time       VARCHAR(50) NOT NULL comment '发起时间',expire_Time       VARCHAR(50) comment '期望完成时间',last_Update_Time  VARCHAR(50) comment '上次更新时间',last_Updator      VARCHAR(50) comment '上次更新人',priority          TINYINT(1) comment '优先级',parent_Node_Name  VARCHAR(100) comment '父流程依赖的节点名称',order_No          VARCHAR(50) comment '流程实例编号',variable          VARCHAR(2000) comment '附属变量json存储',version           INT(3) comment '版本'
)comment='流程实例表';CREATE TABLE wf_task (id                VARCHAR(32) NOT NULL PRIMARY KEY comment '主键ID',order_Id          VARCHAR(32) NOT NULL comment '流程实例ID',task_Name         VARCHAR(100) NOT NULL comment '任务名称',display_Name      VARCHAR(200) NOT NULL comment '任务显示名称',task_Type         TINYINT(1) NOT NULL comment '任务类型',perform_Type      TINYINT(1) comment '参与类型',operator          VARCHAR(50) comment '任务处理人',create_Time       VARCHAR(50) comment '任务创建时间',finish_Time       VARCHAR(50) comment '任务完成时间',expire_Time       VARCHAR(50) comment '任务期望完成时间',action_Url        VARCHAR(200) comment '任务处理的url',parent_Task_Id    VARCHAR(32) comment '父任务ID',variable          VARCHAR(2000) comment '附属变量json存储',version           TINYINT(1) comment '版本'
)comment='任务表';CREATE TABLE wf_task_actor (task_Id           VARCHAR(32) not null comment '任务ID',actor_Id          VARCHAR(50) not null comment '参与者ID'
)comment='任务参与者表';create table wf_hist_order (id                VARCHAR(32) not null primary key comment '主键ID',process_Id        VARCHAR(32) not null comment '流程定义ID',order_State       TINYINT(1) not null comment '状态',creator           VARCHAR(50) comment '发起人',create_Time       VARCHAR(50) not null comment '发起时间',end_Time          VARCHAR(50) comment '完成时间',expire_Time       VARCHAR(50) comment '期望完成时间',priority          TINYINT(1) comment '优先级',parent_Id         VARCHAR(32) comment '父流程ID',order_No          VARCHAR(50) comment '流程实例编号',variable          VARCHAR(2000) comment '附属变量json存储'
)comment='历史流程实例表';create table wf_hist_task (id                VARCHAR(32) not null primary key comment '主键ID',order_Id          VARCHAR(32) not null comment '流程实例ID',task_Name         VARCHAR(100) not null comment '任务名称',display_Name      VARCHAR(200) not null comment '任务显示名称',task_Type         TINYINT(1) not null comment '任务类型',perform_Type      TINYINT(1) comment '参与类型',task_State        TINYINT(1) not null comment '任务状态',operator          VARCHAR(50) comment '任务处理人',create_Time       VARCHAR(50) not null comment '任务创建时间',finish_Time       VARCHAR(50) comment '任务完成时间',expire_Time       VARCHAR(50) comment '任务期望完成时间',action_Url        VARCHAR(200) comment '任务处理url',parent_Task_Id    VARCHAR(32) comment '父任务ID',variable          VARCHAR(2000) comment '附属变量json存储'
)comment='历史任务表';create table wf_hist_task_actor (task_Id           VARCHAR(32) not null comment '任务ID',actor_Id          VARCHAR(50) not null comment '参与者ID'
)comment='历史任务参与者表';create table wf_surrogate (id                VARCHAR(32) PRIMARY KEY NOT NULL COMMENT '主键ID',process_Name       VARCHAR(100) COMMENT '流程名称',operator          VARCHAR(50) COMMENT '授权人',surrogate         VARCHAR(50) COMMENT '代理人',odate             VARCHAR(64) COMMENT '操作时间',sdate             VARCHAR(64) COMMENT '开始时间',edate             VARCHAR(64) COMMENT '结束时间',state             TINYINT(1) COMMENT '状态'
)COMMENT='委托代理表';
create index IDX_SURROGATE_OPERATOR on wf_surrogate (operator);create table wf_cc_order (order_Id        varchar(32) COMMENT '流程实例ID',actor_Id        varchar(50) COMMENT '参与者ID',creator         varchar(50) COMMENT '发起人',create_Time     varchar(50) COMMENT '抄送时间',finish_Time     varchar(50) COMMENT '完成时间',status          TINYINT(1)  COMMENT '状态'
)comment='抄送实例表';
create index IDX_CCORDER_ORDER on wf_cc_order (order_Id);create index IDX_PROCESS_NAME on wf_process (name);
create index IDX_ORDER_PROCESSID on wf_order (process_Id);
create index IDX_ORDER_NO on wf_order (order_No);
create index IDX_TASK_ORDER on wf_task (order_Id);
create index IDX_TASK_TASKNAME on wf_task (task_Name);
create index IDX_TASK_PARENTTASK on wf_task (parent_Task_Id);
create index IDX_TASKACTOR_TASK on wf_task_actor (task_Id);
create index IDX_HIST_ORDER_PROCESSID on wf_hist_order (process_Id);
create index IDX_HIST_ORDER_NO on wf_hist_order (order_No);
create index IDX_HIST_TASK_ORDER on wf_hist_task (order_Id);
create index IDX_HIST_TASK_TASKNAME on wf_hist_task (task_Name);
create index IDX_HIST_TASK_PARENTTASK on wf_hist_task (parent_Task_Id);
create index IDX_HIST_TASKACTOR_TASK on wf_hist_task_actor (task_Id);alter table wf_task_actoradd constraint FK_TASK_ACTOR_TASKID foreign key (task_Id)references wf_task (id);
alter table wf_taskadd constraint FK_TASK_ORDERID foreign key (order_Id)references wf_order (id);
alter table wf_orderadd constraint FK_ORDER_PARENTID foreign key (parent_Id)references wf_order (id);
alter table wf_orderadd constraint FK_ORDER_PROCESSID foreign key (process_Id)references wf_process (id);
alter table wf_hist_task_actoradd constraint FK_HIST_TASKACTOR foreign key (task_Id)references wf_hist_task (id);
alter table wf_hist_taskadd constraint FK_HIST_TASK_ORDERID foreign key (order_Id)references wf_hist_order (id);
alter table wf_hist_orderadd constraint FK_HIST_ORDER_PARENTID foreign key (parent_Id)references wf_hist_order (id);
alter table wf_hist_orderadd constraint FK_HIST_ORDER_PROCESSID foreign key (process_Id)references wf_process (id);

修改resources/config/develop/application.properties文件

spring.datasource.url = jdbc:mysql://localhost:3306/snaker_web?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = root

password改成您的mysql密码。

启动项目。
用postman发送/deploy请求
在这里插入图片描述
将上面的processId替换TestController代码中的processId

@RequestMapping(value = "/getProcess", method = RequestMethod.GET)public ResponseData getProcess() {String processId = "ad69f85bc8be4391ab689060f0b024ce";String operator = "liuxzh_userId";Map<String, Object> args = new HashMap<String, Object>();args.put("quanju var", "全局变量");Order order = snakerEngineFacade.startInstanceById(processId, operator, args);if (StringUtils.isNotBlank(order.getId())) {System.out.println(order.getId());return ResponseData.ok().putDataValue("message","启动流程实例成功");} else {return ResponseData.notFound();}}

发送/getProcess请求、/getAllProcessNames请求。

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

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

相关文章

Kotlin:泛型

点击查看泛型中文文档 点击查看泛型英文文档 简介 与 Java 类似&#xff0c;Kotlin 中的类也可以有类型参数&#xff1a; class Box<T>(t: T) {var value t }一般来说&#xff0c;要创建这样类的实例&#xff0c;我们需要提供类型参数&#xff1a; val box: Box<…

调试安卓 gles性能瓶颈

目录 下载Arm Performance Studio编译Unity Shader运行malios调试用处和限制 原文请见&#xff1a;参考地址 使用mali offline shader compiler分析shader的性能瓶颈。 下载Arm Performance Studio 下载地址 编译Unity Shader 通常选择GLES3x。 You might need to select G…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

idea配置自定义注释模版和其他模板

项目场景&#xff1a; idea配置自定义模版 自定义注释模版其他模板&#xff0c;包括syso快捷键&#xff0c;swith快捷键等 自定义注释模版 1、File and Code Templates 第一种类创建完后头部自动生成注释模板 打开idea&#xff0c;选择 Settings--> Editor--> File a…

nvm安装不同版本的node

在项目开发过程中&#xff0c;不同项目依赖的node版本不同&#xff0c;但频繁的卸载和安装很麻烦&#xff0c;这篇文章介绍nvm安装过程 1.nvm安装 这个网上随便找一篇跟着安装即可 nvm安装教程 2.nvm安装不同版本的node 网上普遍的方式是&#xff1a; 找到nvm安装目录下的s…

浅谈LockBit勒索病毒

在数字时代&#xff0c;随着科技的飞速发展&#xff0c;网络安全问题愈发凸显。恶意软件和勒索软件等网络威胁正不断演变&#xff0c;其中一款备受关注的勒索软件就是LockBit。 LockBit是一种高度复杂且具有破坏性的勒索软件。与传统的勒索软件相比&#xff0c;LockBit在其攻击…

NVMFS5A160PLZT1G汽车级功率MOSFET P沟道60 V 15A 满足AEC-Q101标准

关于汽车电子AEC Q101车规认证&#xff1f; 是一种针对分立半导体的可靠性测试认证程序&#xff0c;由汽车电子协会发布。这个认证程序主要是为了确保汽车电子产品在各种严苛的条件下能够正常工作和可靠运行。它包括了对分立半导体的可靠性、环境适应性、温度循环和湿度变化等…

新建项目module,但想归到一个目录下面

1. 想建几个module, 例如 component-base-service,component-config-service, 但是module多了会在CloudAction下面显示很多目录, 所以想把它们归到components模块下面去, 类似于下图的效果 2. 创建过程 右击CloudAction 新建 module -> 选maven类型 输入components, 建成后删…

Capture One 23:光影魔术师,细节掌控者mac/win版

Capture One 23&#xff0c;不仅仅是一款摄影后期处理软件&#xff0c;它更是摄影师们的得力助手和创意伙伴。这款软件凭借其卓越的性能、丰富的功能和前沿的技术&#xff0c;为摄影师们带来了前所未有的影像处理体验。 Capture One 23 软件获取 Capture One 23以其强大的色彩…

【C语言】Infiniband驱动mlx4_load_one函数

一、中文注释 以下是针对mlx4_load_one函数的主要代码路径的中文注释。该函数是用于加载并初始化Mellanox网络设备的驱动函数。通过注释&#xff0c;可以了解函数在初始化过程中执行的关键步骤。 /* mlx4_load_one函数&#xff1a;用于加载并初始化PCI设备&#xff08;例如网…

效果图代渲多少钱一张?带你详细了解它的计费规则!

不知道有没有朋友遇到过渲着渲着就崩溃的情况发生&#xff0c;不然也不会去找代渲染的平台/某宝等渠道 也就是为了图能够顺利的跑出来&#xff0c;做了后期处理后&#xff0c;及时交付给客户。 我们以渲染100云渲染来举例&#xff0c;它成立2015年&#xff0c;是一家效果图代…

接口自动化测试框架:Pytest+Allure+Excel

1. Allure 简介 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不仅以 Web 的方式展示了简介的测试结果&#xff0c;而且允许参与开发过程的每个人可以从日常执行的测试中&#xff0c;最大限度地提取有用信息。 Allure 是由 Java 语言开发…

Unity DropDown 组件 详解

Unity版本 2022.3.13f1 Dropdown下拉菜单可以快速创建大量选项 一、 Dropwon属性详解 属性&#xff1a;功能&#xff1a;Interactable此组件是否接受输入&#xff1f;请参阅 Interactable。Transition确定控件以何种方式对用户操作进行可视化响应的属性。请参阅过渡选项。Nav…

Titanic数据分析项目——Kaggle数据分析项目实战1

目前预测准确度达到77.511%, 会持续优化并且更新。 一、特征工程&#xff1a; 1、先对缺失值进行填充&#xff0c;先找到缺失值的位置&#xff0c;数值型数据填充众数&#xff0c;字符数据或者是离散型数据则填充出现最多的数据。 2、标准化数值型数据&#xff0c; 根据标准化…

Vue使用L2Dwidget

1、在根文件index.html中引入live2dw/lib/L2Dwidget.min.js 下载模型的文件&#xff0c;放在本地或者cdn 切换不同的模型 模型地址&#xff1a;https://github.com/xiazeyu/live2d-widget-models showLive2d(name: String) {var live2dWidget document.querySelector("…

专升本 C语言笔记-01 printf 占位符 转义符

目录 一.printf()函数简介 1.1作用 将格式化后的字符串输出(打印东西) 1.2函数原型 1.3返回值 二.常见占位符 2.1.占位符的使用 2.2.格式修饰符 2.3.输出格式说明 三.转义字符 一.printf()函数简介 1.1作用 将格式化后的字符串输出(打印东西) printf…

Python数值方法在工程和科学问题解决中的应用

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 随着计算机技术的不断发展&#xff0c;Python作…

【Python】新手入门学习:详细介绍开放封闭原则(OCP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍开放封闭原则&#xff08;OCP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyT…

MQTT Topic通配符

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

如何不依赖Unity直接解压unitypackage的内容

使用场景 我们都知道unity的资源导出是导出成.unitypackage文件,如果要里面的内容,得打开Unity,将unitypackage导入进去才能看到里面的内容。 但是很多时候我们下了几十个unitypackage资源包,又不清楚好不好用,而且导入之后编译特别慢,unity又不提供批量解压的功能,所…