苏州瑞玛APS项目web后台
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.

148 lines
5.8 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package me
import (
"leit.com/LAPP_CHEERSSON_BACKEND/db"
"leit.com/LAPP_CHEERSSON_BACKEND/grmi"
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
"xorm.io/core"
)
/******************************************************************************
*
* @Struct Name : BomLst
*-----------------------------------------------------------------------------
*
* @Description : BomLst的实体映射
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-09 14:13:50
*
******************************************************************************/
type BomLst struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"ME_BomLst-PlantNr"`
BomId string `xorm:"pk nvarchar(20) 'BomId'" json:"ME_BomLst-BomId"`
FmatNr string `xorm:"pk nvarchar(20) 'FmatNr'" json:"ME_BomLst-FmatNr"`
CmatNr string `xorm:"pk nvarchar(20) 'CmatNr'" json:"ME_BomLst-CmatNr"`
FmatName string `xorm:"nvarchar(40) 'FmatName' not null" json:"ME_BomLst-FmatName"`
FmatSpec string `xorm:"nvarchar(40) 'FmatSpec' not null" json:"ME_BomLst-FmatSpec"`
FmatQty float64 `xorm:"decimal 'FmatQty' not null" json:"ME_BomLst-FmatQty"`
FmatUom string `xorm:"nvarchar(10) 'FmatUom' not null" json:"ME_BomLst-FmatUom"`
CmatName string `xorm:"nvarchar(40) 'CmatName' not null" json:"ME_BomLst-CmatName"`
CmatQty float64 `xorm:"decimal 'CmatQty' not null" json:"ME_BomLst-CmatQty"`
CmatUom string `xorm:"nvarchar(10) 'CmatUom' not null" json:"ME_BomLst-CmatUom"`
CmatType string `xorm:"nvarchar(20) 'CmatType' not null" json:"ME_BomLst-CmatType"`
Position int `xorm:"int 'Position' not null" json:"ME_BomLst-Position"`
LeadTime float64 `xorm:"decimal 'LeadTime' not null" json:"ME_BomLst-LeadTime"`
TimeUom string `xorm:"nvarchar(10) 'TimeUom' not null" json:"ME_BomLst-TimeUom"`
LossRate float64 `xorm:"decimal 'LossRate' not null" json:"ME_BomLst-LossRate"`
BackFlushItem int `xorm:"smallint 'BackFlushItem' not null" json:"ME_BomLst-BackFlushItem"`
CriticalItem int `xorm:"smallint 'CriticalItem' not null" json:"ME_BomLst-CriticalItem"`
ValidFrom string `xorm:"nvarchar(14) 'ValidFrom'" json:"ME_BomLst-ValidFrom"`
ValidTo string `xorm:"nvarchar(14) 'ValidTo'" json:"ME_BomLst-ValidTo"`
BomlstCval1 string `xorm:"nvarchar(40) 'BomlstCval1' not null" json:"ME_BomLst-BomlstCval1"`
BomlstCval2 string `xorm:"nvarchar(40) 'BomlstCval2' not null" json:"ME_BomLst-BomlstCval2"`
BomlstIval1 int `xorm:"int 'BomlstIval1' not null" json:"ME_BomLst-BomlstIval1"`
BomlstIval2 int `xorm:"int 'BomlstIval2' not null" json:"ME_BomLst-BomlstIval2"`
LevelNr int `xorm:"int 'LevelNr'" json:"ME_BomLst-LevelNr"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"ME_BomLst-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"ME_BomLst-LastUser"`
CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"ME_BomLst-CreateTime"`
ItemLi []BomLst `xorm:"-" json:"ME_BomLst-ItemLi"`
}
/******************************************************************************
*
* @Function Name : GetKey
*-----------------------------------------------------------------------------
*
* @Description : 获取实体的主键
*
* @Return Value : 实体的主键
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-09 14:13:50
*
******************************************************************************/
func (self *BomLst) GetKey() core.PK {
return core.PK{self.PlantNr, self.BomId, self.FmatNr, self.CmatNr}
}
func (t *BomLst) TableName() string {
return "ME_BomLst"
}
func (t *BomLst) GetPage() (Menus []BomLst, err error) {
e := db.Eloquent.Master()
table := e.Table(t.TableName()).Where("PlantNr = ?", t.PlantNr)
if t.BomId != "" {
table = table.And("BomId = ?", t.BomId)
}
if err = table.Asc("FmatNr").Find(&Menus); err != nil {
return
}
return
}
//递归查询侧边栏
func (t *BomLst) SetMenu(FmatNr string) (m []BomLst, err error) {
menulist, err := t.GetPage()
m = make([]BomLst, 0)
for i := 0; i < len(menulist); i++ {
//menulist[i].Clipped()
if menulist[i].FmatNr != FmatNr {
continue
}
menusInfo := DiguiMeBomlst(&menulist, menulist[i])
m = append(m, menusInfo)
}
return
}
//递归查询
func DiguiMeBomlst(me_bomlst *[]BomLst, me BomLst) BomLst {
list := *me_bomlst
min := make([]BomLst, 0)
for j := 0; j < len(list); j++ {
//list[j].Clipped()
if me.CmatNr != list[j].FmatNr {
continue
}
mi := BomLst{}
mi.PlantNr = list[j].PlantNr
mi.BomId = list[j].BomId
mi.FmatNr = list[j].FmatNr
mi.CmatNr = list[j].CmatNr
mi.FmatName = list[j].FmatName
mi.FmatSpec = list[j].FmatSpec
mi.FmatQty = list[j].FmatQty
mi.FmatUom = list[j].FmatUom
mi.LevelNr = list[j].LevelNr
mi.CmatName = list[j].CmatName
mi.CmatQty = list[j].CmatQty
mi.CmatUom = list[j].CmatUom
mi.CmatType = list[j].CmatType
mi.Position = list[j].Position
mi.LeadTime = list[j].LeadTime
mi.TimeUom = list[j].TimeUom
mi.LossRate = list[j].LossRate
mi.BackFlushItem = list[j].BackFlushItem
mi.CriticalItem = list[j].CriticalItem
mi.ValidFrom = list[j].ValidFrom
mi.ValidTo = list[j].ValidTo
mi.BomlstCval1 = list[j].BomlstCval1
mi.BomlstCval2 = list[j].BomlstCval2
mi.BomlstIval1 = list[j].BomlstIval1
mi.BomlstIval2 = list[j].BomlstIval2
mi.ItemLi = []BomLst{}
ms := DiguiMeBomlst(me_bomlst, mi)
utils.TrimStruct(&ms, ms)
min = append(min, ms)
}
me.ItemLi = min
return me
}