database

package
v0.0.0-...-1c8b26b Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CommonID

type CommonID struct {
	ID int `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;"`
}

type Condition

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

条件

type HistProcDef

type HistProcDef struct {
	gorm.Model
	CommonID
	ProcID    int       `gorm:"column:proc_id;type:INT UNSIGNED NOT NULL;comment:流程ID"`
	Name      string    `gorm:"column:name;type:VARCHAR(250) NOT NULL;comment:流程名字;"`
	Version   int       `gorm:"column:version;type:INT UNSIGNED NOT NULL DEFAULT 1;default:1;comment:版本号"`
	Resource  string    `gorm:"column:resource;type:TEXT NOT NULL;comment:流程定义模板"`
	UserID    string    `gorm:"column:user_id;type:VARCHAR(250) NOT NULL;comment:创建者ID"`
	Source    string    `` /* 155-byte string literal not displayed */
	CreatTime LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:创建时间"`
}

流程定义历史表

func (*HistProcDef) TableName

func (hd *HistProcDef) TableName() string

type HistProcExecution

type HistProcExecution struct {
	gorm.Model

	//	ID          int       `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;"`
	ProcID      int       `gorm:"index:ix_proc_id;column:proc_id;type:INT UNSIGNED NOT NULL;comment:流程ID"`
	ProcVersion int       `gorm:"column:proc_version;type:INT UNSIGNED NOT NULL;comment:流程版本号"`
	NodeID      string    `gorm:"column:node_id;type:VARCHAR(250) NOT NULL;comment:节点ID"`
	NodeName    string    `gorm:"column:node_name;type:VARCHAR(250) NOT NULL;comment:节点名称"`
	PrevNodeID  string    `gorm:"column:prev_node_id;type:VARCHAR(250) DEFAULT NULL;default NULL;comment:上级节点ID"`
	NodeType    int       `` /* 126-byte string literal not displayed */
	IsCosigned  int       `gorm:"column:is_cosigned;type:TINYINT NOT NULL;comment:是否会签"`
	CreateTime  LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default NOW();comment:创建时间"`
}

流程节点执行关系定义历史表

func (*HistProcExecution) TableName

func (he *HistProcExecution) TableName() string

type HistProcInst

type HistProcInst struct {
	//CommonID
	gorm.Model
	ProcInstID    int       `gorm:"index:ix_proc_inst_id;column:proc_inst_id;type:INT UNSIGNED NOT NULL;comment:流程实例ID"`
	ProcID        int       `gorm:"column:proc_id;type:INT NOT NULL;index:ix_proc_id;comment:流程ID"`
	ProcVersion   int       `gorm:"column:proc_version;type:INT UNSIGNED NOT NULL;comment:流程版本号"`
	BusinessID    string    `gorm:"column:business_id;type:VARCHAR(250) DEFAULT NULL;default:NULL;comment:业务ID"`
	Starter       string    `gorm:"index:ix_starter;column:starter;type:VARCHAR(250) NOT NULL;comment:流程发起人用户ID"`
	CurrentNodeID string    `gorm:"column:current_node_id;type:VARCHAR(250) NOT NULL;comment:当前进行节点ID"`
	CreateTime    LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:创建时间"`
	Status        int       `gorm:"column:status;type:TINYINT DEFAULT 0 ;default 0;comment:0:未完成(审批中) 1:已完成(通过) 2:撤销"`
}

流程实例历史表

func (*HistProcInst) TableName

func (h *HistProcInst) TableName() string

type HistProcInstVariable

type HistProcInstVariable struct {
	gorm.Model

	//	ID         int    `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;"`
	ProcInstID int    `gorm:"index:ix_proc_inst_id;column:proc_inst_id;type:INT UNSIGNED NOT NULL;comment:流程实例ID"`
	Key        string `gorm:"column:key;type:VARCHAR(250) NOT NULL;comment:变量key"`
	Value      string `gorm:"column:value;type:VARCHAR(250) NOT NULL;comment:变量value"`
}

流程实例变量历史表

func (*HistProcInstVariable) TableName

func (hivv *HistProcInstVariable) TableName() string

type HistProcTask

type HistProcTask struct {
	gorm.Model

	//	CommonID
	TaskID             int       `gorm:"index:ix_task_id;column:task_id;type:INT UNSIGNED NOT NULL;comment:任务ID"`
	ProcID             int       `gorm:"index:ix_proc_id;column:proc_id;type:INT UNSIGNED NOT NULL;comment:流程ID,冗余字段,偷懒用"`
	ProcInstID         int       `gorm:"index:ix_proc_inst_id;column:proc_inst_id;type:INT UNSIGNED NOT NULL;comment:流程实例ID"`
	BusinessID         string    `gorm:"column:business_id;type:VARCHAR(250) DEFAULT NULL;default:NULL;comment:业务ID,冗余字段,偷懒用"`
	Starter            string    `gorm:"index:ix_starter;column:starter;type:VARCHAR(250) NOT NULL;comment:流程发起人用户ID,冗余字段,偷懒用"`
	NodeID             string    `gorm:"column:node_id;type:VARCHAR(250) NOT NULL;comment:节点ID"`
	NodeName           string    `gorm:"column:node_name;type:VARCHAR(250) NOT NULL;comment:节点名称"`
	PrevNodeID         string    `` /* 213-byte string literal not displayed */
	IsCosigned         int       `gorm:"column:is_cosigned;type:TINYINT DEFAULT 0;default:0;comment:0:任意一人通过即可 1:会签"`
	BatchCode          string    `` /* 180-byte string literal not displayed */
	UserID             string    `gorm:"index:ix_user_id;column:user_id;type:VARCHAR(250) NOT NULL;comment:分配用户ID"`
	Status             int       `gorm:"column:status;type:TINYINT DEFAULT 0;default:0;comment:任务状态:0:初始 1:通过 2:驳回"`
	IsFinished         int       `` /* 205-byte string literal not displayed */
	Comment            string    `gorm:"column:comment;type:TEXT;default:NULL;comment:任务备注"`
	ProcInstCreateTime LocalTime `gorm:"column:proc_inst_create_time;type:DATETIME NOT NULL;comment:流程实例创建时间,冗余字段,偷懒用"`
	CreateTime         LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:系统创建任务时间"`
	FinishedTime       LocalTime `gorm:"index:ix_finished_time;column:finished_time;type:DATETIME DEFAULT NULL;default:NULL;comment:处理任务时间"`
}

任务历史表

func (*HistProcTask) TableName

func (hpt *HistProcTask) TableName() string

type HybridGateway

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

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

type Instance

type Instance struct {
	ProcInstID    int       `gorm:"column:id;"`             //流程实例ID
	ProcID        int       `gorm:"column:proc_id"`         //流程ID
	ProcName      string    `gorm:"column:name"`            //流程名称
	ProcVersion   int       `gorm:"column:proc_version"`    //流程版本号
	BusinessID    string    `gorm:"column:business_id"`     //业务ID
	Starter       string    `gorm:"column:starter"`         //流程发起人用户ID
	CurrentNodeID string    `gorm:"column:current_node_id"` //当前进行节点ID
	CreateTime    LocalTime `gorm:"column:create_time"`     //创建时间
	Status        int       `gorm:"column:status"`          //0:未完成(审批中) 1:已完成(通过) 2:撤销
}

type LocalTime

type LocalTime time.Time

gorm中,定义数据表datetime字段类型为time.time时,查询返回格式类似2023-09-19T14:41:28+08:00 这种格式对人不友好,亦对前端处理不友好(js时间处理函数较弱) 故使用自定义类型,对时间格式做格式化处理

var LTime *LocalTime

func (*LocalTime) MarshalJSON

func (t *LocalTime) MarshalJSON() ([]byte, error)

func (*LocalTime) Now

func (t *LocalTime) Now() LocalTime

func (*LocalTime) Scan

func (t *LocalTime) Scan(v interface{}) error

func (*LocalTime) String

func (t *LocalTime) String() string

func (*LocalTime) UnmarshalJSON

func (t *LocalTime) UnmarshalJSON(data []byte) error

func (LocalTime) Value

func (t LocalTime) Value() (driver.Value, error)

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 ProcDef

type ProcDef struct {
	gorm.Model
	//ID        int       `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;comment:流程ID"`
	Name      string    `gorm:"column:name;type:VARCHAR(250) NOT NULL;comment:流程名字;uniqueIndex:uix_name_source"`
	Version   int       `gorm:"column:version;type:INT UNSIGNED NOT NULL DEFAULT 1;default:1;comment:版本号"`
	Resource  string    `gorm:"column:resource;type:TEXT NOT NULL;comment:流程定义模板"`
	UserID    string    `gorm:"column:user_id;type:VARCHAR(250) NOT NULL;comment:创建者ID"`
	Source    string    `` /* 183-byte string literal not displayed */
	CreatTime LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:创建时间"`
	Process   Process   `gorm:"-" json:"process"`
}

流程定义表

func (*ProcDef) TableName

func (pd *ProcDef) TableName() string

type ProcExecution

type ProcExecution struct {
	gorm.Model

	//	ID          int       `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;"`
	ProcID      int       `gorm:"index:ix_proc_id;column:proc_id;type:INT UNSIGNED NOT NULL;comment:流程ID"`
	ProcVersion int       `gorm:"column:proc_version;type:INT UNSIGNED NOT NULL;comment:流程版本号"`
	NodeID      string    `gorm:"column:node_id;type:VARCHAR(250) NOT NULL;comment:节点ID"`
	NodeName    string    `gorm:"column:node_name;type:VARCHAR(250) NOT NULL;comment:节点名称"`
	PrevNodeID  string    `gorm:"column:prev_node_id;type:VARCHAR(250) DEFAULT NULL;default NULL;comment:上级节点ID"`
	NodeType    int       `` /* 126-byte string literal not displayed */
	IsCosigned  int       `gorm:"column:is_cosigned;type:TINYINT NOT NULL;comment:是否会签"`
	CreateTime  LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default NOW();comment:创建时间"`
}

