117 lines
3.9 KiB
Go
117 lines
3.9 KiB
Go
package model
|
|
|
|
import (
|
|
"ArmedPolice/utils"
|
|
"strings"
|
|
)
|
|
|
|
// WorkInstance 工单数据模型
|
|
type WorkInstance struct {
|
|
Model
|
|
ModelTenant
|
|
OrderNo string `gorm:"column:order_no;type:varchar(30);default:null;comment:工单单号" json:"order_no"`
|
|
Kind WorkInstanceKind `gorm:"column:kind;type:tinyint(1);default:0;comment:工单类型" json:"kind"`
|
|
Title string `gorm:"column:title;type:varchar(30);default:null;comment:工单标题" json:"title"`
|
|
EquipmentID uint64 `gorm:"column:equipment_id;type:int(11);default:0;comment:装备ID" json:"equipment_id"`
|
|
PlateNumber string `gorm:"column:plate_number;type:varchar(10);default:null;comment:车牌号" json:"plate_number"`
|
|
Breakdown string `gorm:"column:breakdown;type:varchar(150);default:null;comment:故障" json:"breakdown"`
|
|
Priority WorkInstancePriority `gorm:"column:priority;type:tinyint(1);default:1;comment:工单优先级" json:"priority"`
|
|
Schedule uint64 `gorm:"column:schedule;type:int(11);default:1;comment:工单进度" json:"schedule"`
|
|
IsAssist WorkInstanceAssist `gorm:"column:is_assist;type:tinyint(1);default:0;comment:协助状态" json:"is_assist"` // 当前阶段协助状态,确认是否需要下一阶段协助
|
|
Status WorkInstanceStatus `gorm:"column:status;type:tinyint(1);default:0;comment:工单状态" json:"status"`
|
|
Remark string `gorm:"column:remark;type:varchar(255);default:null;comment:备注信息" json:"remark"`
|
|
Distribution string `gorm:"column:distribution;type:varchar(255);default:null;comment:配送信息" json:"-"`
|
|
ModelDeleted
|
|
ModelAt
|
|
}
|
|
|
|
// WorkInstanceDistribution 配送信息
|
|
type WorkInstanceDistribution struct {
|
|
Name string `json:"name"`
|
|
Mobile string `json:"mobile"`
|
|
Address string `json:"address"`
|
|
}
|
|
|
|
// WorkInstanceKind 工单类型
|
|
type WorkInstanceKind int
|
|
|
|
const (
|
|
// WorkInstanceKindForOutside 外修
|
|
WorkInstanceKindForOutside WorkInstanceKind = iota + 1
|
|
// WorkInstanceKindForWithin 内修
|
|
WorkInstanceKindForWithin
|
|
)
|
|
|
|
// WorkInstancePriority 工单优先级
|
|
type WorkInstancePriority int
|
|
|
|
const (
|
|
// WorkInstancePriorityForCommonly 一般
|
|
WorkInstancePriorityForCommonly WorkInstancePriority = iota + 1
|
|
// WorkInstancePriorityForUrgent 紧急
|
|
WorkInstancePriorityForUrgent
|
|
// WorkInstancePriorityForVeryUrgent 非常紧急
|
|
WorkInstancePriorityForVeryUrgent
|
|
)
|
|
|
|
// WorkInstanceStatus 工单状态
|
|
type WorkInstanceStatus int
|
|
|
|
const (
|
|
// WorkInstanceStatusForOngoing 进行中
|
|
WorkInstanceStatusForOngoing WorkInstanceStatus = iota
|
|
// WorkInstanceStatusForComplete 已完成
|
|
WorkInstanceStatusForComplete
|
|
)
|
|
|
|
// WorkInstanceAssist 协助状态
|
|
type WorkInstanceAssist int
|
|
|
|
const (
|
|
// WorkInstanceAssistForNot 否
|
|
WorkInstanceAssistForNot WorkInstanceAssist = iota
|
|
// WorkInstanceAssistForYes 是
|
|
WorkInstanceAssistForYes
|
|
)
|
|
|
|
func (m *WorkInstance) TableName() string {
|
|
return "work_instance"
|
|
}
|
|
|
|
// SetBreakdownAttribute 设置故障信息
|
|
func (m *WorkInstance) SetBreakdownAttribute(value []uint64) {
|
|
out := make([]string, 0)
|
|
|
|
for _, v := range value {
|
|
out = append(out, utils.UintToString(v))
|
|
}
|
|
m.Breakdown = strings.Join(out, ",")
|
|
}
|
|
|
|
// GetBreakdownAttribute 获取故障信息
|
|
func (m *WorkInstance) GetBreakdownAttribute() []uint64 {
|
|
value := strings.Split(m.Breakdown, ",")
|
|
out := make([]uint64, 0)
|
|
|
|
for _, v := range value {
|
|
out = append(out, utils.StringToUnit64(v))
|
|
}
|
|
return out
|
|
}
|
|
|
|
// SetDistributionAttribute 设置配送信息
|
|
func (m *WorkInstance) SetDistributionAttribute(value *WorkInstanceDistribution) {
|
|
m.Distribution = utils.AnyToJSON(value)
|
|
}
|
|
|
|
// GetDistributionAttribute 获取配送信息
|
|
func (m *WorkInstance) GetDistributionAttribute() *WorkInstanceDistribution {
|
|
out := new(WorkInstanceDistribution)
|
|
_ = utils.FromJSON(m.Distribution, out)
|
|
return out
|
|
}
|
|
|
|
func NewWorkInstance() *WorkInstance {
|
|
return &WorkInstance{}
|
|
}
|