苏州瑞玛APS项目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.

587 lines
20 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
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 implments
  3. import (
  4. "fmt"
  5. baseDal "leit.com/LAPP_CHEERSSON_BACKEND/dao/base"
  6. dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/me"
  7. "leit.com/LAPP_CHEERSSON_BACKEND/db"
  8. "leit.com/LAPP_CHEERSSON_BACKEND/global"
  9. "leit.com/LAPP_CHEERSSON_BACKEND/grmi"
  10. meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/me"
  11. baseModel "leit.com/LAPP_CHEERSSON_BACKEND/models/base"
  12. model "leit.com/LAPP_CHEERSSON_BACKEND/models/me"
  13. "leit.com/LAPP_CHEERSSON_BACKEND/utils"
  14. )
  15. /******************************************************************************
  16. *
  17. * @Description : BomLst的默认查询条件
  18. *
  19. * @Author : 代码生成器创建
  20. *
  21. * @Date : 2021-08-09 14:13:50
  22. *
  23. ******************************************************************************/
  24. var DefaultConditionOfBomLst = grmi.NewCondition(
  25. map[string]grmi.ConditionItem{
  26. meta.BomLst_BomId.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BomId, grmi.Equal, true),
  27. meta.BomLst_FmatNr.UrlParameterName: grmi.NewConditionItem(meta.BomLst_FmatNr, grmi.Equal, true),
  28. meta.BomLst_CmatNr.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CmatNr, grmi.Equal, true),
  29. meta.BomLst_FmatName.UrlParameterName: grmi.NewConditionItem(meta.BomLst_FmatName, grmi.Equal, false),
  30. meta.BomLst_FmatSpec.UrlParameterName: grmi.NewConditionItem(meta.BomLst_FmatSpec, grmi.Equal, false),
  31. meta.BomLst_FmatQty.UrlParameterName: grmi.NewConditionItem(meta.BomLst_FmatQty, grmi.Equal, false),
  32. meta.BomLst_FmatUom.UrlParameterName: grmi.NewConditionItem(meta.BomLst_FmatUom, grmi.Equal, false),
  33. meta.BomLst_CmatName.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CmatName, grmi.Equal, false),
  34. meta.BomLst_CmatQty.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CmatQty, grmi.Equal, false),
  35. meta.BomLst_CmatUom.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CmatUom, grmi.Equal, false),
  36. meta.BomLst_CmatType.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CmatType, grmi.Equal, false),
  37. meta.BomLst_Position.UrlParameterName: grmi.NewConditionItem(meta.BomLst_Position, grmi.Equal, false),
  38. meta.BomLst_LeadTime.UrlParameterName: grmi.NewConditionItem(meta.BomLst_LeadTime, grmi.Equal, false),
  39. meta.BomLst_TimeUom.UrlParameterName: grmi.NewConditionItem(meta.BomLst_TimeUom, grmi.Equal, false),
  40. meta.BomLst_LossRate.UrlParameterName: grmi.NewConditionItem(meta.BomLst_LossRate, grmi.Equal, false),
  41. meta.BomLst_BackFlushItem.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BackFlushItem, grmi.Equal, false),
  42. meta.BomLst_CriticalItem.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CriticalItem, grmi.Equal, false),
  43. meta.BomLst_ValidFrom.UrlParameterName: grmi.NewConditionItem(meta.BomLst_ValidFrom, grmi.Equal, false),
  44. meta.BomLst_ValidTo.UrlParameterName: grmi.NewConditionItem(meta.BomLst_ValidTo, grmi.Equal, false),
  45. meta.BomLst_BomlstCval1.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BomlstCval1, grmi.Equal, false),
  46. meta.BomLst_BomlstCval2.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BomlstCval2, grmi.Equal, false),
  47. meta.BomLst_BomlstIval1.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BomlstIval1, grmi.Equal, false),
  48. meta.BomLst_BomlstIval2.UrlParameterName: grmi.NewConditionItem(meta.BomLst_BomlstIval2, grmi.Equal, false),
  49. meta.BomLst_LevelNr.UrlParameterName: grmi.NewConditionItem(meta.BomLst_LevelNr, grmi.Equal, false),
  50. meta.BomLst_LastModify.UrlParameterName: grmi.NewConditionItem(meta.BomLst_LastModify, grmi.Approximate, false),
  51. meta.BomLst_LastUser.UrlParameterName: grmi.NewConditionItem(meta.BomLst_LastUser, grmi.Equal, false),
  52. meta.BomLst_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.BomLst_CreateTime, grmi.Approximate, false),
  53. },
  54. nil,
  55. )
  56. /******************************************************************************
  57. *
  58. * @Description : BomLst的默认分页查询条件
  59. *
  60. * @Author : 代码生成器创建
  61. *
  62. * @Date : 2021-08-09 14:13:50
  63. *
  64. ******************************************************************************/
  65. var DefaultConditionOfBomLstAndPaging = grmi.NewCondition(
  66. DefaultConditionOfBomLst.Items,
  67. grmi.NewPaging(),
  68. )
  69. /******************************************************************************
  70. *
  71. * @Struct Name : BomLstServiceImplement
  72. *-----------------------------------------------------------------------------
  73. *
  74. * @Description : BomLst的服务实现
  75. *
  76. * @Author : 代码生成器创建
  77. *
  78. * @Date : 2021-08-09 14:13:50
  79. *
  80. ******************************************************************************/
  81. type BomLstServiceImplement struct {
  82. }
  83. /******************************************************************************
  84. *
  85. * @Function Name : NewBomLstDAOImplement
  86. *-----------------------------------------------------------------------------
  87. *
  88. * @Description : 创建一个BomLstDAOImplement实例
  89. *
  90. * @Return Value : BomLstDAOImplement实例
  91. *
  92. * @Author : 代码生成器创建
  93. *
  94. * @Date : 2021-08-09 14:13:50
  95. *
  96. ******************************************************************************/
  97. func NewBomLstServiceImplement() *BomLstServiceImplement {
  98. return &BomLstServiceImplement{}
  99. }
  100. func (impl *BomLstServiceImplement) ImportBomList(response map[int][][]interface{}) {
  101. grmi.Log(nil, "/services/me/implments/BomLst.service.impl.go", "ImportBomList", "导入bomlist")
  102. engine := db.Eloquent.Master()
  103. session := engine.NewSession()
  104. defer session.Close()
  105. if err := session.Begin(); err != nil {
  106. fmt.Println(err.Error())
  107. return
  108. }
  109. dao := dal.NewBomLstDAO(session, baseModel.PlantNr, "System")
  110. articleDao := baseDal.NewArticleDAO(session, baseModel.PlantNr, "System")
  111. headDao := dal.NewBomHeadDAO(session, baseModel.PlantNr, "System")
  112. articleMap := make(map[string]baseModel.Article)
  113. sonArticleMap := make(map[string]baseModel.Article)
  114. headMap := make(map[string]*model.BomHead)
  115. _ = session.Begin()
  116. var dataArr []model.BomLst
  117. var headArr []model.BomHead
  118. for _, v := range response {
  119. for k, _v := range v {
  120. //查询物料
  121. if _, ok := articleMap[utils.ValueToString(_v[15], "")]; !ok {
  122. _article, err := articleDao.SelectOne(utils.ValueToString(_v[15], ""))
  123. if err != nil || _article == nil {
  124. continue
  125. }
  126. articleMap[utils.ValueToString(_v[15], "")] = *_article
  127. sonArticleMap[utils.ValueToString(_v[15], "")] = *_article
  128. } else {
  129. if k == 0 {
  130. //不存重复物料bom
  131. break
  132. }
  133. }
  134. _article := articleMap[utils.ValueToString(_v[15], "")]
  135. if k == 0 {
  136. //先删除零件下所有bom
  137. _ = dao.DeleteWhere([]grmi.Predicate{
  138. meta.BomLst_BomId.NewPredicate(grmi.Equal, _article.ArtId),
  139. })
  140. //查询head
  141. _headInfo := &model.BomHead{}
  142. if _info, ok := headMap[_article.ArtId]; ok {
  143. _headInfo = _info
  144. } else {
  145. _info, err := headDao.SelectOne(_article.ArtId)
  146. if err != nil {
  147. continue
  148. }
  149. _headInfo = _info
  150. }
  151. if _headInfo == nil {
  152. _headInfo = &model.BomHead{
  153. PlantNr: baseModel.PlantNr,
  154. BomId: _article.ArtId,
  155. MatNr: _article.ArtId,
  156. Descr: _article.Descr1,
  157. }
  158. headMap[_article.ArtId] = _headInfo
  159. headArr = append(headArr, *_headInfo)
  160. }
  161. }
  162. //子物料
  163. if _, ok := sonArticleMap[utils.ValueToString(_v[16], "")]; !ok {
  164. _article, err := articleDao.SelectOne(utils.ValueToString(_v[16], ""))
  165. if err != nil || _article == nil {
  166. continue
  167. }
  168. sonArticleMap[utils.ValueToString(_v[16], "")] = *_article
  169. }
  170. _sonArticel := sonArticleMap[utils.ValueToString(_v[16], "")]
  171. //插入
  172. dataArr = append(dataArr, model.BomLst{
  173. PlantNr: baseModel.PlantNr,
  174. BomId: _article.ArtId,
  175. FmatNr: _article.ArtId,
  176. FmatName: _article.Descr1,
  177. FmatSpec: _article.ArtSpec2,
  178. FmatQty: 1,
  179. FmatUom: utils.ValueToString(_v[17], ""),
  180. CmatNr: _sonArticel.ArtId,
  181. CmatName: _sonArticel.Descr1,
  182. CmatQty: utils.ValueToFloat(_v[6], 0) / utils.ValueToFloat(_v[7], 0),
  183. CmatUom: utils.ValueToString(_v[18], ""),
  184. CmatType: utils.ValueToString(_v[9], ""),
  185. Position: utils.ValueToInt(_v[12], 0),
  186. TimeUom: utils.ValueToString(_v[10], ""),
  187. LossRate: utils.ValueToFloat(_v[11], 0),
  188. ValidFrom: utils.ValueToString(_v[13], ""),
  189. ValidTo: utils.ValueToString(_v[14], ""),
  190. })
  191. }
  192. }
  193. _ = session.Begin()
  194. //写入数据库
  195. if len(dataArr) > 20 {
  196. var _detail []model.BomLst
  197. for k, v := range dataArr {
  198. _detail = append(_detail, v)
  199. if (k > 0 && k%20 == 0) || k+1 == len(dataArr) {
  200. err := dao.Insert(&_detail)
  201. if err != nil {
  202. _ = session.Rollback()
  203. panic(err.Error())
  204. }
  205. _detail = []model.BomLst{}
  206. }
  207. }
  208. } else {
  209. err := dao.Insert(&dataArr)
  210. if err != nil {
  211. _ = session.Rollback()
  212. panic(err)
  213. }
  214. }
  215. if len(headArr) > 20 {
  216. var _detail []model.BomHead
  217. for k, v := range headArr {
  218. _detail = append(_detail, v)
  219. if (k > 0 && k%20 == 0) || k+1 == len(headArr) {
  220. err := headDao.Insert(&_detail)
  221. if err != nil {
  222. _ = session.Rollback()
  223. panic(err.Error())
  224. }
  225. _detail = []model.BomHead{}
  226. }
  227. }
  228. } else {
  229. err := headDao.Insert(&headArr)
  230. if err != nil {
  231. _ = session.Rollback()
  232. }
  233. }
  234. _ = session.Commit()
  235. }
  236. /******************************************************************************
  237. *
  238. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.InsertOne
  239. *
  240. ******************************************************************************/
  241. func (impl *BomLstServiceImplement) InsertOne(user *global.User, entity *model.BomLst) error {
  242. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "InsertOneBomLst", "插入一个BomLst")
  243. engine := db.Eloquent.Master()
  244. session := engine.NewSession()
  245. defer session.Close()
  246. if err := session.Begin(); err != nil {
  247. fmt.Println(err.Error())
  248. return err
  249. }
  250. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  251. headDao := dal.NewBomHeadDAO(session, user.PlantNr, user.UserId)
  252. record, err := dao.SelectOne(entity.BomId, entity.FmatNr, entity.CmatNr)
  253. if err != nil {
  254. return err
  255. }
  256. if record != nil {
  257. _ = session.Rollback()
  258. return grmi.NewBusinessError("已经存在相同主键的记录!")
  259. }
  260. err = dao.InsertOne(entity)
  261. if err != nil {
  262. _ = session.Rollback()
  263. return err
  264. }
  265. articleDao := baseDal.NewArticleDAO(session, user.PlantNr, user.UserId)
  266. article, err := articleDao.SelectOne(entity.FmatNr)
  267. if err != nil {
  268. _ = session.Rollback()
  269. return grmi.NewBusinessError("查询物料数据失败, error:" + err.Error())
  270. }
  271. if article == nil {
  272. _ = session.Rollback()
  273. return grmi.NewBusinessError("不存在对应的物料数据")
  274. }
  275. //if article.ArtSpec1 != baseModel.ART_TYPE_FINISHED && article.ArtSpec1 != baseModel.ART_TYPE_VIRTUAL {
  276. // _ = session.Rollback()
  277. // return grmi.NewBusinessError("传递的物料不是总成或虚拟物料ID,artId:" + article.ArtId)
  278. //}
  279. article2, err := articleDao.SelectOne(entity.CmatNr)
  280. if err != nil {
  281. _ = session.Rollback()
  282. return grmi.NewBusinessError("查询物料数据失败, error:" + err.Error())
  283. }
  284. if article2 == nil {
  285. _ = session.Rollback()
  286. return grmi.NewBusinessError("不存在对应的物料数据")
  287. }
  288. //if article.ArtSpec1 == baseModel.ART_TYPE_VIRTUAL{
  289. // if article2.ArtSpec1 != baseModel.ART_TYPE_FINISHED {
  290. // _ = session.Rollback()
  291. // return grmi.NewBusinessError("传递的子物料不是总成, artId:" + article2.ArtId)
  292. // }
  293. //} else {
  294. // if article2.ArtSpec1 == baseModel.ART_TYPE_FINISHED || article2.ArtSpec1 == baseModel.ART_TYPE_VIRTUAL {
  295. // _ = session.Rollback()
  296. // return grmi.NewBusinessError("传递的物料是总成或虚拟物料ID, artId:" + article2.ArtId)
  297. // }
  298. //}
  299. if entity.FmatNr == entity.CmatNr || entity.CmatNr == entity.BomId {
  300. _ = session.Rollback()
  301. return grmi.NewBusinessError("上级和下级物料ID相同")
  302. }
  303. bomHead, err := headDao.SelectOne(entity.BomId)
  304. if err != nil {
  305. _ = session.Rollback()
  306. return err
  307. }
  308. if bomHead == nil {
  309. article, err := articleDao.SelectOne(entity.BomId)
  310. if err != nil {
  311. _ = session.Rollback()
  312. return err
  313. }
  314. if article == nil {
  315. _ = session.Rollback()
  316. return grmi.NewBusinessError("总成不存在")
  317. }
  318. if article.ArtTypeId != baseModel.ART_TYPE_FINISHED {
  319. _ = session.Rollback()
  320. return grmi.NewBusinessError("传递的物料不是成品!")
  321. }
  322. headData := model.BomHead{
  323. BomId: entity.BomId,
  324. MatNr: entity.BomId,
  325. Descr: article.Descr1,
  326. }
  327. err = headDao.InsertOne(&headData)
  328. if err != nil {
  329. _ = session.Rollback()
  330. return err
  331. }
  332. }
  333. _ = session.Commit()
  334. return nil
  335. }
  336. /******************************************************************************
  337. *
  338. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.DeleteOne
  339. *
  340. ******************************************************************************/
  341. func (impl *BomLstServiceImplement) DeleteOne(user *global.User, bomId string, fmatNr string, cmatNr string) error {
  342. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "DeleteOneBomLst", "删除一个BomLst")
  343. engine := db.Eloquent.Master()
  344. session := engine.NewSession()
  345. defer session.Close()
  346. if err := session.Begin(); err != nil {
  347. return err
  348. }
  349. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  350. headDao := dal.NewBomHeadDAO(session, user.PlantNr, user.UserId)
  351. record, err := dao.SelectOne(bomId, fmatNr, cmatNr)
  352. if err != nil {
  353. _ = session.Rollback()
  354. return err
  355. }
  356. if record == nil {
  357. _ = session.Rollback()
  358. return grmi.NewBusinessError("不存在指定记录!")
  359. }
  360. err = dao.DeleteOne(bomId, fmatNr, cmatNr)
  361. if err != nil {
  362. _ = session.Rollback()
  363. return err
  364. }
  365. lstLi, err := dao.Select([]grmi.Predicate{meta.BomLst_BomId.NewPredicate(grmi.Equal, bomId)}, nil)
  366. if err != nil {
  367. _ = session.Rollback()
  368. return err
  369. }
  370. if len(lstLi) == 0 {
  371. err = headDao.DeleteOne(bomId)
  372. if err != nil {
  373. _ = session.Rollback()
  374. return err
  375. }
  376. }
  377. _ = session.Commit()
  378. return nil
  379. }
  380. /******************************************************************************
  381. *
  382. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.SelectOne
  383. *
  384. ******************************************************************************/
  385. func (impl *BomLstServiceImplement) SelectOne(user *global.User, bomId string, fmatNr string, cmatNr string) (*model.BomLst, error) {
  386. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "SelectOneBomLst", "查询一个BomLst")
  387. engine := db.Eloquent.Master()
  388. session := engine.NewSession()
  389. defer session.Close()
  390. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  391. result, err := dao.SelectOne(bomId, fmatNr, cmatNr)
  392. if err != nil {
  393. return nil, err
  394. }
  395. return result, nil
  396. }
  397. /******************************************************************************
  398. *
  399. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.UpdateOne
  400. *
  401. ******************************************************************************/
  402. func (impl *BomLstServiceImplement) UpdateOne(user *global.User, entity *model.BomLst) error {
  403. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "UpdateOneBomLst", "修改一个BomLst")
  404. engine := db.Eloquent.Master()
  405. session := engine.NewSession()
  406. defer session.Close()
  407. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  408. record, err := dao.SelectOne(entity.BomId, entity.FmatNr, entity.CmatNr)
  409. if err != nil {
  410. return err
  411. }
  412. if record == nil {
  413. return grmi.NewBusinessError("不存在指定记录!")
  414. }
  415. err = dao.UpdateOne(entity)
  416. if err != nil {
  417. return err
  418. }
  419. return nil
  420. }
  421. /******************************************************************************
  422. *
  423. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.Insert
  424. *
  425. ******************************************************************************/
  426. func (impl *BomLstServiceImplement) Insert(user *global.User, entities *[]model.BomLst) error {
  427. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "InsertBomLst", "插入多个BomLst")
  428. engine := db.Eloquent.Master()
  429. session := engine.NewSession()
  430. defer session.Close()
  431. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  432. for _, entity := range *entities {
  433. record, err := dao.SelectOne(entity.BomId, entity.FmatNr, entity.CmatNr)
  434. if err != nil {
  435. return err
  436. }
  437. if record != nil {
  438. return grmi.NewBusinessError("已经存在相同主键的记录!")
  439. }
  440. }
  441. err := dao.Insert(entities)
  442. if err != nil {
  443. return err
  444. }
  445. return nil
  446. }
  447. /******************************************************************************
  448. *
  449. * @Reference LAPP_GAAS_GFrame_BACKEND/services/me/BomLstService.Delete
  450. *
  451. ******************************************************************************/
  452. func (impl *BomLstServiceImplement) Delete(user *global.User, entities *[]model.BomLst) error {
  453. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "DeleteBomLst", "删除多个BomLst")
  454. engine := db.Eloquent.Master()
  455. session := engine.NewSession()
  456. defer session.Close()
  457. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  458. for _, entity := range *entities {
  459. record, err := dao.SelectOne(entity.BomId, entity.FmatNr, entity.CmatNr)
  460. if err != nil {
  461. return err
  462. }
  463. if record == nil {
  464. return grmi.NewBusinessError("不存在指定记录!")
  465. }
  466. }
  467. err := dao.Delete(entities)
  468. if err != nil {
  469. return err
  470. }
  471. return nil
  472. }
  473. /******************************************************************************
  474. *
  475. * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/BomLstService.Select
  476. *
  477. ******************************************************************************/
  478. func (impl *BomLstServiceImplement) Select(user *global.User, urlParameters map[string]string) ([]model.BomLst, error) {
  479. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "SelectBomLst", "查询BomLst")
  480. condition := DefaultConditionOfBomLstAndPaging
  481. engine := db.Eloquent.Master()
  482. session := engine.NewSession()
  483. defer session.Close()
  484. predicates, err := condition.BuildPredicates(urlParameters)
  485. if err != nil {
  486. return nil, err
  487. }
  488. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  489. result, err := dao.Select(predicates, condition.OrderByFields)
  490. if err != nil {
  491. return nil, err
  492. }
  493. return result, nil
  494. }
  495. /******************************************************************************
  496. *
  497. * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/BomLstService.SelectAndPaging
  498. *
  499. ******************************************************************************/
  500. func (impl *BomLstServiceImplement) SelectAndPaging(user *global.User, urlParameters map[string]string) (grmi.PagingResult, error) {
  501. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "SelectBomLst", "查询BomLst")
  502. condition := DefaultConditionOfBomLstAndPaging
  503. engine := db.Eloquent.Master()
  504. session := engine.NewSession()
  505. defer session.Close()
  506. predicates, err := condition.BuildPredicates(urlParameters)
  507. if err != nil {
  508. return grmi.EmptyPagingResult, err
  509. }
  510. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  511. condition.Fill(urlParameters)
  512. result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields)
  513. if err != nil {
  514. return grmi.EmptyPagingResult, err
  515. }
  516. return result, nil
  517. }
  518. /******************************************************************************
  519. *
  520. * @Reference LAPP_ACURA_MOM_BACKEND/services/me/BomLstService.Update
  521. *
  522. ******************************************************************************/
  523. func (impl *BomLstServiceImplement) Update(user *global.User, entities *[]model.BomLst) error {
  524. grmi.Log(user, "/services/me/implments/BomLst.service.impl.go", "UpdateBomLst", "修改多个BomLst")
  525. engine := db.Eloquent.Master()
  526. session := engine.NewSession()
  527. defer session.Close()
  528. dao := dal.NewBomLstDAO(session, user.PlantNr, user.UserId)
  529. for _, entity := range *entities {
  530. record, err := dao.SelectOne(entity.BomId, entity.FmatNr, entity.CmatNr)
  531. if err != nil {
  532. return err
  533. }
  534. if record == nil {
  535. return grmi.NewBusinessError("不存在指定记录!")
  536. }
  537. }
  538. err := dao.Update(entities)
  539. if err != nil {
  540. return err
  541. }
  542. return nil
  543. }