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.

203 lines
5.0 KiB

package db
import (
"github.com/go-xorm/xorm"
"github.com/pkg/errors"
"leit.com/leit_seat_aps/common"
"xorm.io/core"
)
// EDI文件表
type Edi_oem struct {
Finr int `xorm:"pk" json:"edi_oem.finr"`
Ediid string `xorm:"pk" json:"edi_oem.ediid"`
Descr string `json:"edi_oem.descr"`
Enabled int `json:"edi_oem.enabled"`
Oem string `json:"edi_oem.oem"`
Fileserver_host string `json:"edi_oem.fileserver_host"`
Tod_folder string `json:"edi_oem.tod_folder"`
Seq_folder string `json:"edi_oem.seq_folder"`
Reorder_folder string `json:"edi_oem.reorder_folder"`
Calloff_folder string `json:"edi_oem.calloff_folder"`
Tod_filename_regexp string `json:"edi_oem.tod_filename_regexp"`
Seq_filename_regexp string `json:"edi_oem.seq_filename_regexp"`
Reorder_filename_regexp string `json:"edi_oem.reorder_filename_regexp"`
Calloff_filename_regexp string `json:"edi_oem.calloff_filename_regexp"`
Emailserver_host string `json:"edi_oem.emailserver_host"`
Emailserver_port int `json:"edi_oem.emailserver_port"`
From_email string `json:"edi_oem.from_email"`
From_pwd string `json:"edi_oem.from_pwd"`
Edi_error_to_recievers string `json:"edi_oem.edi_error_to_recievers"`
Lastmodif string `json:"edi_oem.lastmodif"`
Lastuser string `json:"edi_oem.lastuser"`
Credatuz string `json:"edi_oem.credatuz"`
Itemlst []Edi_oem_itemlst `json:"itemlst" xorm:"-"`
}
func (t *Edi_oem) Clipped() {
common.TrimStruct(t, *t)
}
func (t *Edi_oem) TableName() string {
return "edi_oem"
}
//增
func (t *Edi_oem) Add() (err error) {
var (
i int
affw int64
editab Edi_oem
)
e := G_DbEngine
editab = Edi_oem{}
affw, err = e.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table("edi_oem").Insert(t)
if err != nil {
return err
}
// 遍历子项并插入
for i = 0; i < len(t.Itemlst); i++ {
if err = t.Itemlst[i].Add(); err != nil {
return
}
}
return nil
}
//增
func (t *Edi_oem) Insert(session *xorm.Session) (err error) {
var (
i int
affw int64
editab Edi_oem
)
editab = Edi_oem{}
affw, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = session.Table("edi_oem").Insert(t)
if err != nil {
return err
}
// 遍历子项并插入
for i = 0; i < len(t.Itemlst); i++ {
if err = t.Itemlst[i].Insert(session); err != nil {
return
}
}
return
}
//删
func (t *Edi_oem) Del() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Ediid}).Delete(&Edi_oem{})
if err != nil {
return false
}
return true
}
//改
func (t *Edi_oem) Update() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Ediid}).Update(t)
if err != nil {
return false
}
return true
}
//更新指定字段
func (t *Edi_oem) UpdateFields(session *xorm.Session, fields string) (err error) {
if _, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Cols(fields).Update(t); err != nil {
return
}
return
}
//查
func (t *Edi_oem) SelectOne() (data Edi_oem, err error) {
var i int
e := G_DbEngine
_, err = e.ID(core.PK{G_FINR, t.Ediid}).Get(&data)
if err != nil {
return data, err
}
data.Clipped()
// 获取值列表
if err = e.Where("finr = ? and ediid = ? ",
G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil {
return
}
for i, _ = range data.Itemlst {
data.Itemlst[i].Clipped()
}
return data, nil
}
//查
func (t *Edi_oem) SelectOneBySession(session *xorm.Session) (data Edi_oem, err error) {
var i int
_, err = session.ID(core.PK{G_FINR, t.Ediid}).Get(&data)
if err != nil {
return data, err
}
data.Clipped()
// 获取值列表
if err = session.Where("finr = ? and ediid = ? ",
G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil {
return
}
for i, _ = range data.Itemlst {
data.Itemlst[i].Clipped()
}
return data, nil
}
// 查询激活的EDI
func (t *Edi_oem) SelectActiveOnes() (datalst []Edi_oem, err error) {
var i, j int
e := G_DbEngine
// 获取激活的edi列表
if err = e.Where("finr = ? and enabled > ? ",
G_FINR, 0).OrderBy("ediid").Find(&datalst); err != nil {
return
}
for i, _ = range datalst {
datalst[i].Clipped()
// 获取值列表
if err = e.Where("finr = ? and ediid = ? ",
G_FINR, datalst[i].Ediid).OrderBy("itemtype").Find(&datalst[i].Itemlst); err != nil {
return
}
for j, _ = range datalst[i].Itemlst {
datalst[i].Itemlst[j].Clipped()
}
}
return
}