第二代基于事件的高级计划排程引擎
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.

173 lines
4.6 KiB

3 years ago
  1. // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
  2. package models
  3. import (
  4. "errors"
  5. "leit.com/aps_engine/db"
  6. "time"
  7. "xorm.io/core"
  8. )
  9. type Toolunavailtimelst struct {
  10. Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"`
  11. Toolnr int `json:"ToolNr" xorm:"not null pk INT(4)"`
  12. Projectid string `json:"ProjectId" xorm:"not null NVARCHAR(80)"`
  13. Begtime time.Time `json:"BegTime" xorm:"not null pk DATETIME(8)"`
  14. Endtime time.Time `json:"EndTime" xorm:"DATETIME(8)"`
  15. Lastmodify time.Time `json:"LastModify" xorm:"DATETIME(8)"`
  16. Lastuser string `json:"LastUser" xorm:"not null NVARCHAR(40)"`
  17. Createtime time.Time `json:"CreateTime" xorm:"DATETIME(8)"`
  18. }
  19. /******数据表名******/
  20. func (t *Toolunavailtimelst) TableName() string {
  21. return "Toolunavailtimelst"
  22. }
  23. /******************************************************************************
  24. *
  25. * @Function Name :
  26. *-----------------------------------------------------------------------------
  27. *
  28. * @Description : 数据添加
  29. *
  30. * @Function Parameters:
  31. *
  32. * @Return Value :
  33. *
  34. * @Author : Lou Wenzhi
  35. *
  36. * @Date : 2021/3/6 8:47
  37. *
  38. ******************************************************************************/
  39. func (t *Toolunavailtimelst) Add() error {
  40. e := db.Eloquent.Master()
  41. count := new(Toolunavailtimelst)
  42. /**主键:****/
  43. /******/
  44. affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).Count(count)
  45. if err != nil {
  46. return err
  47. }
  48. if affw > 0 {
  49. return errors.New("数据已经存在!")
  50. }
  51. _, err = e.Table(t.TableName()).Insert(t)
  52. if err != nil {
  53. return err
  54. }
  55. return nil
  56. }
  57. /******************************************************************************
  58. *
  59. * @Function Name :
  60. *-----------------------------------------------------------------------------
  61. *
  62. * @Description : 数据删除
  63. *
  64. * @Function Parameters:
  65. *
  66. * @Return Value :
  67. *
  68. * @Author : Lou Wenzhi
  69. *
  70. * @Date : 2021/3/6 8:47
  71. *
  72. ******************************************************************************/
  73. func (t *Toolunavailtimelst) Del() (err error) {
  74. e := db.Eloquent.Master()
  75. /**主键:****/
  76. /******/
  77. _, err = e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).Delete(&Toolunavailtimelst{})
  78. if err != nil {
  79. return
  80. }
  81. return nil
  82. }
  83. /******************************************************************************
  84. *
  85. * @Function Name :
  86. *-----------------------------------------------------------------------------
  87. *
  88. * @Description : 数据修改
  89. *
  90. * @Function Parameters:
  91. *
  92. * @Return Value :
  93. *
  94. * @Author : Lou Wenzhi
  95. *
  96. * @Date : 2021/3/6 8:47
  97. *
  98. ******************************************************************************/
  99. func (t *Toolunavailtimelst) Update() error {
  100. e := db.Eloquent.Master()
  101. /**主键:****/
  102. /******/
  103. _, err := e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).Update(t)
  104. if err != nil {
  105. return err
  106. }
  107. return nil
  108. }
  109. /******************************************************************************
  110. *
  111. * @Function Name :
  112. *-----------------------------------------------------------------------------
  113. *
  114. * @Description : 数据查找
  115. *
  116. * @Function Parameters:
  117. *
  118. * @Return Value :
  119. *
  120. * @Author : Lou Wenzhi
  121. *
  122. * @Date : 2021/3/6 8:47
  123. *
  124. ******************************************************************************/
  125. func (t *Toolunavailtimelst) SelectOne() (Toolunavailtimelst, error) {
  126. e := db.Eloquent.Master()
  127. var data Toolunavailtimelst
  128. /**主键:****/
  129. /******/
  130. _, err := e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).Get(&data)
  131. if err != nil {
  132. return data, err
  133. }
  134. return data, nil
  135. }
  136. /******************************************************************************
  137. *
  138. * @Function Name :
  139. *-----------------------------------------------------------------------------
  140. *
  141. * @Description : 查找指定时段内所有工具的不可用时间
  142. *
  143. * @Function Parameters:
  144. *
  145. * @Return Value :
  146. *
  147. * @Author : LEO XUE
  148. *
  149. * @Date : 2021/5/10 8:47
  150. *
  151. ******************************************************************************/
  152. func (t *Toolunavailtimelst) GetUnAvailTime(starttime, endtime time.Time) (datalst []Toolunavailtimelst, err error) {
  153. e := db.Eloquent.Master()
  154. if err = e.Table(t.TableName()).Where("PlantNr = ? and BegTime >= ? and BegTime <= ?",
  155. t.Plantnr, starttime, endtime).Or("PlantNr = ? and EndTime >= ? and EndTime <= ?",
  156. t.Plantnr, starttime, endtime).Asc("ToolNr","BegTime").Find(&datalst); err != nil{
  157. return
  158. }
  159. return
  160. }