Init_52_DesignOrder.groovy 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import com.sdtool.business.dao.DesignDao
  2. import com.sdtool.common.api.NoSqlKeysService
  3. import com.sdtool.common.datas.RedisKeys
  4. import com.dySweetFishPlugin.redis.RedisService
  5. import com.sdtool.common.entity.design.DesignOrder
  6. import com.sdtool.common.entity.design.DesignOrderItem
  7. import com.sdtool.common.entity.design.DesignTemplate
  8. import com.sdtool.common.entity.design.DesignTemplateItem
  9. import com.sweetfish.convert.json.JsonConvert
  10. import com.sweetfish.source.PageFlipper
  11. import org.apache.commons.lang3.StringUtils
  12. import org.apache.logging.log4j.Logger
  13. import org.rex.RMap
  14. import java.nio.file.Files
  15. import java.nio.file.Paths
  16. /**
  17. * @Author: xl Created on 2024-05-11
  18. * @Content:
  19. */
  20. static def createRunnable(RedisService redisService, NoSqlKeysService keysService,
  21. DesignDao designDao, Logger logger, JsonConvert jsonConvert, String dataSourceId, long supplierCode) {
  22. RMap params = new RMap()
  23. return {
  24. redisService.del(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_EDIT, supplierCode))
  25. redisService.del(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_IMPOSITION, supplierCode))
  26. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  27. List<DesignOrder> orders = designDao.selectDesignOrders(params, dataSourceId, supplierCode, p)
  28. if (!orders.isEmpty()) {
  29. orders.each {
  30. if (StringUtils.isNotEmpty(it.jsonContent)) {
  31. File file = new File(it.jsonContent)
  32. if (file.exists()) {
  33. String content = new String(Files.readAllBytes(Paths.get(it.jsonContent)), "UTF-8")
  34. it.setJsonContent(content)
  35. }
  36. }
  37. }
  38. Map<String, String> redisMap = orders.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
  39. redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_EDIT, supplierCode), redisMap)
  40. RMap itemParams = new RMap()
  41. orders.each {
  42. itemParams.set("idOrder", it.id)
  43. List<DesignOrderItem> itemList = designDao.selectDesignOrderItems(itemParams, dataSourceId, supplierCode)
  44. it.setItemList(itemList)
  45. it.setJsonContent("")
  46. }
  47. redisMap = orders.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
  48. redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_IMPOSITION, supplierCode), redisMap)
  49. logger.info("设计订单共" + orders.size() + "条记录")
  50. }
  51. })
  52. } as Runnable
  53. }
  54. createRunnable(redisService, keysService, designDao, logger, jsonConvert, dataSourceId, supplierCode)