model

package
v0.1.5-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2023 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Condition

type Condition struct {
	Expression string //条件表达式
	NodeID     string //满足条件后转跳到哪个节点
}

条件

type Execution

type Execution struct {
	ProcID      int    `gorm:"column:proc_id"`      //流程ID
	ProcVersion int    `gorm:"column:proc_version"` //流程版本号
	NodeID      string `gorm:"column:node_id"`      //节点ID
	NodeName    string `gorm:"column:node_name"`    //节点名称
	PrevNodeID  string `gorm:"column:prev_node_id"` //上级节点ID
	NodeType    int    `gorm:"column:node_type"`    //流程类型 0:根节点 1:任务节点 2:网关节点 3:结束节点
	IsCosigned  int    `gorm:"column:is_cosigned"`  //是否会签
	CreateTime  string `gorm:"column:create_time"`  //创建时间
}

type HybridGateway

type HybridGateway struct {
	Conditions         []Condition //条件判断节点
	InevitableNodes    []string    //必然执行的节点
	WaitForAllPrevNode int         //0:等于包含网关,只要上级节点有一个完成,就可以往下走   1:等于并行网关,必须要上级节点全部完成才能往下走
}

混合网关,等于activiti中排他、并行网关、包含网关的混合体

type Node

type Node struct {
	NodeID           string        //节点名称
	NodeName         string        //节点名字
	NodeType         NodeType      //节点类型 0:开始节点 1:任务节点,指的是需要人完成的节点 2:网关 3:结束节点
	PrevNodeIDs      []string      //上级节点(不管是任务节点还是结束节点,因为分支的存在,所以它的上级节点可能都会有多个)
	UserIDs          []string      //节点处理人数组
	Roles            []string      //节点处理角色数组。注意,因为系统无法预先知道角色中存在多少用户,所以必须用StartEvents解析角色,将角色中的用户加到UserIDs中
	GWConfig         HybridGateway //网关。只有在节点类型为GateWay的情况下此字段才会有值
	IsCosigned       int           //是否会签  只有任务节点才会用到,会签的情况下需要所有任务通过才能进行下一节点,只要有一人反对,则整个节点驳回
	NodeStartEvents  []string      //节点开始时触发的事件
	NodeEndEvents    []string      //节点结束时触发的事件
	TaskFinishEvents []string      //任务完成(通过、驳回)时触发的事件。节点中可能产生N个任务,任务完成事件,会在每个任务完成时触发
}

type NodeType

type NodeType int
const (
	RootNode    NodeType = 0 //开始(根)节点
	TaskNode    NodeType = 1 //任务节点,指的是需要人完成的节点
	GateWayNode NodeType = 2 //参考activiti的网关.此项目中使用混合网关,等于activiti中排他、并行网关、包含网关的混合体
	EndNode     NodeType = 3 //结束节点,结束节点不需要人参与,到了此节点,则流程实例完成
)

type ProcessDefine

type ProcessDefine struct {
	ID         int    `gorm:"column:id"`          //流程ID
	Name       string `gorm:"column:name"`        //流程名字
	Version    int    `gorm:"column:version"`     //版本号
	Resource   string `gorm:"column:resource"`    //流程定义模板
	UserID     string `gorm:"column:user_id"`     //创建者ID
	Source     string `gorm:"column:source"`      //来源(引擎可能被多个系统、组件等使用,这里记下从哪个来源创建的流程
	CreateTime string `gorm:"column:create_time"` //创建时间
}

type Task

type Task struct {
	TaskID       int    `gorm:"column:id"`            //任务ID
	BusinessID   string `gorm:"column:business_id"`   //业务ID
	ProcID       int    `gorm:"column:proc_id"`       //流程ID
	ProcName     string `gorm:"column:name"`          //流程名称
	ProcInstID   int    `gorm:"column:proc_inst_id"`  //流程实例ID
	NodeID       string `gorm:"column:node_id"`       //节点ID
	NodeName     string `gorm:"column:node_name"`     //节点名称
	PrevNodeID   string `gorm:"column:prev_node_id"`  //上一节点ID
	IsCosigned   int    `gorm:"column:is_cosigned"`   //0:任意一人通过即可 1:会签
	BatchCode    string `gorm:"column:batch_code"`    //批次码.节点会被驳回,一个节点可能产生多批task,用此码做分别
	UserID       string `gorm:"column:user_id"`       //分配用户ID
	Status       int    `gorm:"column:status"`        //任务状态:0:初始 1:通过 2:驳回
	IsFinished   int    `gorm:"column:is_finished"`   // 0:任务未完成 1:处理完成
	Comment      string `gorm:"column:comment"`       //评论意见
	CreateTime   string `gorm:"column:create_time"`   //系统创建任务时间
	FinishedTime string `gorm:"column:finished_time"` // 处理任务时间
}

type TaskAction

type TaskAction struct {
	CanPass                     bool //任务可以执行“通过”
	CanReject                   bool //任务可以执行“驳回”
	CanFreeRejectToUpstreamNode bool //任务可以执行“自由驳回”
	CanDirectlyToWhoRejectedMe  bool //任务可以执行“直接提交到上一个驳回我的节点”
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL