From fcc5eaccffbbd0980077cf3fc4707566546f879a Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期四, 17 八月 2023 17:31:18 +0800 Subject: [PATCH] 增加plc pkg, 增加获取任务,完成任务,开始任务接口 --- model/procedures.go | 80 +++++++++++++++++++++++++++++++-------- 1 files changed, 63 insertions(+), 17 deletions(-) diff --git a/model/procedures.go b/model/procedures.go index 1dfc611..245f2e4 100644 --- a/model/procedures.go +++ b/model/procedures.go @@ -1,39 +1,53 @@ package model import ( + "apsClient/model/request" + "apsClient/pkg/logx" "apsClient/pkg/sqlitex" + "encoding/json" "fmt" "gorm.io/gorm" ) type ( Procedures struct { - gorm.Model `json:"-"` - Id int `json:"id"` - ProcedureId string `json:"orderId"` - ProcedureName string `json:"product"` - DeviceId string `json:"deviceId"` - StartTime string `json:"startTime"` - EndTime string `json:"endTime"` - WorkHours string `json:"workHours"` - InputMaterialsId int `json:"-"` - InputMaterials *Materials `json:"inputMaterials" gorm:"foreignKey:InputMaterialsId"` - OutputMaterialsId int `json:"-"` - OutputMaterials *Materials `json:"outputMaterials" gorm:"foreignKey:InputMaterialsId"` + gorm.Model `json:"-"` + ID int `gorm:"primarykey"` + OrderID string `gorm:"index;type:varchar(191);not null;comment:璁㈠崟ID" json:"-"` + Status ProcedureStatus `json:"-"` + ProcedureData string `json:"-"` //request.ProductProcedure json涓� + ProceduresInfo request.ProductProcedure `json:"procedure" gorm:"-"` //request.ProductProcedure 瀵硅薄 } ProceduresSearch struct { Procedures - Order string - PageNum int - PageSize int - Orm *gorm.DB - Preload bool + Order string + PageNum int + PageSize int + Orm *gorm.DB + Preload bool + StartTimeMin int64 } +) + +type ProcedureStatus int + +const ( + ProcedureStatusUnFinished ProcedureStatus = 1 + ProcedureStatusFinished ProcedureStatus = 2 ) func (slf *Procedures) TableName() string { return "procedures" +} +func (slf *Procedures) AfterFind() { + var proceduresInfo request.ProductProcedure + err := json.Unmarshal([]byte(slf.ProcedureData), &proceduresInfo) + if err != nil { + logx.Errorf("AfterFind Unmarshal err: %v", err.Error()) + return + } + slf.ProceduresInfo = proceduresInfo } func NewProceduresSearch(db *gorm.DB) *ProceduresSearch { @@ -58,6 +72,25 @@ return slf } +func (slf *ProceduresSearch) SetOrderId(orderId string) *ProceduresSearch { + slf.OrderID = orderId + return slf +} +func (slf *ProceduresSearch) SetStartTimeMin(ts int64) *ProceduresSearch { + slf.StartTimeMin = ts + return slf +} + +func (slf *ProceduresSearch) SetId(id int) *ProceduresSearch { + slf.ID = id + return slf +} + +func (slf *ProceduresSearch) SetStatus(status ProcedureStatus) *ProceduresSearch { + slf.Status = status + return slf +} + func (slf *ProceduresSearch) SetPreload(preload bool) *ProceduresSearch { slf.Preload = preload return slf @@ -69,10 +102,23 @@ if slf.Order != "" { db = db.Order(slf.Order) } + + if slf.OrderID != "" { + db = db.Where("order_id = ?", slf.OrderID) + } + if slf.Preload { db = db.Preload("InputMaterials").Preload("OutputMaterials") } + if slf.StartTimeMin != 0 { + db = db.Where("start_time >= ?", slf.StartTimeMin) + } + + if slf.Status != 0 { + db = db.Where("status = ?", slf.Status) + } + return db } -- Gitblit v1.8.0