工作流起始接口以及动态获取view功能

This commit is contained in:
pixel
2020-11-10 17:39:29 +08:00
parent b12bbc74ff
commit f4709f00ab
27 changed files with 874 additions and 368 deletions
+19
View File
@@ -104,6 +104,25 @@ func FindWorkflowProcess(c *gin.Context) {
}
}
// @Tags WorkflowProcess
// @Summary 用id查询工作流步骤
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.WorkflowProcess true "用id查询WorkflowProcess"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /workflowProcess/findWorkflowCreateStep [get]
func FindWorkflowCreateStep(c *gin.Context) {
var workflowProcess model.WorkflowProcess
_ = c.ShouldBindQuery(&workflowProcess)
err, workflow := service.GetWorkflowCreateStep(workflowProcess.ID)
if err != nil {
response.FailWithMessage(fmt.Sprintf("查询失败,%v", err), c)
} else {
response.OkWithData(gin.H{"workflow": workflow}, c)
}
}
// @Tags WorkflowProcess
// @Summary 分页获取WorkflowProcess列表
// @Security ApiKeyAuth
+2 -1
View File
@@ -82,7 +82,8 @@ var Apis = []model.SysApi{
{global.GVA_MODEL{ID: 71, CreatedAt: time.Now(), UpdatedAt: time.Now()}, "/workflowProcess/updateWorkflowProcess", "更新工作流", "workflowProcess", "PUT"},
{global.GVA_MODEL{ID: 72, CreatedAt: time.Now(), UpdatedAt: time.Now()}, "/workflowProcess/findWorkflowProcess", "根据ID获取工作流", "workflowProcess", "GET"},
{global.GVA_MODEL{ID: 73, CreatedAt: time.Now(), UpdatedAt: time.Now()}, "/workflowProcess/getWorkflowProcessList", "获取工作流", "workflowProcess", "GET"},
}
{global.GVA_MODEL{ID: 74, CreatedAt: time.Now(), UpdatedAt: time.Now()}, "/workflowProcess/findWorkflowCreateStep", "获取工作流步骤", "workflowProcess", "GET"},
}
func InitSysApi(db *gorm.DB) (err error) {
return db.Transaction(func(tx *gorm.DB) error {
+1
View File
@@ -41,6 +41,7 @@ var AuthorityMenus = []SysAuthorityMenus{
{"888", 28},
{"888", 29},
{"888", 30},
{"888", 31},
{"8881", 1},
{"8881", 2},
{"8881", 8},
+1
View File
@@ -80,6 +80,7 @@ var Carbines = []gormadapter.CasbinRule{
{PType: "p", V0: "888", V1: "/workflowProcess/updateWorkflowProcess", V2: "PUT"},
{PType: "p", V0: "888", V1: "/workflowProcess/findWorkflowProcess", V2: "GET"},
{PType: "p", V0: "888", V1: "/workflowProcess/getWorkflowProcessList", V2: "GET"},
{PType: "p", V0: "888", V1: "/workflowProcess/findWorkflowCreateStep", V2: "GET"},
{PType: "p", V0: "8881", V1: "/base/login", V2: "POST"},
{PType: "p", V0: "8881", V1: "/user/register", V2: "POST"},
{PType: "p", V0: "8881", V1: "/api/createApi", V2: "POST"},
+1
View File
@@ -40,6 +40,7 @@ var BaseMenus = []model.SysBaseMenu{
{GVA_MODEL: global.GVA_MODEL{ID: 28, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "0", Path: "workflow", Name: "workflow", Hidden: false, Component: "view/workflow/index.vue", Sort: 5, Meta: model.Meta{Title: "工作流功能", Icon: "phone"}},
{GVA_MODEL: global.GVA_MODEL{ID: 29, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "28", Path: "workflowCreate", Name: "workflowCreate", Hidden: false, Component: "view/workflow/workflowCreate/workflowCreate.vue", Sort: 0, Meta: model.Meta{Title: "工作流绘制", Icon: "circle-plus"}},
{GVA_MODEL: global.GVA_MODEL{ID: 30, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "28", Path: "workflowProcess", Name: "workflowProcess", Hidden: false, Component: "view/workflow/workflowProcess/workflowProcess.vue", Sort: 0, Meta: model.Meta{Title: "工作流列表", Icon: "s-cooperation"}},
{GVA_MODEL: global.GVA_MODEL{ID: 31, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "28", Path: "workflowUse", Name: "workflowUse", Hidden: true, Component: "view/workflow/workflowUse/workflowUse.vue", Sort: 0, Meta: model.Meta{Title: "使用工作流", Icon: "video-play"}},
}
func InitSysBaseMenus(db *gorm.DB) (err error) {
+17
View File
@@ -6,6 +6,22 @@ import (
"time"
)
//定义clazz常量
const (
USER_TASK string = "userTask"
SCRIPT_TASK string = "scriptTask"
RECEIVE_TASK string = "receiveTask"
MAIL_TASK string = "mailTask"
TIMER_START string = "timerStart"
MESSAGE_START string = "messageStart"
GATEWAY string = "gateway"
FLOW string = "flow"
START string = "start"
END string = "end"
PROCESS string = "process"
)
type WorkflowProcess struct {
ID string `json:"id" form:"id" gorm:"comment:流程标识;primaryKey;unique;not null"`
CreatedAt time.Time
@@ -47,6 +63,7 @@ type WorkflowNode struct {
DueDate time.Time `json:"dueDate" gorm:"comment:到期时间"`
AssignType string `json:"assignType" gorm:"comment:审批类型"`
AssignValue string `json:"assignValue" gorm:"comment:审批类型值"`
Success bool `json:"success" gorm:"comment:是否成功"`
}
type WorkflowEdge struct {
+1
View File
@@ -14,6 +14,7 @@ func InitWorkflowProcessRouter(Router *gin.RouterGroup) {
WorkflowProcessRouter.DELETE("deleteWorkflowProcessByIds", v1.DeleteWorkflowProcessByIds) // 批量删除WorkflowProcess
WorkflowProcessRouter.PUT("updateWorkflowProcess", v1.UpdateWorkflowProcess) // 更新WorkflowProcess
WorkflowProcessRouter.GET("findWorkflowProcess", v1.FindWorkflowProcess) // 根据ID获取WorkflowProcess
WorkflowProcessRouter.GET("findWorkflowCreateStep", v1.FindWorkflowCreateStep) // 根据ID获取工作流开启步骤
WorkflowProcessRouter.GET("getWorkflowProcessList", v1.GetWorkflowProcessList) // 获取WorkflowProcess列表
}
}
+12 -1
View File
@@ -110,13 +110,24 @@ func UpdateWorkflowProcess(workflowProcess *model.WorkflowProcess) (err error) {
//@function: GetWorkflowProcess
//@description: 获取工作流相关信息
//@param: id string
//@return: err error
//@return: err error,workflowProcess model.WorkflowProcess
func GetWorkflowProcess(id string) (err error, workflowProcess model.WorkflowProcess) {
err = global.GVA_DB.Preload("Nodes").Preload("Edges").Where("id = ?", id).First(&workflowProcess).Error
return
}
//@author: [piexlmax](https://github.com/piexlmax)
//@function: GetWorkflowCreateStep
//@description: 获取工作流步骤信息
//@param: id string
//@return: err error, workflowNodes []model.WorkflowNode
func GetWorkflowCreateStep(id string) (err error, workflowNode model.WorkflowProcess) {
err = global.GVA_DB.Preload("Nodes", "clazz = ?", model.START).Where("id = ?", id).First(&workflowNode).Error
return
}
//@author: [piexlmax](https://github.com/piexlmax)
//@function: GetWorkflowProcessInfoList
//@description: 获取工作流列表