Init_51_DesignTempalte.groovy 2.8 KB

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