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.hqwc.cn/news/535023.html

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

相关文章

小白刷题CTF show web方向

web01 右键查看源代码&#xff0c;再使用在线解密&#xff0c;就可以得出答案了 web02 sql注入 admin or 11 或者 1 or 11可以登录查询几个字段&#xff1a;1 or 11 order by 3 # 使用此语句&#xff0c;判断列数。 order by 3不会出错&#xff0c;但是order by 4就没有显示…

羊大师分析,羊奶滋养养生新境界

羊大师分析&#xff0c;羊奶滋养养生新境界 羊奶&#xff0c;这一古老而神秘的乳制品&#xff0c;如今正以其独特的滋养价值和美味口感&#xff0c;引领着养生新风尚。它不仅是营养丰富的天然食品&#xff0c;更是健康与美味的完美结合&#xff0c;为我们的生活带来了全新的体…

Java复习01 集合概念

Java复习01 集合 在Java中&#xff0c;集合&#xff08;Collections&#xff09;是一种用来存储一组对象的结构。想象一下有一个装东西的箱子&#xff0c;这个箱子可以装很多不同类型的东西&#xff0c;例如书、DVD或者玩具。Java的集合也是这样&#xff0c;但是它专门用来装载…

C++作业day2

封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <iostre…

网工必须记住的30条网络排障命令

下午好&#xff0c;我的网工朋友。 作为网工&#xff0c;排障是基本操作。遇到网络故障的时候&#xff0c;你一般会最先使用哪条命令进行排障&#xff1f; 在网络运维工作中&#xff0c;掌握排障命令可以帮助我们快速定位和解决各种网络故障&#xff0c;确保网络稳定运行。 今…

web项目抢购模块测试

web项目抢购模块测试 抢购模块(先测后台,再测前台)流程抢购用例编写测试点--后台抢购用例编写测试点--前台用例设计 面试题1: 当你发现研发实现的结果与需求不一致时怎么办? 需求评审的时候:需要确认所有输入类型的校验是针对单独的输入框做的还是在最终提交时校验 抢购模块 需…

前端框架的发展史介绍框架特点

目录 1.前端框架的发展历程 2.官网、优缺点、使用场景 2.1 jQuery 2.2 AngularJS 2.3 React 2.4 Vue.js 2.5 Angular 1.前端框架的发展历程 jQuery&#xff08;2006年&#xff09;&#xff1a;jQuery是一个非常流行的JavaScript库&#xff0c;用于简化DOM操作和事件处理…

鸿蒙原生应用元服务开发-WebGL网页图形库开发着色器绘制彩色三角形

着色器绘制彩色三角形 使用WebGL开发时&#xff0c;为保证界面图形显示效果&#xff0c;请使用真机运行。 此场景为使用WebGL绘制的彩色三角形图形&#xff08;GPU绘制&#xff09;。开发示例如下&#xff1a; 创建页面布局。index.hml示例如下&#xff1a; <div class&quo…

白话transformer(二):Q K V矩阵

前面说了注意力机制的工作原理&#xff0c;本次来看看为了实现自注意力机制&#xff0c;Q K V矩阵是如何实现的。 B站视频 白话transformer&#xff08;二&#xff09; 1、语义相似性 我们在前面说了&#xff0c;embedding的作用就是相似的单词会被赋予相似的数字&#xff0c…

线程与进程的区别、协程

1【线程与进程的区别、协程】 【1】 进程跟线程 进程&#xff08;Process&#xff09;和 线程&#xff08;Thread&#xff09;是操作系统的基本概念&#xff0c; 但是它们比较抽象&#xff0c; 不容易掌握。关于多进程和多线程&#xff0c;教科书上对经典的一句话“进程是资源分…

算法-差分-797.差分

题目 思路 本思路来自&#xff1a;AcWing 797. 差分 【c详细题解】 - AcWing 代码 n,m map(int,input().split()) alist(map(int,input().split())) a.insert(0,0) # 使下标从1开始 b[0 for _ in range(n5)] # b的列表开得足够大才不会超出index for i in range(1,n1):b[i]a…

算法-图的存储,图的转置,拓扑排序

1.图的存储 图用来对关系建模&#xff0e;图是节点和边构成的集合&#xff0e;节点反映图的元素集合&#xff0c;边反映图的元素集合中元素间的关系&#xff0e; 上述是由五个节点&#xff0c;三条边构成的结构&#xff0e;我们可以用图对其建模&#xff0e; 对由节点&#x…