CacheContext.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.gyee.generation.init;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.alibaba.fastjson.TypeReference;
  4. import com.gyee.generation.model.auto.*;
  5. import com.gyee.generation.service.auto.*;
  6. import com.gyee.generation.util.redis.RedisService;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.boot.CommandLineRunner;
  11. import org.springframework.stereotype.Component;
  12. import javax.annotation.Resource;
  13. import java.util.*;
  14. import java.util.stream.Collectors;
  15. /**
  16. * @ClassName : CacheContext
  17. * @Author : xieshengjie
  18. * @Date: 2021/5/18 9:35
  19. * @Description : 缓存
  20. */
  21. @Component
  22. public class CacheContext implements CommandLineRunner {
  23. Logger logger = LoggerFactory.getLogger(CacheContext.class);
  24. @Resource
  25. private IWindturbineService windturbineService;
  26. @Resource
  27. private ILineService lineService;
  28. @Resource
  29. private IProjectService projectService;
  30. @Resource
  31. private IWindpowerstationService windpowerstationService;
  32. @Resource
  33. private IMeterpointService meterpointService;
  34. @Resource
  35. private RedisService redisService;
  36. @Value("${runWindpowerstation}")
  37. private String runWindpowerstation;
  38. public static List<Windturbine> wtls = new ArrayList<>();
  39. public static List<Project> projects = new ArrayList<>();
  40. public static List<Line> lines = new ArrayList<>();
  41. public static List<Windpowerstation> wpls = new ArrayList<>();
  42. public static List<Meterpoint> meterpoints = new ArrayList<>();
  43. public static Map<String,List<Project>> wppromap = new HashMap<>();
  44. public static Map<String,List<Line>> prolinemap = new HashMap<>();
  45. public static Map<String, Map<String, Windturbinetestingpointnew>> wtpAimap = new HashMap<>();// 风电机测点AI表
  46. public static Map<String,Map<String, Windpowerstationpointnew>> linepointmap =new HashMap<>();
  47. public static Map<String,Map<String, Windpowerstationpointnew>> propointmap =new HashMap<>();
  48. public static Map<String,Map<String, Windpowerstationpointnew>> wppointmap =new HashMap<>();
  49. public static Map<String,Project> proMap = new HashMap<>();
  50. @Override
  51. public void run(String... args) throws Exception {
  52. logger.info("缓存开始------------------------------------------------------------");
  53. List<String> runWpids = Arrays.asList(runWindpowerstation.split(","));
  54. wtls = windturbineService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
  55. wtls.forEach(wt->{
  56. String wtString = redisService.get(wt.getId());
  57. Map<String, Windturbinetestingpointnew> stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference<Map<String, Windturbinetestingpointnew>>() {
  58. });
  59. wtpAimap.put(wt.getId(),stringWindturbinetestingpointnewMap);
  60. });
  61. projects = projectService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
  62. projects.stream().forEach(p->{
  63. proMap.put(p.getId(),p);
  64. if (wppromap.containsKey(p.getWindpowerstationid())){
  65. wppromap.get(p.getWindpowerstationid()).add(p);
  66. }else {
  67. List<Project> prolist = new ArrayList<>();
  68. prolist.add(p);
  69. wppromap.put(p.getWindpowerstationid(),prolist);
  70. }
  71. String pjString = redisService.get(p.getId());
  72. Map<String, Windpowerstationpointnew> stringWindpowerstationpointnewMap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  73. });
  74. propointmap.put(p.getId(),stringWindpowerstationpointnewMap);
  75. });
  76. lines = lineService.list().stream().filter(i->runWpids.contains(proMap.get(i.getProjectid()).getWindpowerstationid())).collect(Collectors.toList());
  77. lines.stream().forEach(l->{
  78. if (prolinemap.containsKey(l.getProjectid())){
  79. prolinemap.get(l.getProjectid()).add(l);
  80. }else {
  81. List<Line> lineList = new ArrayList<>();
  82. lineList.add(l);
  83. prolinemap.put(l.getProjectid(),lineList);
  84. }
  85. String lnString = redisService.get(l.getId());
  86. Map<String, Windpowerstationpointnew> stringWindpowerstationpointnewMap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  87. });
  88. linepointmap.put(l.getId(),stringWindpowerstationpointnewMap);
  89. });
  90. wpls = windpowerstationService.list().stream().filter(i->runWpids.contains(i.getId())).collect(Collectors.toList());;
  91. meterpoints = meterpointService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());;
  92. wpls.stream().forEach(wp->{
  93. String wpString = redisService.get(wp.getId());
  94. Map<String, Windpowerstationpointnew> stringMapMap = JSONObject.parseObject(wpString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  95. });
  96. wppointmap.put(wp.getId(),stringMapMap);
  97. });
  98. // String wpString = redisService.get("PRODUCT-WP");
  99. // wppointmap = JSONObject.parseObject(wpString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  100. // });
  101. // String pjString = redisService.get("PRODUCT-PJ");
  102. // propointmap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  103. // });
  104. // String lnString = redisService.get("PRODUCT-LN");
  105. // linepointmap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  106. // });
  107. String wtString = redisService.get("PRODUCT-WT");
  108. wtpAimap = JSONObject.parseObject(wtString, new TypeReference<Map<String, Map<String, Windturbinetestingpointnew>>>() {
  109. });
  110. logger.info("缓存结束------------------------------------------------------------");
  111. }
  112. }