SJA工艺
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.
 

104 lines
3.3 KiB

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
}