package db import ( "errors" "github.com/go-xorm/xorm" "leit.com/leit_seat_aps/common" "xorm.io/core" ) //拣料单 type Pln_pickorder struct { Finr int `xorm:"pk" json:"pln_pickorder.finr"` Pickorderid string `xorm:"pk" json:"pln_pickorder.pickorderid"` Picktemplateid string `json:"pln_pickorder.picktemplateid"` Status int `json:"pln_pickorder.status"` Orderinfo string `json:"pln_pickorder.orderinfo"` Worklineid string `json:"pln_pickorder.worklineid"` Printerid string `json:"pln_pickorder.printerid"` Planqty int `json:"pln_pickorder.planqty"` Fillqty int `json:"pln_pickorder.fillqty"` Actqty int `json:"pln_pickorder.actqty"` Picker string `json:"pln_pickorder.picker"` Lastmodif string `json:"pln_pickorder.lastmodif"` Lastuser string `json:"pln_pickorder.lastuser"` Credatuz string `json:"pln_pickorder.credatuz"` Itemlst []Pln_pickorder_itemlst `xorm:"-"` } func (t *Pln_pickorder) Clipped() { common.TrimStruct(t, *t) } func (t *Pln_pickorder) TableName() string { return "pln_pickorder" } //增 func (t *Pln_pickorder) Add() error { e := G_DbEngine pikotab := new(Pln_pickorder) affw, err := e.Table("pln_pickorder").ID(core.PK{G_FINR, t.Pickorderid}).Count(pikotab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("pln_pickorder").Insert(t) if err != nil { return err } return nil } //增 func (t *Pln_pickorder) Insert(session *xorm.Session) error { pikotab := new(Pln_pickorder) affw, err := session.Table("pln_pickorder").ID(core.PK{G_FINR, t.Pickorderid}).Count(pikotab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = session.Table("pln_pickorder").Insert(t) if err != nil { return err } return nil } //删 func (t *Pln_pickorder) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Pickorderid}).Delete(&Pln_pickorder{}) if err != nil { return false } return true } //改 func (t *Pln_pickorder) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Pickorderid}).Update(t) if err != nil { return false } return true } //更新指定字段 func (t *Pln_pickorder) UpdateFields(session *xorm.Session, fields string) (err error) { if _, err = session.ID(core.PK{G_FINR, t.Pickorderid}).Cols(fields).Update(t); err != nil { return } return } //查 func (t *Pln_pickorder) SelectOne() (data Pln_pickorder, err error) { var i int e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Pickorderid}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取分配的拣料项列表 if err = e.Where("finr = ? and pickorderid = ?", G_FINR, t.Pickorderid).OrderBy("pos").Find(&data.Itemlst); err != nil { return } for i, _ = range data.Itemlst { data.Itemlst[i].Clipped() } return data, nil } //查 func (t *Pln_pickorder) SelectOneBySession(session *xorm.Session) (data Pln_pickorder, err error) { var i int _, err = session.ID(core.PK{G_FINR, t.Pickorderid}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取分配的拣料项列表 if err = session.Where("finr = ? and pickorderid = ?", G_FINR, t.Pickorderid).OrderBy("pos").Find(&data.Itemlst); err != nil { return } for i, _ = range data.Itemlst { data.Itemlst[i].Clipped() } return data, nil } // func (t *Pln_pickorder) GetOpenOrdersForTemplateBySession(session *xorm.Session, picktmpid string) (exist bool, datalst []Pln_pickorder, err error) { var ( itemtablst []Pln_pickorder_itemlst i, j int ) if err = session.Where("finr = ? and picktemplateid = ? and status < ? ", G_FINR, picktmpid, common.PKO_STATUS_RELEASED).Asc("credatuz").Find(&datalst); err != nil { return } if len(datalst) <= 0 { exist = false return } // 获取拣料单子项数据 for i = 0; i < len(datalst); i++ { datalst[i].Clipped() // 获取分配的拣料项列表 itemtablst = []Pln_pickorder_itemlst{} if err = session.Where("finr = ? and pickorderid = ?", G_FINR, datalst[i].Pickorderid).OrderBy("pos").Find(&itemtablst); err != nil { return } for j, _ = range itemtablst { itemtablst[j].Clipped() } datalst[i].Itemlst = itemtablst } exist = true return }