GAAS GFrame项目web后台
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.

334 lines
11 KiB

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 implments
  3. import (
  4. "LAPP_GAAS_GFrame_BACKEND/grmi"
  5. meta "LAPP_GAAS_GFrame_BACKEND/meta/base"
  6. model "LAPP_GAAS_GFrame_BACKEND/models/base"
  7. "LAPP_GAAS_GFrame_BACKEND/utils"
  8. "fmt"
  9. "github.com/go-xorm/xorm"
  10. "time"
  11. "xorm.io/core"
  12. )
  13. /******************************************************************************
  14. *
  15. * @Struct Name : WorkCalendarDAOImplement
  16. *-----------------------------------------------------------------------------
  17. *
  18. * @Description : WorkCalendar的数据访问对象实现
  19. *
  20. * @Author : 代码生成器创建
  21. *
  22. * @Date : 2021-04-19 12:11:47
  23. *
  24. ******************************************************************************/
  25. type WorkCalendarDAOImplement struct {
  26. session *xorm.Session
  27. meta *grmi.Entity
  28. plantNr int
  29. userid string
  30. }
  31. /******************************************************************************
  32. *
  33. * @Function Name : NewWorkCalendarDAOImplement
  34. *-----------------------------------------------------------------------------
  35. *
  36. * @Description : 创建一个WorkCalendarDAOImplement实例
  37. *
  38. * @Function Parameters : xorm会话
  39. *
  40. * @Function Parameters : 基本主键
  41. *
  42. * @Return Value : WorkCalendarDAOImplement实例
  43. *
  44. * @Author : 代码生成器创建
  45. *
  46. * @Date : 2021-04-19 12:11:47
  47. *
  48. ******************************************************************************/
  49. func NewWorkCalendarDAOImplement(session *xorm.Session, plantNr int, userid string) *WorkCalendarDAOImplement {
  50. return &WorkCalendarDAOImplement{session, &meta.WorkCalendar, plantNr, userid}
  51. }
  52. /******************************************************************************
  53. *
  54. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.InsertOne
  55. *
  56. ******************************************************************************/
  57. func (impl *WorkCalendarDAOImplement) InsertOne(entity *model.WorkCalendar) (int, error) {
  58. entity.PlantNr = impl.plantNr
  59. entity.LastUser = impl.userid
  60. _, err := impl.session.Table(impl.meta.TableName).Insert(entity)
  61. if err != nil {
  62. return 0, grmi.NewDataBaseError(err)
  63. }
  64. return entity.WorkCalendarNr, nil
  65. }
  66. /******************************************************************************
  67. *
  68. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.DeleteOne
  69. *
  70. ******************************************************************************/
  71. func (impl *WorkCalendarDAOImplement) DeleteOne(workCalendarNr int) error {
  72. _, err := impl.session.Table(impl.meta.TableName).ID(core.PK{impl.plantNr, workCalendarNr}).Delete(impl.meta.Indicator)
  73. if err != nil {
  74. return grmi.NewDataBaseError(err)
  75. }
  76. return nil
  77. }
  78. /******************************************************************************
  79. *
  80. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.SelectOne
  81. *
  82. ******************************************************************************/
  83. func (impl *WorkCalendarDAOImplement) SelectOne(workCalendarNr int) (*model.WorkCalendar, error) {
  84. var data model.WorkCalendar
  85. ok, err := impl.session.Table(impl.meta.TableName).ID(core.PK{impl.plantNr, workCalendarNr}).Get(&data)
  86. if err != nil {
  87. return nil, grmi.NewDataBaseError(err)
  88. }
  89. if !ok {
  90. return nil, nil
  91. }
  92. return &data, nil
  93. }
  94. /******************************************************************************
  95. *
  96. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.UpdateOne
  97. *
  98. ******************************************************************************/
  99. func (impl *WorkCalendarDAOImplement) UpdateOne(entity *model.WorkCalendar) error {
  100. entity.PlantNr = impl.plantNr
  101. entity.LastUser = impl.userid
  102. _, err := impl.session.Table(impl.meta.TableName).Cols(impl.meta.UpdatingMembers...).ID(entity.GetKey()).Update(entity)
  103. if err != nil {
  104. return grmi.NewDataBaseError(err)
  105. }
  106. return nil
  107. }
  108. /******************************************************************************
  109. *
  110. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.Insert
  111. *
  112. ******************************************************************************/
  113. func (impl *WorkCalendarDAOImplement) Insert(entities *[]model.WorkCalendar) error {
  114. for i := 0; i < len(*entities); i++ {
  115. entity := &(*entities)[i]
  116. entity.PlantNr = impl.plantNr
  117. entity.LastUser = impl.userid
  118. }
  119. _, err := impl.session.Table(impl.meta.TableName).Insert(entities)
  120. if err != nil {
  121. return grmi.NewDataBaseError(err)
  122. }
  123. return nil
  124. }
  125. /******************************************************************************
  126. *
  127. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.Delete
  128. *
  129. ******************************************************************************/
  130. func (impl *WorkCalendarDAOImplement) Delete(entities *[]model.WorkCalendar) error {
  131. for _, entity := range *entities {
  132. entity.PlantNr = impl.plantNr
  133. _, err := impl.session.Table(impl.meta.TableName).ID(entity.GetKey()).Delete(impl.meta.Indicator)
  134. if err != nil {
  135. return grmi.NewDataBaseError(err)
  136. }
  137. }
  138. return nil
  139. }
  140. /******************************************************************************
  141. *
  142. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.DeleteWhere
  143. *
  144. ******************************************************************************/
  145. func (impl *WorkCalendarDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
  146. parameters := []interface{}{impl.plantNr}
  147. where := fmt.Sprintf("%s = ?", meta.WorkCalendar_PlantNr.ColumnName)
  148. session := impl.session.Table(impl.meta.TableName)
  149. if predicates != nil {
  150. for _, predicate := range predicates {
  151. where += predicate.Build()
  152. parameters = append(parameters, predicate.Values...)
  153. }
  154. session = session.Where(where, parameters...)
  155. } else {
  156. session = session.Where(where, parameters...)
  157. }
  158. _, err := session.Delete(impl.meta.Indicator)
  159. if err != nil {
  160. return grmi.NewDataBaseError(err)
  161. }
  162. return nil
  163. }
  164. /******************************************************************************
  165. *
  166. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.Select
  167. *
  168. ******************************************************************************/
  169. func (impl *WorkCalendarDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.WorkCalendar, error) {
  170. parameters := []interface{}{impl.plantNr}
  171. where := fmt.Sprintf("%s = ?", meta.WorkCalendar_PlantNr.ColumnName)
  172. session := impl.session.Table(impl.meta.TableName)
  173. if predicates != nil {
  174. for _, predicate := range predicates {
  175. where += predicate.Build()
  176. parameters = append(parameters, predicate.Values...)
  177. }
  178. session = session.Where(where, parameters...)
  179. } else {
  180. session = session.Where(where, parameters...)
  181. }
  182. session = session.OrderBy(meta.WorkCalendar_PlantNr.ColumnName)
  183. if orderByFields != nil {
  184. for _, field := range orderByFields {
  185. session = session.OrderBy(field.ColumnName)
  186. }
  187. }
  188. data := make([]model.WorkCalendar, 0, 10)
  189. err := session.Find(&data)
  190. if err != nil {
  191. return nil, grmi.NewDataBaseError(err)
  192. }
  193. return data, nil
  194. }
  195. /******************************************************************************
  196. *
  197. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.SelectAndPaging
  198. *
  199. ******************************************************************************/
  200. func (impl *WorkCalendarDAOImplement) SelectAndPaging(paging *grmi.Paging, predicates []grmi.Predicate, orderByFields []grmi.Field) (grmi.PagingResult, error) {
  201. parameters := []interface{}{impl.plantNr}
  202. where := fmt.Sprintf("%s = ?", meta.WorkCalendar_PlantNr.ColumnName)
  203. session := impl.session.Table(impl.meta.TableName)
  204. if predicates != nil {
  205. for _, predicate := range predicates {
  206. where += predicate.Build()
  207. parameters = append(parameters, predicate.Values...)
  208. }
  209. session = session.Where(where, parameters...)
  210. } else {
  211. session = session.Where(where, parameters...)
  212. }
  213. count, err := session.Count(impl.meta.Indicator)
  214. if err != nil {
  215. return grmi.EmptyPagingResult, err
  216. }
  217. orderBy := " order by " + meta.WorkCalendar_PlantNr.ColumnName
  218. if orderByFields != nil {
  219. for _, field := range orderByFields {
  220. orderBy += ", " + field.ColumnName
  221. }
  222. }
  223. parameters = append(parameters, paging.Offset(), paging.Size)
  224. data := make([]model.WorkCalendar, 0, 10)
  225. if where != "" {
  226. where = " where " + where
  227. }
  228. err = impl.session.Table(impl.meta.TableName).SQL("select * from "+impl.meta.TableName+where+orderBy+" offset ? row fetch next ? row only", parameters...).Find(&data)
  229. if err != nil {
  230. return grmi.EmptyPagingResult, err
  231. }
  232. return grmi.PagingResult{Records: data, Count: count, PageNumber: paging.Number, PageSize: paging.Size}, nil
  233. }
  234. /******************************************************************************
  235. *
  236. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.Update
  237. *
  238. ******************************************************************************/
  239. func (impl *WorkCalendarDAOImplement) Update(entities *[]model.WorkCalendar) error {
  240. for i := 0; i < len(*entities); i++ {
  241. entity := &(*entities)[i]
  242. entity.PlantNr = impl.plantNr
  243. entity.LastUser = impl.userid
  244. _, err := impl.session.Table(impl.meta.TableName).Cols(impl.meta.UpdatingMembers...).ID(entity.GetKey()).Update(entity)
  245. if err != nil {
  246. return grmi.NewDataBaseError(err)
  247. }
  248. }
  249. return nil
  250. }
  251. /******************************************************************************
  252. *
  253. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.UpdateWhere
  254. *
  255. ******************************************************************************/
  256. func (impl *WorkCalendarDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.WorkCalendar, columns ...string) error {
  257. parameters := []interface{}{impl.plantNr}
  258. where := fmt.Sprintf("%s = ?", meta.WorkCalendar_PlantNr.ColumnName)
  259. session := impl.session.Table(impl.meta.TableName)
  260. if predicates != nil {
  261. for _, predicate := range predicates {
  262. where += predicate.Build()
  263. parameters = append(parameters, predicate.Values...)
  264. }
  265. session = session.Where(where, parameters...)
  266. } else {
  267. session = session.Where(where, parameters...)
  268. }
  269. columns = append(columns, meta.WorkCalendar_LastUser.ColumnName)
  270. entity.LastUser = impl.userid
  271. _, err := impl.session.Table(impl.meta.TableName).Cols(columns...).Update(entity)
  272. if err != nil {
  273. return grmi.NewDataBaseError(err)
  274. }
  275. return nil
  276. }
  277. /******************************************************************************
  278. *
  279. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/WorkCalendarDAO.SelectAll
  280. *
  281. ******************************************************************************/
  282. func (impl *WorkCalendarDAOImplement) SelectAll(startDate, endDate time.Time) (datalst []model.WorkCalendar, err error) {
  283. var (
  284. i int
  285. startday, endday string
  286. )
  287. // 获取日历头信息
  288. session := impl.session.Table(impl.meta.TableName)
  289. if err = session.Where("PlantNr = ?",impl.plantNr).OrderBy("WorkCalendarNr").Find(&datalst); err != nil {
  290. return
  291. }
  292. // 获取明细数据
  293. startday = utils.GetYMDString(startDate)
  294. endday = utils.GetYMDString(endDate)
  295. for i = 0; i < len(datalst); i++ {
  296. if err = session.Table(meta.WorkCalendarLst.TableName).Where("PlantNr = ? and WorkCalendarNr = ? and WorkDate >= ? and WorkDate <= ?",
  297. datalst[i].PlantNr, datalst[i].WorkCalendarNr, startday, endday).OrderBy("WorkDate").Find(&datalst[i].WorkCalendarLstLi); err != nil {
  298. return
  299. }
  300. }
  301. return
  302. }