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.

203 lines
5.0 KiB

  1. package db
  2. import (
  3. "github.com/go-xorm/xorm"
  4. "github.com/pkg/errors"
  5. "leit.com/leit_seat_aps/common"
  6. "xorm.io/core"
  7. )
  8. // EDI文件表
  9. type Edi_oem struct {
  10. Finr int `xorm:"pk" json:"edi_oem.finr"`
  11. Ediid string `xorm:"pk" json:"edi_oem.ediid"`
  12. Descr string `json:"edi_oem.descr"`
  13. Enabled int `json:"edi_oem.enabled"`
  14. Oem string `json:"edi_oem.oem"`
  15. Fileserver_host string `json:"edi_oem.fileserver_host"`
  16. Tod_folder string `json:"edi_oem.tod_folder"`
  17. Seq_folder string `json:"edi_oem.seq_folder"`
  18. Reorder_folder string `json:"edi_oem.reorder_folder"`
  19. Calloff_folder string `json:"edi_oem.calloff_folder"`
  20. Tod_filename_regexp string `json:"edi_oem.tod_filename_regexp"`
  21. Seq_filename_regexp string `json:"edi_oem.seq_filename_regexp"`
  22. Reorder_filename_regexp string `json:"edi_oem.reorder_filename_regexp"`
  23. Calloff_filename_regexp string `json:"edi_oem.calloff_filename_regexp"`
  24. Emailserver_host string `json:"edi_oem.emailserver_host"`
  25. Emailserver_port int `json:"edi_oem.emailserver_port"`
  26. From_email string `json:"edi_oem.from_email"`
  27. From_pwd string `json:"edi_oem.from_pwd"`
  28. Edi_error_to_recievers string `json:"edi_oem.edi_error_to_recievers"`
  29. Lastmodif string `json:"edi_oem.lastmodif"`
  30. Lastuser string `json:"edi_oem.lastuser"`
  31. Credatuz string `json:"edi_oem.credatuz"`
  32. Itemlst []Edi_oem_itemlst `json:"itemlst" xorm:"-"`
  33. }
  34. func (t *Edi_oem) Clipped() {
  35. common.TrimStruct(t, *t)
  36. }
  37. func (t *Edi_oem) TableName() string {
  38. return "edi_oem"
  39. }
  40. //增
  41. func (t *Edi_oem) Add() (err error) {
  42. var (
  43. i int
  44. affw int64
  45. editab Edi_oem
  46. )
  47. e := G_DbEngine
  48. editab = Edi_oem{}
  49. affw, err = e.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab)
  50. if err != nil {
  51. return err
  52. }
  53. if affw > 0 {
  54. return errors.New("数据已经存在!")
  55. }
  56. _, err = e.Table("edi_oem").Insert(t)
  57. if err != nil {
  58. return err
  59. }
  60. // 遍历子项并插入
  61. for i = 0; i < len(t.Itemlst); i++ {
  62. if err = t.Itemlst[i].Add(); err != nil {
  63. return
  64. }
  65. }
  66. return nil
  67. }
  68. //增
  69. func (t *Edi_oem) Insert(session *xorm.Session) (err error) {
  70. var (
  71. i int
  72. affw int64
  73. editab Edi_oem
  74. )
  75. editab = Edi_oem{}
  76. affw, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab)
  77. if err != nil {
  78. return err
  79. }
  80. if affw > 0 {
  81. return errors.New("数据已经存在!")
  82. }
  83. _, err = session.Table("edi_oem").Insert(t)
  84. if err != nil {
  85. return err
  86. }
  87. // 遍历子项并插入
  88. for i = 0; i < len(t.Itemlst); i++ {
  89. if err = t.Itemlst[i].Insert(session); err != nil {
  90. return
  91. }
  92. }
  93. return
  94. }
  95. //删
  96. func (t *Edi_oem) Del() bool {
  97. e := G_DbEngine
  98. _, err := e.ID(core.PK{G_FINR, t.Ediid}).Delete(&Edi_oem{})
  99. if err != nil {
  100. return false
  101. }
  102. return true
  103. }
  104. //改
  105. func (t *Edi_oem) Update() bool {
  106. e := G_DbEngine
  107. _, err := e.ID(core.PK{G_FINR, t.Ediid}).Update(t)
  108. if err != nil {
  109. return false
  110. }
  111. return true
  112. }
  113. //更新指定字段
  114. func (t *Edi_oem) UpdateFields(session *xorm.Session, fields string) (err error) {
  115. if _, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Cols(fields).Update(t); err != nil {
  116. return
  117. }
  118. return
  119. }
  120. //查
  121. func (t *Edi_oem) SelectOne() (data Edi_oem, err error) {
  122. var i int
  123. e := G_DbEngine
  124. _, err = e.ID(core.PK{G_FINR, t.Ediid}).Get(&data)
  125. if err != nil {
  126. return data, err
  127. }
  128. data.Clipped()
  129. // 获取值列表
  130. if err = e.Where("finr = ? and ediid = ? ",
  131. G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil {
  132. return
  133. }
  134. for i, _ = range data.Itemlst {
  135. data.Itemlst[i].Clipped()
  136. }
  137. return data, nil
  138. }
  139. //查
  140. func (t *Edi_oem) SelectOneBySession(session *xorm.Session) (data Edi_oem, err error) {
  141. var i int
  142. _, err = session.ID(core.PK{G_FINR, t.Ediid}).Get(&data)
  143. if err != nil {
  144. return data, err
  145. }
  146. data.Clipped()
  147. // 获取值列表
  148. if err = session.Where("finr = ? and ediid = ? ",
  149. G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil {
  150. return
  151. }
  152. for i, _ = range data.Itemlst {
  153. data.Itemlst[i].Clipped()
  154. }
  155. return data, nil
  156. }
  157. // 查询激活的EDI
  158. func (t *Edi_oem) SelectActiveOnes() (datalst []Edi_oem, err error) {
  159. var i, j int
  160. e := G_DbEngine
  161. // 获取激活的edi列表
  162. if err = e.Where("finr = ? and enabled > ? ",
  163. G_FINR, 0).OrderBy("ediid").Find(&datalst); err != nil {
  164. return
  165. }
  166. for i, _ = range datalst {
  167. datalst[i].Clipped()
  168. // 获取值列表
  169. if err = e.Where("finr = ? and ediid = ? ",
  170. G_FINR, datalst[i].Ediid).OrderBy("itemtype").Find(&datalst[i].Itemlst); err != nil {
  171. return
  172. }
  173. for j, _ = range datalst[i].Itemlst {
  174. datalst[i].Itemlst[j].Clipped()
  175. }
  176. }
  177. return
  178. }