package model import "strings" // WorkSchedule 工单流程数据模型 type WorkSchedule struct { Model Kind WorkScheduleKind `gorm:"column:kind;type:tinyint(1);default:1;comment:工单类型" json:"-"` Title string `gorm:"column:title;type:varchar(30);default:null;comment:标题" json:"title"` Stage int `gorm:"column:stage;type:tinyint(1);default:1;comment:阶段" json:"stage"` Step int `gorm:"column:step;type:tinyint(1);default:1;comment:步骤(1:阶段-1:步骤)" json:"step"` Target WorkScheduleTarget `gorm:"column:target;type:tinyint(1);default:1;comment:对象类型" json:"target"` TargetValue string `gorm:"column:target_value;type:tinyint(1);default:1;comment:对象信息" json:"target_value"` IsCountersign WorkScheduleCountersign `gorm:"column:is_countersign;type:tinyint(1);default:0;comment:是否会签" json:"is_countersign"` ModelDeleted ModelAt } // WorkScheduleKind 工单流程类型 type WorkScheduleKind int const ( // WorkScheduleKindForRepair 维修工单 WorkScheduleKindForRepair WorkScheduleKind = iota + 1 ) // WorkScheduleTarget 工单对象类型 type WorkScheduleTarget int const ( // WorkScheduleTargetForPerson 个人 WorkScheduleTargetForPerson WorkScheduleTarget = iota + 1 // WorkScheduleTargetForRole 角色 WorkScheduleTargetForRole ) // WorkScheduleCountersign 工单会签模式 type WorkScheduleCountersign int const ( // WorkScheduleCountersignForNot 不是会签模式 WorkScheduleCountersignForNot WorkScheduleCountersign = iota // WorkScheduleCountersignForYes 是会签模式 WorkScheduleCountersignForYes ) func (m *WorkSchedule) TableName() string { return "work_schedule" } func (m *WorkSchedule) CountersignStatus() bool { return m.IsCountersign == WorkScheduleCountersignForYes } func (m *WorkSchedule) GetTargetValueAttribute() []string { return strings.Split(m.TargetValue, ",") } func (m *WorkSchedule) SetTargetValueAttribute(value []string) { m.TargetValue = strings.Join(value, ",") } func (m *WorkSchedule) KindTitle() string { if m.Kind == WorkScheduleKindForRepair { return "维修工单" } return "" } func NewWorkSchedule() *WorkSchedule { return &WorkSchedule{} }