流程节点执行关系定义表

func (*ProcExecution) TableName

func (pe *ProcExecution) TableName() string

type ProcInst

type ProcInst struct {
	gorm.Model
	//ID            int       `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;comment:流程实例ID"`     //流程实例ID
	ProcID        int       `gorm:"column:proc_id;type:INT NOT NULL;index:ix_proc_id;comment:流程ID"`                    //流程ID
	ProcVersion   int       `gorm:"column:proc_version;type:INT UNSIGNED NOT NULL;comment:流程版本号"`                      //流程版本号
	BusinessID    string    `gorm:"column:business_id;type:VARCHAR(250) DEFAULT NULL;default:NULL;comment:业务ID"`       //业务ID
	Starter       string    `gorm:"index:ix_starter;column:starter;type:VARCHAR(250) NOT NULL;comment:流程发起人用户ID"`      //流程发起人用户ID
	CurrentNodeID string    `gorm:"column:current_node_id;type:VARCHAR(250) NOT NULL;comment:当前进行节点ID"`                //当前进行节点ID
	CreateTime    LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:创建时间"`         //创建时间
	Status        int       `gorm:"column:status;type:TINYINT DEFAULT 0 ;default 0;comment:0:未完成(审批中) 1:已完成(通过) 2:撤销"` //0:未完成(审批中) 1:已完成(通过) 2:撤销
}

流程实例表

func (*ProcInst) TableName

func (pi *ProcInst) TableName() string

type ProcInstVariable

type ProcInstVariable struct {
	gorm.Model

	//	ID         int    `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;"`
	ProcInstID int    `gorm:"index:ix_proc_inst_id;column:proc_inst_id;type:INT UNSIGNED NOT NULL;comment:流程实例ID"`
	Key        string `gorm:"column:key;type:VARCHAR(250) NOT NULL;comment:变量key"`
	Value      string `gorm:"column:value;type:VARCHAR(250) NOT NULL;comment:变量value"`
}

流程实例变量表

func (*ProcInstVariable) TableName

func (piv *ProcInstVariable) TableName() string

type ProcTask

type ProcTask struct {
	gorm.Model

	//ID                 int       `gorm:"primaryKey;column:id;type:INT UNSIGNED NOT NULL AUTO_INCREMENT;comment:任务ID"`
	ProcID             int       `gorm:"index:ix_proc_id;column:proc_id;type:INT UNSIGNED NOT NULL;comment:流程ID,冗余字段,偷懒用"`
	ProcInstID         int       `gorm:"index:ix_proc_inst_id;column:proc_inst_id;type:INT UNSIGNED NOT NULL;comment:流程实例ID"`
	BusinessID         string    `gorm:"column:business_id;type:VARCHAR(250) DEFAULT NULL;default:NULL;comment:业务ID,冗余字段,偷懒用"`
	Starter            string    `gorm:"index:ix_starter;column:starter;type:VARCHAR(250) NOT NULL;comment:流程发起人用户ID,冗余字段,偷懒用"`
	NodeID             string    `gorm:"column:node_id;type:VARCHAR(250) NOT NULL;comment:节点ID"`
	NodeName           string    `gorm:"column:node_name;type:VARCHAR(250) NOT NULL;comment:节点名称"`
	PrevNodeID         string    `` /* 213-byte string literal not displayed */
	IsCosigned         int       `gorm:"column:is_cosigned;type:TINYINT DEFAULT 0;default:0;comment:0:任意一人通过即可 1:会签"`
	BatchCode          string    `` /* 180-byte string literal not displayed */
	UserID             string    `gorm:"index:ix_user_id;column:user_id;type:VARCHAR(250) NOT NULL;comment:分配用户ID"`
	Status             int       `gorm:"column:status;type:TINYINT DEFAULT 0;default:0;comment:任务状态:0:初始 1:通过 2:驳回"`
	IsFinished         int       `` /* 205-byte string literal not displayed */
	Comment            string    `gorm:"column:comment;type:TEXT;default:NULL;comment:任务备注"`
	ProcInstCreateTime LocalTime `gorm:"column:proc_inst_create_time;type:DATETIME NOT NULL;comment:流程实例创建时间,冗余字段,偷懒用"`
	CreateTime         LocalTime `gorm:"column:create_time;type:DATETIME DEFAULT NOW();default:NOW();comment:系统创建任务时间"`
	FinishedTime       LocalTime `gorm:"index:ix_finished_time;column:finished_time;type:DATETIME DEFAULT NULL;default:NULL;comment:处理任务时间"`
}

任务表

func (*ProcTask) TableName

func (pt *ProcTask) TableName() string

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 //任务可以执行“直接提交到上一个驳回我的节点”
	CanRevoke                   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