package db import ( "errors" "github.com/go-xorm/xorm" "leit.com/leit_seat_aps/common" "xorm.io/core" ) //Reorder头信息表 type Pln_reorderdata_landing struct { Finr int `xorm:"pk"` Reordernr string `xorm:"pk"` Rejectionnr string Partfamilyid string Projnr string Consigneeplant int Consignee string Parsed int Reordertype string Reorderobjid string Edifile string Msgid string Msgtime string Lastmodif string Lastuser string Credatuz string Sglst []Pln_reordersupplygroup_landing `xorm:"-"` } func (t *Pln_reorderdata_landing) Clipped() { common.TrimStruct(t, *t) } func (t *Pln_reorderdata_landing) TableName() string { return "pln_reorderdata_landing" } //增 func (t *Pln_reorderdata_landing) Add() error { e := G_DbEngine reordtab := new(Pln_reorderdata_landing) affw, err := e.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Count(reordtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("pln_reorderdata_landing").Insert(t) if err != nil { return err } return nil } //增 func (t *Pln_reorderdata_landing) Insert(session *xorm.Session) error { reordtab := new(Pln_reorderdata_landing) affw, err := session.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Count(reordtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = session.Table("pln_reorderdata_landing").Insert(t) if err != nil { return err } return nil } //删 func (t *Pln_reorderdata_landing) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Reordernr}).Delete(&Pln_reorderdata_landing{}) if err != nil { return false } return true } //改 func (t *Pln_reorderdata_landing) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Reordernr}).Update(t) if err != nil { return false } return true } //更新指定字段 func (t *Pln_reorderdata_landing) UpdateFields(session *xorm.Session, fields string) (err error) { if _, err = session.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Cols(fields).Update(t); err != nil { return } return } //查 func (t *Pln_reorderdata_landing) SelectOne() (data Pln_reorderdata_landing, err error) { var ( i, j int sglst []Pln_reordersupplygroup_landing partlst []Pln_reorderpart_landing ) e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Reordernr}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取供应组列表 if err = e.Where("finr = ? and reordernr = ?", G_FINR, t.Reordernr).OrderBy("supplygroupid").Find(&sglst); err != nil { return } for i, _ = range sglst { sglst[i].Clipped() // 获取供应组列表 if err = e.Where("finr = ? and reordernr = ? and supplygroupid = ?", G_FINR, sglst[i].Reordernr, sglst[i].Supplygroupid).OrderBy("partid").Find(&partlst); err != nil { return } for j, _ = range partlst { partlst[j].Clipped() } sglst[i].Partlst = partlst } data.Sglst = sglst return data, nil }