package com.gyee.generation.init; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.gyee.generation.model.auto.*; import com.gyee.generation.service.auto.*; import com.gyee.generation.util.redis.RedisService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @ClassName : CacheContext * @Author : xieshengjie * @Date: 2021/5/18 9:35 * @Description : 缓存 */ @Component public class CacheContext implements CommandLineRunner { Logger logger = LoggerFactory.getLogger(CacheContext.class); @Resource private IWindturbineService windturbineService; @Resource private ILineService lineService; @Resource private IProjectService projectService; @Resource private IWindpowerstationService windpowerstationService; @Resource private IMeterpointService meterpointService; @Resource private RedisService redisService; @Value("${runWindpowerstation}") private String runWindpowerstation; public static List wtls = new ArrayList<>(); public static List projects = new ArrayList<>(); public static List lines = new ArrayList<>(); public static List wpls = new ArrayList<>(); public static List meterpoints = new ArrayList<>(); public static Map> wppromap = new HashMap<>(); public static Map> prolinemap = new HashMap<>(); public static Map> wtpAimap = new HashMap<>();// 风电机测点AI表 public static Map> linepointmap =new HashMap<>(); public static Map> propointmap =new HashMap<>(); public static Map> wppointmap =new HashMap<>(); public static Map proMap = new HashMap<>(); @Override public void run(String... args) throws Exception { logger.info("缓存开始------------------------------------------------------------"); List runWpids = Arrays.asList(runWindpowerstation.split(",")); wtls = windturbineService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList()); wtls.forEach(wt->{ String wtString = redisService.get(wt.getId()); Map stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference>() { }); wtpAimap.put(wt.getId(),stringWindturbinetestingpointnewMap); }); projects = projectService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList()); projects.stream().forEach(p->{ proMap.put(p.getId(),p); if (wppromap.containsKey(p.getWindpowerstationid())){ wppromap.get(p.getWindpowerstationid()).add(p); }else { List prolist = new ArrayList<>(); prolist.add(p); wppromap.put(p.getWindpowerstationid(),prolist); } String pjString = redisService.get(p.getId()); Map stringWindpowerstationpointnewMap = JSONObject.parseObject(pjString, new TypeReference>() { }); propointmap.put(p.getId(),stringWindpowerstationpointnewMap); }); lines = lineService.list().stream().filter(i->runWpids.contains(proMap.get(i.getProjectid()).getWindpowerstationid())).collect(Collectors.toList()); lines.stream().forEach(l->{ if (prolinemap.containsKey(l.getProjectid())){ prolinemap.get(l.getProjectid()).add(l); }else { List lineList = new ArrayList<>(); lineList.add(l); prolinemap.put(l.getProjectid(),lineList); } String lnString = redisService.get(l.getId()); Map stringWindpowerstationpointnewMap = JSONObject.parseObject(lnString, new TypeReference>() { }); linepointmap.put(l.getId(),stringWindpowerstationpointnewMap); }); wpls = windpowerstationService.list().stream().filter(i->runWpids.contains(i.getId())).collect(Collectors.toList());; meterpoints = meterpointService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());; wpls.stream().forEach(wp->{ String wpString = redisService.get(wp.getId()); Map stringMapMap = JSONObject.parseObject(wpString, new TypeReference>() { }); wppointmap.put(wp.getId(),stringMapMap); }); // String wpString = redisService.get("PRODUCT-WP"); // wppointmap = JSONObject.parseObject(wpString, new TypeReference>>() { // }); // String pjString = redisService.get("PRODUCT-PJ"); // propointmap = JSONObject.parseObject(pjString, new TypeReference>>() { // }); // String lnString = redisService.get("PRODUCT-LN"); // linepointmap = JSONObject.parseObject(lnString, new TypeReference>>() { // }); String wtString = redisService.get("PRODUCT-WT"); wtpAimap = JSONObject.parseObject(wtString, new TypeReference>>() { }); logger.info("缓存结束------------------------------------------------------------"); } }