CacheContext.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package com.gyee.generation.init;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.alibaba.fastjson.TypeReference;
  4. import com.gyee.common.model.StringUtils;
  5. import com.gyee.generation.model.auto.*;
  6. import com.gyee.generation.service.auto.*;
  7. import com.gyee.generation.util.redis.RedisService;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.boot.CommandLineRunner;
  12. import org.springframework.stereotype.Component;
  13. import javax.annotation.Resource;
  14. import java.util.*;
  15. import java.util.stream.Collectors;
  16. /**
  17. * @ClassName : CacheContext
  18. * @Author : xieshengjie
  19. * @Date: 2021/5/18 9:35
  20. * @Description : 缓存
  21. */
  22. @Component
  23. public class CacheContext implements CommandLineRunner {
  24. Logger logger = LoggerFactory.getLogger(CacheContext.class);
  25. @Resource
  26. private IWindturbineService windturbineService;
  27. @Resource
  28. private ILineService lineService;
  29. @Resource
  30. private IProjectService projectService;
  31. @Resource
  32. private IWindpowerstationService windpowerstationService;
  33. @Resource
  34. private IMeterpointService meterpointService;
  35. @Resource
  36. private IEquipmentmodelService equipmentmodelService;
  37. @Resource
  38. private IWindturbinestatusdiService windturbinestatusdiService;
  39. @Resource
  40. private IWindturbinepowerService windturbinepowerService;
  41. @Resource
  42. private RedisService redisService;
  43. @Value("${runWindpowerstation}")
  44. private String runWindpowerstation;
  45. public static List<Windturbine> wtls = new ArrayList<>();
  46. public static List<Project> projects = new ArrayList<>();
  47. public static List<Line> lines = new ArrayList<>();
  48. public static List<Windpowerstation> wpls = new ArrayList<>();
  49. public static List<Meterpoint> meterpoints = new ArrayList<>();
  50. public static Map<String,Meterpoint> meterpointMap = new HashMap<>();
  51. public static Map<String,List<Project>> wppromap = new HashMap<>();
  52. public static Map<String,List<Line>> prolinemap = new HashMap<>();
  53. public static Map<String,List<Windturbine>> linewtmap = new HashMap<>();
  54. public static Map<String, Map<String, Windturbinetestingpointnew>> wtpAimap = new HashMap<>();// 风电机测点AI表
  55. public static Map<String,Map<String, Windpowerstationpointnew>> linepointmap =new HashMap<>();
  56. public static Map<String,Map<String, Windpowerstationpointnew>> propointmap =new HashMap<>();
  57. public static Map<String,Map<String, Windpowerstationpointnew>> wppointmap =new HashMap<>();
  58. public static Map<String,Project> proMap = new HashMap<>();
  59. public static Map<String,List<Windturbinestatusdi>> statusMap = new HashMap<>();
  60. public static Map<String,Map<Double,Double>> zbzglMap = new HashMap<>();
  61. public static Map<String,Equipmentmodel> modelMap = new HashMap<>();
  62. public static Map<String,Map<Double,Double>> zzsglMap = new HashMap<>();
  63. public static Map<String,Double> modelpower = new HashMap<>();
  64. @Override
  65. public void run(String... args) throws Exception {
  66. logger.info("缓存开始------------------------------------------------------------");
  67. List<String> runWpids = Arrays.asList(runWindpowerstation.split(","));
  68. logger.info(runWpids.get(0)+"------------------"+runWpids.size());
  69. List<Equipmentmodel> equipmentmodels = equipmentmodelService.list();
  70. equipmentmodels.stream().forEach(e->{
  71. modelMap.put(e.getId(),e);
  72. });
  73. wtls = windturbineService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
  74. logger.info(wtls.size()+"");
  75. wtls.forEach(wt->{
  76. Equipmentmodel equipmentmodel = modelMap.get(wt.getModelid());
  77. modelpower.put(wt.getId(),equipmentmodel.getPowerproduction());
  78. String wtString = redisService.get(wt.getId());
  79. Map<String, Windturbinetestingpointnew> stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference<Map<String, Windturbinetestingpointnew>>() {
  80. });
  81. wtpAimap.put(wt.getId(),stringWindturbinetestingpointnewMap);
  82. if (linewtmap.containsKey(wt.getLineid())){
  83. linewtmap.get(wt.getLineid()).add(wt);
  84. }else {
  85. List<Windturbine> lines = new ArrayList<>();
  86. lines.add(wt);
  87. linewtmap.put(wt.getLineid(),lines);
  88. }
  89. });
  90. projects = projectService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
  91. projects.stream().forEach(p->{
  92. proMap.put(p.getId(),p);
  93. if (wppromap.containsKey(p.getWindpowerstationid())){
  94. wppromap.get(p.getWindpowerstationid()).add(p);
  95. }else {
  96. List<Project> prolist = new ArrayList<>();
  97. prolist.add(p);
  98. wppromap.put(p.getWindpowerstationid(),prolist);
  99. }
  100. String pjString = redisService.get(p.getId());
  101. Map<String, Windpowerstationpointnew> stringWindpowerstationpointnewMap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  102. });
  103. propointmap.put(p.getId(),stringWindpowerstationpointnewMap);
  104. });
  105. lines = lineService.list().stream().filter(i-> StringUtils.isNotNull(proMap.get(i.getProjectid())) && runWpids.contains(proMap.get(i.getProjectid()).getWindpowerstationid())).collect(Collectors.toList());
  106. lines.stream().forEach(l->{
  107. if (prolinemap.containsKey(l.getProjectid())){
  108. prolinemap.get(l.getProjectid()).add(l);
  109. }else {
  110. List<Line> lineList = new ArrayList<>();
  111. lineList.add(l);
  112. prolinemap.put(l.getProjectid(),lineList);
  113. }
  114. String lnString = redisService.get(l.getId());
  115. Map<String, Windpowerstationpointnew> stringWindpowerstationpointnewMap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  116. });
  117. linepointmap.put(l.getId(),stringWindpowerstationpointnewMap);
  118. });
  119. wpls = windpowerstationService.list().stream().filter(i->runWpids.contains(i.getId())).collect(Collectors.toList());;
  120. meterpoints = meterpointService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
  121. meterpoints.stream().forEach(meterpoint -> {
  122. meterpointMap.put(meterpoint.getId(),meterpoint);
  123. });
  124. wpls.stream().forEach(wp->{
  125. String wpString = redisService.get(wp.getId());
  126. Map<String, Windpowerstationpointnew> stringMapMap = JSONObject.parseObject(wpString, new TypeReference<Map<String, Windpowerstationpointnew>>() {
  127. });
  128. wppointmap.put(wp.getId(),stringMapMap);
  129. });
  130. String sszzt = redisService.get("SSZZT");
  131. statusMap = JSONObject.parseObject(sszzt, new TypeReference<Map<String,List<Windturbinestatusdi>>>() {
  132. });
  133. String zbzgl = redisService.get("ZBZGL");
  134. zbzglMap = JSONObject.parseObject(zbzgl, new TypeReference<Map<String,Map<Double,Double>>>() {
  135. });
  136. List<Windturbinepower> windturbinepowerList = windturbinepowerService.list().stream().filter(windturbinepower -> runWindpowerstation.contains(windturbinepower.getWindpowerstationid())).collect(Collectors.toList());
  137. windturbinepowerList.stream().forEach(w -> {
  138. if (zzsglMap.containsKey(w.getWindturbineid())){
  139. zzsglMap.get(w.getWindturbineid()).put(w.getSpeed(),w.getTheorypower());
  140. }else {
  141. Map<Double,Double> tempMap = new HashMap<>();
  142. tempMap.put(w.getSpeed(),w.getTheorypower());
  143. zzsglMap.put(w.getWindturbineid(),tempMap);
  144. }
  145. });
  146. // String wpString = redisService.get("PRODUCT-WP");
  147. // wppointmap = JSONObject.parseObject(wpString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  148. // });
  149. // String pjString = redisService.get("PRODUCT-PJ");
  150. // propointmap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  151. // });
  152. // String lnString = redisService.get("PRODUCT-LN");
  153. // linepointmap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
  154. // });
  155. // String wtString = redisService.get("PRODUCT-WT");
  156. // wtpAimap = JSONObject.parseObject(wtString, new TypeReference<Map<String, Map<String, Windturbinetestingpointnew>>>() {
  157. // });
  158. logger.info("缓存结束------------------------------------------------------------");
  159. }
  160. }