Commit 2c0e8764 authored by tangwei's avatar tangwei

解决冲突

parents aefdb796 14d16bea
package com.yeejoin.amos.boot.module.jxiop.biz.constants;
import java.util.HashMap;
public class CommonConstans {
//光伏发电量系数
public static final Double pvGenPoweActor = 0.000001;
// 风电站:
// (日/月/年)发电量=场站所有风机(日/月/年)发电量总和
// 装机容量=场站所有风机装机容量总和
//
// 光伏站:
// (日/月/年)发电量=场站所有逆变器(日/月/年)发电量总和
// 装机容量=场站所有逆变器装机容量总和
//
// 通用:
// 发电量完成率=(月/年)发电量/(月/年)发电量指标
// 小时数完成率=(月/年)可利用小时/(月/年)可利用小时数指标
// 可利用小时(h)=(日/月/年)发电量(万kW·h)/装机容量(万kW)
// 二氧化碳减排量(万t)=发电量(万kW·h)*0.79
public static final Double carbonDioxide = 0.79;
// 节约标准煤(万t)=发电量(万kW·h)*0.29
public static final Double standardCoal = 0.29;
// 炭粉尘减排量(t)=发电量(万kW·h)*0.30
public static final Double toner = 0.30;
// 二氧化硫减排量(t)=发电量(万kW·h)*1.51
public static final Double sulfurDioxide = 1.51;
// 氮氧化物减排量(t)=发电量(万kW·h)*1.69
public static final Double oxynitride = 1.69;
//吨转万吨
public static final Double tToWT = 0.0001;
//万Kwh转MV
public static final Integer wkwhToMv = 10;
// 正常运行 发电状态=1
// 告警运行 报警状态=1
// 正常停机 停机状态=1
// 故障停机 故障状态=1
// 限功率
// 待机状态 待机状态=1
// 维护状态 维护状态=1
// 通讯中断
public static final HashMap<String, String> fanStatus = new HashMap<String, String>() {
{
put("发电状态", "正常运行");
put("报警状态", "报警运行");
put("停机状态", "停机状态");
put("故障状态", "故障状态");
put("待机状态", "待机状态");
put("维护状态", "维护状态");
put("限功率", "限功率");
put("通讯中断", "通讯中断");
}
};
// 正常运行 运行=1
// 正常停机 停机=1
// 限功率 限额运行=1
// 限电停机 降额运行=1
// 告警运行 告警运行=1
// 故障停机 故障停机=1
// 待机状态 待机=1
// 通讯中断 通讯故障=1
public static final HashMap<String, String> pvStatus = new HashMap<String, String>() {
{
put("运行", "正常运行");
put("停机", "正常停机");
put("限额运行", "限功率");
put("降额运行", "限电停机");
put("告警运行", "告警运行");
put("故障停机", "故障停机");
put("待机", "待机状态");
put("通讯故障", "通讯中断");
}
};
}
...@@ -65,7 +65,15 @@ public class DeviceController extends BaseController { ...@@ -65,7 +65,15 @@ public class DeviceController extends BaseController {
} }
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "监盘大屏 - 获取历史告警数据")
@GetMapping("/historyNationwideByPage")
public ResponseModel<Page<IndexDto>> historyNationwideByPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "stationBasicId") String stationBasicId) {
Page<IndexDto> resultsData = monitorFanIndicatorImpl.historyNationwideByPage( current, size, stationBasicId);
return ResponseHelper.buildResponse(resultsData);
}
......
...@@ -15,6 +15,7 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; ...@@ -15,6 +15,7 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.MonitorFanIndicatorMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.MonitorFanIndicatorMapper;
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.biz.ESDto.ESEquipments; 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.dto.*; import com.yeejoin.amos.boot.module.jxiop.biz.dto.*;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.CommonServiceImpl; import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.MonitorFanIndicatorImpl; import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.MonitorFanIndicatorImpl;
...@@ -88,8 +89,6 @@ public class MonitorFanIdxController extends BaseController { ...@@ -88,8 +89,6 @@ public class MonitorFanIdxController extends BaseController {
@Value("classpath:/json/overviewGF.json") @Value("classpath:/json/overviewGF.json")
private Resource overviewGF; private Resource overviewGF;
@Autowired
CommonServiceImpl commonService;
@Value("${fan.statuts.stattuspath}") @Value("${fan.statuts.stattuspath}")
private String fanStatusImagePathPrefix; private String fanStatusImagePathPrefix;
...@@ -233,18 +232,18 @@ public class MonitorFanIdxController extends BaseController { ...@@ -233,18 +232,18 @@ public class MonitorFanIdxController extends BaseController {
Map<String, Object> columnMap = new HashMap<>(); Map<String, Object> columnMap = new HashMap<>();
for (String column : columnList) { for (String column : columnList) {
Double result = commonService.getTotalByIndicatior(gatewayId, column); Double result = commonServiceImpl.getTotalByIndicatior(gatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
} }
for (String column : columnLists) { for (String column : columnLists) {
Double result = commonService.getAvgvalueByIndicatior(gatewayId, column); Double result = commonServiceImpl.getAvgvalueByIndicatior(gatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
} }
String num = monitorFanIndicator.getFJCount(gatewayId); String num = monitorFanIndicator.getFJCount(gatewayId);
columnMap.put("风机台数",num); columnMap.put("风机台数",num);
Double capacityl = commonService.getStationCapactityByStationWerks(stationBasic.getStationNumber()); Double capacityl = commonServiceImpl.getStationCapactityByStationWerks(stationBasic.getStationNumber());
columnMap.put("装机容量",String.format("%.2f",capacityl)); columnMap.put("装机容量",String.format("%.2f",capacityl));
String json = null; String json = null;
...@@ -287,7 +286,7 @@ public class MonitorFanIdxController extends BaseController { ...@@ -287,7 +286,7 @@ public class MonitorFanIdxController extends BaseController {
,@RequestParam(value = "areaCode", required = false)String areaCode) { ,@RequestParam(value = "areaCode", required = false)String areaCode) {
String gatewayId = ""; String gatewayId = "";
if (null != areaCode){ if (null != areaCode){
List<StationCacheInfoDto> listStationCacheInfoDto = commonService.getListStationCacheInfoDto(); List<StationCacheInfoDto> listStationCacheInfoDto = commonServiceImpl.getListStationCacheInfoDto();
List<String> collect = listStationCacheInfoDto.stream().filter(e -> e.getAreaCode().equals(areaCode)).map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList()); List<String> collect = listStationCacheInfoDto.stream().filter(e -> e.getAreaCode().equals(areaCode)).map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList());
gatewayId = String.join(",", collect); gatewayId = String.join(",", collect);
} }
...@@ -621,23 +620,23 @@ public class MonitorFanIdxController extends BaseController { ...@@ -621,23 +620,23 @@ public class MonitorFanIdxController extends BaseController {
for (String column : columnList) { for (String column : columnList) {
Double result = commonService.getTotalByIndicatior(gatewayId, column); Double result = commonServiceImpl.getTotalByIndicatior(gatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
} }
for (String column : syLists) { for (String column : syLists) {
Double result = commonService.getNumByIndicatior(boosterGatewayId, column); Double result = commonServiceImpl.getNumByIndicatior(boosterGatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
} }
for (String column : columnLists) { for (String column : columnLists) {
Double result = commonService.getAvgvalueByIndicatior(gatewayId, column); Double result = commonServiceImpl.getAvgvalueByIndicatior(gatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
} }
String num = monitorFanIndicator.getFJCount(gatewayId); String num = monitorFanIndicator.getFJCount(gatewayId);
columnMap.put("逆变器台数",num); columnMap.put("逆变器台数",num);
Double capacityl = commonService.getStationCapactityByStationWerks(stationBasic.getStationNumber()); Double capacityl = commonServiceImpl.getStationCapactityByStationWerks(stationBasic.getStationNumber());
columnMap.put("装机容量",String.format("%.2f",capacityl)); columnMap.put("装机容量",String.format("%.2f",capacityl));
String json = null; String json = null;
...@@ -752,7 +751,7 @@ public class MonitorFanIdxController extends BaseController { ...@@ -752,7 +751,7 @@ public class MonitorFanIdxController extends BaseController {
gatewayId = stationBasic.getBoosterGatewayId(); gatewayId = stationBasic.getBoosterGatewayId();
} }
} }
List<StationCacheInfoDto> list = commonService.getListStationCacheInfoDto(); List<StationCacheInfoDto> list = commonServiceImpl.getListStationCacheInfoDto();
double sum = 0.0; double sum = 0.0;
sum =list.stream().filter(obj -> !ObjectUtils.isEmpty(obj.getInstalledCapacity())).mapToDouble(l->Double.parseDouble(l.getInstalledCapacity())).sum(); sum =list.stream().filter(obj -> !ObjectUtils.isEmpty(obj.getInstalledCapacity())).mapToDouble(l->Double.parseDouble(l.getInstalledCapacity())).sum();
...@@ -906,13 +905,13 @@ public class MonitorFanIdxController extends BaseController { ...@@ -906,13 +905,13 @@ public class MonitorFanIdxController extends BaseController {
Map<String, Object> yearMap = new HashMap<>(); Map<String, Object> yearMap = new HashMap<>();
dayMap.put("name",name); dayMap.put("name",name);
dayMap.put("gateWayId",stationBasic.getFanGatewayId()); dayMap.put("gateWayId",stationBasic.getFanGatewayId());
dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",map.get("日发电量"))); dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",Double.parseDouble(map.get("日发电量").toString())* CommonConstans.pvGenPoweActor));
monthMap.put("name",name); monthMap.put("name",name);
monthMap.put("gateWayId",stationBasic.getFanGatewayId()); monthMap.put("gateWayId",stationBasic.getFanGatewayId());
monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",map.get("月发电量"))); monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",Double.parseDouble(map.get("月发电量").toString())* CommonConstans.pvGenPoweActor));
yearMap.put("name",name); yearMap.put("name",name);
yearMap.put("gateWayId",stationBasic.getFanGatewayId()); yearMap.put("gateWayId",stationBasic.getFanGatewayId());
yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",map.get("年发电量"))); yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",Double.parseDouble(map.get("年发电量").toString())* CommonConstans.pvGenPoweActor));
datDataGF.add(dayMap); datDataGF.add(dayMap);
monthDataGF.add(monthMap); monthDataGF.add(monthMap);
yearDataGF.add(yearMap); yearDataGF.add(yearMap);
...@@ -921,8 +920,8 @@ public class MonitorFanIdxController extends BaseController { ...@@ -921,8 +920,8 @@ public class MonitorFanIdxController extends BaseController {
monitorFanIndicator.sendMqttByRanking(datDataFJ, GeneratingCapacity.DAY.getCode(),"fjpm"); monitorFanIndicator.sendMqttByRanking(datDataFJ, GeneratingCapacity.DAY.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(monthDataFJ,GeneratingCapacity.MONTH.getCode(),"fjpm"); monitorFanIndicator.sendMqttByRanking(monthDataFJ,GeneratingCapacity.MONTH.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(yearDataFJ,GeneratingCapacity.YEAR.getCode(),"fjpm"); monitorFanIndicator.sendMqttByRanking(yearDataFJ,GeneratingCapacity.YEAR.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(datDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm"); monitorFanIndicator.sendMqttByRanking(datDataGF,GeneratingCapacity.DAY.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(monthDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm"); monitorFanIndicator.sendMqttByRanking(monthDataGF,GeneratingCapacity.MONTH.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(yearDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm"); monitorFanIndicator.sendMqttByRanking(yearDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
return CommonResponseUtil.success(); return CommonResponseUtil.success();
} }
...@@ -934,9 +933,9 @@ public class MonitorFanIdxController extends BaseController { ...@@ -934,9 +933,9 @@ public class MonitorFanIdxController extends BaseController {
public ResponseModel<IPage<Map<String,Object>>> operationData(@RequestParam(value = "areaCode", required = false)String areaCode) { public ResponseModel<IPage<Map<String,Object>>> operationData(@RequestParam(value = "areaCode", required = false)String areaCode) {
List<StationCacheInfoDto> list = commonService.getListStationCacheInfoDto(); List<StationCacheInfoDto> list = commonServiceImpl.getListStationCacheInfoDto();
if (null != areaCode){ if (null != areaCode){
list = list.stream().filter(e->e.getAreaCode().equals(areaCode)).collect(Collectors.toList()); list = list.stream().filter(e->e.getAreaCode().toUpperCase(Locale.ROOT).equals(areaCode.toUpperCase(Locale.ROOT))).collect(Collectors.toList());
} }
List<Map<String,Object>> mapList = new ArrayList<>(); List<Map<String,Object>> mapList = new ArrayList<>();
Map<String, List<StationCacheInfoDto>> listMap = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getStationType, Collectors.toList())); Map<String, List<StationCacheInfoDto>> listMap = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getStationType, Collectors.toList()));
...@@ -973,11 +972,10 @@ public class MonitorFanIdxController extends BaseController { ...@@ -973,11 +972,10 @@ public class MonitorFanIdxController extends BaseController {
map.put("gatewayId.keyword",collect); map.put("gatewayId.keyword",collect);
} }
List<? extends Terms.Bucket> lidate= commonService.getgroupsum(map,"valueDouble" ,"equipmentIndexName.keyword", ESEquipments.class); List<? extends Terms.Bucket> lidate= commonServiceImpl.getgroupsum(map,"valueDouble" ,"equipmentIndexName.keyword", ESEquipments.class);
DecimalFormat format2 = new DecimalFormat("#.0000"); DecimalFormat format2 = new DecimalFormat("#.0000");
Double num = 0.00; Double num = 0.00;
if (map.containsKey("gateWayId")&&map.get("gateWayId").size() > 0){
for (Terms.Bucket bucket : lidate) { for (Terms.Bucket bucket : lidate) {
Aggregations aggregation= bucket.getAggregations(); Aggregations aggregation= bucket.getAggregations();
List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null; List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null;
...@@ -986,8 +984,8 @@ public class MonitorFanIdxController extends BaseController { ...@@ -986,8 +984,8 @@ public class MonitorFanIdxController extends BaseController {
num = Double.valueOf(format2.format(parsedSum.getValue())); num = Double.valueOf(format2.format(parsedSum.getValue()));
} }
} }
}
return ResponseHelper.buildResponse(commonService.getSocialContributionDtoList(num)); return ResponseHelper.buildResponse(commonServiceImpl.getSocialContributionDtoList(num));
} }
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
...@@ -1124,7 +1122,7 @@ public class MonitorFanIdxController extends BaseController { ...@@ -1124,7 +1122,7 @@ public class MonitorFanIdxController extends BaseController {
@GetMapping("/accessSituation") @GetMapping("/accessSituation")
public ResponseModel<Map<String,Object>> accessSituation(){ public ResponseModel<Map<String,Object>> accessSituation(){
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map = new LinkedHashMap<>();
List<StationCacheInfoDto> list = commonService.getListStationCacheInfoDto(); List<StationCacheInfoDto> list = commonServiceImpl.getListStationCacheInfoDto();
double sum = list.stream().mapToDouble(l -> Double.parseDouble(l.getInstalledCapacity())).sum(); double sum = list.stream().mapToDouble(l -> Double.parseDouble(l.getInstalledCapacity())).sum();
Map<String, List<StationCacheInfoDto>> listMap = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getStationType, Collectors.toList())); Map<String, List<StationCacheInfoDto>> listMap = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getStationType, Collectors.toList()));
for (StationType value : StationType.values()) { for (StationType value : StationType.values()) {
...@@ -1148,7 +1146,7 @@ public class MonitorFanIdxController extends BaseController { ...@@ -1148,7 +1146,7 @@ public class MonitorFanIdxController extends BaseController {
@GetMapping("/qyAccessSituation") @GetMapping("/qyAccessSituation")
public ResponseModel<Map<String,Object>> qyAccessSituation(){ public ResponseModel<Map<String,Object>> qyAccessSituation(){
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map = new LinkedHashMap<>();
List<StationCacheInfoDto> list = commonService.getListStationCacheInfoDto(); List<StationCacheInfoDto> list = commonServiceImpl.getListStationCacheInfoDto();
Map<String, List<StationCacheInfoDto>> belongAreaList = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getAreaCode)); Map<String, List<StationCacheInfoDto>> belongAreaList = list.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getAreaCode));
for (String s : belongAreaList.keySet()) { for (String s : belongAreaList.keySet()) {
double sum = belongAreaList.get(s).stream().mapToDouble(l -> Double.parseDouble(l.getInstalledCapacity())).sum(); double sum = belongAreaList.get(s).stream().mapToDouble(l -> Double.parseDouble(l.getInstalledCapacity())).sum();
...@@ -1161,7 +1159,7 @@ public class MonitorFanIdxController extends BaseController { ...@@ -1161,7 +1159,7 @@ public class MonitorFanIdxController extends BaseController {
map.put("total",list.size()); map.put("total",list.size());
map.put("num",sum); map.put("num",sum);
try { try {
emqKeeper.getMqttClient().publish("/accessSituation/topic/"+"s",JSON.toJSONString(map).getBytes(),0,false); emqKeeper.getMqttClient().publish("/accessSituation/topic/"+s,JSON.toJSONString(map).getBytes(),0,false);
} catch (MqttException e) { } catch (MqttException e) {
} }
......
...@@ -11,7 +11,7 @@ import java.util.Map; ...@@ -11,7 +11,7 @@ import java.util.Map;
public interface TemporaryDataMapper extends BaseMapper<TemporaryData> { public interface TemporaryDataMapper extends BaseMapper<TemporaryData> {
List<Map<String, String>> timingTemporarysSorageData (@RequestParam(value ="gatewayId" ) String gatewayId); List<Map<String, Object>> timingTemporarysSorageData (@RequestParam(value ="gatewayId" ) String gatewayId);
Map<String, Object> getStatisticsInfo (@RequestParam(value ="gatewayId" ) String gatewayId, Map<String, Object> getStatisticsInfo (@RequestParam(value ="gatewayId" ) String gatewayId,
......
...@@ -2,7 +2,12 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; ...@@ -2,7 +2,12 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jxiop.api.entity.MapRegion;
import com.yeejoin.amos.boot.module.jxiop.api.entity.Region;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
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.StationBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments; import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IndicatorsDto; import com.yeejoin.amos.boot.module.jxiop.biz.dto.IndicatorsDto;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.QueryDto; import com.yeejoin.amos.boot.module.jxiop.biz.dto.QueryDto;
...@@ -32,10 +37,12 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -32,10 +37,12 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
@Service @Service
public class CommonServiceImpl { public class CommonServiceImpl {
...@@ -55,6 +62,12 @@ public class CommonServiceImpl { ...@@ -55,6 +62,12 @@ public class CommonServiceImpl {
@Autowired @Autowired
private ElasticsearchRestTemplate elasticsearchTemplate; private ElasticsearchRestTemplate elasticsearchTemplate;
@Resource
private StationBasicMapper stationBasicMapper;
@Resource
private RegionMapper regionMapper;
@Resource
private MapRegionMapper mapRegionMapper;
/** /**
* @deprecated 获取指标值总和 * @deprecated 获取指标值总和
...@@ -154,13 +167,36 @@ public class CommonServiceImpl { ...@@ -154,13 +167,36 @@ public class CommonServiceImpl {
List<StationCacheInfoDto> stationCacheInfoDtoList =redisTemplate.opsForList().range("station_info_cache",0,-1); List<StationCacheInfoDto> stationCacheInfoDtoList =redisTemplate.opsForList().range("station_info_cache",0,-1);
if(ObjectUtils.isEmpty(stationCacheInfoDtoList)){ if(ObjectUtils.isEmpty(stationCacheInfoDtoList)){
try { try {
stationCacheDataInit.run(); List<StationCacheInfoDto> stationCacheInfoDtos = new ArrayList<>();
stationCacheInfoDtoList =redisTemplate.opsForList().range("station_info_cache",0,-1); List<Region> regionList = regionMapper.selectList(new QueryWrapper<Region>().eq("LEVEL", 1));
List<MapRegion> mapRegionList = mapRegionMapper.selectList(new QueryWrapper<MapRegion>().isNotNull("name"));
List<StationBasic> stationBasicList = stationBasicMapper.selectList(new QueryWrapper<StationBasic>().isNotNull("belong_area").isNotNull("fan_gateway_id"));
stationBasicList.forEach(stationBasic -> {
StationCacheInfoDto stationCacheInfoDto = new StationCacheInfoDto();
stationCacheInfoDto.setStationId(stationBasic.getSequenceNbr().toString());
stationCacheInfoDto.setStationName(stationBasic.getStationName());
stationCacheInfoDto.setStationType(stationBasic.getStationType());
stationCacheInfoDto.setBelongProvince(regionList.stream().filter(region -> region.getRegionCode().toString().equals(stationBasic.getBelongArea().replace("[","").split(",")[0])).map(region -> region.getRegionName()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setBelongArea(mapRegionList.stream().filter(mapRegion -> mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,2))||mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,3))).map(mapRegion -> mapRegion.getName()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setAreaCode(mapRegionList.stream().filter(mapRegion -> mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,2))||mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,3))).map(mapRegion -> mapRegion.getAreaCode()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setInstalledCapacity(String.format("%.2f",sjglZsjZsbtzMapper.getStationCapactityByStationWerks(stationBasic.getStationNumber())));
List<QueryDto> queryDtoList = new ArrayList<>();
queryDtoList.add(new QueryDto("gatewayId",stationBasic.getFanGatewayId()));
queryDtoList.add(new QueryDto("equipmentIndexName.keyword","有功功率"));
if(!stationBasic.getStationType().equals("FDZ")){
queryDtoList.add(new QueryDto("frontModule","逆变器"));
}
stationCacheInfoDto.setEquipmentNumbers(this.getCount(queryDtoList,"equipmentNumber.Keyword", ESEquipments.class).toString());
stationCacheInfoDto.setFanGatewayId(stationBasic.getFanGatewayId());
stationCacheInfoDto.setBoosterGatewayId(stationBasic.getBoosterGatewayId());
stationCacheInfoDtos.add(stationCacheInfoDto);
});
redisTemplate.opsForList().leftPushAll("station_info_cache",stationCacheInfoDtos);
return stationCacheInfoDtos;
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
return stationCacheInfoDtoList; return stationCacheInfoDtoList;
} }
......
...@@ -129,7 +129,7 @@ public class LargeScreenImpl { ...@@ -129,7 +129,7 @@ public class LargeScreenImpl {
int month = currentDate.getMonthValue(); int month = currentDate.getMonthValue();
QueryWrapper<StationPlan> wrapper = new QueryWrapper<>(); QueryWrapper<StationPlan> wrapper = new QueryWrapper<>();
wrapper.select("sum(value) as sum_value"); wrapper.select("ifnull(sum(value), 0) as sum_value");
wrapper.eq("monthly", month); wrapper.eq("monthly", month);
List<Map<String, Object>> list = StationPlanMapper.selectMaps(wrapper); List<Map<String, Object>> list = StationPlanMapper.selectMaps(wrapper);
Double sumValue = list != null && !list.isEmpty() ? (Double) list.get(0).get("sum_value") : 0; Double sumValue = list != null && !list.isEmpty() ? (Double) list.get(0).get("sum_value") : 0;
...@@ -139,8 +139,8 @@ public class LargeScreenImpl { ...@@ -139,8 +139,8 @@ public class LargeScreenImpl {
mapdta.put("YJHWC", ybfb); mapdta.put("YJHWC", ybfb);
QueryWrapper<StationPlan> wrapper1 = new QueryWrapper<>(); QueryWrapper<StationPlan> wrapper1 = new QueryWrapper<>();
wrapper1.select("sum(value) as sum_value"); wrapper1.select("ifnull(sum(value), 0) as sum_value");
List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper); List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper1);
Double sumValuen = list1 != null && !list1.isEmpty() ? (Double) list1.get(0).get("sum_value") : 0; Double sumValuen = list1 != null && !list1.isEmpty() ? (Double) list1.get(0).get("sum_value") : 0;
Double ybfbn = sumValuen > 0 ? mapdta.get("NFD") / sumValue * 100 : 0; Double ybfbn = sumValuen > 0 ? mapdta.get("NFD") / sumValue * 100 : 0;
ybfbn = new BigDecimal(ybfbn).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); ybfbn = new BigDecimal(ybfbn).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
...@@ -246,7 +246,7 @@ public class LargeScreenImpl { ...@@ -246,7 +246,7 @@ public class LargeScreenImpl {
int month = currentDate.getMonthValue(); int month = currentDate.getMonthValue();
QueryWrapper<StationPlan> wrapper = new QueryWrapper<>(); QueryWrapper<StationPlan> wrapper = new QueryWrapper<>();
wrapper.select("sum(value) as sum_value"); wrapper.select("ifnull(sum(value), 0) as sum_value");
wrapper.eq("monthly", month); wrapper.eq("monthly", month);
List<Map<String, Object>> list = StationPlanMapper.selectMaps(wrapper); List<Map<String, Object>> list = StationPlanMapper.selectMaps(wrapper);
Double sumValue = list != null && !list.isEmpty() ? (Double) list.get(0).get("sum_value") : 0; Double sumValue = list != null && !list.isEmpty() ? (Double) list.get(0).get("sum_value") : 0;
...@@ -256,8 +256,8 @@ public class LargeScreenImpl { ...@@ -256,8 +256,8 @@ public class LargeScreenImpl {
mapdta.put("YJHWC", ybfb); mapdta.put("YJHWC", ybfb);
QueryWrapper<StationPlan> wrapper1 = new QueryWrapper<>(); QueryWrapper<StationPlan> wrapper1 = new QueryWrapper<>();
wrapper1.select("sum(value) as sum_value"); wrapper1.select("ifnull(sum(value), 0) as sum_value");
List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper); List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper1);
Double sumValuen = list1 != null && !list1.isEmpty() ? (Double) list1.get(0).get("sum_value") : 0; Double sumValuen = list1 != null && !list1.isEmpty() ? (Double) list1.get(0).get("sum_value") : 0;
Double ybfbn = sumValuen > 0 ? mapdta.get("NFD") / sumValue * 100 : 0; Double ybfbn = sumValuen > 0 ? mapdta.get("NFD") / sumValue * 100 : 0;
ybfbn = new BigDecimal(ybfbn).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); ybfbn = new BigDecimal(ybfbn).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
......
...@@ -34,6 +34,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -34,6 +34,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.velocity.runtime.directive.Break; import org.apache.velocity.runtime.directive.Break;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.elasticsearch.common.recycler.Recycler; import org.elasticsearch.common.recycler.Recycler;
import org.elasticsearch.index.Index;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -192,6 +193,29 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -192,6 +193,29 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
public Page<IndexDto> historyNationwideByPage(int current, int size, String stationBasicId) {
StationBasic stationBasic = stationBasicMapper.selectById(stationBasicId);
String gateway = stationBasic.getFanGatewayId();
String table = gateway;
StringBuffer querysql = new StringBuffer("SELECT createdTime ,gatewayId,address,valueLabel,equipmentSpecificName,value FROM iot_data_%s WHERE isAlarm='1' and value!=valueLabel and value!='0.0' and gatewayId= %s ORDER BY time desc LIMIT %d OFFSET %d ");
StringBuffer querysqlcount = new StringBuffer("SELECT count(value) FROM iot_data_%s WHERE isAlarm='1' and value!='0.0' and value!=valueLabel and gatewayId= %s ");
gateway = String.format("'%s'", gateway);
String querysqln = String.format(querysql.toString(), table, gateway, size, (current - 1) *size);
String querysqlcountn = String.format(querysqlcount.toString(), table, gateway);
//每个分机的指标数据
List<IndexDto> list = influxDButils.getListData(querysqln, IndexDto.class);
List<IndexDto> list1 = influxDButils.getListData(querysqlcountn, IndexDto.class);
//对于查询到的告警信息进行按照时间顺序进行排序
ArrayList<IndexDto> lisSort= (ArrayList<IndexDto>) list.stream().sorted(Comparator.comparing(IndexDto::getTimeString,Comparator.comparingLong(Long::parseLong)).reversed()).collect(Collectors.toList());
Page<IndexDto> indexDtoPage = new Page<>();
indexDtoPage.setTotal(list1.size());
indexDtoPage.setRecords(lisSort);
indexDtoPage.setCurrent(current);
indexDtoPage.setSize(size);
return indexDtoPage;
}
public IPage<IndexDto> getFanIdxInfoByPage(String equipNum, String stationId, String frontModule, int current, int size, String systemType) { public IPage<IndexDto> getFanIdxInfoByPage(String equipNum, String stationId, String frontModule, int current, int size, String systemType) {
StationBasic stationBasic = getOneByStationNumber(stationId); StationBasic stationBasic = getOneByStationNumber(stationId);
...@@ -526,21 +550,40 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -526,21 +550,40 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public Map<String,Object> getDetailsWindSpeedAll(String gatewayId){ public Map<String,Object> getDetailsWindSpeedAll(String gatewayId){
List<Map<String, String>> list = temporaryDataMapper.timingTemporarysSorageData(gatewayId); List<Map<String, Object>> list = temporaryDataMapper.timingTemporarysSorageData(gatewayId);
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
List<String> valueList = new ArrayList<>(); List<String> valueList = new ArrayList<>();
Set<String> time = new TreeSet<>(); Set<String> time = new TreeSet<>();
String v = list.get(0).get("value").toString();
for (Map<String, String> stringStringMap : list) { double min = Double.parseDouble(v);
double max = Double.parseDouble(v);
double mean = 0.0;
String minTime =list.get(0).get("createdTime").toString();
String maxTime =list.get(0).get("createdTime").toString();
for (Map<String, Object> stringStringMap : list) {
if (stringStringMap.get("equipmentIndexName").equals("有功功率")){ if (stringStringMap.get("equipmentIndexName").equals("有功功率")){
values.add(stringStringMap.get("value")); double value = Double.parseDouble(stringStringMap.get("value").toString());
values.add( String.format("%.2f",value));
if (value < min){
min = value;
minTime = stringStringMap.get("createdTime").toString();
}else if (value > max){
max = value;
maxTime = stringStringMap.get("createdTime").toString();
}
time.add(stringStringMap.get("createdTime").toString());
}else { }else {
valueList.add(stringStringMap.get("value")); valueList.add(stringStringMap.get("value").toString());
time.add(stringStringMap.get("createdTime"));
} }
} }
for (String value : values) {
mean += Double.parseDouble(value);
}
mean = Double.parseDouble(String.format("%.2f",mean/values.size()));
List<Map<String,Object>> seriesData = new ArrayList<>(); List<Map<String,Object>> seriesData = new ArrayList<>();
Map<String,Object> map3 = new HashMap<>(); Map<String,Object> map3 = new HashMap<>();
Map<String,Object> map1 = new HashMap<>(); Map<String,Object> map1 = new HashMap<>();
...@@ -553,6 +596,11 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -553,6 +596,11 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
seriesData.add(map1); seriesData.add(map1);
map.put("seriesData", seriesData); map.put("seriesData", seriesData);
map.put("axisData",time); map.put("axisData",time);
map.put("mean",mean);
map.put("max",max);
map.put("min",min);
map.put("maxTime",maxTime);
map.put("minTime",minTime);
return map; return map;
} }
...@@ -630,12 +678,13 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -630,12 +678,13 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BaseEntity::getIsDelete,false); wrapper.eq(BaseEntity::getIsDelete,false);
List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper); List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper);
long timeInMillis = new Date().getTime();
for (StationBasic stationBasic : stationBasics) { for (StationBasic stationBasic : stationBasics) {
if (stationBasic.getStationType().equals("FDZ")){ if (stationBasic.getStationType().equals("FDZ")){
timingTemporarysSorageData(stationBasic.getFanGatewayId()); timingTemporarysSorageData(stationBasic.getFanGatewayId(),timeInMillis);
} }
if (stationBasic.getStationType().equals("JZSGFDZ")){ if (stationBasic.getStationType().equals("JZSGFDZ")){
schedSolarPower(stationBasic.getBoosterGatewayId()); schedSolarPower(stationBasic.getBoosterGatewayId(),timeInMillis);
} }
} }
} }
...@@ -723,7 +772,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -723,7 +772,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public void timingTemporarysSorageData(String gatewayId){ public void timingTemporarysSorageData(String gatewayId,long timeInMillis){
String sql = "SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName = '瞬时风速' "; String sql = "SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName = '瞬时风速' ";
String sql1 = "SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName = '有功功率'"; String sql1 = "SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName = '有功功率'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql,IndicatorsDto.class); List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql,IndicatorsDto.class);
...@@ -736,7 +785,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -736,7 +785,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
long timeInMillis = new Date().getTime(); // long timeInMillis = new Date().getTime();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) { for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
try { try {
TemporaryData temporaryData = new TemporaryData(); TemporaryData temporaryData = new TemporaryData();
...@@ -769,7 +818,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -769,7 +818,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
temporaryDataService.saveBatch(temporaryDatass); temporaryDataService.saveBatch(temporaryDatass);
} }
public void schedSolarPower(String gatewayId){ public void schedSolarPower(String gatewayId,long timeInMillis){
String sql = "SELECT * FROM indicators_"+gatewayId+" WHERE displayName = '总辐射累计' "; String sql = "SELECT * FROM indicators_"+gatewayId+" WHERE displayName = '总辐射累计' ";
String sql1 = "SELECT * FROM indicators_"+gatewayId+" WHERE displayName = '有功功率'"; String sql1 = "SELECT * FROM indicators_"+gatewayId+" WHERE displayName = '有功功率'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql,IndicatorsDto.class); List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql,IndicatorsDto.class);
...@@ -782,7 +831,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -782,7 +831,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
long timeInMillis = new Date().getTime(); // long timeInMillis = new Date().getTime();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) { for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
try { try {
TemporaryData temporaryData = new TemporaryData(); TemporaryData temporaryData = new TemporaryData();
...@@ -1756,24 +1805,6 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1756,24 +1805,6 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
public void sendMqttByRanking( List< Map<String,Object>> list,String code,String topic){ public void sendMqttByRanking( List< Map<String,Object>> list,String code,String topic){
//先发送区域消息
List<StationCacheInfoDto> listStationCacheInfoDto = commonServiceImpl.getListStationCacheInfoDto();
Map<String, List<StationCacheInfoDto>> belongAreaList = listStationCacheInfoDto.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getAreaCode));
for (String s : belongAreaList.keySet()) {
List<String> ids = belongAreaList.get(s).stream().map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList());
String idStrings = String.join(",", ids);
List<Map<String, Object>> dataList = list.stream().filter(e -> idStrings.contains(e.get("gateWayId").toString())).collect(Collectors.toList());
List<Map<String, Object>> resultList = mapListToSort(dataList).stream().limit(5).collect(Collectors.toList());
IPage<Map<String,Object>> result = new Page<>();
result.setRecords(resultList);
result.setCurrent(1);
result.setTotal(resultList.size());
try {
emqKeeper.getMqttClient().publish(topic+"/"+code+"/"+s,JSON.toJSONString(result).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
}
//发送全国数据消息 //发送全国数据消息
List<Map<String, Object>> maps = mapListToSort(list); List<Map<String, Object>> maps = mapListToSort(list);
...@@ -1788,6 +1819,26 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1788,6 +1819,26 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
e.printStackTrace(); e.printStackTrace();
} }
//先发送区域消息
List<StationCacheInfoDto> listStationCacheInfoDto = commonServiceImpl.getListStationCacheInfoDto();
Map<String, List<StationCacheInfoDto>> belongAreaList = listStationCacheInfoDto.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getAreaCode));
for (String s : belongAreaList.keySet()) {
List<String> ids = belongAreaList.get(s).stream().map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList());
String idStrings = String.join(",", ids);
List<Map<String, Object>> dataList = list.stream().filter(e -> idStrings.contains(e.get("gateWayId").toString())).collect(Collectors.toList());
List<Map<String, Object>> data = mapListToSort(dataList).stream().limit(5).collect(Collectors.toList());
IPage<Map<String,Object>> resultMap = new Page<>();
resultMap.setRecords(data);
resultMap.setCurrent(1);
resultMap.setTotal(data.size());
try {
emqKeeper.getMqttClient().publish(topic+"/"+code+"/"+s,JSON.toJSONString(resultMap).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
}
} }
List< Map<String,Object>> mapListToSort(List< Map<String,Object>> list){ List< Map<String,Object>> mapListToSort(List< Map<String,Object>> list){
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
<select id="timingTemporarysSorageData" resultType="map"> <select id="timingTemporarysSorageData" resultType="map">
SELECT avg(value) as value , SELECT
avg(value) as value ,
created_time as createdTime , created_time as createdTime ,
equipmentIndexName equipmentIndexName
FROM FROM
...@@ -17,8 +18,9 @@ ...@@ -17,8 +18,9 @@
<if test="gatewayId == null or gatewayId == ''"> <if test="gatewayId == null or gatewayId == ''">
equipmentNumber is not null and equipmentIndexName is not null equipmentNumber is not null and equipmentIndexName is not null
</if> </if>
AND equipmentIndexName='有功功率'
</where> </where>
GROUP BY batch_no ,equipmentIndexName; GROUP BY created_time ,equipmentIndexName;
</select> </select>
......
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
...@@ -29,6 +30,7 @@ import com.yeejoin.amos.feign.privilege.model.DepartmentModel; ...@@ -29,6 +30,7 @@ import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.LoginInfoModel; import com.yeejoin.amos.feign.privilege.model.LoginInfoModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil; import com.yeejoin.amos.feign.privilege.util.DesUtil;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
...@@ -41,6 +43,7 @@ import org.typroject.tyboot.component.emq.EmqKeeper; ...@@ -41,6 +43,7 @@ import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import springfox.documentation.spring.web.json.Json;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field; import java.lang.reflect.Field;
...@@ -55,6 +58,7 @@ import java.util.stream.Collectors; ...@@ -55,6 +58,7 @@ import java.util.stream.Collectors;
* @author system_generator * @author system_generator
* @date 2023-04-20 * @date 2023-04-20
*/ */
@Slf4j
@Service @Service
public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBasic, PersonBasicMapper> implements IPersonBasicService { public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBasic, PersonBasicMapper> implements IPersonBasicService {
...@@ -482,8 +486,10 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -482,8 +486,10 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
usd.setUserName(personAccount.getAccountName()); usd.setUserName(personAccount.getAccountName());
usd.setLockStatus("UNLOCK"); usd.setLockStatus("UNLOCK");
usd.setUserId(personAccount.getPuserId()); usd.setUserId(personAccount.getPuserId());
usd.setOriginalPassword(oldpersonAccount.getPassword());
//新增平台用户 //新增平台用户
AgencyUserModel agencyUserModel = this.updateuser(personAccount.getPuserId(), usd); AgencyUserModel agencyUserModel = this.updateuser(personAccount.getPuserId(), usd);
log.info("更新平台账户信息::"+ JSONObject.toJSONString(usd));
//设置userID //设置userID
usd.setUserId(agencyUserModel.getUserId()); usd.setUserId(agencyUserModel.getUserId());
//设置工号 //设置工号
...@@ -616,8 +622,8 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -616,8 +622,8 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
//修改平台用户 //修改平台用户
private AgencyUserModel updateuser(String userId, AgencyUserModel userDto) { private AgencyUserModel updateuser(String userId, AgencyUserModel userDto) {
FeignClientResult<AgencyUserModel> amosUser = Privilege.agencyUserClient.update(userDto, userId); FeignClientResult<AgencyUserModel> amosUser = Privilege.agencyUserClient.update(userDto, userId);
FeignClientResult<AgencyUserModel> amosUser1 = Privilege.agencyUserClient.modifyPassword(userId,userDto);
AgencyUserModel user = new AgencyUserModel(); AgencyUserModel user = new AgencyUserModel();
if (!ObjectUtils.isEmpty(amosUser)) { if (!ObjectUtils.isEmpty(amosUser)) {
if (amosUser.getStatus() == 200) { if (amosUser.getStatus() == 200) {
user = amosUser.getResult(); user = amosUser.getResult();
...@@ -625,6 +631,13 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa ...@@ -625,6 +631,13 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
throw new RuntimeException(amosUser.getMessage()); throw new RuntimeException(amosUser.getMessage());
} }
} }
if (!ObjectUtils.isEmpty(amosUser1)) {
if (amosUser1.getStatus() == 200) {
user = amosUser1.getResult();
} else {
throw new RuntimeException(amosUser1.getMessage());
}
}
return user; return user;
} }
private LoginInfoModel updateLoginInfo(String loginId,AgencyUserModel userDto) { private LoginInfoModel updateLoginInfo(String loginId,AgencyUserModel userDto) {
......
package com.yeejoin.amos.boot.module.jxiop.biz.dto; package com.yeejoin.amos.boot.module.jxiop.biz.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -13,6 +12,8 @@ public class StationCacheInfoDto implements Serializable { ...@@ -13,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;
//所属片区 //所属片区
...@@ -25,4 +26,6 @@ public class StationCacheInfoDto implements Serializable { ...@@ -25,4 +26,6 @@ public class StationCacheInfoDto implements Serializable {
private String fanGatewayId; private String fanGatewayId;
//升压站网关 //升压站网关
private String boosterGatewayId; private String boosterGatewayId;
//片区code
private String areaCode;
} }
package com.yeejoin.amos.boot.module.jxiop.biz.entity; package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
...@@ -11,7 +15,7 @@ import java.util.Date; ...@@ -11,7 +15,7 @@ import java.util.Date;
@Accessors(chain = true) @Accessors(chain = true)
@TableName("equip_alarm_event") @TableName("equip_alarm_event")
public class EquipAlarmEvent { public class EquipAlarmEvent {
@TableField("sequence_nbr") @TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
private Long sequenceNumber; private Long sequenceNumber;
@TableField("created_time") @TableField("created_time")
private Date createdTime; private Date createdTime;
...@@ -30,4 +34,6 @@ public class EquipAlarmEvent { ...@@ -30,4 +34,6 @@ public class EquipAlarmEvent {
*/ */
@TableField("frontModule") @TableField("frontModule")
private String frontModule; private String frontModule;
@TableField("value")
private String value;
} }
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.extra.pinyin.PinyinUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jxiop.api.entity.MapRegion;
import com.yeejoin.amos.boot.module.jxiop.api.entity.Region;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
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.StationBasicMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationPlanMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationPlanMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments; import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments;
...@@ -33,6 +38,7 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -33,6 +38,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -56,6 +62,11 @@ public class CommonServiceImpl { ...@@ -56,6 +62,11 @@ public class CommonServiceImpl {
@Autowired @Autowired
private StationBasicMapper stationBasicMapper; private StationBasicMapper stationBasicMapper;
@Resource
private RegionMapper regionMapper;
@Resource
private MapRegionMapper mapRegionMapper;
/** /**
* 带参数 求平均值 * 带参数 求平均值
*/ */
...@@ -178,6 +189,13 @@ public class CommonServiceImpl { ...@@ -178,6 +189,13 @@ public class CommonServiceImpl {
return value; return value;
} }
/**
* @deprecated 获取场站的设备总数
* @param queryDto
* @param keysum
* @param clas
* @return
*/
public Integer getCount(List<QueryDto> queryDto, String keysum, Class clas) { public Integer getCount(List<QueryDto> queryDto, String keysum, Class clas) {
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
for (QueryDto dto : queryDto) { for (QueryDto dto : queryDto) {
...@@ -225,7 +243,6 @@ public class CommonServiceImpl { ...@@ -225,7 +243,6 @@ public class CommonServiceImpl {
return Double.valueOf(String.format("%.2f", totalvalue)); return Double.valueOf(String.format("%.2f", totalvalue));
} }
public Double getNumByIndicatior(String gatewayId, String indicator) { public Double getNumByIndicatior(String gatewayId, String indicator) {
String sql = "SELECT * FROM indicators_" + gatewayId + " where equipmentIndexName=~/" + indicator + "$/"; String sql = "SELECT * FROM indicators_" + gatewayId + " where equipmentIndexName=~/" + indicator + "$/";
Double totalvalue = 0.00; Double totalvalue = 0.00;
...@@ -256,6 +273,12 @@ public class CommonServiceImpl { ...@@ -256,6 +273,12 @@ public class CommonServiceImpl {
return Double.valueOf(String.format("%.2f", avageValue)); return Double.valueOf(String.format("%.2f", avageValue));
} }
/**
*
* @param mapList 查询出来的influxdb数据
* @param indicator 指标名称
* @return 该指标的求和数据
*/
public Double getTotalByIndicatior(List<Map<String, Object>> mapList, String indicator) { public Double getTotalByIndicatior(List<Map<String, Object>> mapList, String indicator) {
Double totalvalue = 0.0000; Double totalvalue = 0.0000;
try { try {
...@@ -281,10 +304,21 @@ public class CommonServiceImpl { ...@@ -281,10 +304,21 @@ public class CommonServiceImpl {
return Double.valueOf(String.format("%.2f", avageValue)); return Double.valueOf(String.format("%.2f", avageValue));
} }
/**
* 根据场站Number获取装机容量
* @param WERKS
* @return
*/
public Double getStationCapactityByStationWerks(String WERKS) { public Double getStationCapactityByStationWerks(String WERKS) {
return sjglZsjZsbtzMapper.getStationCapactityByStationWerks(WERKS); return sjglZsjZsbtzMapper.getStationCapactityByStationWerks(WERKS);
} }
/**
* @deprecated 根据发电量获取社会贡献
* @param totalSocialContribution
* @return
*/
public Page<SocialContributionDto> getSocialContributionDtoList(Double totalSocialContribution) { public Page<SocialContributionDto> getSocialContributionDtoList(Double totalSocialContribution) {
Page<SocialContributionDto> socialContributionDtoPage = new Page<SocialContributionDto>(); Page<SocialContributionDto> socialContributionDtoPage = new Page<SocialContributionDto>();
List<SocialContributionDto> socialContributionDtoList = new ArrayList<>(); List<SocialContributionDto> socialContributionDtoList = new ArrayList<>();
...@@ -327,12 +361,40 @@ public class CommonServiceImpl { ...@@ -327,12 +361,40 @@ public class CommonServiceImpl {
return socialContributionDtoPage; return socialContributionDtoPage;
} }
/**
* @deprecated 获取缓存场站信息数据
* @return 缓存的场站信息
*/
public List<StationCacheInfoDto> getListStationCacheInfoDto() { public List<StationCacheInfoDto> getListStationCacheInfoDto() {
List<StationCacheInfoDto> stationCacheInfoDtoList = redisTemplate.opsForList().range("station_info_cache", 0, -1); List<StationCacheInfoDto> stationCacheInfoDtoList = redisTemplate.opsForList().range("station_info_cache", 0, -1);
if (ObjectUtils.isEmpty(stationCacheInfoDtoList)) { if (ObjectUtils.isEmpty(stationCacheInfoDtoList)) {
try { try {
stationCacheDataInit.run(); List<StationCacheInfoDto> stationCacheInfoDtos = new ArrayList<>();
stationCacheInfoDtoList = redisTemplate.opsForList().range("station_info_cache", 0, -1); List<Region> regionList = regionMapper.selectList(new QueryWrapper<Region>().eq("LEVEL", 1));
List<MapRegion> mapRegionList = mapRegionMapper.selectList(new QueryWrapper<MapRegion>().isNotNull("name"));
List<StationBasic> stationBasicList = stationBasicMapper.selectList(new QueryWrapper<StationBasic>().isNotNull("belong_area").isNotNull("fan_gateway_id"));
stationBasicList.forEach(stationBasic -> {
StationCacheInfoDto stationCacheInfoDto = new StationCacheInfoDto();
stationCacheInfoDto.setStationId(stationBasic.getSequenceNbr().toString());
stationCacheInfoDto.setStationName(stationBasic.getStationName());
stationCacheInfoDto.setStationType(stationBasic.getStationType());
stationCacheInfoDto.setBelongProvince(regionList.stream().filter(region -> region.getRegionCode().toString().equals(stationBasic.getBelongArea().replace("[","").split(",")[0])).map(region -> region.getRegionName()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setBelongArea(mapRegionList.stream().filter(mapRegion -> mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,2))||mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,3))).map(mapRegion -> mapRegion.getName()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setAreaCode(mapRegionList.stream().filter(mapRegion -> mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,2))||mapRegion.getProvince().contains(stationCacheInfoDto.getBelongProvince().substring(0,3))).map(mapRegion -> mapRegion.getAreaCode()).collect(Collectors.toList()).get(0));
stationCacheInfoDto.setInstalledCapacity(String.format("%.2f",sjglZsjZsbtzMapper.getStationCapactityByStationWerks(stationBasic.getStationNumber())));
List<QueryDto> queryDtoList = new ArrayList<>();
queryDtoList.add(new QueryDto("gatewayId",stationBasic.getFanGatewayId()));
queryDtoList.add(new QueryDto("equipmentIndexName.keyword","有功功率"));
if(!stationBasic.getStationType().equals("FDZ")){
queryDtoList.add(new QueryDto("frontModule","逆变器"));
}
stationCacheInfoDto.setEquipmentNumbers(this.getCount(queryDtoList,"equipmentNumber.Keyword", ESEquipments.class).toString());
stationCacheInfoDto.setFanGatewayId(stationBasic.getFanGatewayId());
stationCacheInfoDto.setBoosterGatewayId(stationBasic.getBoosterGatewayId());
stationCacheInfoDtos.add(stationCacheInfoDto);
});
redisTemplate.opsForList().leftPushAll("station_info_cache",stationCacheInfoDtos);
return stationCacheInfoDtos;
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
...@@ -340,13 +402,36 @@ public class CommonServiceImpl { ...@@ -340,13 +402,36 @@ public class CommonServiceImpl {
return stationCacheInfoDtoList; return stationCacheInfoDtoList;
} }
/**
* @deprecated 根据场站id获取缓存数据中的场站对象
* @param stationId 场站id
* @return 缓存的场站对象
*/
public StationCacheInfoDto getStationCacheInfoDtoByStationId(String stationId) { public StationCacheInfoDto getStationCacheInfoDtoByStationId(String stationId) {
StationCacheInfoDto stationCacheInfoDto = this.getListStationCacheInfoDto().stream().filter(stationCacheInfoDto1 -> stationCacheInfoDto1.getStationId().equals(stationId)).collect(Collectors.toList()).get(0); StationCacheInfoDto stationCacheInfoDto = this.getListStationCacheInfoDto().stream().filter(stationCacheInfoDto1 -> stationCacheInfoDto1.getStationId().equals(stationId)).collect(Collectors.toList()).get(0);
return stationCacheInfoDto; return stationCacheInfoDto;
} }
/**
* @deprecated 根据场站id获取场站的首字母缩写
* @param stationid 场站id
* @return 返回该场站的名称拼音缩写
*/
public String getFanDevicePrefix(String stationid) { public String getFanDevicePrefix(String stationid) {
StationBasic stationBasic = stationBasicMapper.selectById(stationid); StationBasic stationBasic = stationBasicMapper.selectById(stationid);
return PinyinUtil.getFirstLetter(stationBasic.getStationName().split("风")[0], "").toUpperCase(Locale.ROOT); return PinyinUtil.getFirstLetter(stationBasic.getStationName().split("风")[0], "").toUpperCase(Locale.ROOT);
} }
/**
* @deprecated 将查询条件进行组装
* @param searchCondtionMap 需要查询的数据的 条件map
* @return List<QueryDto> QueryDtolist 用于给传值
*/
public List<QueryDto> getQueryDtoList(Map<String,String> searchCondtionMap){
List<QueryDto> result = new ArrayList<>();
searchCondtionMap.keySet().forEach(s -> {
result.add(new QueryDto(s,searchCondtionMap.get(s)));
});
return result;
}
} }
...@@ -98,6 +98,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -98,6 +98,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
@Autowired @Autowired
private StationBasicMapper stationBasicMapper; private StationBasicMapper stationBasicMapper;
@Autowired @Autowired
private SjglZsjZsbtzMapper sjglZsjZsbtzMapper;
@Autowired
private RegionMapper regionMapper; private RegionMapper regionMapper;
//风机状态列表 //风机状态列表
@Value("${fan.statuts.stattuspath}") @Value("${fan.statuts.stattuspath}")
...@@ -642,12 +644,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -642,12 +644,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BaseEntity::getIsDelete, false); wrapper.eq(BaseEntity::getIsDelete, false);
List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper); List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper);
long timeInMillis = new Date().getTime();
for (StationBasic stationBasic : stationBasics) { for (StationBasic stationBasic : stationBasics) {
if (stationBasic.getStationType().equals("FDZ")) { if (stationBasic.getStationType().equals("FDZ")) {
timingTemporarysSorageData(stationBasic.getFanGatewayId()); timingTemporarysSorageData(stationBasic.getFanGatewayId(),timeInMillis);
} }
if (stationBasic.getStationType().equals("JZSGFDZ")) { if (stationBasic.getStationType().equals("JZSGFDZ")) {
schedSolarPower(stationBasic.getBoosterGatewayId()); schedSolarPower(stationBasic.getBoosterGatewayId(),timeInMillis);
} }
} }
} }
...@@ -732,7 +736,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -732,7 +736,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
public void timingTemporarysSorageData(String gatewayId) { public void timingTemporarysSorageData(String gatewayId, long timeInMillis) {
String sql = "SELECT * FROM indicators_" + gatewayId + " WHERE equipmentIndexName = '瞬时风速' "; String sql = "SELECT * FROM indicators_" + gatewayId + " WHERE equipmentIndexName = '瞬时风速' ";
String sql1 = "SELECT * FROM indicators_" + gatewayId + " WHERE equipmentIndexName = '有功功率'"; String sql1 = "SELECT * FROM indicators_" + gatewayId + " WHERE equipmentIndexName = '有功功率'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql, IndicatorsDto.class); List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql, IndicatorsDto.class);
...@@ -745,7 +749,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -745,7 +749,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
long timeInMillis = new Date().getTime(); // long timeInMillis = new Date().getTime();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) { for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
try { try {
TemporaryData temporaryData = new TemporaryData(); TemporaryData temporaryData = new TemporaryData();
...@@ -778,7 +782,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -778,7 +782,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
temporaryDataService.saveBatch(temporaryDatass); temporaryDataService.saveBatch(temporaryDatass);
} }
public void schedSolarPower(String gatewayId) { public void schedSolarPower(String gatewayId,long timeInMillis) {
String sql = "SELECT * FROM indicators_" + gatewayId + " WHERE displayName = '总辐射累计' "; String sql = "SELECT * FROM indicators_" + gatewayId + " WHERE displayName = '总辐射累计' ";
String sql1 = "SELECT * FROM indicators_" + gatewayId + " WHERE displayName = '有功功率'"; String sql1 = "SELECT * FROM indicators_" + gatewayId + " WHERE displayName = '有功功率'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql, IndicatorsDto.class); List<IndicatorsDto> indicatorsDtoList = influxDButils.getListDataAll(sql, IndicatorsDto.class);
...@@ -791,7 +795,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -791,7 +795,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
long timeInMillis = new Date().getTime(); // long timeInMillis = new Date().getTime();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) { for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
try { try {
TemporaryData temporaryData = new TemporaryData(); TemporaryData temporaryData = new TemporaryData();
...@@ -1498,10 +1502,34 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1498,10 +1502,34 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
// resultMap.put("equipmentSpecificName", list.get(0).getEquipmentSpecificName()); // resultMap.put("equipmentSpecificName", list.get(0).getEquipmentSpecificName());
// resultMap.put("equipmentIndexName", list.get(0).getEquipmentSpecificName()); // resultMap.put("equipmentIndexName", list.get(0).getEquipmentSpecificName());
//箱变名称与箱变型号去掉区域 //箱变名称与箱变型号去掉区域
String type = "光伏阵区系统";
String queryEquipNum = "";
if (equipmentNumber.contains("-")){
String[] equipNames = equipmentNumber.split("-");
if (equipNames.length>2){
type ="汇流箱系统";
queryEquipNum = equipNames[0]+equipNames[1]+Integer.parseInt(equipNames[2]);
}else {
type ="光伏逆变器系统";
String sql1 = " SELECT * FROM indicators_" + gatewayId + " WHERE (equipmentIndexName ='待机' or equipmentIndexName ='故障停机' or equipmentIndexName ='告警运行' or equipmentIndexName ='限额运行' or equipmentIndexName ='停机' or equipmentIndexName = '通讯故障' or equipmentIndexName = '降额运行' or equipmentIndexName = '运行') and value = 'true' and equipmentNumber ='"+equipmentNumber+"'";
List<IndicatorsDto> list1 = influxDButils.getListData(sql1, IndicatorsDto.class);
resultMap.put("status", AlarmDesc.getCode(list1.get(0).getEquipmentIndexName()));
queryEquipNum="#"+Integer.parseInt(equipNames[0]);
}
}else {
queryEquipNum ="#"+ Integer.parseInt(equipmentNumber)+"";
}
queryEquipNum = queryEquipNum + type;
LambdaQueryWrapper<SjglZsjZsbtz> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(SjglZsjZsbtz::getSbmc,queryEquipNum);
SjglZsjZsbtz sjglZsjZsbtz = sjglZsjZsbtzMapper.selectOne(queryWrapper);
resultMap.put("equipmentSpecificName", list.get(0).getEquipmentSpecificName().split("区域/")[1]); resultMap.put("equipmentSpecificName", list.get(0).getEquipmentSpecificName().split("区域/")[1]);
resultMap.put("equipmentIndexName", list.get(0).getEquipmentSpecificName().split("区域/")[1]); resultMap.put("equipmentIndexName",null == sjglZsjZsbtz.getGgxh()?"": sjglZsjZsbtz.getGgxh());
resultMap.put("equipmentInfoName", list.get(0).getEquipmentSpecificName().substring(5).replace("/", " ")); resultMap.put("equipmentInfoName", list.get(0).getEquipmentSpecificName().substring(5).replace("/", " "));
resultMap.put("status", list.get(0).getValue().equals("false") ? "异常" : "正常运行");
} }
return resultMap; return resultMap;
} }
...@@ -2072,7 +2100,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -2072,7 +2100,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
return deaviationRateDtoPage; return deaviationRateDtoPage;
} }
@Scheduled(cron = "0 */1 * * * ?")
public void addNbqAlarmEvent() { public void addNbqAlarmEvent() {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
...@@ -2106,11 +2134,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -2106,11 +2134,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
for (IndicatorsDto indicatorsDto : indicatorsDtoList) { for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
EquipAlarmEvent equipAlarmEvent = new EquipAlarmEvent(); EquipAlarmEvent equipAlarmEvent = new EquipAlarmEvent();
equipAlarmEvent.setEquipIndex(indicatorsDto.getEquipmentNumber()); equipAlarmEvent.setEquipIndex(indicatorsDto.getEquipmentNumber());
equipAlarmEvent.setEquipName(indicatorsDto.getEquipmentSpecificName());
equipAlarmEvent.setAlarmDesc(AlarmDesc.getCode(indicatorsDto.getEquipmentIndexName())); equipAlarmEvent.setAlarmDesc(AlarmDesc.getCode(indicatorsDto.getEquipmentIndexName()));
equipAlarmEvent.setAlarmDesc(StringUtils.isEmpty(equipAlarmEvent.getAlarmDesc())? indicatorsDto.getEquipmentIndexName() : equipAlarmEvent.getAlarmDesc());
equipAlarmEvent.setCreatedTime(DateUtils.longStr2Date(indicatorsDto.getCreatedTime())); equipAlarmEvent.setCreatedTime(DateUtils.longStr2Date(indicatorsDto.getCreatedTime()));
equipAlarmEvent.setGatewayId(stationBasic.getFanGatewayId()); equipAlarmEvent.setGatewayId(stationBasic.getFanGatewayId());
equipAlarmEvent.setSort(time); equipAlarmEvent.setSort(time);
equipAlarmEvent.setFrontModule(indicatorsDto.getFrontModule()); equipAlarmEvent.setFrontModule(indicatorsDto.getFrontModule());
equipAlarmEvent.setValue(indicatorsDto.getValue());
newEquipAlarmEvents.add(equipAlarmEvent); newEquipAlarmEvents.add(equipAlarmEvent);
newEquipAlarmEvent.add(equipAlarmEvent); newEquipAlarmEvent.add(equipAlarmEvent);
} }
...@@ -2120,7 +2151,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -2120,7 +2151,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
List<EquipAlarmEvent> oldEquipAlarmEvents = equipAlarmEventMapper.getOldDataBySort(lastSort, stationBasic.getFanGatewayId()); List<EquipAlarmEvent> oldEquipAlarmEvents = equipAlarmEventMapper.getOldDataBySort(lastSort, stationBasic.getFanGatewayId());
for (EquipAlarmEvent oldEquipAlarmEvent : oldEquipAlarmEvents) { for (EquipAlarmEvent oldEquipAlarmEvent : oldEquipAlarmEvents) {
for (EquipAlarmEvent equipAlarmEvent : newEquipAlarmEvents) { for (EquipAlarmEvent equipAlarmEvent : newEquipAlarmEvents) {
if (oldEquipAlarmEvent.getEquipIndex().equals(equipAlarmEvent.getEquipIndex()) && oldEquipAlarmEvent.getAlarmDesc().equals(equipAlarmEvent.getAlarmDesc())) { if (oldEquipAlarmEvent.getEquipIndex().equals(equipAlarmEvent.getEquipIndex()) &&
oldEquipAlarmEvent.getAlarmDesc().equals(equipAlarmEvent.getAlarmDesc()) &&
oldEquipAlarmEvent.getValue().equals(equipAlarmEvent.getValue())) {
newEquipAlarmEvent.remove(equipAlarmEvent); newEquipAlarmEvent.remove(equipAlarmEvent);
} }
} }
......
...@@ -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