fix
zhangqian
2024-04-09 c74a3671610ad2dfb864b0731291dc158750f55b
service/fineness.go
@@ -10,7 +10,7 @@
   "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
@@ -51,12 +51,12 @@
            })
         }
         item = &models.FinenessCheckItem{
            FinenessRegisterID:   finenessRegister.ID,
            Position:             lastCarNo,
            FinenessRoundingItem: roundingItems,
            Deviation:            deviation,
            FinenessGrade:        finenessGrade,
            Remark:               "",
            FinenessRegisterID:    finenessRegister.ID,
            Position:              lastCarNo,
            FinenessRoundingItems: roundingItems,
            Deviation:             deviation,
            FinenessGrade:         finenessGrade,
            Remark:                "",
         }
         finenessCheckItems = append(finenessCheckItems, item)
@@ -88,11 +88,28 @@
   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
}
@@ -202,3 +219,12 @@
   result = float32(math.Round(float64(result)*10) / 10)
   return result
}
func FinenessReCheck(finenessCheck *models.FinenessCheck) (err error) {
   standardMap, err := GetSilkRankStandard()
   if err != nil {
      return err
   }
   finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
   return
}