package com.gyee.power.fitting.common.spring; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.gyee.power.fitting.common.config.StringUtils; import com.gyee.power.fitting.common.redis.RedisService; import com.gyee.power.fitting.model.*; import com.gyee.power.fitting.service.*; 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.*; 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); private final String QS = "0"; @Resource private ProBasicEquipmentService proBasicEquipmentService; @Resource private ProBasicPowerstationService proBasicWindpowerstationService; @Resource private ProEconEquipmentmodelService proEconEquipmentmodelService; @Resource private RedisService redisService; @Resource private ProBasicModelPowerService proBasicModelPowerService; @Resource private ProBasicWeatherStationService proBasicWeatherStationService; @Resource private ProBasicPowerstationService windpowerstationService; public static List wtls = new ArrayList<>(); public static List weawpls = new ArrayList<>(); public static List wpls = new ArrayList<>(); public static List wplsf = new ArrayList<>(); public static List wplsG = new ArrayList<>(); //光电集合 public static List zwpls = new ArrayList<>(); public static Map> cpwpmap = new HashMap<>(); public static Map> wpmapls = new HashMap<>(); public static Map wpmap = new HashMap<>(); public static Map> wpwtmap = new HashMap<>(); public static Map> pjwtmap = new HashMap<>(); public static Map> lnwtmap = new HashMap<>(); public static Map> cmwtlsmap = new HashMap<>(); public static Map> rgwtlsmap = new HashMap<>(); public static Map> cmwtmap = new HashMap<>(); public static Map> sqwtmap = new HashMap<>(); public static Map> wtpAimap = new HashMap<>();// 风电机测点AI表 public static Map> wppointmap = new HashMap<>(); public static Map> weatherwppointmap = new HashMap<>(); public static Map modelMap = new HashMap<>(); public static Map modelpower = new HashMap<>(); public static Map wtstandardmap = new HashMap<>(); public static Map wtmap = new HashMap<>(); public static Map> modelpowermap = new TreeMap<>(); public static List mpls = new ArrayList<>(); public static List equipmentmodels = new ArrayList<>(); public static Map> subWtsMap = new HashMap<>(); public static List stations = new ArrayList<>(); public static Map wpmaps = new HashMap<>(); public static Map wppmap = new HashMap<>(); @Override public void run(String... args) throws Exception { logger.info("缓存开始------------------------------------------------------------"); equipmentmodels = proEconEquipmentmodelService.list(); equipmentmodels.stream().forEach(e -> { modelMap.put(e.getId(), e); }); mpls = proBasicModelPowerService.list(); mpls.sort(Comparator.comparing(ProBasicModelPower::getSpeed)); if (!mpls.isEmpty()) { for (ProBasicModelPower mp : mpls) { if (modelpowermap.containsKey(mp.getModelId())) { Map tempmap = modelpowermap.get(mp.getModelId()); tempmap.put(mp.getSpeed(), mp); } else { Map tempmap = new HashMap<>(); tempmap.put(mp.getSpeed(), mp); modelpowermap.put(mp.getModelId(), tempmap); } } } for (ProBasicPowerstation wp : wpls) { if (cpwpmap.containsKey(wp.getCompanyId())) { cpwpmap.get(wp.getCompanyId()).add(wp); } else { List wps = new ArrayList<>(); wps.add(wp); cpwpmap.put(wp.getCompanyId(), wps); } } QueryWrapper queryWtWrapper = new QueryWrapper<>(); queryWtWrapper.orderByAsc("order_num"); wtls = proBasicEquipmentService.list(queryWtWrapper).stream().filter(i -> i.getIsable() == 1).collect(Collectors.toList()); logger.info(wtls.size() + ""); wtls.forEach(wt -> { if (modelMap.containsKey(wt.getModelId())) { ProEconEquipmentmodel equipmentmodel = modelMap.get(wt.getModelId()); modelpower.put(wt.getId(), equipmentmodel.getPowerProduction()); } wtmap.put(wt.getId(), wt); //标杆风机初始化 wtstandardmap.put(wt.getId(), wt.getId()); String wtString = redisService.get(wt.getId()); Map stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference>() { }); wtpAimap.put(wt.getId(), stringWindturbinetestingpointnewMap); if (wpwtmap.containsKey(wt.getWindpowerstationId())) { wpwtmap.get(wt.getWindpowerstationId()).add(wt); } else { List wps = new ArrayList<>(); wps.add(wt); wpwtmap.put(wt.getWindpowerstationId(), wps); } if (pjwtmap.containsKey(wt.getProjectId())) { pjwtmap.get(wt.getProjectId()).add(wt); } else { List pjs = new ArrayList<>(); pjs.add(wt); pjwtmap.put(wt.getProjectId(), pjs); } if (lnwtmap.containsKey(wt.getLineId())) { lnwtmap.get(wt.getLineId()).add(wt); } else { List lnls = new ArrayList<>(); lnls.add(wt); lnwtmap.put(wt.getLineId(), lnls); } if (cmwtlsmap.containsKey(wt.getCompanyId())) { cmwtlsmap.get(wt.getCompanyId()).add(wt); } else { List cmls = new ArrayList<>(); cmls.add(wt); cmwtlsmap.put(wt.getCompanyId(), cmls); } if (rgwtlsmap.containsKey(wt.getRegionId())) { rgwtlsmap.get(wt.getRegionId()).add(wt); } else { List rgls = new ArrayList<>(); rgls.add(wt); rgwtlsmap.put(wt.getRegionId(), rgls); } if (sqwtmap.containsKey(wt.getSquareId())) { sqwtmap.get(wt.getSquareId()).add(wt); } else { List lnls = new ArrayList<>(); lnls.add(wt); sqwtmap.put(wt.getSquareId(), lnls); } if (cmwtmap.containsKey(wt.getCompanyId())) { cmwtmap.get(wt.getCompanyId()).put(wt.getId(), wt); } else { Map map = new HashMap<>(); map.put(wt.getId(), wt); cmwtmap.put(wt.getCompanyId(), map); } if (subWtsMap.containsKey(wt.getSubstationId())) { subWtsMap.get(wt.getSubstationId()).add(wt); } else { List subls = new ArrayList<>(); subls.add(wt); subWtsMap.put(wt.getSubstationId(), subls); } }); //初始化标杆风机 for (ProBasicEquipment wt : wtls) { if (wpwtmap.containsKey(wt.getLineId())) { List wts = wpwtmap.get(wt.getLineId()); for (ProBasicEquipment w : wts) { if (StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard() != 0) { wtstandardmap.put(wt.getId(), w.getId()); break; } } } if (pjwtmap.containsKey(wt.getLineId())) { List wts = pjwtmap.get(wt.getLineId()); for (ProBasicEquipment w : wts) { if (StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard() != 0) { wtstandardmap.put(wt.getId(), w.getId()); break; } } } if (lnwtmap.containsKey(wt.getLineId())) { List wts = lnwtmap.get(wt.getLineId()); for (ProBasicEquipment w : wts) { if (StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard() != 0) { wtstandardmap.put(wt.getId(), w.getId()); break; } } } } weawpls = proBasicWeatherStationService.list().stream().filter(i -> i.getIsAble() == 1).collect(Collectors.toList()); weawpls.stream().forEach(weather -> { String subString = redisService.get(weather.getId()); Map stringWindpowerstationpointnewMap = JSONObject.parseObject(subString, new TypeReference>() { }); weatherwppointmap.put(weather.getId(), stringWindpowerstationpointnewMap); }); zwpls = proBasicWindpowerstationService.list().stream().filter(i -> i.getIsAble() == 1).collect(Collectors.toList()); QueryWrapper queryWpWrapper = new QueryWrapper<>(); queryWpWrapper.orderByAsc("order_num"); wpls = proBasicWindpowerstationService.list(queryWpWrapper).stream().filter(i -> i.getIsAble() == 1).collect(Collectors.toList()); for (ProBasicPowerstation wp : wpls) { if (cpwpmap.containsKey(wp.getCompanyId())) { cpwpmap.get(wp.getCompanyId()).add(wp); } else { List wps = new ArrayList<>(); wps.add(wp); cpwpmap.put(wp.getCompanyId(), wps); } } wpls.stream().forEach(wp -> { wpmap.put(wp.getId(), wp); String wpString = redisService.get(wp.getId()); Map stringMapMap = JSONObject.parseObject(wpString, new TypeReference>() { }); wppointmap.put(wp.getId(), stringMapMap); }); if (!wpls.isEmpty()) { for (ProBasicPowerstation wp : wpls) { if (wp.getId().endsWith("FDC_STA")) { wplsf.add(wp); } if (wp.getId().endsWith("GDC_STA")) { wplsG.add(wp); } if (wpmapls.containsKey(wp.getId())) { List ls = wpmapls.get(wp.getId()); ls.add(wp); wpmapls.put(wp.getId(), ls); } else { List ls = new ArrayList<>(); ls.add(wp); wpmapls.put(wp.getId(), ls); } wpmap.put(wp.getId(), wp); } } stations = windpowerstationService.list(); for (ProBasicPowerstation station : stations) { wppmap.put(station.getId(),station.getName()); wpmaps.put(station.getId(),station); } logger.info("缓存结束------------------------------------------------------------"); } }