关于java:一款简易的Java工作流框架

一、工程简介

一款易于应用的工作流设计器,内置丰盛的API保障工作流失常运行,数据库操作框架为mybatis-plus

二、装置

下载:https://gitee.com/gs_work/eas…

进入启动器目录

cd easy-process-boot-starter

通过Maven打包

装置到本地Maven仓库:

#jar包形式装置(装置装置记得用工程下的pom文件笼罩本地仓库的)
mvn install:install-file -Dfile=jar包门路 -DgroupId=com.shallow.universe -DartifactId=process-spring-boot-starter -Dversion=1.0.0 -Dpackaging=jar
#在文件夹中装置
mvn clean install

导入启动器resource/mysql目录下的process.sql文件到本人的数据库

三、配置

创立SpringBoot工程引入依赖

<dependency>
    <groupId>com.shallow.universe</groupId>
    <artifactId>easy-process-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

配置文件(application.yml)配置流程引擎参数(可选)

#后置处理器扫描门路,流程设计重置是否同步工作ID
shallow:
  process:
    task-processor-packages: com.example.processor
    replace-task-if-reset: true

启动类开启流程设计(@EnableProcessDesign)

@SpringBootApplication
@EnableProcessDesign
@MapperScan(basePackages = {"com.example.mapper"})
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

四、应用步骤

1. 拜访http://host:port/shallow-ui/p…

2. 在流程设计模块设计流程并保留

3. 用@ProcessEntity注解标注要做流程的表名曾经要开的流程名称,用@PrimaryKey注解标注出主键

@ProcessEntity(table = "leaves", process = "销假流程")
@Data
@Accessors(chain = true)
public class Leaves {

    @PrimaryKey
    @TableId(value = "sid", type = IdType.AUTO)
    private Long sid;

    @TableField(value = "content")
    private String content;

    @TableField(value = "days")
    private String days;
}
4. 调用办法开启流程,gs为用户名,soft为部门(可选)
@SpringBootTest(classes = Application.class)
public class ApplicationTests {

    @Autowired
    private ProcessEngine processEngine;
    @Autowired
    private LeavesService leavesService;

    @Test
    public void test02() {
        Leaves leaves = new Leaves().setContent("123").setDays("2");
        leavesService.save(leaves);

        processEngine.taskServiceInstance().runTask(leaves, "gs", "soft");
    }

5. 调用办法进行审批

    @Test
    public void test04() {
        TaskStep taskStep = new TaskStep();

        taskStep.setUser("guest").setRole("经理")
                .setTaskId(1L).setOpinion(ProcessConstant.APPROVE_ALLOW_STATUS)
                .setReason("批准").setStageId(1L);

        processEngine.taskStepServiceInstance().nextStep(taskStep);
    }

6.查问本人的审批单

    @Test
    public void test03() {
        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());
    }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理