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{} }