记录自己造流程引擎轮子(一)

本文记录作者自己动手构建流程引擎的过程,主要涉及前期设计如模板表、节点表和模板关联表的设计,并分享了个人在gitee上的项目地址,供读者查看逐步更新的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程引擎

发现写一点逻辑就更新下博客,有点麻烦,还是后端逻辑写完了在来更新了,可以去文章下方看看我gitee提交的代码,陆续更改吧!!!

流程引擎对于工作中,时刻在使用,最简单的就是请假,需要填写相关信息,提交给上级,然后再上一级,逐级下去,完成自己的请假。
以前使用activiti流程引擎实现工作上的任务扭转,基本就是通过调用api获取process的对象,基于此来进行一些逻辑判断。而现在因为工作不使用activiti,那么就只能开始了造轮子系列,前端菜鸟这里就只展示自己后端逻辑了。

前期设计

模板表设计(并不完整,后续补充)

1.模板表:用于记录流程模型
2.节点表:用于记录流程节点,与模板表关联
3.模板关联表:用于记录模型与表单关联

package com.process.processengine.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class BaseEntity {
   
   
    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    private String id;
    private Date createTime;
    private Date updateTime;
    private String createBy;
    private String updateBy;
}

package com.process.processengine.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@TableName("process_model")
@ApiModel(value="模板", description="模板")
public class ProcessModelEntity extends BaseEntity{
   
   

    @ApiModelProperty(value = "模板名")
    private String modelName;

    @ApiModelProperty(value = "是否启用 0否 1是")
    private Integer modelStatus = 0;
}

package com.process.processengine.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@ApiModel(value = "节点信息")
@TableName("process_model_node")
@Accessors(chain = true)
public class ProcessModelNodeEntity extends BaseEntity{
   
   
    @ApiModelProperty(value = "节点code")
    private String nodeCode;

    @ApiModelProperty(value = "节点名")
    private String nodeName;

    @ApiModelProperty(value = "节点类型 0开始节点 1普通节点 2判断节点 3退回到上一步节点 4退回到开始节点 5结束节点 (类型等扩展)")
    private Integer nodeType;

    @ApiModelProperty(value = "模板id")
    private String modelId;

    @ApiModelProperty(value = "下一节点code")
    private String nextNodeCode;

    @ApiModelProperty(value = "下一节点名")
    private String nextNodeName;

    @ApiModelProperty(value = "参与类型 机构0 人员1 角色2")
    private Integer participationType;

    @ApiModelProperty(value = "参与类型code 机构id 人员id 角色id")
    private String participationCode;

    @ApiModelProperty(value = "判断条件")
    private String paramCondition;
}

package com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值