|
package models
|
|
|
|
import (
|
|
"LAPP_SJA_ME/db"
|
|
"LAPP_SJA_ME/utils"
|
|
"xorm.io/core"
|
|
)
|
|
|
|
type MePartgroupAttrgrplst struct {
|
|
Finr int `xorm:"pk comment('工厂号') int(0)" json:"me_partgroup_attrgrplst-finr"`
|
|
Attrgroup int `xorm:"pk comment('零件Id') Int(0)" json:"me_partgroup_attrgrplst-attrgroup"`
|
|
Partgroupid string `xorm:"pk comment('模块Id') VARCHAR(40)" json:"me_partgroup_attrgrplst-partgroupid"`
|
|
Pos int `xorm:"comment('位置') int(0)" json:"me_partgroup_attrgrplst-pos"`
|
|
Lastmodif string `xorm:"comment('最近一次更改时间') VARCHAR(14)" json:"me_partgroup_attrgrplst-lastmodif"`
|
|
Lastuser string `xorm:"comment('最近一次更改人') VARCHAR(14)" json:"me_partgroup_attrgrplst-lastuser"`
|
|
Credatuz string `xorm:"comment('创建时间') VARCHAR(20)" json:"me_partgroup_attrgrplst-credatuz"`
|
|
}
|
|
|
|
func (t *MePartgroupAttrgrplst) TableName() string {
|
|
return "me_partgroup_attrgrplst"
|
|
}
|
|
|
|
// 清除string字段的右侧空格
|
|
func (t *MePartgroupAttrgrplst) Clipped() {
|
|
utils.TrimStruct(t, *t)
|
|
}
|
|
|
|
//根据模块返回Attrgroup属性名集合
|
|
func (t *MePartgroupAttrgrplst) SelectAttrgroups() ([]int, error) {
|
|
e := db.Eloquent.Master()
|
|
var datalist []MePartgroupAttrgrplst
|
|
err := e.Where("finr = ? and partgroupid = ?", t.Finr, t.Partgroupid).Find(&datalist)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var strArr []int
|
|
for _, v := range datalist {
|
|
v.Clipped()
|
|
strArr = append(strArr, v.Attrgroup)
|
|
}
|
|
return strArr, nil
|
|
}
|
|
|
|
//属性组分配显示
|
|
func (t *MePartgroupAttrgrplst) SelectAttrGroup(projnr string) (MePartgroup, error) {
|
|
e := db.Eloquent.Master()
|
|
var data MePartgroup
|
|
data.Finr = t.Finr
|
|
data.Partgroupid = t.Partgroupid
|
|
data.Projnr = projnr
|
|
_, err := e.Table("me_partgroup").ID(core.PK{data.Finr, data.Partgroupid,data.Projnr}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
data.Clipped()
|
|
var datalist []MeAttributegroup
|
|
|
|
var temlist []MePartgroupAttrgrplst
|
|
e.Table("me_partgroup_attrgrplst").Select("attrgroup").Where("me_partgroup_attrgrplst.finr = ? and me_partgroup_attrgrplst.partgroupid = ?", t.Finr, t.Partgroupid).Find(&temlist)
|
|
var attrs []int
|
|
for _,v:=range temlist{
|
|
attrs = append(attrs,v.Attrgroup)
|
|
}
|
|
|
|
err = e.Table("me_attributegroup").In("attrgroup", attrs).Find(&datalist)
|
|
for k, _ := range datalist {
|
|
datalist[k].Clipped()
|
|
}
|
|
data.AttrValst = datalist
|
|
var undatalist []MeAttributegroup
|
|
err = e.Table("me_attributegroup").NotIn("attrgroup", attrs).Find(&undatalist)
|
|
for k, _ := range undatalist {
|
|
undatalist[k].Clipped()
|
|
}
|
|
data.UnAttrValst = undatalist
|
|
return data, nil
|
|
}
|
|
|
|
//保存
|
|
func (t *MePartgroupAttrgrplst) SaveAttrGroup(group *MePartgroup) bool{
|
|
e := db.Eloquent.Master()
|
|
//批量删除
|
|
_, err := e.Table("me_partgroup_attrgrplst").Where("finr = ? and partgroupid = ?", t.Finr, group.Partgroupid).Delete(&MePartgroupPartlst{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
//批量插入
|
|
alldata := make([]MePartgroupAttrgrplst, 0)
|
|
for _, v := range group.AttrValst {
|
|
onedata :=MePartgroupAttrgrplst{}
|
|
onedata.Finr = t.Finr
|
|
onedata.Attrgroup = v.Attrgroup
|
|
onedata.Partgroupid = group.Partgroupid
|
|
onedata.Credatuz = t.Credatuz
|
|
onedata.Lastuser = t.Lastuser
|
|
onedata.Lastmodif = t.Lastmodif
|
|
alldata = append(alldata,onedata)
|
|
}
|
|
_, err = e.Table("me_partgroup_attrgrplst").Insert(&alldata)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|