zhangqian
2024-04-09 4f9f21d3c72d724f3cf41939e4d48a46de0848d8
纤度登记表增加登记表id,修改登记时先删除检验记录再生成新的检验记录
5个文件已修改
40 ■■■■ 已修改文件
controllers/fineness.go 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness_check.go 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness_check_item.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/fineness.go 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fineness.go
@@ -43,10 +43,13 @@
        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
            }
@@ -59,7 +62,7 @@
        util.ResponseFormat(c, code.RequestParamError, "保存失败")
    }
    err = service.FinenessCheck(&params)
    err = service.FinenessCheck(&params, isNew)
    if err != nil {
        logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
        util.ResponseFormat(c, code.RequestParamError, "生成检验表失败")
models/fineness.go
@@ -12,6 +12,7 @@
    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"` //车组
models/fineness_check.go
@@ -68,6 +68,11 @@
    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
@@ -88,6 +93,10 @@
        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")
    }
models/fineness_check_item.go
@@ -13,7 +13,7 @@
    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:"-"`
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
@@ -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
}