| | |
| | | StartTime: procedure.StartTime, |
| | | EndTime: procedure.EndTime, |
| | | Status: model.ProcedureStatusWaitProcess, |
| | | Channel: procedure.Channel, |
| | | ProceduresInfo: common.ProductProcedure{}, |
| | | } |
| | | procedureData, err := json.Marshal(procedure) |
| | |
| | | return err |
| | | } |
| | | for _, procedure := range procedureRecords { |
| | | err = model.NewProceduresSearch(db).SetWorkOrderId(procedure.WorkOrderID).SetProcedureId(procedure.ProcedureID).Updates(procedure) |
| | | err = model.NewProceduresSearch(db).SetWorkOrderId(procedure.WorkOrderID).SetProcedureId(procedure.ProcedureID).Upsert(procedure) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | if resp.PlcConfig.Method == "" { |
| | | return nil |
| | | } |
| | | |
| | | resp.PlcConfig.Method.ConvertToEnglish() |
| | | |
| | | var record model.DevicePlc |
| | | err = mapstructure.Decode(resp.PlcConfig, &record) |
| | | if err != nil { |
| | |
| | | logx.Infof("unmarshal process params sync err :%s", err) |
| | | return err |
| | | } |
| | | err = model.NewProcessModelSearch().Save(&processModel) |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | err = model.NewProcessModelSearch().SetOrm(db).SetProduct(processModel.Product).SetProcedure(processModel.Procedure). |
| | | UpdateByMap(map[string]interface{}{"is_new": 0}) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | processModel.IsNew = true |
| | | return model.NewProcessModelSearch().SetOrm(db).Create(&processModel) |
| | | }) |
| | | |
| | | if err != nil { |
| | | logx.Infof("save process params sync err :%s", err) |
| | | return err |
| | | } |
| | | return nil |
| | | } |
| | | |
| | | type DeviceUpdate struct { |
| | | Topic string |
| | | } |
| | | |
| | | func (slf *DeviceUpdate) HandleMessage(data []byte) (err error) { |
| | | logx.Infof("get a device update message :%s", data) |
| | | var device common.Device |
| | | err = json.Unmarshal(data, &device) |
| | | if err != nil { |
| | | logx.Infof("unmarshal device update msg err :%s", err) |
| | | return err |
| | | } |
| | | |
| | | procedures := make([]string, 0, len(device.DeviceProcedureAttr)) |
| | | for _, attr := range device.DeviceProcedureAttr { |
| | | procedures = append(procedures, attr.ProcedureName) |
| | | } |
| | | |
| | | deviceRecord := &model.Device{ |
| | | DeviceID: device.ID, |
| | | Procedures: strings.Join(procedures, ","), |
| | | ExtChannelAmount: device.ExtChannelAmount, |
| | | } |
| | | |
| | | oldRecord, err := model.NewDeviceSearch().SetDeviceId(device.ID).First() |
| | | if err == gorm.ErrRecordNotFound { |
| | | err = model.NewDeviceSearch().Create(deviceRecord) |
| | | } else { |
| | | deviceRecord.ID = oldRecord.ID |
| | | err = model.NewDeviceSearch().Save(deviceRecord) |
| | | } |
| | | |
| | | if err != nil { |
| | | logx.Infof("save device record err :%s", err) |
| | | return err |
| | | } |
| | | |
| | | return nil |
| | | } |