| | |
| | | "sort" |
| | | ) |
| | | |
| | | func FinenessCheck(finenessRegister *models.FinenessRegister) (err error) { |
| | | func FinenessCheck(finenessRegister *models.FinenessRegister, isNew bool) (err error) { |
| | | standardMap, err := GetSilkRankStandard() |
| | | if err != nil { |
| | | return err |
| | |
| | | finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap) |
| | | |
| | | err = models.WithTransaction(func(db *gorm.DB) error { |
| | | if !isNew { |
| | | err = models.NewFinenessCheckSearch().SetOrm(db).SetFinenessRegisterID(finenessRegister.ID).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | err = models.NewFinenessCheckItemSearch().SetOrm(db).SetFinenessRegisterID(finenessRegister.ID).Delete() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | } |
| | | err := models.NewFinenessCheckSearch().SetOrm(db).Create(&finenessCheck) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | return models.NewFinenessCheckItemSearch().SetOrm(db).CreateBatch(finenessCheckItems) |
| | | for _, v := range finenessCheckItems { |
| | | v.FinenessCheckID = finenessCheck.ID |
| | | } |
| | | err = models.NewFinenessCheckItemSearch().SetOrm(db).CreateBatch(finenessCheckItems) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | return models.NewFinenessRegisterSearch().SetOrm(db).SetID(finenessRegister.ID).UpdateByMap(map[string]interface{}{"fineness_check_id": finenessCheck.ID}) |
| | | }) |
| | | return err |
| | | } |