| | |
| | | package nsq |
| | | |
| | | import ( |
| | | "apsClient/conf" |
| | | "apsClient/model" |
| | | "apsClient/pkg/logx" |
| | | "apsClient/pkg/structx" |
| | | "encoding/json" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | ) |
| | | |
| | | type MsgHandler interface { |
| | |
| | | return err |
| | | } |
| | | for _, task := range tasks { |
| | | taskRecord := model.ScheduleTask{ |
| | | Id: 0, |
| | | OrderId: task.Order.OrderID, |
| | | ProductId: task.Order.ProductID, |
| | | ProductName: task.Order.ProductName, |
| | | Amount: task.Order.Amount, |
| | | Unit: task.Order.Unit, |
| | | StartTime: task.Order.StartTime, |
| | | EndTime: task.Order.EndTime, |
| | | } |
| | | jsonStr, err := json.Marshal(task) |
| | | if err != nil { |
| | | logx.Errorf("ScheduleTask HandleMessage Marshal err: %v, old: %#v", err.Error(), task) |
| | | return err |
| | | } |
| | | taskRecord.Data = string(jsonStr) |
| | | err = model.NewScheduleTaskSearch(nil).Create(&taskRecord) |
| | | if err != nil { |
| | | logx.Errorf("ScheduleTask HandleMessage Create taskRecord err: %v, record: %#v", err.Error(), taskRecord) |
| | | return err |
| | | for _, procedure := range task.Procedures { |
| | | if procedure.DeviceID == conf.Conf.System.DeviceId { //只存储本设备的工序 |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | _, err := model.NewOrderSearch(db).SetOrderId(task.Order.OrderID).First() |
| | | if err == gorm.ErrRecordNotFound { |
| | | var orderRecord model.Order |
| | | err = structx.AssignTo(task.Order, &orderRecord) |
| | | orderRecord.Status = model.OrderStatusUnFinished |
| | | if err != nil { |
| | | logx.Errorf(" structx.Assign task.Order to orderRecord err: %v", err.Error()) |
| | | return err |
| | | } |
| | | if err = model.NewOrderSearch(db).Create(&orderRecord); err != nil { |
| | | return err |
| | | } |
| | | } |
| | | procedureRecord := model.Procedures{ |
| | | OrderID: task.Order.OrderID, |
| | | Status: model.ProcedureStatusUnFinished, |
| | | } |
| | | procedureData, err := json.Marshal(procedure) |
| | | procedureRecord.ProcedureData = string(procedureData) |
| | | if err != nil { |
| | | logx.Errorf(" json.Marshal(procedure) err: %v", err.Error()) |
| | | return err |
| | | } |
| | | return model.NewProceduresSearch(db).Create(&procedureRecord) |
| | | }) |
| | | if err != nil { |
| | | logx.Errorf(" save procedure err: %v", err.Error()) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return nil |