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

208 lines
7.2 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 Article struct {
  10. Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"`
  11. Artid string `json:"ArtId" xorm:"not null pk NVARCHAR(80)"`
  12. Descr1 string `json:"Descr1" xorm:"not null NVARCHAR(200)"`
  13. Descr2 string `json:"Descr2" xorm:"not null NVARCHAR(200)"`
  14. Arttypeid string `json:"ArtTypeId" xorm:"not null NVARCHAR(80)"`
  15. Projectid string `json:"ProjectId" xorm:"not null NVARCHAR(80)"`
  16. Custartid string `json:"CustArtId" xorm:"not null NVARCHAR(80)"`
  17. Alternativeartid string `json:"AlternativeArtId" xorm:"not null NVARCHAR(80)"`
  18. Planresourcegroupid string `json:"PlanResourceGroupId" xorm:"not null NVARCHAR(80)"`
  19. Planresourceid string `json:"PlanResourceId" xorm:"not null NVARCHAR(80)"`
  20. Usedresourceid string `json:"UsedResourceId" xorm:"not null NVARCHAR(80)"`
  21. Uomid string `json:"UomId" xorm:"not null NVARCHAR(80)"`
  22. Planscraprate float32 `json:"PlanScrapRate" xorm:"not null FLOAT(8)"`
  23. Rateperhourtoggle int `json:"RatePerHourToggle" xorm:"not null BIT(1)"`
  24. Timeperitemtoggle int `json:"TimePerItemToggle" xorm:"not null BIT(1)"`
  25. Timeperbatchtoggle int `json:"TimePerBatchToggle" xorm:"not null BIT(1)"`
  26. Batchtimefieldtoggle int `json:"BatchTimeFieldToggle" xorm:"not null BIT(1)"`
  27. Optimeperitem float32 `json:"OpTimePerItem" xorm:"FLOAT(8)"`
  28. Batchtime float32 `json:"BatchTime" xorm:"FLOAT(8)"`
  29. Quantityperhour float32 `json:"QuantityPerHour" xorm:"not null FLOAT(8)"`
  30. Midbatchquantity int `json:"MidBatchQuantity" xorm:"not null INT(4)"`
  31. Midbatchtime time.Time `json:"MidBatchTime" xorm:"DATETIME(8)"`
  32. Effectiveoptime float32 `json:"EffectiveOpTime" xorm:"FLOAT(8)"`
  33. Batchingmethod int `json:"BatchingMethod" xorm:"not null INT(4)"`
  34. Deliverybuffer float32 `json:"DeliveryBuffer" xorm:"FLOAT(8)"`
  35. Icon string `json:"Icon" xorm:"not null NVARCHAR(200)"`
  36. Displaycolor string `json:"DisplayColor" xorm:"not null NVARCHAR(40)"`
  37. Document string `json:"Document" xorm:"not null NVARCHAR(200)"`
  38. Defaultroute string `json:"DefaultRoute" xorm:"not null NVARCHAR(80)"`
  39. Defaultinspectplanid string `json:"DefaultInspectPlanId" xorm:"not null NVARCHAR(80)"`
  40. Lotsize float32 `json:"LotSize" xorm:"FLOAT(8)"`
  41. Abcclass string `json:"ABCClass" xorm:"not null NVARCHAR(2)"`
  42. Artsize1 string `json:"ArtSize1" xorm:"not null NVARCHAR(200)"`
  43. Artsize2 string `json:"ArtSize2" xorm:"not null NVARCHAR(200)"`
  44. Artsize3 string `json:"ArtSize3" xorm:"not null NVARCHAR(200)"`
  45. Artsize4 string `json:"ArtSize4" xorm:"not null NVARCHAR(200)"`
  46. Artsize5 string `json:"ArtSize5" xorm:"not null NVARCHAR(200)"`
  47. Artspec1 string `json:"ArtSpec1" xorm:"not null NVARCHAR(200)"`
  48. Artspec2 string `json:"ArtSpec2" xorm:"not null NVARCHAR(200)"`
  49. Artspec3 string `json:"ArtSpec3" xorm:"not null NVARCHAR(200)"`
  50. Artspec4 string `json:"ArtSpec4" xorm:"not null NVARCHAR(200)"`
  51. Artspec5 string `json:"ArtSpec5" xorm:"not null NVARCHAR(200)"`
  52. Lastmodify time.Time `json:"LastModify" xorm:"DATETIME(8)"`
  53. Lastuser string `json:"LastUser" xorm:"not null NVARCHAR(40)"`
  54. Createtime time.Time `json:"CreateTime" xorm:"DATETIME(8)"`
  55. }
  56. /******数据表名******/
  57. func (t *Article) TableName() string {
  58. return "Article"
  59. }
  60. /******************************************************************************
  61. *
  62. * @Function Name :
  63. *-----------------------------------------------------------------------------
  64. *
  65. * @Description : 数据添加
  66. *
  67. * @Function Parameters:
  68. *
  69. * @Return Value :
  70. *
  71. * @Author : Lou Wenzhi
  72. *
  73. * @Date : 2021/3/6 8:47
  74. *
  75. ******************************************************************************/
  76. func (t *Article) Add() error {
  77. e := db.Eloquent.Master()
  78. count := new(Article)
  79. /**主键:****/
  80. /******/
  81. affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Artid}).Count(count)
  82. if err != nil {
  83. return err
  84. }
  85. if affw > 0 {
  86. return errors.New("数据已经存在!")
  87. }
  88. _, err = e.Table(t.TableName()).Insert(t)
  89. if err != nil {
  90. return err
  91. }
  92. return nil
  93. }
  94. /******************************************************************************
  95. *
  96. * @Function Name :
  97. *-----------------------------------------------------------------------------
  98. *
  99. * @Description : 数据删除
  100. *
  101. * @Function Parameters:
  102. *
  103. * @Return Value :
  104. *
  105. * @Author : Lou Wenzhi
  106. *
  107. * @Date : 2021/3/6 8:47
  108. *
  109. ******************************************************************************/
  110. func (t *Article) Del() (err error) {
  111. e := db.Eloquent.Master()
  112. /**主键:****/
  113. /******/
  114. _, err = e.ID(core.PK{t.Plantnr, t.Artid}).Delete(&Article{})
  115. if err != nil {
  116. return
  117. }
  118. return nil
  119. }
  120. /******************************************************************************
  121. *
  122. * @Function Name :
  123. *-----------------------------------------------------------------------------
  124. *
  125. * @Description : 数据修改
  126. *
  127. * @Function Parameters:
  128. *
  129. * @Return Value :
  130. *
  131. * @Author : Lou Wenzhi
  132. *
  133. * @Date : 2021/3/6 8:47
  134. *
  135. ******************************************************************************/
  136. func (t *Article) Update() error {
  137. e := db.Eloquent.Master()
  138. /**主键:****/
  139. /******/
  140. _, err := e.ID(core.PK{t.Plantnr, t.Artid}).Update(t)
  141. if err != nil {
  142. return err
  143. }
  144. return nil
  145. }
  146. /******************************************************************************
  147. *
  148. * @Function Name :
  149. *-----------------------------------------------------------------------------
  150. *
  151. * @Description : 数据查找
  152. *
  153. * @Function Parameters:
  154. *
  155. * @Return Value :
  156. *
  157. * @Author : Lou Wenzhi
  158. *
  159. * @Date : 2021/3/6 8:47
  160. *
  161. ******************************************************************************/
  162. func (t *Article) SelectOne() (Article, error) {
  163. e := db.Eloquent.Master()
  164. var data Article
  165. /**主键:****/
  166. /******/
  167. _, err := e.ID(core.PK{t.Plantnr, t.Artid}).Get(&data)
  168. if err != nil {
  169. return data, err
  170. }
  171. return data, nil
  172. }
  173. /******************************************************************************
  174. *
  175. * @Function Name :
  176. *-----------------------------------------------------------------------------
  177. *
  178. * @Description : 查找所有的物料
  179. *
  180. * @Function Parameters:
  181. *
  182. * @Return Value :
  183. *
  184. * @Author : LEO XUE
  185. *
  186. * @Date : 2021/5/10 8:47
  187. *
  188. ******************************************************************************/
  189. func (t *Article) SelectAll() (datalst []Article, err error) {
  190. e := db.Eloquent.Master()
  191. if err = e.Table(t.TableName()).Where("PlantNr = ?",t.Plantnr).OrderBy("ArtId").Find(&datalst); err != nil{
  192. return
  193. }
  194. return
  195. }