Commit 12e87036 authored by tangwei's avatar tangwei

解决冲突

parents f5dfab98 41cc6422
package com.yeejoin.amos.boot.module.jxiop.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum GeneratingCapacity {
DAY("日发电量","0"),
MONTH("月发电量","1"),
YEAR("年发电量","2");
private String name;
private String code;
public static String getCode(String name) {
for (KGName electricQuantity : KGName.values())
{
if (electricQuantity.getName().equals(name))
{
return electricQuantity.getCode();
}
}
return null;
}
}
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil; import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.GeneratingCapacity;
import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.TreeDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.TreeDto;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
...@@ -51,12 +52,6 @@ public class MonitorFanIdxController extends BaseController { ...@@ -51,12 +52,6 @@ public class MonitorFanIdxController extends BaseController {
@Autowired @Autowired
CommonServiceImpl commonService; CommonServiceImpl commonService;
@Value("${gl.sum.column}")
String sumColumn;
@Value("${gl.avg.column}")
String avgColumn;
@Value("${fan.statuts.stattuspath}") @Value("${fan.statuts.stattuspath}")
private String fanStatusImagePathPrefix; private String fanStatusImagePathPrefix;
...@@ -791,4 +786,62 @@ public class MonitorFanIdxController extends BaseController { ...@@ -791,4 +786,62 @@ public class MonitorFanIdxController extends BaseController {
Map<String, Object> result = monitorFanIndicator.partofWaring3D(stationId,equipNum); Map<String, Object> result = monitorFanIndicator.partofWaring3D(stationId,equipNum);
return ResponseHelper.buildResponse(result); return ResponseHelper.buildResponse(result);
} }
@ApiOperation(value = "电站排名")
@Scheduled(cron = "0/10 * * * * ? ")
@GetMapping("/stationRanking")
public ResponseModel stationRanking() {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper);
List< Map<String,Object>> datDataFJ = new ArrayList<>();
List< Map<String,Object>> monthDataFJ = new ArrayList<>();
List< Map<String,Object>> yearDataFJ = new ArrayList<>();
List< Map<String,Object>> datDataGF = new ArrayList<>();
List< Map<String,Object>> monthDataGF = new ArrayList<>();
List< Map<String,Object>> yearDataGF = new ArrayList<>();
for (StationBasic stationBasic : stationBasics) {
String gatewayId = stationBasic.getFanGatewayId();
String querySql = null;
String name = stationBasic.getStationName();
if (stationBasic.getStationType().equals("FDZ")){
Map<String, Object> map = monitorFanIndicator.generatingCapacity(gatewayId,querySql);
Map<String, Object> dayMap = new HashMap<>();
Map<String, Object> monthMap = new HashMap<>();
Map<String, Object> yearMap = new HashMap<>();
dayMap.put("name",name);
dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",map.get("日发电量")));
monthMap.put("name",name);
monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",map.get("月发电量")));
yearMap.put("name",name);
yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",map.get("年发电量")));
datDataFJ.add(dayMap);
monthDataFJ.add(monthMap);
yearDataFJ.add(yearMap);
} else {
querySql = " and frontModule = '逆变器'";
Map<String, Object> map = monitorFanIndicator.generatingCapacity(gatewayId,querySql);
Map<String, Object> dayMap = new HashMap<>();
Map<String, Object> monthMap = new HashMap<>();
Map<String, Object> yearMap = new HashMap<>();
dayMap.put("name",name);
dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",map.get("日发电量")));
monthMap.put("name",name);
monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",map.get("月发电量")));
yearMap.put("name",name);
yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",map.get("年发电量")));
datDataGF.add(dayMap);
monthDataGF.add(monthMap);
yearDataGF.add(yearMap);
}
}
monitorFanIndicator.sendMqttByRanking(datDataFJ, GeneratingCapacity.DAY.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(monthDataFJ,GeneratingCapacity.MONTH.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(yearDataFJ,GeneratingCapacity.YEAR.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(datDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(monthDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(yearDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
return CommonResponseUtil.success();
}
} }
...@@ -994,7 +994,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -994,7 +994,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
stringStringHashMap.put("wind", item.getValue()); stringStringHashMap.put("wind", item.getValue());
stringStringHashMap.put("power", powerSqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("power", powerSqlMap.get(item.getEquipmentNumber()));
stringStringHashMap.put("windSpeed", windSpeedSqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("windSpeed", windSpeedSqlMap.get(item.getEquipmentNumber()));
stringStringHashMap.put("electricity", electricitySqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("electricity", String.format("%.4f",Double.valueOf(electricitySqlMap.get(item.getEquipmentNumber()))));
resultList.add(stringStringHashMap); resultList.add(stringStringHashMap);
}); });
//构建平台数据 //构建平台数据
...@@ -1744,5 +1744,47 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1744,5 +1744,47 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
return resultMap; return resultMap;
} }
public void sendMqttByRanking( List< Map<String,Object>> list,String code,String topic){
list.stream().sorted((o1,o2)->{
double o1Num = Double.parseDouble(o1.get("value").toString());
double o2Num = Double.parseDouble(o2.get("value").toString());
if ((o1Num-o2Num)<0){
return -1;
}else if ((o1Num-o2Num)>0){
return 1;
}else {
return 0;
}
});
IPage<Map<String,Object>> result = new Page<>();
result.setRecords(list);
result.setCurrent(1);
result.setTotal(list.size());
try {
emqKeeper.getMqttClient().publish(topic+"/"+code,JSON.toJSONString(result).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
}
public Map<String, Object> generatingCapacity (String gatewayId,String query){
String querySql = " SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量'";
if (null != query){
querySql = querySql + " "+ query;
}
List<IndicatorsDto> queryList = influxDButils.getListData(querySql,IndicatorsDto.class);
Map<String, List<IndicatorsDto>> maps = queryList.stream().collect(Collectors.groupingBy(IndicatorsDto::getEquipmentIndexName));
Map<String, Object> hashMap = new HashMap<>();
for (String s : maps.keySet()) {
List<IndicatorsDto> indicatorsDtos = maps.get(s);
Double totalvalue =indicatorsDtos.stream().filter(obj -> !ObjectUtils.isEmpty(obj.getValue())).mapToDouble(l->Double.parseDouble(l.getValue())).sum();
hashMap.put(s,totalvalue);
}
return hashMap;
}
} }
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil; import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.GeneratingCapacity;
import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.TreeDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.TreeDto;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
...@@ -15,6 +16,7 @@ import com.yeejoin.amos.boot.module.jxiop.biz.dto.IndicatorsDto; ...@@ -15,6 +16,7 @@ import com.yeejoin.amos.boot.module.jxiop.biz.dto.IndicatorsDto;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.ResultsData; import com.yeejoin.amos.boot.module.jxiop.biz.dto.ResultsData;
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;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
...@@ -65,7 +67,8 @@ public class MonitorFanIdxController extends BaseController { ...@@ -65,7 +67,8 @@ public class MonitorFanIdxController extends BaseController {
@Autowired @Autowired
EmqKeeper emqKeeper; EmqKeeper emqKeeper;
@Autowired
InfluxdbUtil influxdbUtil;
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "根据设备编号、场站id、前段展示模块、系统类型查询表数据") @ApiOperation(value = "根据设备编号、场站id、前段展示模块、系统类型查询表数据")
@GetMapping("/getFanIdxInfoByPage") @GetMapping("/getFanIdxInfoByPage")
...@@ -578,18 +581,19 @@ public class MonitorFanIdxController extends BaseController { ...@@ -578,18 +581,19 @@ public class MonitorFanIdxController extends BaseController {
String [] columnLists = new String[]{"有功功率"}; String [] columnLists = new String[]{"有功功率"};
String [] syLists = new String[]{"总辐射累计","总辐射"}; String [] syLists = new String[]{"总辐射累计","总辐射"};
Map<String, Object> columnMap = new HashMap<>(); Map<String, Object> columnMap = new HashMap<>();
//日 月 年发电量同仅统计逆变器数据
List<Map<String, Object>> mapList;
mapList = influxdbUtil.query("SELECT * FROM indicators_" + stationBasic.getFanGatewayId() + " where frontModule=~/逆变器/ and(equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量' or equipmentIndexName='有功功率')");
//日-月-年-发电量需要保留四位小数问题修改
for (String column : columnList) { for (String column : columnList) {
Double result = commonService.getTotalByIndicatior(gatewayId, column); Double result = commonService.getTotalByIndicatior(mapList, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.4f",result));
} }
for (String column : syLists) { for (String column : syLists) {
Double result = commonService.getNumByIndicatior(boosterGatewayId, column); Double result = commonService.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 = commonService.getAvgvalueByIndicatior(gatewayId, column);
columnMap.put(column, String.format("%.2f",result)); columnMap.put(column, String.format("%.2f",result));
...@@ -599,7 +603,8 @@ public class MonitorFanIdxController extends BaseController { ...@@ -599,7 +603,8 @@ public class MonitorFanIdxController extends BaseController {
columnMap.put("风机台数",num); columnMap.put("风机台数",num);
Double capacityl = commonService.getStationCapactityByStationWerks(stationBasic.getStationNumber()); Double capacityl = commonService.getStationCapactityByStationWerks(stationBasic.getStationNumber());
columnMap.put("装机容量",capacityl); //装机容量保留两位小数
columnMap.put("装机容量",String.format("%.2f",capacityl));
...@@ -791,4 +796,66 @@ public class MonitorFanIdxController extends BaseController { ...@@ -791,4 +796,66 @@ public class MonitorFanIdxController extends BaseController {
Map<String, Object> result = monitorFanIndicator.partofWaring3D(stationId,equipNum); Map<String, Object> result = monitorFanIndicator.partofWaring3D(stationId,equipNum);
return ResponseHelper.buildResponse(result); return ResponseHelper.buildResponse(result);
} }
@ApiOperation(value = "电站排名")
@Scheduled(cron = "0/10 * * * * ? ")
@GetMapping("/stationRanking")
public ResponseModel stationRanking() {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper);
List< Map<String,Object>> datDataFJ = new ArrayList<>();
List< Map<String,Object>> monthDataFJ = new ArrayList<>();
List< Map<String,Object>> yearDataFJ = new ArrayList<>();
List< Map<String,Object>> datDataGF = new ArrayList<>();
List< Map<String,Object>> monthDataGF = new ArrayList<>();
List< Map<String,Object>> yearDataGF = new ArrayList<>();
for (StationBasic stationBasic : stationBasics) {
String gatewayId = stationBasic.getFanGatewayId();
String querySql = null;
String name = stationBasic.getStationName();
if (stationBasic.getStationType().equals("FDZ")){
Map<String, Object> map = monitorFanIndicator.generatingCapacity(gatewayId,querySql);
Map<String, Object> dayMap = new HashMap<>();
Map<String, Object> monthMap = new HashMap<>();
Map<String, Object> yearMap = new HashMap<>();
dayMap.put("name",name);
dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",map.get("日发电量")));
monthMap.put("name",name);
monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",map.get("月发电量")));
yearMap.put("name",name);
yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",map.get("年发电量")));
datDataFJ.add(dayMap);
monthDataFJ.add(monthMap);
yearDataFJ.add(yearMap);
} else {
querySql = " and frontModule = '逆变器'";
Map<String, Object> map = monitorFanIndicator.generatingCapacity(gatewayId,querySql);
Map<String, Object> dayMap = new HashMap<>();
Map<String, Object> monthMap = new HashMap<>();
Map<String, Object> yearMap = new HashMap<>();
dayMap.put("name",name);
dayMap.put("value",map.get("日发电量") == null?0:String.format("%.4f",map.get("日发电量")));
monthMap.put("name",name);
monthMap.put("value",map.get("月发电量") == null?0:String.format("%.4f",map.get("月发电量")));
yearMap.put("name",name);
yearMap.put("value",map.get("年发电量") == null?0:String.format("%.4f",map.get("年发电量")));
datDataGF.add(dayMap);
monthDataGF.add(monthMap);
yearDataGF.add(yearMap);
}
}
monitorFanIndicator.sendMqttByRanking(datDataFJ, GeneratingCapacity.DAY.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(monthDataFJ,GeneratingCapacity.MONTH.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(yearDataFJ,GeneratingCapacity.YEAR.getCode(),"fjpm");
monitorFanIndicator.sendMqttByRanking(datDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(monthDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
monitorFanIndicator.sendMqttByRanking(yearDataGF,GeneratingCapacity.YEAR.getCode(),"gfpm");
return CommonResponseUtil.success();
}
} }
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jxiop.biz.dto; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jxiop.biz.dto;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.springframework.util.ObjectUtils;
import java.util.Date; import java.util.Date;
@Data @Data
......
...@@ -42,6 +42,18 @@ public class CommonServiceImpl { ...@@ -42,6 +42,18 @@ public class CommonServiceImpl {
return Double.valueOf(String.format("%.2f",totalvalue)); return Double.valueOf(String.format("%.2f",totalvalue));
} }
public Double getTotalByIndicatiorAndParams(String gatewayId,String indicator,String querySql){
String sql = "SELECT * FROM indicators_"+gatewayId+" where equipmentIndexName='"+indicator+"'";
Double totalvalue = 0.0;
if (null != querySql){
sql = sql + " "+ querySql;
}
List<Map<String,Object>> mapList = influxdbUtil.query(sql);
totalvalue =mapList.stream().filter(stringObjectMap -> !ObjectUtils.isEmpty(stringObjectMap.get("value"))).mapToDouble(l->Double.parseDouble((String) l.get("value"))).sum();
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.0; Double totalvalue = 0.0;
...@@ -66,7 +78,7 @@ public class CommonServiceImpl { ...@@ -66,7 +78,7 @@ public class CommonServiceImpl {
public Double getTotalByIndicatior(List<Map<String,Object>> mapList,String indicator){ public Double getTotalByIndicatior(List<Map<String,Object>> mapList,String indicator){
Double totalvalue = 0.0; Double totalvalue = 0.0;
totalvalue =mapList.stream().filter(stringObjectMap ->stringObjectMap.get("equipmentIndexName").toString().contains(indicator)&&!ObjectUtils.isEmpty(stringObjectMap.get("value"))).mapToDouble(l->Double.parseDouble((String) l.get("value"))).sum(); totalvalue =mapList.stream().filter(stringObjectMap ->stringObjectMap.get("equipmentIndexName").toString().contains(indicator)&&!ObjectUtils.isEmpty(stringObjectMap.get("value"))).mapToDouble(l->Double.parseDouble((String) l.get("value"))).sum();
return Double.valueOf(String.format("%.2f",totalvalue)); return Double.valueOf(String.format("%.4f",totalvalue));
} }
/** /**
* @deprecated 获取指标值平均值 * @deprecated 获取指标值平均值
......
...@@ -994,7 +994,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -994,7 +994,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
stringStringHashMap.put("wind", item.getValue()); stringStringHashMap.put("wind", item.getValue());
stringStringHashMap.put("power", powerSqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("power", powerSqlMap.get(item.getEquipmentNumber()));
stringStringHashMap.put("windSpeed", windSpeedSqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("windSpeed", windSpeedSqlMap.get(item.getEquipmentNumber()));
stringStringHashMap.put("electricity", electricitySqlMap.get(item.getEquipmentNumber())); stringStringHashMap.put("electricity", String.format("%.4f",Double.valueOf(electricitySqlMap.get(item.getEquipmentNumber()))));
resultList.add(stringStringHashMap); resultList.add(stringStringHashMap);
}); });
//构建平台数据 //构建平台数据
...@@ -1016,7 +1016,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1016,7 +1016,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
List<AlarmEventDto> alarmEventList = alarmEventMapper.getAlarmEventList(null, stationId,current,size); List<AlarmEventDto> alarmEventList = alarmEventMapper.getAlarmEventList(null, stationId,current,size);
List<AlarmEventDto> sorrtedAlarmEventList = alarmEventList.stream().sorted(Comparator.comparing(AlarmEventDto::getCreatedTime).reversed()).collect(Collectors.toList());
ArrayList<Map<String, String>> resultList = new ArrayList<>(); ArrayList<Map<String, String>> resultList = new ArrayList<>();
alarmEventList.forEach(item -> { alarmEventList.forEach(item -> {
HashMap<String, String> stringStringHashMap = new HashMap<>(); HashMap<String, String> stringStringHashMap = new HashMap<>();
...@@ -1050,7 +1050,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1050,7 +1050,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
HashMap<String, String> stringStringHashMap = new HashMap<>(); HashMap<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("name", stringListEntry.getKey()); stringStringHashMap.put("name", stringListEntry.getKey());
for (IndicatorsDto indicatorsDto : stringListEntry.getValue()) { for (IndicatorsDto indicatorsDto : stringListEntry.getValue()) {
stringStringHashMap.put(ElectricQuantity.getCode(indicatorsDto.getDisplayName()), String.format("%.2f",ObjectUtils.isEmpty(indicatorsDto.getValue())?0.0:Double.parseDouble(indicatorsDto.getValue()))); stringStringHashMap.put(ElectricQuantity.getCode(indicatorsDto.getDisplayName()), String.format("%.3f",ObjectUtils.isEmpty(indicatorsDto.getValue())?0.0:Double.parseDouble(indicatorsDto.getValue())));
} }
resultList.add(stringStringHashMap); resultList.add(stringStringHashMap);
} }
...@@ -1744,5 +1744,125 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1744,5 +1744,125 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
return resultMap; return resultMap;
} }
public Map<String, Object> nbqStatus(String gatewayId) {
String sql = " SELECT * FROM indicators_"+gatewayId+" WHERE (equipmentIndexName ='待机' or equipmentIndexName ='故障停机' or equipmentIndexName ='告警运行' or equipmentIndexName ='限额运行' or equipmentIndexName ='停机') and value = 'true'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListData(sql,IndicatorsDto.class);
int djNum = 0 ;
int gzNum = 0 ;
int gjNum = 0 ;
int xeNum = 0 ;
int xdNum = 0 ;
int txNum = 0 ;
int tjNum = 0 ;
int zcNum = 0 ;
Map<String, Object> numMap = new HashMap<>();
Set<String> equipNum = new HashSet<>();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
switch(indicatorsDto.getEquipmentIndexName()){
case "待机":
djNum += 1;
break;
case "故障停机":
gzNum += 1;
break;
case "告警运行":
gjNum += 1;
break;
case "限额运行":
xeNum += 1;
equipNum.add(indicatorsDto.getEquipmentNumber());
break;
case "停机":
tjNum += 1;
break;
}
}
String xesql = " SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName ='有功功率' and frontModule = '逆变器' and value < '0.5'";
List<IndicatorsDto> xeList = influxDButils.getListData(xesql,IndicatorsDto.class);
for (IndicatorsDto dto : xeList) {
if (!ValidationUtil.isEmpty(equipNum) && equipNum.contains(dto.getEquipmentNumber())){
xdNum += 1;
}
}
String querySql = " SELECT * FROM indicators_"+gatewayId+" WHERE ( equipmentIndexName ='告警运行' or equipmentIndexName ='限额运行' ) and value != 'true'";
List<IndicatorsDto> queryList = influxDButils.getListData(querySql,IndicatorsDto.class);
if (!ValidationUtil.isEmpty(queryList)) {
List<String> collect = queryList.stream().map(IndicatorsDto::getEquipmentNumber).collect(Collectors.toList());
Set<String> strings = new HashSet<>(collect);
zcNum = collect.size() - strings.size();
}
String querySql1 = " SELECT * FROM indicators_"+gatewayId+" equipmentIndexName ='通讯异常' and value = 'true'";
List<IndicatorsDto> queryList1 = influxDButils.getListData(querySql1,IndicatorsDto.class);
if (!ValidationUtil.isEmpty(queryList1)){
List<String> collect1 = queryList.stream().map(IndicatorsDto::getEquipmentNumber).collect(Collectors.toList());
Set<String> strings1 = new HashSet<>(collect1);
txNum = collect1.size()-strings1.size();
}
numMap.put("djNum",djNum);
numMap.put("gzNum",gzNum);
numMap.put("gjNum",gjNum);
numMap.put("xeNum",xeNum);
numMap.put("xdNum",xdNum);
numMap.put("txNum",txNum);
numMap.put("tjNum",tjNum);
numMap.put("zcNum",zcNum);
return numMap;
}
public void sendMqttByRanking( List< Map<String,Object>> list,String code,String topic){
list.stream().sorted((o1,o2)->{
double o1Num = Double.parseDouble(o1.get("value").toString());
double o2Num = Double.parseDouble(o2.get("value").toString());
if ((o1Num-o2Num)<0){
return -1;
}else if ((o1Num-o2Num)>0){
return 1;
}else {
return 0;
}
});
IPage<Map<String,Object>> result = new Page<>();
result.setRecords(list);
result.setCurrent(1);
result.setTotal(list.size());
try {
emqKeeper.getMqttClient().publish(topic+"/"+code,JSON.toJSONString(result).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
}
public Map<String, Object> generatingCapacity (String gatewayId,String query){
String querySql = " SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName='日发电量' or equipmentIndexName='月发电量' or equipmentIndexName='年发电量'";
if (null != query){
querySql = querySql + " "+ query;
}
List<IndicatorsDto> queryList = influxDButils.getListData(querySql,IndicatorsDto.class);
Map<String, List<IndicatorsDto>> maps = queryList.stream().collect(Collectors.groupingBy(IndicatorsDto::getEquipmentIndexName));
Map<String, Object> hashMap = new HashMap<>();
for (String s : maps.keySet()) {
List<IndicatorsDto> indicatorsDtos = maps.get(s);
Double totalvalue =indicatorsDtos.stream().filter(obj -> !ObjectUtils.isEmpty(obj.getValue())).mapToDouble(l->Double.parseDouble(l.getValue())).sum();
hashMap.put(s,totalvalue);
}
return hashMap;
}
} }
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