CacheContext.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. package com.gyee.backconfig.config;
  2. import com.gyee.backconfig.model.auto.*;
  3. import com.gyee.backconfig.service.auto.*;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.CommandLineRunner;
  6. import org.springframework.stereotype.Component;
  7. import javax.annotation.Resource;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import java.util.stream.Collectors;
  13. /**
  14. * @ClassName : CacheContext
  15. * @Author : wang
  16. * @Date: 2022/9/26 9:35
  17. * @Description : 缓存
  18. */
  19. @Component
  20. public class CacheContext implements CommandLineRunner {
  21. @Resource
  22. private IProBasicEnergyGroupService proBasicEnergyGroupService;//集团
  23. @Autowired
  24. private IProBasicRegionService proBasicRegionService;//区域
  25. @Resource
  26. private IProBasicCompanyService proBasicCompanyService;//公司
  27. @Resource
  28. private IProBasicPowerstationService proBasicPowerstationService;//场站
  29. @Resource
  30. private IProBasicProjectService proBasicProjectService;//期次
  31. @Resource
  32. private IProBasicLineService proBasicLineService;//线路
  33. @Autowired
  34. private IProBasicEquipmentService proBasicEquipmentService;//风机
  35. @Autowired
  36. private IProBasicSubStationService proBasicSubStationServicel;//变电所
  37. @Autowired
  38. private IProBasicSquareService proBasicSquareService;
  39. //集团
  40. public static Map<String, ProBasicEnergyGroup> energymap = new HashMap<>();
  41. public static List<ProBasicEnergyGroup> groups = new ArrayList<>();
  42. //区域
  43. public static Map<String, ProBasicRegion> regionmap = new HashMap<>();
  44. public static List<ProBasicRegion> regions = new ArrayList<>();
  45. //公司
  46. public static Map<String, ProBasicCompany> companymap = new HashMap<>();
  47. public static List<ProBasicCompany> companys = new ArrayList<>();
  48. //场站
  49. public static Map<String, ProBasicPowerstation> wpmap = new HashMap<>();
  50. public static List<ProBasicPowerstation> wpls = new ArrayList<>();
  51. public static Map<String, List<ProBasicPowerstation>> wpmapGroupGCRegion = new HashMap<>();
  52. public static Map<String, List<ProBasicPowerstation>> wpmapGroupGCCompany = new HashMap<>();
  53. public static Map<String, List<ProBasicPowerstation>> wpmapGroupFCRegion = new HashMap<>();
  54. public static Map<String, List<ProBasicPowerstation>> wpmapGroupFCCompany = new HashMap<>();
  55. //期次
  56. public static Map<String, ProBasicProject> promap = new HashMap<>();
  57. public static List<ProBasicProject> prols = new ArrayList<>();
  58. //线路
  59. public static Map<String, ProBasicLine> linemap = new HashMap<>();
  60. public static List<ProBasicLine> lines = new ArrayList<>();
  61. //风机
  62. public static Map<String, ProBasicEquipment> equipmentmap = new HashMap<>();
  63. public static List<ProBasicEquipment> equipments = new ArrayList<>();
  64. public static Map<String,List<ProBasicEquipment>> poequipmentmap = new HashMap<>();
  65. public static Map<String,List<ProBasicEquipment>> pjequipmentmap = new HashMap<>();
  66. public static Map<String,List<ProBasicEquipment>> liequipmentmap = new HashMap<>();
  67. //变电所
  68. public static List<ProBasicSubStation> subStations = new ArrayList<>();
  69. public static Map<String, ProBasicSubStation> subStationMap = new HashMap<>();
  70. public static Map<String, List<ProBasicSubStation>> poSubStationMap = new HashMap<>();//更据场站分组
  71. //方阵
  72. public static List<ProBasicSquare> squares = new ArrayList<>();
  73. public static Map<String, ProBasicSquare> squareMap = new HashMap<>();
  74. @Override
  75. public void run(String... args) throws Exception {
  76. System.out.println(">>>>>>>>>>>>>>>服务启动,正在缓存数据<<<<<<<<<<<<<<");
  77. //集团
  78. initGroupList();
  79. //区域
  80. initSegionList();
  81. //公司
  82. initCompanyList();
  83. //场站
  84. initPowerstationList();
  85. //期次
  86. initProjectList();
  87. //线路
  88. initLineList();
  89. //发电设备
  90. initEquipmentList();
  91. //变电所
  92. initSubStationList();
  93. //方阵
  94. initSquaresList();
  95. System.out.println(">>>>>>>>>>>>>>>数据缓存完成<<<<<<<<<<<<<<");
  96. }
  97. /**
  98. * 初始化集团表
  99. */
  100. public void initGroupList(){
  101. //清理集合中的数据
  102. groups.clear();
  103. energymap.clear();
  104. //重新加载集合数据
  105. groups = proBasicEnergyGroupService.list();
  106. groups.stream().forEach(energy -> {
  107. energymap.put(energy.getId(), energy);
  108. });
  109. }
  110. /**
  111. * 初始化区域数据
  112. */
  113. public void initSegionList(){
  114. //清理集合中的数据
  115. regions.clear();
  116. regionmap.clear();
  117. regions = proBasicRegionService.list();
  118. regions.stream().forEach(region -> {
  119. regionmap.put(region.getId(), region);
  120. });
  121. }
  122. /**
  123. * 初始化公司数据
  124. */
  125. public void initCompanyList(){
  126. //清理集合中的数据
  127. companys.clear();
  128. companymap.clear();
  129. companys = proBasicCompanyService.list();
  130. companys.stream().forEach(Companys -> {
  131. companymap.put(Companys.getId(), Companys);
  132. });
  133. }
  134. /**
  135. * 初始化场站数据
  136. */
  137. public void initPowerstationList(){
  138. //清理集合数据
  139. wpls.clear();
  140. wpmap.clear();
  141. wpmapGroupGCCompany.clear();
  142. wpmapGroupFCCompany.clear();
  143. wpmapGroupGCRegion.clear();
  144. wpmapGroupFCRegion.clear();
  145. wpls = proBasicPowerstationService.list();
  146. wpls.stream().forEach(windpowerstation -> {
  147. wpmap.put(windpowerstation.getId(), windpowerstation);
  148. });
  149. wpmapGroupGCRegion = wpls.stream().filter(p-> p.getId().indexOf("_GDC_") >= 0).collect(Collectors.groupingBy(ProBasicPowerstation::getRegionId));
  150. wpmapGroupFCRegion = wpls.stream().filter(p-> p.getId().indexOf("_FDC_") >= 0).collect(Collectors.groupingBy(ProBasicPowerstation::getRegionId));
  151. wpmapGroupGCCompany = wpls.stream().filter(p-> p.getId().indexOf("_GDC_") >= 0).collect(Collectors.groupingBy(ProBasicPowerstation::getCompanyId));
  152. wpmapGroupFCCompany = wpls.stream().filter(p-> p.getId().indexOf("_FDC_") >= 0).collect(Collectors.groupingBy(ProBasicPowerstation::getCompanyId));
  153. }
  154. /**
  155. * 初始化期次工程数据
  156. */
  157. public void initProjectList(){
  158. //请立集合数据
  159. prols.clear();
  160. promap.clear();
  161. prols = proBasicProjectService.list();
  162. prols.stream().forEach(Project -> {
  163. promap.put(Project.getId(), Project);
  164. });
  165. }
  166. /**
  167. * 初始化线路数据
  168. */
  169. public void initLineList(){
  170. lines.clear();
  171. linemap.clear();
  172. lines = proBasicLineService.list();
  173. lines.stream().forEach(line -> {
  174. linemap.put(line.getId(), line);
  175. });
  176. }
  177. /**
  178. * 初始化线路数据
  179. */
  180. public void initEquipmentList(){
  181. //清理集合数据
  182. equipments.clear();
  183. equipmentmap.clear();
  184. poequipmentmap.clear();
  185. pjequipmentmap.clear();
  186. liequipmentmap.clear();
  187. equipments = proBasicEquipmentService.list();
  188. equipments.stream().forEach(windturbine -> {
  189. equipmentmap.put(windturbine.getId(), windturbine);
  190. });
  191. poequipmentmap = equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getWindpowerstationId));
  192. pjequipmentmap = equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getProjectId));
  193. liequipmentmap = equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getLineId));
  194. }
  195. /**
  196. * 初始化线路数据
  197. */
  198. public void initSubStationList(){
  199. //清理集合数据
  200. subStations.clear();
  201. subStationMap.clear();
  202. poSubStationMap.clear();
  203. subStations = proBasicSubStationServicel.list();
  204. subStations.stream().forEach(s->{
  205. subStationMap.put(s.getId(),s);
  206. });
  207. poSubStationMap = subStations.stream().collect(Collectors.groupingBy(ProBasicSubStation::getWindpowerstationId));
  208. }
  209. /**
  210. * 初始化方阵数据
  211. */
  212. public void initSquaresList(){
  213. squares.clear();
  214. squareMap.clear();
  215. squares = proBasicSquareService.list();
  216. squares.stream().forEach(i->{
  217. squareMap.put(i.getId(),i);
  218. });
  219. }
  220. }