package db import ( "errors" "github.com/go-xorm/xorm" "leit.com/leit_seat_aps/common" "xorm.io/core" ) //客户订单车型规格表 type Pln_custorder_carmodelver struct { Finr int `xorm:"pk"` Oemordernr string `xorm:"pk"` Projnr string `xorm:"pk"` Carmodelid string `xorm:"pk"` Version int `xorm:"pk"` Lastmodif string Lastuser string Credatuz string } // 客户订单版本规格和版本头 type VCustorderSpec struct { Me_carmodel_ver `xorm:"extends"` Pln_custorder_carmodelver `xorm:"extends"` } type VOemorderSpecPf struct { Pln_custorder_carmodelver `xorm:"extends"` Me_carmodel `xorm:"extends"` Me_carmodel_partfamilylst `xorm:"extends"` } func (t *Pln_custorder_carmodelver) Clipped() { common.TrimStruct(t, *t) } func (t *Pln_custorder_carmodelver) TableName() string { return "pln_custorder_carmodelver" } //增 func (t *Pln_custorder_carmodelver) Add() error { e := G_DbEngine cocmvtab := new(Pln_custorder_carmodelver) affw, err := e.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("pln_custorder_carmodelver").Insert(t) if err != nil { return err } return nil } //增 func (t *Pln_custorder_carmodelver) Insert(session *xorm.Session) error { cocmvtab := new(Pln_custorder_carmodelver) affw, err := session.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab) if err != nil { return err } if affw > 0 { return nil } _, err = session.Table("pln_custorder_carmodelver").Insert(t) if err != nil { return err } return nil } //删 func (t *Pln_custorder_carmodelver) DelSession(session *xorm.Session) bool { _, err := session.Where("finr = ? and oemordernr = ? and projnr = ?",G_FINR, t.Oemordernr, t.Projnr).Delete(&Pln_custorder_carmodelver{}) if err != nil { return false } return true } //删 func (t *Pln_custorder_carmodelver) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Delete(&Pln_custorder_carmodelver{}) if err != nil { return false } return true } //改 func (t *Pln_custorder_carmodelver) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Update(t) if err != nil { return false } return true } //查 func (t *Pln_custorder_carmodelver) SelectOne() (data Pln_custorder_partlst, err error) { e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Get(&data) if err != nil { return data, err } return data, nil } // 基于项目 OEMORDER 查询并返回车型 func (t *Pln_custorder_carmodelver) GetModelForOemorder(projnr, oemorder string) (vdatalst []VOemorderSpecPf, err error) { e := G_DbEngine query := e.Table("pln_custorder_carmodelver") query = query.Join("INNER", "me_carmodel", "me_carmodel.finr = pln_custorder_carmodelver.finr and me_carmodel.carmodelid = pln_custorder_carmodelver.carmodelid") query = query.Join("INNER", "me_carmodel_partfamilylst", "me_carmodel_partfamilylst.finr = me_carmodel.finr and me_carmodel_partfamilylst.carmodelid = me_carmodel.carmodelid") query = query.Where("pln_custorder_carmodelver.finr = ? and pln_custorder_carmodelver.projnr = ? and pln_custorder_carmodelver.oemordernr = ?", G_FINR, projnr, oemorder) if err = query.Find(&vdatalst); err != nil { return } return } // 基于项目 OEMORDER 查询并返回车型 func (t *Pln_custorder_carmodelver) GetCarModelForOemorder(projnr, oemorder string) (carmodelid string, err error) { var datalst []Pln_custorder_carmodelver e := G_DbEngine carmodelid = "" if err = e.Where("finr = ? and projnr = ? and oemordernr = ?", G_FINR, projnr, oemorder).Desc("credatuz").Limit(1, 0).Find(&datalst); err != nil { return } if len(datalst) > 0 { carmodelid = datalst[0].Carmodelid } return }