SJA工艺
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.

101 lines
3.2 KiB

3 years ago
  1. package models
  2. import (
  3. "LAPP_SJA_ME/db"
  4. "LAPP_SJA_ME/utils"
  5. "xorm.io/core"
  6. "errors"
  7. )
  8. /******备注:打印服务数据放到从库***************/
  9. type Printdetailtab struct {
  10. Finr int `xorm:"pk comment('车间编号')" json:"printdetailtab-finr"`
  11. Printheadid string `xorm:"pk comment('打印信息头id')" json:"printdetailtab-printheadid"`
  12. Pos int `xorm:"pk comment('位置')" json:"printdetailtab-pos"`
  13. Varname string `xorm:"comment('变量名')" json:"printdetailtab-varname"`
  14. Varvalue string `xorm:"comment('变量值')" json:"printdetailtab-varvalue"`
  15. Varpos string `xorm:"comment('变量位置')" json:"printdetailtab-varpos"`
  16. Lastmodif string `xorm:"comment('上一次更改日期')" json:"printdetailtab-lastmodif"`
  17. Lastuser string `xorm:"comment('最近编辑人员')" json:"printdetailtab-lastuser"`
  18. Credatuz string `xorm:"comment('创建时间')" json:"printdetailtab-credatuz"`
  19. }
  20. func (t *Printdetailtab) TableName() string {
  21. return "printdetailtab"
  22. }
  23. // 清除string字段的右侧空格
  24. func (t *Printdetailtab) Clipped() {
  25. utils.TrimStruct(t, *t)
  26. }
  27. //增
  28. func (t *Printdetailtab) Add() error {
  29. e := db.Eloquent.Master()
  30. countrole := new(Printdetailtab)
  31. affw, err := e.Table("printdetailtab").ID(core.PK{t.Finr, t.Printheadid, t.Pos}).Count(countrole)
  32. if err != nil {
  33. return err
  34. }
  35. if affw > 0 {
  36. return errors.New("数据已经存在!")
  37. }
  38. _, err = e.Table("printdetailtab").Insert(t)
  39. if err != nil {
  40. return err
  41. }
  42. return nil
  43. }
  44. //删
  45. func (t *Printdetailtab) Del() bool {
  46. e := db.Eloquent.Master()
  47. _, err := e.ID(core.PK{t.Finr, t.Printheadid, t.Pos}).Delete(&Printdetailtab{})
  48. if err != nil {
  49. return false
  50. }
  51. return true
  52. }
  53. //改
  54. func (t *Printdetailtab) Update() bool {
  55. e := db.Eloquent.Master()
  56. _, err := e.ID(core.PK{t.Finr, t.Printheadid, t.Pos}).Update(t)
  57. if err != nil {
  58. return false
  59. }
  60. return true
  61. }
  62. //查
  63. func (t *Printdetailtab) SelectOne() (Printdetailtab, error) {
  64. e := db.Eloquent.Master()
  65. var data Printdetailtab
  66. _, err := e.ID(core.PK{t.Finr, t.Printheadid, t.Pos}).Get(&data)
  67. if err != nil {
  68. return data, err
  69. }
  70. data.Clipped()
  71. return data, nil
  72. }
  73. //分页
  74. func (t *Printdetailtab) GetPage(pageSize int, pageIndex int) ([]Printdetailtab, int, error) {
  75. data := make([]Printdetailtab, 0)
  76. e := db.Eloquent.Master()
  77. table := e.Table("printdetailtab").Where("finr = ? ", t.Finr)
  78. where := "where finr = " + "'" + utils.ValueToString(t.Finr, "") + "'"
  79. if !utils.ValueIsEmpty(t.Printheadid) {
  80. table = table.And("printheadid = ?", t.Printheadid)
  81. where += " and printheadid = " + "'" + t.Printheadid + "'"
  82. }
  83. Offset := (pageIndex - 1) * pageSize
  84. err := e.SQL("SELECT TOP " + utils.ValueToString(pageSize, "") + " printdetailtab.* FROM printdetailtab " + where + " AND (convert(varchar(10),finr)+convert(varchar(40),printheadid)+convert(varchar(20),pos) NOT IN (SELECT TOP " + utils.ValueToString(Offset, "") + " convert(varchar(10),finr)+convert(varchar(40),printheadid)+convert(varchar(20),pos) FROM printdetailtab " + where + " ORDER BY credatuz DESC)) ORDER BY credatuz DESC").Find(&data)
  85. pcount := new(Printdetailtab)
  86. count, err := table.Count(pcount)
  87. if err != nil {
  88. return data, 0, err
  89. }
  90. for k, _ := range data {
  91. data[k].Clipped()
  92. }
  93. return data, int(count), nil
  94. }