Commit 7330d8d8 authored by caotao's avatar caotao

监盘全国地图由influxdb转es

parent 541608fc
...@@ -12,6 +12,8 @@ public class StationCacheInfoDto implements Serializable { ...@@ -12,6 +12,8 @@ public class StationCacheInfoDto implements Serializable {
private String stationName; private String stationName;
//场站类型 //场站类型
private String stationType; private String stationType;
//场站类型
private String stationNumber;
//所属省份 //所属省份
private String belongProvince; private String belongProvince;
//所属片区 //所属片区
......
...@@ -13,9 +13,11 @@ import com.yeejoin.amos.boot.module.jxiop.api.mapper.MapRegionMapper; ...@@ -13,9 +13,11 @@ import com.yeejoin.amos.boot.module.jxiop.api.mapper.MapRegionMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.RegionMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.RegionMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationCoordinateMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationCoordinateMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments;
import com.yeejoin.amos.boot.module.jxiop.biz.constants.CommonConstans; import com.yeejoin.amos.boot.module.jxiop.biz.constants.CommonConstans;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.*; import com.yeejoin.amos.boot.module.jxiop.biz.dto.*;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil; import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -90,44 +92,116 @@ public class MonitoringServiceImpl { ...@@ -90,44 +92,116 @@ public class MonitoringServiceImpl {
* @param provinceName * @param provinceName
* @return * @return
*/ */
// public List<RegionNationWideDto> getNationWideInfo(String provinceName, String type) {
// List<RegionNationWideDto> regionNationWideDtoList = new ArrayList<>();
// List<StationBasic> stationBasicList = stationBasicMapper.selectList(new QueryWrapper<StationBasic>().isNotNull("belong_area").isNotNull("fan_gateway_id"));
// List<Region> regionList = this.regionMapper.selectList(new QueryWrapper<Region>().eq("level", 1));
// List<StationBasic> list = new ArrayList<>();
// //如果 provinceName 为空则表示当前为全国地图 否则则为省份地图
//// if (ObjectUtils.isEmpty(provinceName) || provinceName.equals("")) {
// if ((!ObjectUtils.isEmpty(type) && type.equals("gis")) && (ObjectUtils.isEmpty(provinceName) || provinceName.equals(""))) {
// for (int i = 0; i < regionList.size(); i++) {
// RegionNationWideDto regionNationWideDto = new RegionNationWideDto();
// AtomicReference<Double> guangfuMW = new AtomicReference<>(0.0);
// AtomicReference<Double> fengdianMW = new AtomicReference<>(0.0);
// AtomicReference<Integer> guangfu = new AtomicReference<>(0);
// AtomicReference<Integer> fengdian = new AtomicReference<>(0);
// Region region = regionList.get(i);
// list = stationBasicList.stream().filter(stationBasic -> stationBasic.getBelongArea().contains(String.valueOf(region.getRegionCode()))).collect(Collectors.toList());
// list.forEach(stationBasic -> {
// if (!ObjectUtils.isEmpty(stationBasic.getFanGatewayId()) && !ObjectUtils.isEmpty(stationBasic.getStationNumber())) {
// regionNationWideDto.setJsJoin(true);
// }
// if (stationBasic.getStationType().equals("FDZ")) {
// fengdianMW.set(getStationCaPACITYL(stationBasic.getStationNumber()));
// fengdian.getAndSet(fengdian.get() + 1);
// } else {
// guangfuMW.set(getStationCaPACITYL(stationBasic.getStationNumber()));
// guangfu.getAndSet(guangfu.get() + 1);
// }
// });
// regionNationWideDto.setFengdian(fengdian.toString());
// regionNationWideDto.setGuangfu(guangfu.toString());
// regionNationWideDto.setGuangfuMW("0");
// regionNationWideDto.setFengdianMV("0");
// if (!ObjectUtils.isEmpty(guangfuMW.get())) {
// regionNationWideDto.setGuangfuMW(String.format("%.2f", guangfuMW.get()));
// }
// if (!ObjectUtils.isEmpty(fengdianMW.get())) {
// regionNationWideDto.setFengdianMV(String.format("%.2f", fengdianMW.get()));
// }
// regionNationWideDto.setName(region.getRegionName());
// regionNationWideDtoList.add(regionNationWideDto);
// }
// } else {
// if (!ObjectUtils.isEmpty(provinceName) && provinceName.contains("%")) {
// try {
// provinceName = URLDecoder.decode(provinceName, "UTF-8");
// } catch (Exception e) {
//
// }
// }
// String finalProvinceName = provinceName;
// if (!ObjectUtils.isEmpty(type) && type.equals("station")) {
// list = stationBasicList;
// } else {
// Region region = regionList.stream().filter(region1 -> region1.getRegionName().equals(finalProvinceName)).collect(Collectors.toList()).get(0);
// list = stationBasicList.stream().filter(stationBasic -> stationBasic.getBelongArea().contains(String.valueOf(region.getRegionCode())) && stationBasic.getFanGatewayId() != null).collect(Collectors.toList());
// }
// List<StationCoordinate> stationCoordinateList = stationCoordinateMapper.selectList(new QueryWrapper<StationCoordinate>().isNotNull("station_id").eq("is_main_coordinate", 0));
// for (int i = 0; i < list.size(); i++) {
// HashMap<String, Double> hashMap = new HashMap<>();
// StationBasic stationBasic = list.get(i);
// RegionNationWideDto regionNationWideDto = new RegionNationWideDto();
// regionNationWideDto.setStaitionId(String.valueOf(stationBasic.getSequenceNbr()));
// regionNationWideDto.setStaitionName(stationBasic.getStationName());
// regionNationWideDto.setStaitionType(stationBasic.getStationType());
// String speendOrirradiate = "";
// regionNationWideDto.setStationCapacity(String.valueOf(getStationCaPACITYL(stationBasic.getStationNumber())));
// if (stationBasic.getStationType().equals("FDZ")) {
// speendOrirradiate = String.valueOf(commonServiceImpl.getAvgvalueByIndicatior(stationBasic.getFanGatewayId(), "30秒平均风速"));
// } else {
// speendOrirradiate = String.valueOf(commonServiceImpl.getTotalByIndicatior(stationBasic.getBoosterGatewayId(), "WTX-801_25_WTX-801_总辐射"));
// }
// regionNationWideDto.setSpeendOrirradiate(speendOrirradiate);
// StationCoordinate stationCoordinate = stationCoordinateList.stream().filter(stationCoordinate1 -> stationCoordinate1.getStationId().equals(stationBasic.getSequenceNbr())).collect(Collectors.toList()).get(0);
// hashMap.put("lng", Double.valueOf(stationCoordinate.getLongitude()));
// hashMap.put("lat", Double.valueOf(stationCoordinate.getLaitude()));
// regionNationWideDto.setPosition(hashMap);
// regionNationWideDtoList.add(regionNationWideDto);
// }
// }
// List<StationBasic> finalList = list;
// String finalProvinceName1 = provinceName;
// Thread thread = new Thread(() -> {
// getCompletionOfPowerIndicatorsByCurrentData(finalList, finalProvinceName1);
// });
// thread.start();
// return regionNationWideDtoList;
// }
public List<RegionNationWideDto> getNationWideInfo(String provinceName, String type) { public List<RegionNationWideDto> getNationWideInfo(String provinceName, String type) {
List<RegionNationWideDto> regionNationWideDtoList = new ArrayList<>(); List<RegionNationWideDto> regionNationWideDtoList = new ArrayList<>();
List<StationBasic> stationBasicList = stationBasicMapper.selectList(new QueryWrapper<StationBasic>().isNotNull("belong_area").isNotNull("fan_gateway_id")); List<StationCacheInfoDto> stationCacheInfoDtoList=commonServiceImpl.getListStationCacheInfoDto();
List<Region> regionList = this.regionMapper.selectList(new QueryWrapper<Region>().eq("level", 1)); List<Region> regionList = this.regionMapper.selectList(new QueryWrapper<Region>().eq("level", 1));
List<StationBasic> list = new ArrayList<>(); List<StationCacheInfoDto> list = new ArrayList<>();
//如果 provinceName 为空则表示当前为全国地图 否则则为省份地图 //如果 provinceName 为空则表示当前为全国地图 否则则为省份地图
// if (ObjectUtils.isEmpty(provinceName) || provinceName.equals("")) { // if (ObjectUtils.isEmpty(provinceName) || provinceName.equals("")) {
if ((!ObjectUtils.isEmpty(type) && type.equals("gis")) && (ObjectUtils.isEmpty(provinceName) || provinceName.equals(""))) { if ((!ObjectUtils.isEmpty(type) && type.equals("gis")) && (ObjectUtils.isEmpty(provinceName) || provinceName.equals(""))) {
for (int i = 0; i < regionList.size(); i++) { for (int i = 0; i < regionList.size(); i++) {
RegionNationWideDto regionNationWideDto = new RegionNationWideDto(); RegionNationWideDto regionNationWideDto = new RegionNationWideDto();
AtomicReference<Double> guangfuMW = new AtomicReference<>(0.0);
AtomicReference<Double> fengdianMW = new AtomicReference<>(0.0);
AtomicReference<Integer> guangfu = new AtomicReference<>(0);
AtomicReference<Integer> fengdian = new AtomicReference<>(0);
Region region = regionList.get(i); Region region = regionList.get(i);
list = stationBasicList.stream().filter(stationBasic -> stationBasic.getBelongArea().contains(String.valueOf(region.getRegionCode()))).collect(Collectors.toList()); list = stationCacheInfoDtoList.stream().filter(stationCacheInfoDto -> stationCacheInfoDto.getBelongProvince().equals(region.getRegionName())).collect(Collectors.toList());
list.forEach(stationBasic -> { List<StationCacheInfoDto> fdlist=list.stream().filter(stationCacheInfoDto -> stationCacheInfoDto.getStationType().equals("FDZ")).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(stationBasic.getFanGatewayId()) && !ObjectUtils.isEmpty(stationBasic.getStationNumber())) { List<StationCacheInfoDto> gflist=list.stream().filter(stationCacheInfoDto -> !stationCacheInfoDto.getStationType().equals("FDZ")).collect(Collectors.toList());
regionNationWideDto.setJsJoin(true); if (list.size() > 0) {
} regionNationWideDto.setJsJoin(true);
if (stationBasic.getStationType().equals("FDZ")) { } else {
fengdianMW.set(getStationCaPACITYL(stationBasic.getStationNumber())); regionNationWideDto.setJsJoin(false);
fengdian.getAndSet(fengdian.get() + 1);
} else {
guangfuMW.set(getStationCaPACITYL(stationBasic.getStationNumber()));
guangfu.getAndSet(guangfu.get() + 1);
}
});
regionNationWideDto.setFengdian(fengdian.toString());
regionNationWideDto.setGuangfu(guangfu.toString());
regionNationWideDto.setGuangfuMW("0");
regionNationWideDto.setFengdianMV("0");
if (!ObjectUtils.isEmpty(guangfuMW.get())) {
regionNationWideDto.setGuangfuMW(String.format("%.2f", guangfuMW.get()));
}
if (!ObjectUtils.isEmpty(fengdianMW.get())) {
regionNationWideDto.setFengdianMV(String.format("%.2f", fengdianMW.get()));
} }
regionNationWideDto.setFengdian(String.valueOf(fdlist.size()));
regionNationWideDto.setGuangfu(String.valueOf(gflist.size()));
regionNationWideDto.setGuangfuMW(String.format("%.2f",gflist.stream().mapToDouble(stationCacheInfoDto->Double.parseDouble(stationCacheInfoDto.getInstalledCapacity())).sum()));
regionNationWideDto.setFengdianMV(String.format("%.2f",fdlist.stream().mapToDouble(stationCacheInfoDto->Double.parseDouble(stationCacheInfoDto.getInstalledCapacity())).sum()));
regionNationWideDto.setName(region.getRegionName()); regionNationWideDto.setName(region.getRegionName());
regionNationWideDtoList.add(regionNationWideDto); regionNationWideDtoList.add(regionNationWideDto);
} }
...@@ -141,35 +215,34 @@ public class MonitoringServiceImpl { ...@@ -141,35 +215,34 @@ public class MonitoringServiceImpl {
} }
String finalProvinceName = provinceName; String finalProvinceName = provinceName;
if (!ObjectUtils.isEmpty(type) && type.equals("station")) { if (!ObjectUtils.isEmpty(type) && type.equals("station")) {
list = stationBasicList; list = stationCacheInfoDtoList;
} else { } else {
Region region = regionList.stream().filter(region1 -> region1.getRegionName().equals(finalProvinceName)).collect(Collectors.toList()).get(0); list = stationCacheInfoDtoList.stream().filter(stationCacheInfoDto -> stationCacheInfoDto.getBelongProvince().equals(finalProvinceName)).collect(Collectors.toList());
list = stationBasicList.stream().filter(stationBasic -> stationBasic.getBelongArea().contains(String.valueOf(region.getRegionCode())) && stationBasic.getFanGatewayId() != null).collect(Collectors.toList());
} }
List<StationCoordinate> stationCoordinateList = stationCoordinateMapper.selectList(new QueryWrapper<StationCoordinate>().isNotNull("station_id").eq("is_main_coordinate", 0)); List<StationCoordinate> stationCoordinateList = stationCoordinateMapper.selectList(new QueryWrapper<StationCoordinate>().isNotNull("station_id").eq("is_main_coordinate", 0));
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
HashMap<String, Double> hashMap = new HashMap<>(); HashMap<String, Double> hashMap = new HashMap<>();
StationBasic stationBasic = list.get(i); StationCacheInfoDto stationCacheInfoDto = list.get(i);
RegionNationWideDto regionNationWideDto = new RegionNationWideDto(); RegionNationWideDto regionNationWideDto = new RegionNationWideDto();
regionNationWideDto.setStaitionId(String.valueOf(stationBasic.getSequenceNbr())); regionNationWideDto.setStaitionId(String.valueOf(stationCacheInfoDto.getStationId()));
regionNationWideDto.setStaitionName(stationBasic.getStationName()); regionNationWideDto.setStaitionName(stationCacheInfoDto.getStationName());
regionNationWideDto.setStaitionType(stationBasic.getStationType()); regionNationWideDto.setStaitionType(stationCacheInfoDto.getStationType());
String speendOrirradiate = ""; String speendOrirradiate = "";
regionNationWideDto.setStationCapacity(String.valueOf(getStationCaPACITYL(stationBasic.getStationNumber()))); regionNationWideDto.setStationCapacity(stationCacheInfoDto.getInstalledCapacity());
if (stationBasic.getStationType().equals("FDZ")) { if (stationCacheInfoDto.getStationType().equals("FDZ")) {
speendOrirradiate = String.valueOf(commonServiceImpl.getAvgvalueByIndicatior(stationBasic.getFanGatewayId(), "30秒平均风速")); speendOrirradiate = String.valueOf(commonServiceImpl.getAvgvalueByIndicatior(stationCacheInfoDto.getFanGatewayId(), "30秒平均风速"));
} else { } else {
speendOrirradiate = String.valueOf(commonServiceImpl.getTotalByIndicatior(stationBasic.getBoosterGatewayId(), "WTX-801_25_WTX-801_总辐射")); speendOrirradiate = String.valueOf(commonServiceImpl.getTotalByIndicatior(stationCacheInfoDto.getBoosterGatewayId(), "WTX-801_25_WTX-801_总辐射"));
} }
regionNationWideDto.setSpeendOrirradiate(speendOrirradiate); regionNationWideDto.setSpeendOrirradiate(speendOrirradiate);
StationCoordinate stationCoordinate = stationCoordinateList.stream().filter(stationCoordinate1 -> stationCoordinate1.getStationId().equals(stationBasic.getSequenceNbr())).collect(Collectors.toList()).get(0); StationCoordinate stationCoordinate = stationCoordinateList.stream().filter(stationCoordinate1 -> String.valueOf(stationCoordinate1.getStationId()).equals(stationCacheInfoDto.getStationId())).collect(Collectors.toList()).get(0);
hashMap.put("lng", Double.valueOf(stationCoordinate.getLongitude())); hashMap.put("lng", Double.valueOf(stationCoordinate.getLongitude()));
hashMap.put("lat", Double.valueOf(stationCoordinate.getLaitude())); hashMap.put("lat", Double.valueOf(stationCoordinate.getLaitude()));
regionNationWideDto.setPosition(hashMap); regionNationWideDto.setPosition(hashMap);
regionNationWideDtoList.add(regionNationWideDto); regionNationWideDtoList.add(regionNationWideDto);
} }
} }
List<StationBasic> finalList = list; List<StationCacheInfoDto> finalList = list;
String finalProvinceName1 = provinceName; String finalProvinceName1 = provinceName;
Thread thread = new Thread(() -> { Thread thread = new Thread(() -> {
getCompletionOfPowerIndicatorsByCurrentData(finalList, finalProvinceName1); getCompletionOfPowerIndicatorsByCurrentData(finalList, finalProvinceName1);
...@@ -244,7 +317,7 @@ public class MonitoringServiceImpl { ...@@ -244,7 +317,7 @@ public class MonitoringServiceImpl {
return resultsData; return resultsData;
} }
public void getCompletionOfPowerIndicatorsByCurrentData(List<StationBasic> stationBasicList, String provinceName) { public void getCompletionOfPowerIndicatorsByCurrentData(List<StationCacheInfoDto> stationBasicList, String provinceName) {
String provinceNameTopic = ""; String provinceNameTopic = "";
if (provinceName.contains("黑龙江") || provinceName.contains("内蒙古")) { if (provinceName.contains("黑龙江") || provinceName.contains("内蒙古")) {
provinceNameTopic = provinceName.substring(0, 3); provinceNameTopic = provinceName.substring(0, 3);
...@@ -275,7 +348,11 @@ public class MonitoringServiceImpl { ...@@ -275,7 +348,11 @@ public class MonitoringServiceImpl {
AtomicReference<Double> installCapacity = new AtomicReference<>(0.0); AtomicReference<Double> installCapacity = new AtomicReference<>(0.0);
stationBasicList.forEach(stationBasic -> { stationBasicList.forEach(stationBasic -> {
List<Map<String, Object>> mapList = new ArrayList<>(); List<Map<String, Object>> mapList = new ArrayList<>();
Map<String,List<String>> queryMap = new HashMap<>();
queryMap.put("equipmentIndexName.keyword",Arrays.asList("日发电量","月发电量","年发电量"));
queryMap.put("gatewayId.keyword",Arrays.asList(stationBasic.getFanGatewayId()));
if (stationBasic.getStationType().equals("FDZ")) { if (stationBasic.getStationType().equals("FDZ")) {
List<? extends Terms.Bucket> lidatesum =commonServiceImpl.getgroupsum(queryMap,"valueDouble","equipmentIndexName.keyword", ESEquipments.class);
mapList = influxdbUtil.query("SELECT * FROM indicators_" + stationBasic.getFanGatewayId() + " where (equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量' )"); mapList = influxdbUtil.query("SELECT * FROM indicators_" + stationBasic.getFanGatewayId() + " where (equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量' )");
} else { } else {
mapList = influxdbUtil.query("SELECT * FROM indicators_" + stationBasic.getFanGatewayId() + " where frontModule=~/逆变器/ and (equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量' )"); mapList = influxdbUtil.query("SELECT * FROM indicators_" + stationBasic.getFanGatewayId() + " where frontModule=~/逆变器/ and (equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量' )");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment