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.

215 lines
5.0 KiB

package db
import (
"errors"
"github.com/go-xorm/xorm"
"leit.com/leit_seat_aps/common"
"xorm.io/core"
)
//BBAASN模板表
type Jit_bbaasntemplate struct {
Finr int `xorm:"pk"`
Asntemplateid string `xorm:"pk"`
Descr string
Projnr string
Partfamilyid string
Asnsnr string
Bolsnr string
Shipto string
Address string
Printerid string
Templatefile string
Printqty int
Bbaasn_cpara1 string
Bbaasn_cpara2 string
Bbaasn_cpara3 string
Bbaasn_cpara4 string
Bbaasn_ipara1 int
Bbaasn_ipara2 int
Bbaasn_ipara3 int
Bbaasn_ipara4 int
Twodsheet int
Orientation int
Lastmodif string
Lastuser string
Credatuz string
Printlst []Jit_bbaasntemplate_printlst `json:"printlst" xorm:"-"`
}
func (t *Jit_bbaasntemplate) Clipped() {
common.TrimStruct(t, *t)
}
func (t *Jit_bbaasntemplate) TableName() string {
return "jit_bbaasntemplate"
}
//增
func (t *Jit_bbaasntemplate) Add() error {
e := G_DbEngine
asntmptab := new(Jit_bbaasntemplate)
affw, err := e.Table("jit_bbaasntemplate").ID(core.PK{G_FINR, t.Asntemplateid}).Count(asntmptab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table("jit_bbaasntemplate").Insert(t)
if err != nil {
return err
}
return nil
}
//增
func (t *Jit_bbaasntemplate) Insert(session *xorm.Session) error {
asntmptab := new(Jit_bbaasntemplate)
affw, err := session.Table("jit_bbaasntemplate").ID(core.PK{G_FINR, t.Asntemplateid}).Count(asntmptab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = session.Table("jit_bbaasntemplate").Insert(t)
if err != nil {
return err
}
return nil
}
//删
func (t *Jit_bbaasntemplate) Del() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Asntemplateid}).Delete(&Jit_bbaasntemplate{})
if err != nil {
return false
}
return true
}
//改
func (t *Jit_bbaasntemplate) Update() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Asntemplateid}).Update(t)
if err != nil {
return false
}
return true
}
//更新指定字段
func (t *Jit_bbaasntemplate) UpdateFields(session *xorm.Session, fields string) (err error) {
if _, err = session.Table("jit_bbaasntemplate").ID(core.PK{G_FINR, t.Asntemplateid}).Cols(fields).Update(t); err != nil {
return
}
return
}
//查
func (t *Jit_bbaasntemplate) SelectOne() (data Jit_bbaasntemplate, err error) {
var i int
e := G_DbEngine
_, err = e.ID(core.PK{G_FINR, t.Asntemplateid}).Get(&data)
if err != nil {
return data, err
}
// 获取值列表
data.Clipped()
if err = e.Where("finr = ? and asntemplateid = ? ",
G_FINR, data.Asntemplateid).OrderBy("pos").Find(&data.Printlst); err != nil {
return
}
for i, _ = range data.Printlst {
data.Printlst[i].Clipped()
}
return data, nil
}
// 获取指定项目的ASN模板列表
func (t *Jit_bbaasntemplate) GetProjectAll(projnr string) (datalst []Jit_bbaasntemplate, err error) {
var i, j int
e := G_DbEngine
if err = e.Where("finr = ? and projnr = ?", G_FINR, projnr).OrderBy("asntemplateid").Find(&datalst); err != nil {
return
}
// 遍历模板获取模板子项数据
for i, _ = range datalst {
datalst[i].Clipped()
datalst[i].Printlst = []Jit_bbaasntemplate_printlst{}
// 获取属模板打印设置数据
if err = e.Where("finr = ? and asntemplateid = ?", G_FINR, datalst[i].Asntemplateid).OrderBy("pos").Find(&datalst[i].Printlst); err != nil {
return
}
for j, _ = range datalst[i].Printlst {
datalst[i].Printlst[j].Clipped()
}
}
return
}
// 获取所有ASN模板列表
func (t *Jit_bbaasntemplate) GetAll() (datalst []Jit_bbaasntemplate, err error) {
var i, j int
e := G_DbEngine
if err = e.Where("finr = ?", G_FINR).OrderBy("asntemplateid").Find(&datalst); err != nil {
return
}
// 遍历模板获取模板子项数据
for i, _ = range datalst {
datalst[i].Clipped()
datalst[i].Printlst = []Jit_bbaasntemplate_printlst{}
// 获取属模板打印设置数据
if err = e.Where("finr = ? and asntemplateid = ?", G_FINR, datalst[i].Asntemplateid).OrderBy("pos").Find(&datalst[i].Printlst); err != nil {
return
}
for j, _ = range datalst[i].Printlst {
datalst[i].Printlst[j].Clipped()
}
}
return
}
// 基于项目和零件族获取ASN模板ID
func (t *Jit_bbaasntemplate) SelectByProjPartfamily(projnr, pfid string) (data Jit_bbaasntemplate, err error) {
var (
i int
datalst []Jit_bbaasntemplate
)
e := G_DbEngine
if err = e.Where("finr = ? and projnr = ? and partfamilyid = ?", G_FINR, projnr, pfid).Desc("credatuz").Limit(1, 0).Find(&datalst); err != nil {
return
}
if len(datalst) > 0 {
data = datalst[0]
} else {
err = errors.New("指定项目:" + projnr + " 零件族:" + pfid + " 的ASN模板不存在!")
return
}
// 获取值列表
data.Clipped()
if err = e.Where("finr = ? and asntemplateid = ? ",
G_FINR, data.Asntemplateid).OrderBy("pos").Find(&data.Printlst); err != nil {
return
}
for i, _ = range data.Printlst {
data.Printlst[i].Clipped()
}
return data, nil
}