package db
|
|
|
|
import (
|
|
"errors"
|
|
"github.com/go-xorm/xorm"
|
|
"leit.com/leit_seat_aps/common"
|
|
"xorm.io/core"
|
|
)
|
|
|
|
//客户订单表
|
|
type Pln_custorder struct {
|
|
Finr int `xorm:"pk" json:"pln_custorder.finr"`
|
|
Custordernr string `xorm:"pk" json:"pln_custorder.custordernr"`
|
|
Oemordernr string `json:"pln_custorder.oemordernr"`
|
|
Partfamilyid string `json:"pln_custorder.partfamilyid"`
|
|
Orderinfo string `json:"pln_custorder.orderinfo"`
|
|
Ordertime string `json:"pln_custorder.ordertime"`
|
|
Swet string `json:"pln_custorder.swet"`
|
|
Projnr string `json:"pln_custorder.projnr"`
|
|
Partid string `json:"pln_custorder.partid"`
|
|
Status int `json:"pln_custorder.status"`
|
|
Handlestatus string `json:"pln_custorder.handlestatus"`
|
|
Vin string `json:"pln_custorder.vin"`
|
|
Seqswet string `json:"pln_custorder.seqswet"`
|
|
Oemseq float64 `json:"pln_custorder.oemseq"`
|
|
Assemblyline string `json:"pln_custorder.assemblyline"`
|
|
Unloadingpoint string `json:"pln_custorder.unloadingpoint"`
|
|
Calloffnr int `json:"pln_custorder.calloffnr"`
|
|
Checksequence int `json:"pln_custorder.checksequence"`
|
|
Calloffswet string `json:"pln_custorder.calloffswet"`
|
|
Consigneeplant int `json:"pln_custorder.consigneeplant"`
|
|
Consigneecompany int `json:"pln_custorder.consigneecompany"`
|
|
Consumecompany int `json:"pln_custorder.consumecompany"`
|
|
Consumeplant int `json:"pln_custorder.consumeplant"`
|
|
Unloadingplace string `json:"pln_custorder.unloadingplace"`
|
|
Backflush int `json:"pln_custorder.backflush"`
|
|
Backflushsn string `json:"pln_custorder.backflushsn"`
|
|
Vehicleidset string `json:"pln_custorder.vehicleidset"`
|
|
Vehicleid string `json:"pln_custorder.vehicleid"`
|
|
Lastmodif string `json:"pln_custorder.lastmodif"`
|
|
Lastuser string `json:"pln_custorder.lastuser"`
|
|
Credatuz string `json:"pln_custorder.credatuz"`
|
|
Attrlst []Pln_custorder_atcodlst `xorm:"-"`
|
|
Partlst []Pln_custorder_partlst `xorm:"-"`
|
|
Wotablst []Pln_workorder `xorm:"-"`
|
|
Sgpartlst []Pln_custorder_supplygroup_partlst `xorm:"-"`
|
|
}
|
|
|
|
// 客户订单和它的版本头综合视图
|
|
type VCustorderVer struct {
|
|
Pln_custorder `xorm:"extends"`
|
|
Pln_custorder_ver `xorm:"extends"`
|
|
}
|
|
|
|
func (t *Pln_custorder) Clipped() {
|
|
common.TrimStruct(t, *t)
|
|
}
|
|
func (t *Pln_custorder) TableName() string {
|
|
return "pln_custorder"
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_custorder) Add() error {
|
|
e := G_DbEngine
|
|
cotab := new(Pln_custorder)
|
|
affw, err := e.Table("pln_custorder").ID(core.PK{G_FINR, t.Custordernr}).Count(cotab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = e.Table("pln_custorder").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_custorder) Insert(session *xorm.Session) error {
|
|
cotab := new(Pln_custorder)
|
|
affw, err := session.Table("pln_custorder").ID(core.PK{G_FINR, t.Custordernr}).Count(cotab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = session.Table("pln_custorder").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//删
|
|
func (t *Pln_custorder) Del() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{G_FINR, t.Custordernr}).Delete(&Pln_custorder{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//改
|
|
func (t *Pln_custorder) Update(fields string) (err error) {
|
|
e := G_DbEngine
|
|
//判断对应的工单,是否全是26状态,如果存在,则不更新
|
|
var plc Pln_workorder
|
|
affw, err := e.Table("pln_workorder").Where("finr = ? and custordernr = ? and status < ?", G_FINR, t.Custordernr, common.WO_STATUS_RELEASED).Count(&plc)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return
|
|
}
|
|
_, err = e.ID(core.PK{G_FINR, t.Custordernr}).Cols(fields).Update(t)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
//更新指定字段(20变成26)
|
|
func (t *Pln_custorder) UpdateToFields(session *xorm.Session, fields string) (err error) {
|
|
//判断对应的工单,是否全是26状态,如果存在,则不更新
|
|
var plc Pln_workorder
|
|
ok, err := session.Table("pln_workorder").Where("finr = ? and custordernr = ? and status < ?", G_FINR, t.Custordernr, common.WO_STATUS_RELEASED).Get(&plc)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !ok {
|
|
if _, err = session.Table("pln_custorder").Where("finr = ? and custordernr = ? and status = ?", G_FINR, t.Custordernr, common.WO_STATUS_PLANNED).Cols(fields).Update(t); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
//更新指定字段
|
|
func (t *Pln_custorder) UpdateFields(session *xorm.Session, fields string) (err error) {
|
|
if _, err = session.Table("pln_custorder").ID(core.PK{G_FINR, t.Custordernr}).Cols(fields).Update(t); err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
//更新指定字段(20变成26)
|
|
func (t *Pln_custorder) UpdateToFieldsWithoutSession(fields string) (err error) {
|
|
e := G_DbEngine
|
|
if _, err = e.Table("pln_custorder").ID(core.PK{G_FINR, t.Custordernr}).Cols(fields).Update(t); err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_custorder) SelectOne() (data Pln_custorder, err error) {
|
|
e := G_DbEngine
|
|
_, err = e.ID(core.PK{G_FINR, t.Custordernr}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
return data, nil
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_custorder) SelectCustOne() (data Pln_custorder, err error) {
|
|
e := G_DbEngine
|
|
_, err = e.Where("finr = ? and projnr = ? and oemordernr = ? and calloffnr = ?",G_FINR,t.Projnr,t.Oemordernr,t.Calloffnr).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
return data, nil
|
|
}
|
|
|
|
//查询重复订单
|
|
func (t *Pln_custorder) SelectExpirationtime(Expirationtime string) (data Pln_custorder, result bool, err error) {
|
|
e := G_DbEngine
|
|
result, err = e.Where("finr = ? and oemordernr = ? and ordertime > ?", G_FINR, t.Oemordernr, Expirationtime).Get(&data)
|
|
if err != nil {
|
|
return data, false, err
|
|
}
|
|
return data, true, nil
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_custorder) GetFullData() (data Pln_custorder, err error) {
|
|
var (
|
|
attrlst []Pln_custorder_atcodlst
|
|
partlst []Pln_custorder_partlst
|
|
wotablst []Pln_workorder
|
|
woattrlst []Pln_workorder_atcodlst
|
|
wopartlst []Pln_workorder_partlst
|
|
i, j, k, m, n int
|
|
)
|
|
e := G_DbEngine
|
|
_, err = e.ID(core.PK{G_FINR, t.Custordernr}).Get(&data)
|
|
if err != nil {
|
|
return
|
|
}
|
|
data.Clipped()
|
|
|
|
// 获取属性列表
|
|
if err = e.Where("finr = ? and custordernr = ?",
|
|
G_FINR, t.Custordernr).OrderBy("pos").Find(&attrlst); err != nil {
|
|
return
|
|
}
|
|
for i, _ = range attrlst {
|
|
attrlst[i].Clipped()
|
|
}
|
|
data.Attrlst = attrlst
|
|
|
|
// 获取零件列表
|
|
if err = e.Where("finr = ? and custordernr = ?",
|
|
G_FINR, t.Custordernr).OrderBy("supplygroupid, partid").Find(&partlst); err != nil {
|
|
return
|
|
}
|
|
for j, _ = range partlst {
|
|
partlst[j].Clipped()
|
|
}
|
|
data.Partlst = partlst
|
|
|
|
// 获取生产订单列表
|
|
if err = e.Where("finr = ? and custordernr = ?",
|
|
G_FINR, t.Custordernr).OrderBy("workordernr").Find(&wotablst); err != nil {
|
|
return
|
|
}
|
|
for k, _ = range wotablst {
|
|
wotablst[k].Clipped()
|
|
|
|
// 获取生产订单的属性列表
|
|
if err = e.Where("finr = ? and workordernr = ?",
|
|
G_FINR, wotablst[k].Workordernr).OrderBy("pos").Find(&woattrlst); err != nil {
|
|
return
|
|
}
|
|
for m, _ = range woattrlst {
|
|
woattrlst[m].Clipped()
|
|
}
|
|
wotablst[k].Attrlst = woattrlst
|
|
|
|
// 获取生产订单的零件列表
|
|
if err = e.Where("finr = ? and workordernr = ?",
|
|
G_FINR, wotablst[k].Workordernr).OrderBy("partid").Find(&wopartlst); err != nil {
|
|
return
|
|
}
|
|
for n, _ = range wopartlst {
|
|
wopartlst[n].Clipped()
|
|
}
|
|
wotablst[k].Partlst = wopartlst
|
|
}
|
|
|
|
data.Wotablst = wotablst
|
|
|
|
return data, nil
|
|
}
|
|
|
|
//基于Oem订单号查客户订单
|
|
func (t *Pln_custorder) GetByOemOrderNr() (exist bool, cotab Pln_custorder, err error) {
|
|
var (
|
|
i int
|
|
cotablst []Pln_custorder
|
|
)
|
|
|
|
e := G_DbEngine
|
|
if err = e.Where("finr = ? and oemordernr = ? and partfamilyid = ? and projnr = ? and orderinfo != ?",
|
|
G_FINR, t.Oemordernr, t.Partfamilyid, t.Projnr, "REO").Desc("credatuz").Limit(1, 0).Find(&cotablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(cotablst) > 0 {
|
|
cotablst[0].Clipped()
|
|
cotab = cotablst[0]
|
|
if err = e.Where("finr = ? and custordernr = ?",
|
|
G_FINR, cotab.Custordernr).OrderBy("supplygroupid").Find(&cotab.Wotablst); err != nil {
|
|
return
|
|
}
|
|
for i, _ = range cotab.Wotablst {
|
|
cotab.Wotablst[i].Clipped()
|
|
}
|
|
exist = true
|
|
return
|
|
} else {
|
|
exist = false
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//基于Oem订单号查客户订单
|
|
func (t *Pln_custorder) GetByOemOrderNrBySession(session *xorm.Session) (exist bool, cotab Pln_custorder, err error) {
|
|
var cotablst []Pln_custorder
|
|
|
|
if err = session.Where("finr = ? and oemordernr = ? and partfamilyid = ? and projnr = ?",
|
|
G_FINR, t.Oemordernr, t.Partfamilyid, t.Projnr).Desc("credatuz").Limit(1, 0).Find(&cotablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(cotablst) > 0 {
|
|
cotablst[0].Clipped()
|
|
cotab = cotablst[0]
|
|
exist = true
|
|
return
|
|
} else {
|
|
exist = false
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//基于零件族查找状态>=20的客户订单的最大OEMSEQ号
|
|
func (t *Pln_custorder) GetMaxOemSeqByPartFamily() (maxseq int, conr string, err error) {
|
|
var cotablst []Pln_custorder
|
|
e := G_DbEngine
|
|
if err = e.Where("finr = ? and projnr = ? and partfamilyid = ? and status >= ? and oemseq < ?",
|
|
G_FINR, t.Projnr, t.Partfamilyid, common.CO_STATUS_PLANNED, 9999999999).NotIn("orderinfo", "INT", "REO").Desc("oemseq").Limit(1, 0).Find(&cotablst); err != nil {
|
|
return
|
|
}
|
|
if len(cotablst) > 0 {
|
|
maxseq = common.ValueToInt(cotablst[0].Oemseq, 0)
|
|
conr = cotablst[0].Custordernr
|
|
return
|
|
} else {
|
|
maxseq = 0
|
|
conr = ""
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// 查询客户订单所有的SupplyGroup的零件清单
|
|
func (t *Pln_custorder) GetSGPartlst() (datalst []Pln_custorder_supplygroup_partlst, err error) {
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and custordernr = ?", G_FINR, t.Custordernr).OrderBy("supplygroupid, partid").Find(&datalst)
|
|
for i, _ := range datalst {
|
|
datalst[i].Clipped()
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询客户订单所有的零件清单
|
|
func (t *Pln_custorder) GetPartlst() (datalst []Pln_custorder_partlst, err error) {
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and custordernr = ?", G_FINR, t.Custordernr).OrderBy("supplygroupid, partid").Find(&datalst)
|
|
for i, _ := range datalst {
|
|
datalst[i].Clipped()
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询客户订单所有的属性清单
|
|
func (t *Pln_custorder) GetAttributelst() (datalst []Pln_custorder_atcodlst, err error) {
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and custordernr = ?", G_FINR, t.Custordernr).OrderBy("pos").Find(&datalst)
|
|
for i, _ := range datalst {
|
|
datalst[i].Clipped()
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询客户订单所有的生产订单
|
|
func (t *Pln_custorder) GetWorkorderlst() (datalst []Pln_workorder, err error) {
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and custordernr = ?", G_FINR, t.Custordernr).OrderBy("workordernr").Find(&datalst)
|
|
for i, _ := range datalst {
|
|
datalst[i].Clipped()
|
|
}
|
|
return
|
|
}
|
|
|
|
// 查询客户订单所有的生产订单及其零件清单
|
|
func (t *Pln_custorder) GetWorkorderPartlst() (datalst []Pln_workorder, err error) {
|
|
var i, j int
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and custordernr = ?", G_FINR, t.Custordernr).OrderBy("workordernr").Find(&datalst)
|
|
for i, _ = range datalst {
|
|
datalst[i].Clipped()
|
|
|
|
if err = e.Where("finr = ? and workordernr = ?", G_FINR, datalst[i].Workordernr).OrderBy("partid").Find(&datalst[i].Partlst); err != nil {
|
|
return
|
|
}
|
|
for j = 0; j < len(datalst[i].Partlst); j++ {
|
|
datalst[i].Partlst[j].Clipped()
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 为客户订单添加SupplyGroup的零件清单
|
|
func (t *Pln_custorder) AddSGPartlst(session *xorm.Session, datalst []Pln_custorder_supplygroup_partlst) (err error) {
|
|
var cosgpartab Pln_custorder_supplygroup_partlst
|
|
|
|
for i := 0; i < len(datalst); i++ {
|
|
cosgpartab = Pln_custorder_supplygroup_partlst{}
|
|
cosgpartab = datalst[i]
|
|
if _, err = session.Insert(cosgpartab); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 为客户订单添加零件清单
|
|
func (t *Pln_custorder) AddPartlst(session *xorm.Session, datalst []Pln_custorder_partlst) (err error) {
|
|
var copartab Pln_custorder_partlst
|
|
|
|
for i := 0; i < len(datalst); i++ {
|
|
copartab = Pln_custorder_partlst{}
|
|
copartab = datalst[i]
|
|
if _, err = session.Insert(copartab); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 为客户订单添加属性清单
|
|
func (t *Pln_custorder) AddAttributelst(session *xorm.Session, datalst []Pln_custorder_atcodlst) (err error) {
|
|
var coattrtab Pln_custorder_atcodlst
|
|
|
|
for i := 0; i < len(datalst); i++ {
|
|
coattrtab = Pln_custorder_atcodlst{}
|
|
coattrtab = datalst[i]
|
|
if _, err = session.Insert(coattrtab); err != nil {
|
|
return
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 删除客户订单所有的SupplyGroup的零件清单
|
|
func (t *Pln_custorder) DelSGPartlst(session *xorm.Session, sgid string) bool {
|
|
sql := "DELETE FROM `pln_custorder_supplygroup_partlst` WHERE finr = ? AND custordernr = ? AND supplygroupid = ?"
|
|
if _, err := session.Exec(sql, G_FINR, t.Custordernr, sgid); err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// 删除客户订单所有的零件清单
|
|
func (t *Pln_custorder) DelPartlst(session *xorm.Session) bool {
|
|
sql := "DELETE FROM `pln_custorder_partlst` WHERE finr = ? AND custordernr = ?"
|
|
if _, err := session.Exec(sql, G_FINR, t.Custordernr); err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// 删除客户订单所有的属性清单
|
|
func (t *Pln_custorder) DelAttributelst(session *xorm.Session) bool {
|
|
sql := "DELETE FROM `pln_custorder_atcodlst` WHERE finr = ? AND custordernr = ?"
|
|
if _, err := session.Exec(sql, G_FINR, t.Custordernr); err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//获取客户订单版本的最近值
|
|
func (t *Pln_custorder) GetLatestVersion() (ver int, err error) {
|
|
var covtablst []Pln_custorder_ver
|
|
|
|
e := G_DbEngine
|
|
if err = e.Where("finr = ? and custordernr = ?", G_FINR,
|
|
t.Custordernr).Desc("version").Limit(1, 0).Find(&covtablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(covtablst) > 0 {
|
|
ver = covtablst[0].Version
|
|
} else {
|
|
ver = 0
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//获取客户订单版本的最近值
|
|
func (t *Pln_custorder) GetLatestVersionBySession(session *xorm.Session) (ver int, err error) {
|
|
var covtablst []Pln_custorder_ver
|
|
|
|
if err = session.Where("finr = ? and custordernr = ?", G_FINR,
|
|
t.Custordernr).Desc("version").Limit(1, 0).Find(&covtablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(covtablst) > 0 {
|
|
ver = covtablst[0].Version
|
|
} else {
|
|
ver = 0
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//获取客户订单错误索引的最近值
|
|
func (t *Pln_custorder) GetLatestErrorIndex() (idx int, err error) {
|
|
var coetablst []Pln_custorder_errorlst
|
|
|
|
e := G_DbEngine
|
|
if err = e.Where("finr = ? and custordernr = ?", G_FINR,
|
|
t.Custordernr).Desc("pos").Limit(1, 0).Find(&coetablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(coetablst) > 0 {
|
|
idx = coetablst[0].Pos
|
|
} else {
|
|
idx = 0
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//获取客户订单错误索引的最近值
|
|
func (t *Pln_custorder) GetLatestErrorIndexBySession(session *xorm.Session) (idx int, err error) {
|
|
var coetablst []Pln_custorder_errorlst
|
|
|
|
if err = session.Where("finr = ? and custordernr = ?", G_FINR,
|
|
t.Custordernr).Desc("pos").Limit(1, 0).Find(&coetablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(coetablst) > 0 {
|
|
idx = coetablst[0].Pos
|
|
} else {
|
|
idx = 0
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//基于Oem订单号,零件族和年份获取最新的客户订单
|
|
func (t *Pln_custorder) GetByAsnDataBySession(swetyear string, session *xorm.Session) (exist bool, cotab Pln_custorder, err error) {
|
|
var (
|
|
cotablst []Pln_custorder
|
|
i int
|
|
)
|
|
|
|
if err = session.Where("finr = ? and oemordernr = ? and partfamilyid = ? and swet like ?",
|
|
G_FINR, t.Oemordernr, t.Partfamilyid, swetyear+"%").Desc("credatuz").Limit(1, 0).Find(&cotablst); err != nil {
|
|
return
|
|
}
|
|
|
|
if len(cotablst) > 0 {
|
|
cotablst[0].Clipped()
|
|
cotab = cotablst[0]
|
|
exist = true
|
|
// 获取生产订单数据
|
|
if err = session.Where("finr = ? and custordernr = ? and partfamilyid = ?", G_FINR, cotab.Custordernr, cotab.Partfamilyid).OrderBy("workordernr").Find(&cotab.Wotablst); err != nil {
|
|
return
|
|
}
|
|
for i = 0; i < len(cotab.Wotablst); i++ {
|
|
cotab.Wotablst[i].Clipped()
|
|
}
|
|
return
|
|
} else {
|
|
exist = false
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//基于Oem订单号查客户订单及其供应组零件清单
|
|
func (t *Pln_custorder) GetDataForCarmodelByOemorder(oemordnr, projnr string) (datalst []Pln_custorder, err error) {
|
|
var i, j int
|
|
|
|
e := G_DbEngine
|
|
if err = e.Where("finr = ? and oemordernr = ? and projnr = ?",
|
|
G_FINR, oemordnr, projnr).OrderBy("custordernr").Find(&datalst); err != nil {
|
|
return
|
|
}
|
|
|
|
for i = 0; i < len(datalst); i++ {
|
|
datalst[i].Clipped()
|
|
|
|
// 获取客户订单的供应组零件数据
|
|
if err = e.Where("finr = ? and custordernr = ?",
|
|
G_FINR, datalst[i].Custordernr).OrderBy("partfamilyid, supplygroupid, partid").Find(&datalst[i].Sgpartlst); err != nil {
|
|
return
|
|
}
|
|
for j = 0; j < len(datalst[i].Sgpartlst); j++ {
|
|
datalst[i].Sgpartlst[j].Clipped()
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// 获取指定项目和OEM订单号的整车副规格版本
|
|
func (t *Pln_custorder) GetCarModelSpec() (vcoslst []VCustorderSpec, err error) {
|
|
e := G_DbEngine
|
|
if err = e.Table("Pln_custorder_carmodelver").Alias("cocmv").Join("INNER",
|
|
[]string{"me_carmodel_ver", "cmv"},
|
|
"cocmv.finr = cmv.finr and cocmv.carmodelid = cmv.carmodelid and cocmv.version = cmv.version").
|
|
Where("cocmv.finr = ? and cocmv.oemordernr = ? and cocmv.projnr = ?",
|
|
G_FINR, t.Oemordernr, t.Projnr).Desc("cocmv.credatuz").Find(&vcoslst); err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
//查询是否有未计划的订单
|
|
func (t *Pln_custorder) SelectTenArr() (data []Pln_custorder, err error) {
|
|
e := G_DbEngine
|
|
err = e.Where("finr = ? and status = ?", G_FINR, 10).Limit(1, 0).Find(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
return data, nil
|
|
}
|