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.

380 lines
13 KiB

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