SJA APS后端代码
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.

126 lines
2.7 KiB

  1. package db
  2. import (
  3. "errors"
  4. "leit.com/leit_seat_aps/common"
  5. "xorm.io/core"
  6. )
  7. //零件族
  8. type Me_partfamily struct {
  9. Finr int `xorm:"pk"`
  10. Partfamilyid string `xorm:"pk"`
  11. Projnr string
  12. Descr string
  13. Pf_cust1 string
  14. Pf_cust2 string
  15. Pf_cust3 string
  16. Pf_cust4 string
  17. Lastmodif string
  18. Lastuser string
  19. Credatuz string
  20. Atcodlst []Me_partfamily_atcodlst `xorm:"-"`
  21. }
  22. func (t *Me_partfamily) Clipped() {
  23. common.TrimStruct(t, *t)
  24. }
  25. func (t *Me_partfamily) TableName() string {
  26. return "me_partfamily"
  27. }
  28. //增
  29. func (t *Me_partfamily) Add() error {
  30. e := G_DbEngine
  31. pftab := new(Me_partfamily)
  32. affw, err := e.Table("me_partfamily").ID(core.PK{G_FINR, t.Partfamilyid}).Count(pftab)
  33. if err != nil {
  34. return err
  35. }
  36. if affw > 0 {
  37. return errors.New("数据已经存在!")
  38. }
  39. _, err = e.Table("me_partfamily").Insert(t)
  40. if err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. //删
  46. func (t *Me_partfamily) Del() bool {
  47. e := G_DbEngine
  48. _, err := e.ID(core.PK{G_FINR, t.Partfamilyid}).Delete(&Me_partfamily{})
  49. if err != nil {
  50. return false
  51. }
  52. return true
  53. }
  54. //改
  55. func (t *Me_partfamily) Update() bool {
  56. e := G_DbEngine
  57. _, err := e.ID(core.PK{G_FINR, t.Partfamilyid}).Update(t)
  58. if err != nil {
  59. return false
  60. }
  61. return true
  62. }
  63. //查
  64. func (t *Me_partfamily) SelectOne() (data Me_partfamily, err error) {
  65. var atcodlst []Me_partfamily_atcodlst
  66. e := G_DbEngine
  67. _, err = e.ID(core.PK{G_FINR, t.Partfamilyid}).Get(&data)
  68. if err != nil {
  69. return data, err
  70. }
  71. data.Clipped()
  72. // 获取值列表
  73. if err = e.Where("finr = ? and partfamilyid = ?", G_FINR, t.Partfamilyid).OrderBy("attrcode").Find(&atcodlst); err != nil {
  74. return
  75. }
  76. for i, _ := range atcodlst {
  77. atcodlst[i].Clipped()
  78. }
  79. data.Atcodlst = atcodlst
  80. return data, nil
  81. }
  82. // 获取指定项目的零件族列表
  83. func (t *Me_partfamily) GetProjectAll(projnr string) (datalst []Me_partfamily, err error) {
  84. var i, j int
  85. e := G_DbEngine
  86. if err = e.Where("finr = ? and projnr = ?", G_FINR, projnr).OrderBy("partfamilyid").Find(&datalst); err != nil {
  87. return
  88. }
  89. // 遍历零件族获取属性列表
  90. for i, _ = range datalst {
  91. datalst[i].Clipped()
  92. datalst[i].Atcodlst = []Me_partfamily_atcodlst{}
  93. // 获取值列表
  94. if err = e.Where("finr = ? and partfamilyid = ?", G_FINR, datalst[i].Partfamilyid).OrderBy("attrcode").Find(&datalst[i].Atcodlst); err != nil {
  95. return
  96. }
  97. for j, _ = range datalst[i].Atcodlst {
  98. datalst[i].Atcodlst[j].Clipped()
  99. }
  100. }
  101. return
  102. }
  103. // 获取指定项目的零件族列表
  104. func (t *Me_partfamily) GetProjectPfList(projnr string) (datalst []Me_partfamily, err error) {
  105. e := G_DbEngine
  106. if err = e.Where("finr = ? and projnr = ?", G_FINR, projnr).OrderBy("partfamilyid").Find(&datalst); err != nil {
  107. return
  108. }
  109. return
  110. }