当前位置: 首页 > 后端技术 > Java

一个简单的Java工作流框架

时间:2023-04-01 19:42:10 Java

一、项目介绍一个简单易用的工作流设计器,内置丰富的API,保证工作流的正常运行。数据库运行框架为mybatis-plus2.安装下载:https://gitee.com/gs_work/eas...进入starter目录cdeasy-process-boot-starter通过Maven打包到本地Maven仓库:#jar包安装(安装安装记得用项目下的pom文件覆盖本地仓库)mvninstall:install-file-Dfile=jar包路径-DgroupId=com.shallow.universe-DartifactId=process-spring-boot-starter-Dversion=1.0.0-Dpackaging=jar#安装文件夹下的mvncleaninstall将starterresource/mysql目录下的进程.sql文件导入到自己的数据库中3.配置创建SpringBoot项目引入依赖com.shallow.universeeasy-process-boot-starter1.0.0配置文件(application.yml)配置流程引擎参数(可选)#后处理器扫描路径,流程设计重置是否同步任务IDshallow:process:task-processor-packages:com.example.processorreplace-task-if-reset:true启动类开启流程设计(@EnableProcessDesign)@SpringBootApplication@EnableProcessDesign@MapperScan(basePackages={"com.example.mapper"})publicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}四、使用步骤1.访问http://host:port/shallow-ui/p...2.在流程设计模块中设计流程并保存3.使用@ProcessEntity注解标注名称待处理的表和要开启的进程名,使用@PrimaryKey注解标注主键@ProcessEntity(table="leaves",process="leaveprocess")@Data@Accessors(chain=true)publicclassLeaves{@PrimaryKey@TableId(value="sid",type=IdType.AUTO)privateLongsid;@TableField(value="content")私有字符串内容;@TableField(value="days")privateStringdays;}4.调用启动进程的方法,gs为用户名,soft为部门(可选)@SpringBootTest(classes=Application.class)publicclassApplicationTests{@AutowiredprivateProcessEngineprocessEngine;@Autowired私有LeavesServiceleavesService;@Testpublicvoidtest02(){叶子leaves=newLeaves().setContent("123").setDays("2");leavesService.save(叶子);processEngine.taskServiceInstance().runTask(叶子,"gs","软");}5.审批调用方法@Testpublicvoidtest04(){TaskSteptaskStep=newTaskStep();taskStep.setUser("guest").setRole("Manager").setTaskId(1L).setOpinion(ProcessConstant.APPROVE_ALLOW_STATUS).setReason("Agree").setStageId(1L);processEngine.taskStepServiceInstance().nextStep(taskStep);}6.查询自己的审批表@Testpublicvoidtest03(){System.out.println(processEngine.taskServiceInstance().approveUser("admin").page(1,5).getRecords());System.out.println(processEngine.taskServiceInstance().approveRole("主管").executeQuery());System.out.println(processEngine.taskServiceInstance().submitBy("gs").executeQuery());}

最新推荐
猜你喜欢