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.

150 lines
3.3 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. // 车型版本头
  9. type Me_carmodel_ver struct {
  10. Finr int `xorm:"pk"`
  11. Carmodelid string `xorm:"pk"`
  12. Version int `xorm:"pk"`
  13. Status int
  14. Handlestatus string
  15. Spec string
  16. Approveby string
  17. Approvetime string
  18. Lastmodif string
  19. Lastuser string
  20. Credatuz string
  21. Partlst []Me_carmodel_ver_partlst `xorm:"-"`
  22. Atcodlst []Me_carmodel_ver_atcodlst `xorm:"-"`
  23. Verrlst []Me_carmodel_ver_errorlst `xorm:"-"`
  24. }
  25. func (t *Me_carmodel_ver) Clipped() {
  26. common.TrimStruct(t, *t)
  27. }
  28. func (t *Me_carmodel_ver) TableName() string {
  29. return "me_carmodel_ver"
  30. }
  31. //增
  32. func (t *Me_carmodel_ver) Add() error {
  33. e := G_DbEngine
  34. carmodtab := new(Me_carmodel_ver)
  35. affw, err := e.Table("me_carmodel_ver").ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Count(carmodtab)
  36. if err != nil {
  37. return err
  38. }
  39. if affw > 0 {
  40. return errors.New("数据已经存在!")
  41. }
  42. _, err = e.Table("me_carmodel_ver").Insert(t)
  43. if err != nil {
  44. return err
  45. }
  46. return nil
  47. }
  48. //增
  49. func (t *Me_carmodel_ver) Insert(session *xorm.Session) error {
  50. carmodtab := new(Me_carmodel_ver)
  51. affw, err := session.Table("me_carmodel_ver").ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Count(carmodtab)
  52. if err != nil {
  53. return err
  54. }
  55. if affw > 0 {
  56. return errors.New("数据已经存在!")
  57. }
  58. _, err = session.Table("me_carmodel_ver").Insert(t)
  59. if err != nil {
  60. return err
  61. }
  62. return nil
  63. }
  64. //删
  65. func (t *Me_carmodel_ver) Del() bool {
  66. e := G_DbEngine
  67. _, err := e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Delete(&Me_carmodel_ver{})
  68. if err != nil {
  69. return false
  70. }
  71. return true
  72. }
  73. //改
  74. func (t *Me_carmodel_ver) Update() bool {
  75. e := G_DbEngine
  76. _, err := e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Update(t)
  77. if err != nil {
  78. return false
  79. }
  80. return true
  81. }
  82. //查
  83. func (t *Me_carmodel_ver) SelectOne() (data Me_carmodel_ver, err error) {
  84. e := G_DbEngine
  85. _, err = e.ID(core.PK{G_FINR, t.Carmodelid, t.Version}).Get(&data)
  86. if err != nil {
  87. return data, err
  88. }
  89. data.Clipped()
  90. // 获取零件列表
  91. if err = e.Where("finr = ? and carmodelid = ? and version = ?",
  92. G_FINR, data.Carmodelid, data.Version).OrderBy("supplygroupid,partid").Find(&data.Partlst); err != nil {
  93. return
  94. }
  95. for i, _ := range data.Partlst {
  96. data.Partlst[i].Clipped()
  97. }
  98. // 获取属性列表
  99. if err = e.Where("finr = ? and carmodelid = ? and version = ?",
  100. G_FINR, data.Carmodelid, data.Version).OrderBy("pos").Find(&data.Atcodlst); err != nil {
  101. return
  102. }
  103. for i, _ := range data.Atcodlst {
  104. data.Atcodlst[i].Clipped()
  105. }
  106. // 获取错误列表
  107. if err = e.Where("finr = ? and carmodelid = ? and version = ?",
  108. G_FINR, data.Carmodelid, data.Version).OrderBy("pos").Find(&data.Verrlst); err != nil {
  109. return
  110. }
  111. for i, _ := range data.Verrlst {
  112. data.Verrlst[i].Clipped()
  113. }
  114. return data, nil
  115. }
  116. //获取指定项目车型最近的版本
  117. func (t *Me_carmodel_ver) GetLatestCarmodelVersion(cmid string) (ver int, err error) {
  118. var cmvlst []Me_carmodel_ver
  119. e := G_DbEngine
  120. if err = e.Where("finr = ? and carmodelid = ?", G_FINR,
  121. cmid).Desc("version").Limit(1, 0).Find(&cmvlst); err != nil {
  122. return
  123. }
  124. if len(cmvlst) > 0 {
  125. ver = cmvlst[0].Version
  126. } else {
  127. ver = 0
  128. }
  129. return
  130. }