package db import ( "errors" "github.com/go-xorm/xorm" "leit.com/leit_seat_aps/common" "xorm.io/core" ) // 车型版本头 type Me_carmodel_ver struct { Finr int `xorm:"pk"` Carmodelid string `xorm:"pk"` Version int `xorm:"pk"` Status int Handlestatus string Spec string Approveby string Approvetime string Lastmodif string Lastuser string Credatuz string Partlst []Me_carmodel_ver_partlst `xorm:"-"` Atcodlst []Me_carmodel_ver_atcodlst `xorm:"-"` Verrlst []Me_carmodel_ver_errorlst `xorm:"-"` } func (t *Me_carmodel_ver) Clipped() { common.TrimStruct(t, *t) } func (t *Me_carmodel_ver) TableName() string { return "me_carmodel_ver" } //增 func (t *Me_carmodel_ver) Add() error { e := G_DbEngine carmodtab := new(Me_carmodel_ver) affw, err := e.Table("me_carmodel_ver").ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Count(carmodtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("me_carmodel_ver").Insert(t) if err != nil { return err } return nil } //增 func (t *Me_carmodel_ver) Insert(session *xorm.Session) error { carmodtab := new(Me_carmodel_ver) affw, err := session.Table("me_carmodel_ver").ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Count(carmodtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = session.Table("me_carmodel_ver").Insert(t) if err != nil { return err } return nil } //删 func (t *Me_carmodel_ver) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Delete(&Me_carmodel_ver{}) if err != nil { return false } return true } //改 func (t *Me_carmodel_ver) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Update(t) if err != nil { return false } return true } //查 func (t *Me_carmodel_ver) SelectOne() (data Me_carmodel_ver, err error) { e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取零件列表 if err = e.Where("finr = ? and carmodelid = ? and version = ?", G_FINR, data.Carmodelid, data.Version).OrderBy("supplygroupid,partid").Find(&data.Partlst); err != nil { return } for i, _ := range data.Partlst { data.Partlst[i].Clipped() } // 获取属性列表 if err = e.Where("finr = ? and carmodelid = ? and version = ?", G_FINR, data.Carmodelid, data.Version).OrderBy("pos").Find(&data.Atcodlst); err != nil { return } for i, _ := range data.Atcodlst { data.Atcodlst[i].Clipped() } // 获取错误列表 if err = e.Where("finr = ? and carmodelid = ? and version = ?", G_FINR, data.Carmodelid, data.Version).OrderBy("pos").Find(&data.Verrlst); err != nil { return } for i, _ := range data.Verrlst { data.Verrlst[i].Clipped() } return data, nil } //获取指定项目车型最近的版本 func (t *Me_carmodel_ver) GetLatestCarmodelVersion(cmid string) (ver int, err error) { var cmvlst []Me_carmodel_ver e := G_DbEngine if err = e.Where("finr = ? and carmodelid = ?", G_FINR, cmid).Desc("version").Limit(1, 0).Find(&cmvlst); err != nil { return } if len(cmvlst) > 0 { ver = cmvlst[0].Version } else { ver = 0 } return }