Files
ArmedPolice/app/common/model/work_instance.go
2021-11-18 09:51:39 +08:00

119 lines
4.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"`
UID uint64 `gorm:"column:uid;type:int;default:0;comment:用户uuid" json:"-"`
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"` // 当前阶段协助状态,确认是否需要下一阶段协助
SupplierID uint64 `gorm:"column:supplier_id;type:int(11);default:0;comment:供应商ID外修维修单位ID" json:"supplier_id"`
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:"-"`
Status WorkInstanceStatus `gorm:"column:status;type:tinyint(1);default:0;comment:工单状态" json:"status"`
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{}
}