|
|
- package service
-
- import "leit.com/leit_seat_aps/db"
-
- // 零件族业务对象
- type BL_PartFamily struct {
- Partfamilyid string
- Pf_attr_dict map[int]BL_PartFamily_Atcod // 零件族分配的属性字典
- Partfamilytab db.Me_partfamily
- }
-
- // 零件族分配的属性对象
- type BL_PartFamily_Atcod struct {
- Partfamilyid string // 零件族ID
- Attrcode int // 属性ID
- Mandatory int // 是否强制需要
- Verifyrule string // 验证规则
- Partfamily_attrtab db.Me_partfamily_atcodlst
- }
-
- // 获取零件族列表
- func GetPartfamilytabList() (pftablist []db.Me_partfamily, err error) {
- if err = db.G_DbEngine.Where("finr = ?", db.G_FINR).Find(&pftablist); err != nil {
- return
- }
- return
- }
-
- // 获取零件族属性列表
- func GetPartfamilyAtcodtabList() (pfatcodtablist []db.Me_partfamily_atcodlst, err error) {
- if err = db.G_DbEngine.Where("finr = ?", db.G_FINR).Find(&pfatcodtablist); err != nil {
- return
- }
- return
- }
-
- // 获取项目零件族列表
- func GetProjectPartfamilytabList(projnr string) (pftablist []db.Me_partfamily, err error) {
- if err = db.G_DbEngine.Where("finr = ? AND projnr = ?", db.G_FINR, projnr).Find(&pftablist); err != nil {
- return
- }
- return
- }
-
- // 获取项目零件族属性列表
- func GetProjectPartfamilyAtcodtabList(projnr string) (pfatcodtablist []db.Me_partfamily_atcodlst, err error) {
- var (
- pftablist []db.Me_partfamily
- i int
- pfarray []string
- )
- // 获取指定项目的零件族数组
- if pftablist, err = GetProjectPartfamilytabList(projnr); err != nil {
- return
- }
- pfarray = make([]string, len(pftablist))
- for i = 0; i < len(pftablist); i++ {
- pfarray[i] = pftablist[i].Partfamilyid
- }
- if err = db.G_DbEngine.Where("finr = ?", db.G_FINR).In("partfamilyid", pfarray).Find(&pfatcodtablist); err != nil {
- return
- }
-
- return
- }
-
- // 获取指定项目的零件族主数据字典
- func GetProjectParfamilyDict(projnr string) (pfdict map[string]BL_PartFamily, err error) {
- var (
- pftablst []db.Me_partfamily
- pfattrtablst []db.Me_partfamily_atcodlst
- bl_pf BL_PartFamily
- bl_pfattr BL_PartFamily_Atcod
- i int
- ok bool
- )
- pfdict = make(map[string]BL_PartFamily)
- if pftablst, err = GetProjectPartfamilytabList(projnr); err != nil {
- return
- }
- if pfattrtablst, err = GetProjectPartfamilyAtcodtabList(projnr); err != nil {
- return
- }
-
- // 遍历零件族列表
- for i = 0; i < len(pftablst); i++ {
- pftablst[i].Clipped()
- bl_pf = BL_PartFamily{}
- bl_pf.Partfamilyid = pftablst[i].Partfamilyid
- bl_pf.Pf_attr_dict = make(map[int]BL_PartFamily_Atcod)
- bl_pf.Partfamilytab = pftablst[i]
- pfdict[bl_pf.Partfamilyid] = bl_pf
- }
- // 遍历零件属性列表
- for i = 0; i < len(pfattrtablst); i++ {
- pfattrtablst[i].Clipped()
- if bl_pf, ok = pfdict[pfattrtablst[i].Partfamilyid]; !ok {
- continue
- }
- bl_pfattr = BL_PartFamily_Atcod{}
- bl_pfattr.Attrcode = pfattrtablst[i].Attrcode
- bl_pfattr.Mandatory = pfattrtablst[i].Mandatory
- bl_pfattr.Verifyrule = pfattrtablst[i].Verifyrule
- bl_pfattr.Partfamily_attrtab = pfattrtablst[i]
- bl_pf.Pf_attr_dict[bl_pfattr.Attrcode] = bl_pfattr
- // 更新回零件字典
- pfdict[bl_pf.Partfamilyid] = bl_pf
- }
- return
- }
|