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.

138 lines
3.1 KiB

  1. package db
  2. import (
  3. "errors"
  4. "github.com/go-xorm/xorm"
  5. "leit.com/leit_seat_aps/common"
  6. "xorm.io/core"
  7. )
  8. //Reorder头信息表
  9. type Pln_reorderdata_landing struct {
  10. Finr int `xorm:"pk"`
  11. Reordernr string `xorm:"pk"`
  12. Rejectionnr string
  13. Partfamilyid string
  14. Projnr string
  15. Consigneeplant int
  16. Consignee string
  17. Parsed int
  18. Reordertype string
  19. Reorderobjid string
  20. Edifile string
  21. Msgid string
  22. Msgtime string
  23. Lastmodif string
  24. Lastuser string
  25. Credatuz string
  26. Sglst []Pln_reordersupplygroup_landing `xorm:"-"`
  27. }
  28. func (t *Pln_reorderdata_landing) Clipped() {
  29. common.TrimStruct(t, *t)
  30. }
  31. func (t *Pln_reorderdata_landing) TableName() string {
  32. return "pln_reorderdata_landing"
  33. }
  34. //增
  35. func (t *Pln_reorderdata_landing) Add() error {
  36. e := G_DbEngine
  37. reordtab := new(Pln_reorderdata_landing)
  38. affw, err := e.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Count(reordtab)
  39. if err != nil {
  40. return err
  41. }
  42. if affw > 0 {
  43. return errors.New("数据已经存在!")
  44. }
  45. _, err = e.Table("pln_reorderdata_landing").Insert(t)
  46. if err != nil {
  47. return err
  48. }
  49. return nil
  50. }
  51. //增
  52. func (t *Pln_reorderdata_landing) Insert(session *xorm.Session) error {
  53. reordtab := new(Pln_reorderdata_landing)
  54. affw, err := session.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Count(reordtab)
  55. if err != nil {
  56. return err
  57. }
  58. if affw > 0 {
  59. return errors.New("数据已经存在!")
  60. }
  61. _, err = session.Table("pln_reorderdata_landing").Insert(t)
  62. if err != nil {
  63. return err
  64. }
  65. return nil
  66. }
  67. //删
  68. func (t *Pln_reorderdata_landing) Del() bool {
  69. e := G_DbEngine
  70. _, err := e.ID(core.PK{G_FINR, t.Reordernr}).Delete(&Pln_reorderdata_landing{})
  71. if err != nil {
  72. return false
  73. }
  74. return true
  75. }
  76. //改
  77. func (t *Pln_reorderdata_landing) Update() bool {
  78. e := G_DbEngine
  79. _, err := e.ID(core.PK{G_FINR, t.Reordernr}).Update(t)
  80. if err != nil {
  81. return false
  82. }
  83. return true
  84. }
  85. //更新指定字段
  86. func (t *Pln_reorderdata_landing) UpdateFields(session *xorm.Session, fields string) (err error) {
  87. if _, err = session.Table("pln_reorderdata_landing").ID(core.PK{G_FINR, t.Reordernr}).Cols(fields).Update(t); err != nil {
  88. return
  89. }
  90. return
  91. }
  92. //查
  93. func (t *Pln_reorderdata_landing) SelectOne() (data Pln_reorderdata_landing, err error) {
  94. var (
  95. i, j int
  96. sglst []Pln_reordersupplygroup_landing
  97. partlst []Pln_reorderpart_landing
  98. )
  99. e := G_DbEngine
  100. _, err = e.ID(core.PK{G_FINR, t.Reordernr}).Get(&data)
  101. if err != nil {
  102. return data, err
  103. }
  104. data.Clipped()
  105. // 获取供应组列表
  106. if err = e.Where("finr = ? and reordernr = ?",
  107. G_FINR, t.Reordernr).OrderBy("supplygroupid").Find(&sglst); err != nil {
  108. return
  109. }
  110. for i, _ = range sglst {
  111. sglst[i].Clipped()
  112. // 获取供应组列表
  113. if err = e.Where("finr = ? and reordernr = ? and supplygroupid = ?",
  114. G_FINR, sglst[i].Reordernr, sglst[i].Supplygroupid).OrderBy("partid").Find(&partlst); err != nil {
  115. return
  116. }
  117. for j, _ = range partlst {
  118. partlst[j].Clipped()
  119. }
  120. sglst[i].Partlst = partlst
  121. }
  122. data.Sglst = sglst
  123. return data, nil
  124. }