SJA APS后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.0 KiB

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
}