纤度登记表增加登记表id,修改登记时先删除检验记录再生成新的检验记录
| | |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | |
| | | isNew := params.ID == 0 |
| | | |
| | | err := models.WithTransaction(func(db *gorm.DB) error { |
| | | search := models.NewFinenessRegisterSearch().SetOrm(db) |
| | | |
| | | if params.ID != 0 { |
| | | if !isNew { |
| | | if err := models.NewFinenessItemSearch().SetOrm(db).SetFinenessRegisterID(params.ID).Delete(); err != nil { |
| | | return err |
| | | } |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "保存失败") |
| | | } |
| | | |
| | | err = service.FinenessCheck(¶ms) |
| | | err = service.FinenessCheck(¶ms, isNew) |
| | | if err != nil { |
| | | logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params) |
| | | util.ResponseFormat(c, code.RequestParamError, "生成检验表失败") |
| | |
| | | FinenessRegister struct { |
| | | gorm.Model |
| | | Number string `gorm:"type:varchar(255);not null;comment:编号" json:"number"` //编号 |
| | | FinenessCheckID uint `gorm:"not null;comment:纤度检验表ID" json:"finenessCheckID"` //纤度检验表ID |
| | | FinishDate string `gorm:"type:varchar(255);not null;comment:落丝时间" json:"finishDate"` //落丝时间 |
| | | Workshop string `gorm:"type:varchar(255);not null;comment:车间" json:"name"` //车间 |
| | | WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:车组" json:"workshopGroup"` //车组 |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessCheckSearch) SetFinenessRegisterID(id uint) *FinenessCheckSearch { |
| | | slf.FinenessRegisterID = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FinenessCheckSearch) SetKeyword(keyword string) *FinenessCheckSearch { |
| | | slf.Keyword = keyword |
| | | return slf |
| | |
| | | db = db.Where("number like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) |
| | | } |
| | | |
| | | if slf.FinenessRegisterID != 0 { |
| | | db = db.Where("fineness_register_id = ?", slf.FinenessRegisterID) |
| | | } |
| | | |
| | | if slf.Preload { |
| | | db = db.Model(&FinenessCheck{}).Preload("FinenessRegister") |
| | | } |
| | |
| | | FinenessCheckItem struct { |
| | | gorm.Model |
| | | FinenessRegisterID uint `gorm:"not null;comment:纤度登记表ID" json:"finenessRegisterID"` //纤度登记表ID |
| | | //FinenessCheckID uint `gorm:"not null;comment:纤度检验表ID" json:"finenessCheckID"` //纤度检验表ID |
| | | FinenessCheckID uint `gorm:"not null;comment:纤度检验表ID" json:"finenessCheckID"` //纤度检验表ID |
| | | Position int `json:"position"` //车号 |
| | | FinenessRoundingItems []*FinenessRoundingItem `json:"finenessRoundingItems" gorm:"-"` //纤度列表 |
| | | FinenessRounding string `json:"-"` |
| | |
| | | "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 |
| | | } |