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.

118 lines
2.7 KiB

package db
import (
"errors"
"leit.com/leit_seat_aps/common"
"xorm.io/core"
)
//共用件数量分配表
type Me_partrule struct {
Finr int `xorm:"pk"`
Partid string `xorm:"pk"`
Projnr string `xorm:"pk"`
Ruleid string `xorm:"pk"`
Descr string
Partruletype string
Partrule_iprecond int
Partrule_cprecond string
Lastmodif string
Lastuser string
Credatuz string
Qtyasnlst []Me_partrule_qtyassign `xorm:"-"`
}
func (t *Me_partrule) Clipped() {
common.TrimStruct(t, *t)
}
func (t *Me_partrule) TableName() string {
return "me_partrule"
}
//增
func (t *Me_partrule) Add() error {
e := G_DbEngine
ptruletab := new(Me_partrule)
affw, err := e.Table("me_partrule").ID(core.PK{G_FINR, t.Partid, t.Projnr, t.Ruleid}).Count(ptruletab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table("me_partrule").Insert(t)
if err != nil {
return err
}
return nil
}
//删
func (t *Me_partrule) Del() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Partid, t.Projnr, t.Ruleid}).Delete(&Me_partrule{})
if err != nil {
return false
}
return true
}
//改
func (t *Me_partrule) Update() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Partid, t.Projnr, t.Ruleid}).Update(t)
if err != nil {
return false
}
return true
}
//查
func (t *Me_partrule) SelectOne() (data Me_partrule, err error) {
var qtyasnlst []Me_partrule_qtyassign
e := G_DbEngine
_, err = e.ID(core.PK{G_FINR, t.Partid, t.Projnr, t.Ruleid}).Get(&data)
if err != nil {
return data, err
}
data.Clipped()
// 获取数量分配列表
if err = e.Where("finr = ? and partid = ? and projnr = ? and ruleid = ?",
G_FINR, t.Partid, t.Projnr, t.Ruleid).OrderBy("supplygroupid").Find(&qtyasnlst); err != nil {
return
}
for i, _ := range qtyasnlst {
qtyasnlst[i].Clipped()
}
data.Qtyasnlst = qtyasnlst
return data, nil
}
// 获取指定项目的零件数量分配列表
func (t *Me_partrule) GetProjectAll(projnr string) (datalst []Me_partrule, err error) {
var i, j int
e := G_DbEngine
if err = e.Where("finr = ? and projnr = ?", G_FINR, projnr).OrderBy("partid, ruleid").Find(&datalst); err != nil {
return
}
// 遍历零件获取数量分配列表
for i, _ = range datalst {
datalst[i].Clipped()
datalst[i].Qtyasnlst = []Me_partrule_qtyassign{}
// 获取数量分配列表
if err = e.Where("finr = ? and partid = ? and projnr = ? and ruleid = ?",
G_FINR, datalst[i].Partid, datalst[i].Projnr, datalst[i].Ruleid).OrderBy("supplygroupid").Find(&datalst[i].Qtyasnlst); err != nil {
return
}
for j, _ = range datalst[i].Qtyasnlst {
datalst[i].Qtyasnlst[j].Clipped()
}
}
return
}