| | |
| | | "encoding/json" |
| | | "fmt" |
| | | "github.com/jinzhu/gorm" |
| | | "strings" |
| | | ) |
| | | |
| | | type ( |
| | | Procedures struct { |
| | | gorm.Model |
| | | WorkOrderID string `gorm:"index;type:varchar(191);not null" json:"-"` |
| | | OrderID string `gorm:"index;type:varchar(191);not null" json:"-"` |
| | | ProductProcedureID string `gorm:"index;type:varchar(191);" json:"productProcedureID"` //产品工序id |
| | | WorkOrderID string `gorm:"index;type:varchar(191);" json:"-"` |
| | | OrderID string `gorm:"index;type:varchar(191);" json:"-"` |
| | | DeviceID string `gorm:"index;type:varchar(191)" json:"deviceId"` |
| | | ProcedureID string `gorm:"index;type:varchar(191)" json:"procedureId"` |
| | | Channel int32 `gorm:"index;" json:"channel"` //通道 |
| | |
| | | EndTime int64 `json:"endTime"` |
| | | RealStartTime int64 `json:"realStartTime"` |
| | | RealEndTime int64 `json:"realEndTime"` |
| | | FinishedQuantity int `gorm:"type:int;" json:"finishedQuantity"` |
| | | Status ProcedureStatus |
| | | ProcedureData string `json:"-"` //common.ProductProcedure json串 |
| | | ProceduresInfo common.ProductProcedure `json:"procedure" gorm:"-"` //common.ProductProcedure 对象 |
| | |
| | | Channels []int32 |
| | | Offset int |
| | | Limit int |
| | | Fields []string |
| | | } |
| | | ) |
| | | |
| | |
| | | return "procedures" |
| | | } |
| | | func (slf *Procedures) AfterFind(db *gorm.DB) error { |
| | | var proceduresInfo common.ProductProcedure |
| | | err := json.Unmarshal([]byte(slf.ProcedureData), &proceduresInfo) |
| | | if err != nil { |
| | | logx.Errorf("AfterFind Unmarshal err: %v", err.Error()) |
| | | return err |
| | | if slf.ProcedureData != "" { |
| | | var proceduresInfo common.ProductProcedure |
| | | err := json.Unmarshal([]byte(slf.ProcedureData), &proceduresInfo) |
| | | if err != nil { |
| | | logx.Errorf("AfterFind Unmarshal err: %v", err.Error()) |
| | | return err |
| | | } |
| | | slf.ProceduresInfo = proceduresInfo |
| | | } |
| | | slf.ProceduresInfo = proceduresInfo |
| | | return nil |
| | | } |
| | | |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetChannel(channel int32) *ProceduresSearch { |
| | | slf.Channel = channel |
| | | func (slf *ProceduresSearch) SetFields(fields []string) *ProceduresSearch { |
| | | slf.Fields = fields |
| | | return slf |
| | | } |
| | | |
| | |
| | | db = db.Where("channel IN (?)", slf.Channels) |
| | | } |
| | | |
| | | if len(slf.Fields) > 0 { |
| | | db = db.Select(strings.Join(slf.Fields, ",")) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |