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

205 lines
5.8 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
  2. package models
  3. import (
  4. "fmt"
  5. "leit.com/aps_engine/db"
  6. "errors"
  7. "leit.com/aps_engine/grmi"
  8. "xorm.io/core"
  9. "time"
  10. )
  11. type WorkCalendar struct {
  12. PlantNr int `xorm:"pk int 'PlantNr'" json:"WorkCalendar-PlantNr"`
  13. WorkCalendarNr int `xorm:"pk int 'WorkCalendarNr' autoincr" json:"WorkCalendar-WorkCalendarNr"`
  14. Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"WorkCalendar-Descr"`
  15. LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"WorkCalendar-LastModify"`
  16. LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"WorkCalendar-LastUser"`
  17. CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"WorkCalendar-CreateTime"`
  18. WorkCalendarLst []WorkCalendarLstAndDay `xorm:"-" json:"WorkCalendar-WorkCalendarLst"`
  19. WorkCalendarLstLi []WorkCalendarLst `xorm:"-" json:"WorkCalendar-WorkCalendarLstLi"`
  20. }
  21. /******数据表名******/
  22. func (t *WorkCalendar) TableName() string {
  23. return "Workcalendar"
  24. }
  25. /******************************************************************************
  26. *
  27. * @Function Name : GetKey
  28. *-----------------------------------------------------------------------------
  29. *
  30. * @Description : 获取实体的主键
  31. *
  32. * @Return Value : 实体的主键
  33. *
  34. * @Author : 代码生成器创建
  35. *
  36. * @Date : 2021-03-23 17:06:57
  37. *
  38. ******************************************************************************/
  39. func (self *WorkCalendar) GetKey() core.PK {
  40. return core.PK{self.PlantNr, self.WorkCalendarNr}
  41. }
  42. /******************************************************************************
  43. *
  44. * @Function Name :
  45. *-----------------------------------------------------------------------------
  46. *
  47. * @Description : 数据添加
  48. *
  49. * @Function Parameters:
  50. *
  51. * @Return Value :
  52. *
  53. * @Author : Lou Wenzhi
  54. *
  55. * @Date : 2021/3/6 8:47
  56. *
  57. ******************************************************************************/
  58. func (t *WorkCalendar) Add() error {
  59. e := db.Eloquent.Master()
  60. count := new(WorkCalendar)
  61. affw, err := e.Table(t.TableName()).ID(t.GetKey()).Count(count)
  62. if err != nil {
  63. return err
  64. }
  65. if affw > 0 {
  66. return errors.New("数据已经存在!")
  67. }
  68. _, err = e.Table(t.TableName()).Insert(t)
  69. if err != nil {
  70. return err
  71. }
  72. return nil
  73. }
  74. /******************************************************************************
  75. *
  76. * @Function Name :
  77. *-----------------------------------------------------------------------------
  78. *
  79. * @Description : 数据删除
  80. *
  81. * @Function Parameters:
  82. *
  83. * @Return Value :
  84. *
  85. * @Author : Lou Wenzhi
  86. *
  87. * @Date : 2021/3/6 8:47
  88. *
  89. ******************************************************************************/
  90. func (t *WorkCalendar) Del() bool {
  91. e := db.Eloquent.Master()
  92. _, err := e.ID(t.GetKey()).Delete(&WorkCalendar{})
  93. if err != nil {
  94. return false
  95. }
  96. return true
  97. }
  98. /******************************************************************************
  99. *
  100. * @Function Name :
  101. *-----------------------------------------------------------------------------
  102. *
  103. * @Description : 数据修改
  104. *
  105. * @Function Parameters:
  106. *
  107. * @Return Value :
  108. *
  109. * @Author : Lou Wenzhi
  110. *
  111. * @Date : 2021/3/6 8:47
  112. *
  113. ******************************************************************************/
  114. func (t *WorkCalendar) Update() error {
  115. e := db.Eloquent.Master()
  116. _, err := e.ID(t.GetKey()).Update(t)
  117. if err != nil {
  118. return err
  119. }
  120. return nil
  121. }
  122. /******************************************************************************
  123. *
  124. * @Function Name :
  125. *-----------------------------------------------------------------------------
  126. *
  127. * @Description : 数据查找
  128. *
  129. * @Function Parameters:
  130. *
  131. * @Return Value :
  132. *
  133. * @Author : Lou Wenzhi
  134. *
  135. * @Date : 2021/3/6 8:47
  136. *
  137. ******************************************************************************/
  138. func (t *WorkCalendar) SelectOne() (WorkCalendar, error) {
  139. e := db.Eloquent.Master()
  140. var data WorkCalendar
  141. _, err := e.ID(t.GetKey()).Get(&data)
  142. if err != nil {
  143. return data, err
  144. }
  145. return data, nil
  146. }
  147. /******************************************************************************
  148. *
  149. * @Function Name :
  150. *-----------------------------------------------------------------------------
  151. *
  152. * @Description : 数据查找
  153. *
  154. * @Function Parameters:
  155. *
  156. * @Return Value :
  157. *
  158. * @Author : Lou Wenzhi
  159. *
  160. * @Date : 2021/3/6 8:47
  161. *
  162. ******************************************************************************/
  163. func (t *WorkCalendar) SelectAll(startDate, endDate time.Time) (datalst []WorkCalendar, err error) {
  164. var (
  165. i int
  166. startday, endday string
  167. )
  168. // 获取日历头信息
  169. e := db.Eloquent.Master()
  170. if err = e.Table(t.TableName()).Where("PlantNr = ?",t.PlantNr).OrderBy("WorkCalendarNr").Find(&datalst); err != nil {
  171. return
  172. }
  173. // 获取明细数据
  174. startday = getYMDString(startDate)
  175. endday = getYMDString(endDate)
  176. for i = 0; i < len(datalst); i++ {
  177. if err = e.Table("WorkCalendarLst").Where("PlantNr = ? and WorkCalendarNr = ? and WorkDate >= ? and WorkDate <= ?",
  178. datalst[i].PlantNr, datalst[i].WorkCalendarNr, startday, endday).OrderBy("WorkDate").Find(&datalst[i].WorkCalendarLstLi); err != nil {
  179. return
  180. }
  181. }
  182. return
  183. }
  184. // 获取时间点的日期,以年月日字符类型数据返回
  185. func getYMDString(t time.Time)(ymd string){
  186. var (
  187. y1, d1 int
  188. m1 time.Month
  189. )
  190. y1,m1,d1 = t.Date()
  191. ymd = fmt.Sprintf("%04d", y1) + fmt.Sprintf("%02d", int(m1)) + fmt.Sprintf("%02d", d1)
  192. return
  193. }