package com.gyee.benchmarkingweb.init; import com.gyee.benchmarkingweb.model.auto.*; import com.gyee.benchmarkingweb.service.auto.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @ClassName : CacheContext * @Author : xieshengjie * @Date: 2021/11/16 16:29 * @Description : */ @Component public class CacheContext implements CommandLineRunner { private static final Logger log = LoggerFactory.getLogger(CacheContext.class); @Resource private IWindturbineService windturbineService; @Resource private IWindpowerstationService windpowerstationService; @Resource private IProjectService projectService; @Resource private ILineService lineService; @Resource private IWindturbinetestingpointaiService windturbineTestingAiService; @Resource private IWindpowerstationtestingpointService windpowerstationtestingpointService; @Resource private IEquipmentmodelService equipmentmodelService; public static Map> wtmap = new HashMap<>(); public static Map wmap = new HashMap<>(); public static Map wpmap = new HashMap<>(); public static List wplist = new ArrayList<>(); public static List wtls = new ArrayList<>(); public static Map> wtpAimap = new HashMap<>();// 风电机测点AI表 public static Map> wppointmap =new HashMap<>(); public static List projects = new ArrayList<>(); public static List lines = new ArrayList<>(); public static Map> wpprojectMap = new HashMap<>(); public static Map promap = new HashMap<>(); public static Map equipmentmodelMap = new HashMap<>(); @Override public void run(String... args) throws Exception { log.info("-------------------------------缓存开始--------------------------------------"); wplist = windpowerstationService.list(); wplist.stream().filter(i->i.getId().endsWith("FDC")).forEach(i->{ wpmap.put(i.getId(),i); }); projects = projectService.list(); projects.stream().forEach(project->{ promap.put(project.getId(),project); if (wpprojectMap.containsKey(project.getWindpowerstationid())){ wpprojectMap.get(project.getWindpowerstationid()).add(project); }else{ List pros = new ArrayList<>(); pros.add(project); wpprojectMap.put(project.getWindpowerstationid(),pros); } }); lines = lineService.list(); wtls = windturbineService.list(); wtls.stream().forEach(wt->{ wmap.put(wt.getId(),wt); if (wtmap.containsKey(wt.getWindpowerstationid())){ wtmap.get(wt.getWindpowerstationid()).add(wt); }else{ List wts = new ArrayList<>(); wts.add(wt); wtmap.put(wt.getWindpowerstationid(),wts); } }); List windturbinetestingpointaiList = windturbineTestingAiService.list(); Map map = null; if(windturbinetestingpointaiList != null && !windturbinetestingpointaiList.isEmpty()){ for(Windturbinetestingpointai mp : windturbinetestingpointaiList){ if(wtpAimap.containsKey(mp.getWindturbineid())){ map = wtpAimap.get(mp.getWindturbineid()); map.put(mp.getUniformcode(), mp); }else{ map = new HashMap(); map.put(mp.getUniformcode(), mp); wtpAimap.put(mp.getWindturbineid(), map); } } } List wplist = windpowerstationtestingpointService.list(); for (Windpowerstationtestingpoint windpowerstationtestingpoint : wplist) { if (wppointmap.containsKey(windpowerstationtestingpoint.getWindpowerstationid())){ wppointmap.get(windpowerstationtestingpoint.getWindpowerstationid()).put(windpowerstationtestingpoint.getUniformcode(),windpowerstationtestingpoint); }else{ Map wpmap = new HashMap<>(); wpmap.put(windpowerstationtestingpoint.getUniformcode(),windpowerstationtestingpoint); wppointmap.put(windpowerstationtestingpoint.getWindpowerstationid(),wpmap); } } equipmentmodelService.list().forEach(i->{ equipmentmodelMap.put(i.getId(),i); }); log.info("-------------------------------缓存结束--------------------------------------"); } }