model

package
v0.1.11-alpha Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2023 License: MIT Imports: 1 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 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 Process

type Process struct {
	ProcessName  string   //流程名
	Source       string   //来源(引擎可能被多个系统、组件等使用,这里记下从哪个来源创建的流程
	RevokeEvents []string //流程撤销事件.在流程实例撤销时触发
	Nodes        []Node   //节点
}

type Task

type Task struct {
	TaskID             int        `gorm:"column:id"`                     //任务ID
	BusinessID         string     `gorm:"column:business_id"`            //业务ID
	Starter            string     `gorm:"column:starter"`                //流程起始人
	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"`                //评论意见
	ProcInstCreateTime *LocalTime `gorm:"column:proc_inst_create_time;"` //流程实例创建时间
	CreateTime         *LocalTime `gorm:"column:create_time;"`           //任务创建时间
	FinishedTime       *LocalTime `gorm:"column:finished_time;"`         // 处理任务时间
}

type TaskAction

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

type Variable

type Variable struct {
	Key   string
	Value string
}

Jump to

Keyboard shortcuts

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