| | |
| | | } |
| | | |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | if err = model.NewOrderSearch(db).SetWorkOrderId(task.WorkOrder.WorkOrderID).Delete(); err != nil { |
| | | return err |
| | | if oldWorkOrder != nil { |
| | | if err = model.NewOrderSearch(db).SetId(oldWorkOrder.ID).Updates(&orderRecord); err != nil { |
| | | return err |
| | | } |
| | | for _, procedure := range procedureRecords { |
| | | err = model.NewProceduresSearch(db).SetProcedureId(procedure.ProcedureID).Updates(procedure) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | } |
| | | } else { |
| | | if err = model.NewOrderSearch(db).Create(&orderRecord); err != nil { |
| | | return err |
| | | } |
| | | return model.NewProceduresSearch(db).CreateBatch(procedureRecords) |
| | | } |
| | | if err = model.NewOrderSearch(db).Save(&orderRecord); err != nil { |
| | | return err |
| | | } |
| | | if err = model.NewProceduresSearch(db).SetProcedureIds(procedureIds).Delete(); err != nil { |
| | | return err |
| | | } |
| | | return model.NewProceduresSearch(db).CreateBatch(procedureRecords) |
| | | return nil |
| | | }) |
| | | if err != nil { |
| | | logx.Errorf(" save task message error err: %v", err.Error()) |