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.

149 lines
4.0 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 Pln_custorder_carmodelver struct {
  10. Finr int `xorm:"pk"`
  11. Oemordernr string `xorm:"pk"`
  12. Projnr string `xorm:"pk"`
  13. Carmodelid string `xorm:"pk"`
  14. Version int `xorm:"pk"`
  15. Lastmodif string
  16. Lastuser string
  17. Credatuz string
  18. }
  19. // 客户订单版本规格和版本头
  20. type VCustorderSpec struct {
  21. Me_carmodel_ver `xorm:"extends"`
  22. Pln_custorder_carmodelver `xorm:"extends"`
  23. }
  24. type VOemorderSpecPf struct {
  25. Pln_custorder_carmodelver `xorm:"extends"`
  26. Me_carmodel `xorm:"extends"`
  27. Me_carmodel_partfamilylst `xorm:"extends"`
  28. }
  29. func (t *Pln_custorder_carmodelver) Clipped() {
  30. common.TrimStruct(t, *t)
  31. }
  32. func (t *Pln_custorder_carmodelver) TableName() string {
  33. return "pln_custorder_carmodelver"
  34. }
  35. //增
  36. func (t *Pln_custorder_carmodelver) Add() error {
  37. e := G_DbEngine
  38. cocmvtab := new(Pln_custorder_carmodelver)
  39. affw, err := e.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab)
  40. if err != nil {
  41. return err
  42. }
  43. if affw > 0 {
  44. return errors.New("数据已经存在!")
  45. }
  46. _, err = e.Table("pln_custorder_carmodelver").Insert(t)
  47. if err != nil {
  48. return err
  49. }
  50. return nil
  51. }
  52. //增
  53. func (t *Pln_custorder_carmodelver) Insert(session *xorm.Session) error {
  54. cocmvtab := new(Pln_custorder_carmodelver)
  55. affw, err := session.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab)
  56. if err != nil {
  57. return err
  58. }
  59. if affw > 0 {
  60. return nil
  61. }
  62. _, err = session.Table("pln_custorder_carmodelver").Insert(t)
  63. if err != nil {
  64. return err
  65. }
  66. return nil
  67. }
  68. //删
  69. func (t *Pln_custorder_carmodelver) DelSession(session *xorm.Session) bool {
  70. _, err := session.Where("finr = ? and oemordernr = ? and projnr = ?",G_FINR, t.Oemordernr, t.Projnr).Delete(&Pln_custorder_carmodelver{})
  71. if err != nil {
  72. return false
  73. }
  74. return true
  75. }
  76. //删
  77. func (t *Pln_custorder_carmodelver) Del() bool {
  78. e := G_DbEngine
  79. _, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Delete(&Pln_custorder_carmodelver{})
  80. if err != nil {
  81. return false
  82. }
  83. return true
  84. }
  85. //改
  86. func (t *Pln_custorder_carmodelver) Update() bool {
  87. e := G_DbEngine
  88. _, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Update(t)
  89. if err != nil {
  90. return false
  91. }
  92. return true
  93. }
  94. //查
  95. func (t *Pln_custorder_carmodelver) SelectOne() (data Pln_custorder_partlst, err error) {
  96. e := G_DbEngine
  97. _, err = e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Get(&data)
  98. if err != nil {
  99. return data, err
  100. }
  101. return data, nil
  102. }
  103. // 基于项目 OEMORDER 查询并返回车型
  104. func (t *Pln_custorder_carmodelver) GetModelForOemorder(projnr, oemorder string) (vdatalst []VOemorderSpecPf, err error) {
  105. e := G_DbEngine
  106. query := e.Table("pln_custorder_carmodelver")
  107. query = query.Join("INNER", "me_carmodel", "me_carmodel.finr = pln_custorder_carmodelver.finr and me_carmodel.carmodelid = pln_custorder_carmodelver.carmodelid")
  108. query = query.Join("INNER", "me_carmodel_partfamilylst", "me_carmodel_partfamilylst.finr = me_carmodel.finr and me_carmodel_partfamilylst.carmodelid = me_carmodel.carmodelid")
  109. query = query.Where("pln_custorder_carmodelver.finr = ? and pln_custorder_carmodelver.projnr = ? and pln_custorder_carmodelver.oemordernr = ?", G_FINR, projnr, oemorder)
  110. if err = query.Find(&vdatalst); err != nil {
  111. return
  112. }
  113. return
  114. }
  115. // 基于项目 OEMORDER 查询并返回车型
  116. func (t *Pln_custorder_carmodelver) GetCarModelForOemorder(projnr, oemorder string) (carmodelid string, err error) {
  117. var datalst []Pln_custorder_carmodelver
  118. e := G_DbEngine
  119. carmodelid = ""
  120. if err = e.Where("finr = ? and projnr = ? and oemordernr = ?",
  121. G_FINR, projnr, oemorder).Desc("credatuz").Limit(1, 0).Find(&datalst); err != nil {
  122. return
  123. }
  124. if len(datalst) > 0 {
  125. carmodelid = datalst[0].Carmodelid
  126. }
  127. return
  128. }