GAAS 广汽安道拓GFrame金属件MOM项目
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.

129 lines
3.6 KiB

  1. package models
  2. import (
  3. "leit.com/LAPP_GAAS_GFrame/db"
  4. "leit.com/LAPP_GAAS_GFrame/utils"
  5. "errors"
  6. "xorm.io/core"
  7. )
  8. type Stdeftab struct {
  9. Finr int `xorm:"pk comment('工厂号') Int" json:"stdeftab-finr"`
  10. Stdeftyp string `xorm:"pk comment('种类') VARCHAR(15)" json:"stdeftab-stdeftyp"`
  11. Statid string `xorm:"pk comment('标识') VARCHAR(30)" json:"stdeftab-statid"`
  12. Lang string `xorm:"pk comment('语言') VARCHAR(3)" json:"stdeftab-lang"`
  13. Bez string `xorm:"comment('名称') VARCHAR(30)" json:"stdeftab-bez"`
  14. Lastmodif string `xorm:"comment('最近一次更改时间') VARCHAR(14)" json:"stdeftab-lastmodif"`
  15. Lastuser string `xorm:"comment('最近一次更改人') VARCHAR(20)" json:"stdeftab-lastuser"`
  16. Credatuz string `xorm:"comment('创建时间') VARCHAR(14)" json:"stdeftab-credatuz"`
  17. }
  18. func (t *Stdeftab) TableName() string {
  19. return "stdeftab"
  20. }
  21. // 清除string字段的右侧空格
  22. func (t *Stdeftab) Clipped() {
  23. utils.TrimStruct(t, *t)
  24. }
  25. //增
  26. func (t *Stdeftab) Add() error {
  27. e := db.Eloquent.Master()
  28. count := new(Stdeftab)
  29. affw, err := e.Table("stdeftab").ID(core.PK{t.Finr, t.Stdeftyp, t.Statid, t.Lang}).Count(count)
  30. if err != nil {
  31. return err
  32. }
  33. if affw > 0 {
  34. return errors.New("数据已经存在!")
  35. }
  36. _, err = e.Table("stdeftab").Insert(t)
  37. if err != nil {
  38. return err
  39. }
  40. return nil
  41. }
  42. //删
  43. func (t *Stdeftab) Del() bool {
  44. e := db.Eloquent.Master()
  45. _, err := e.ID(core.PK{t.Finr, t.Stdeftyp, t.Statid, t.Lang}).Delete(&Stdeftab{})
  46. if err != nil {
  47. return false
  48. }
  49. return true
  50. }
  51. //改
  52. func (t *Stdeftab) Update() bool {
  53. e := db.Eloquent.Master()
  54. _, err := e.ID(core.PK{t.Finr, t.Stdeftyp, t.Statid, t.Lang}).Update(t)
  55. if err != nil {
  56. return false
  57. }
  58. return true
  59. }
  60. //查
  61. func (t *Stdeftab) SelectOne() (Stdeftab, error) {
  62. e := db.Eloquent.Master()
  63. var data Stdeftab
  64. _, err := e.ID(core.PK{t.Finr, t.Stdeftyp, t.Statid, t.Lang}).Get(&data)
  65. if err != nil {
  66. return data, err
  67. }
  68. return data, nil
  69. }
  70. //分页
  71. func (t *Stdeftab) GetPage(pageSize int, pageIndex int) ([]Stdeftab, int, error) {
  72. data := make([]Stdeftab, 0)
  73. e := db.Eloquent.Master()
  74. table := e.Table("stdeftab").Where("finr = ? ", t.Finr)
  75. where := "where finr = " + "'" + utils.ValueToString(t.Finr, "") + "'"
  76. Offset := (pageIndex - 1) * pageSize
  77. err := e.SQL("SELECT TOP " + utils.ValueToString(pageSize, "") + " stdeftab.* FROM stdeftab " + where + " AND (convert(varchar(10),finr)+convert(varchar(40),stdeftyp)+convert(varchar(40),statid)+convert(varchar(40),lang) NOT IN (SELECT TOP " + utils.ValueToString(Offset, "") + " convert(varchar(10),finr)+convert(varchar(40),stdeftyp)+convert(varchar(40),statid)+convert(varchar(40),lang) FROM stdeftab " + where + " ORDER BY credatuz DESC)) ORDER BY credatuz DESC").Find(&data)
  78. pcount := new(Stdeftab)
  79. count, err := table.Count(pcount)
  80. if err != nil {
  81. return data, 0, err
  82. }
  83. for k, _ := range data {
  84. data[k].Clipped()
  85. }
  86. return data, int(count), nil
  87. }
  88. //查询当前Stdeftabs集合
  89. func (t *Stdeftab) SelectArr() ([]Stdeftab, error) {
  90. e := db.Eloquent.Master()
  91. var data []Stdeftab
  92. err := e.Where("finr = ? and statid =?", t.Finr, t.Statid).Find(&data)
  93. if err != nil {
  94. return data, err
  95. }
  96. for k, _ := range data {
  97. data[k].Clipped()
  98. }
  99. return data, nil
  100. }
  101. //查询当前Stdeftabs集合
  102. func (t *Stdeftab) SelectAll(arr []string) (map[string][]Stdeftab, error) {
  103. e := db.Eloquent.Master()
  104. dataMap := map[string][]Stdeftab{}
  105. var data []Stdeftab
  106. err := e.In("statid", arr).Where("finr = ?", t.Finr).Find(&data)
  107. if err != nil {
  108. return dataMap, err
  109. }
  110. for _, v := range data {
  111. v.Clipped()
  112. key := v.Statid
  113. dataMap[key] = append(dataMap[key], v)
  114. }
  115. return dataMap, nil
  116. }