springboot集成工作流(成熟完整代码demo,可直接使用,运用在多个实际项目案例)

一、项目形式

springboot+vue+activiti集成了activiti在线编辑器,快速开发平台,可插拔工作流服务。

二、项目介绍

本项目拥有用户管理,部门管理,代码生成,系统监管,报表,大屏展示,业务审批等功能。功能太强大,只能粗矿的介绍,所见即所得,体验一下吧。

三、工作流

1.流程模型绘制

进入流程模型菜单,创建流程模型,这里涉及到网关流转,需要设置流转条件,我们这里是三十岁以上的走下面分支,三十岁以下的走上面的分支。点击分支线,设置流转条件即可。${age<=30}。保存后我们在列表中点击发布即可。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

 

2.流程配置

发布后,就到了已发布模型列表,在启用之前,我们需要先对进行节点设置和关联具体单据。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 审批人员可以根据角色,直接指定人,部门,部门负责人,发起人部门负责人来进行配置,基本上满足所有的流转需求,并且可以设置表单变量。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 设置流程表单,目前就做了一个请假的测试表单,并且可以对相应角色授权,做到自定义权限。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 设置完后启动即可。

3.流程提交

填写请假表单 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

提交单据,优先级分为普通,重要,紧急。消息通知可以选择站内通知,短信,邮件。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

提交之后可以撤回单据。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 查看流程流转进度情况。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

也可以挂起,删除流程。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

4.流程审批

办理人审批列表,可以处理单据(驳回或者通过),也可以委托他人待办。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 审批通过。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70 委托他人待代。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

审批通过后进入已办列表。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

年龄大于30岁,进入下面分支流转。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

审批通过。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

5.待办信息推送

站内消息推送。 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTAzOTY3Nw==,size_16,color_FFFFFF,t_70

总结

代码及其他资料获取:软件开发全套资料-CSDN博客

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是Spring Boot集成R语言读取CSV文件数据后使用mlr3verse进行机器学习算法的详细代码demo: 1. 首先,在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.renjin.cran</groupId> <artifactId>renjin-script-engine</artifactId> <version>0.9.2755</version> </dependency> <dependency> <groupId>org.renjin.cran</groupId> <artifactId>mlr3verse</artifactId> <version>0.1.3</version> </dependency> ``` 2. 在Spring Boot的application.properties文件中添加以下配置: ```properties # 配置R语言的工作目录 renjin.workingDirectory=/path/to/working/directory # 配置CSV文件的路径 data.file.path=/path/to/csv/file ``` 3. 创建R脚本文件,用于读取CSV文件数据并进行机器学习算法处理。在本例中,我们创建名为"mlr3-demo.r"的R脚本文件,并在其中添加以下代码: ```R # 导入相关的R包 library(mlr3verse) # 读取CSV文件数据 data <- read.csv(Sys.getenv("DATA_FILE_PATH")) # 选择数据集中的列 data <- data[, c("col1", "col2", "col3")] # 将数据集划分为训练集和测试集 split <- floor(nrow(data) * 0.8) train <- data[1:split, ] test <- data[(split + 1):nrow(data), ] # 定义机器学习任务 task <- mlr_task("classif", train, target = "col3") # 定义学习器 learner <- mlr_learner("classif.rpart") # 定义评估指标 measure <- mlr_measures("classif.ce") # 运行交叉验证 resample <- mlr_resample(task, learner, resampling = mlr_resampling_cv, measures = measure) # 输出交叉验证结果 print(resample$measures) ``` 4. 在Spring Boot中使用Java代码执行R脚本。在本例中,我们使用名为"RScriptExecutor.java"的Java类,并在其中添加以下代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import org.renjin.script.RenjinScriptEngine; import org.renjin.script.RenjinScriptEngineFactory; public class RScriptExecutor { public void execute() throws IOException { // 创建RenjinScriptEngine实例 RenjinScriptEngineFactory factory = new RenjinScriptEngineFactory(); RenjinScriptEngine engine = factory.getScriptEngine(); // 设置R语言的工作目录 String workingDir = System.getenv("RENJIN_WORKING_DIRECTORY"); engine.eval("setwd('" + workingDir + "')"); // 读取CSV文件路径 String dataFilePath = System.getenv("DATA_FILE_PATH"); // 创建HashMap对象,用于设置环境变量 Map<String, String> env = new HashMap<>(); env.put("DATA_FILE_PATH", dataFilePath); // 执行R脚本文件 engine.eval(new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/mlr3-demo.r"))), env); } } ``` 5. 在Spring Boot的Controller类中调用RScriptExecutor类的execute方法,以便在Spring Boot中运行R脚本文件。 ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/demo") public String demo() throws IOException { // 执行R脚本文件 new RScriptExecutor().execute(); return "Demo completed"; } } ``` 这样,当我们调用/demo接口时,就会自动执行R脚本文件并输出机器学习算法的交叉验证结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄焖鸡能干四碗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值