Commit 11cd929f authored by chenzhao's avatar chenzhao

修改代码

parent 541608fc
......@@ -991,10 +991,13 @@ public class MonitorFanIdxController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "设备发电量 ")
@GetMapping("/equipGeneratingCapacity")
public ResponseModel<ResultsData> equipGeneratingCapacity(@RequestParam(value = "current") int current,
public IPage<Map<String,Object>> equipGeneratingCapacity(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "stationId") String stationId) {
Page<ESEquipments> result = new Page<ESEquipments>(current, size);
StationBasic stationBasic = stationBasicMapper.selectById(stationId);
String gatewayId = stationBasic.getFanGatewayId();
BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
//警情状态
......@@ -1002,7 +1005,12 @@ public class MonitorFanIdxController extends BaseController {
String[] keys = new String[] {"日发电量","月发电量","年发电量"};
List<String> list = Arrays.asList(keys);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must((QueryBuilders.termsQuery("equipmentIndexName.keyword", list))).must(QueryBuilders.matchQuery("gatewayId.keyword","1668801435891929089"));
if (!stationBasic.getStationType().equals("FDZ")){
boolQueryBuilder.must((QueryBuilders.termsQuery("equipmentIndexName.keyword", list))).must(QueryBuilders.matchQuery("gatewayId.keyword",gatewayId)).must(QueryBuilders.matchQuery("frontModule","逆变器"));
}else {
boolQueryBuilder.must((QueryBuilders.termsQuery("equipmentIndexName.keyword", list))).must(QueryBuilders.matchQuery("gatewayId.keyword",gatewayId));
}
should.add(boolQueryBuilder);
// 创建查询构造器
......@@ -1035,30 +1043,42 @@ public class MonitorFanIdxController extends BaseController {
Map<String,Object> map = new HashMap<>();
map.put("name",key);
for (ESEquipments equip : resultMap.get(key)) {
switch(equip.getEquipmentIndexName()){
if (!stationBasic.getStationType().equals("FDZ")){
float value = equip.getValueDouble();
float v = CommonConstans.pvGenPoweActor.floatValue();
equip.setValueDouble(value * v);
}
String value = String.format("%.4f", equip.getValueDouble());
switch(equip.getEquipmentIndexName()){
case "日发电量":
map.put("dayNum",equip.getValueDouble());
map.put("dayNum",value);
break;
case "月发电量":
map.put("monthNum",equip.getValueDouble());
map.put("monthNum",value);
break;
case "年发电量":
map.put("yearNum",equip.getValueDouble());
map.put("yearNum",value);
break;
}
}
esEquipmentsMap.add(map);
}
//构建平台数据
DataGridMock DataGridMock = new DataGridMock(current, esEquipmentsMap.size(), false, current, esEquipmentsMap);
ColModel colModelEquipmentNumber = new ColModel("name", "name", "设备名称", "设备名称", "dataGrid", "name");
ColModel colModelPower = new ColModel("dayNum", "dayNum", "日发电量", "日发电量", "dataGrid", "dayNum");
ColModel colModelWindSpeed = new ColModel("monthNum", "monthNum", "月发电量", "月发电量", "dataGrid", "monthNum");
ColModel colModelWind = new ColModel("yearNum", "yearNum", "年发电量", "年发电量", "dataGrid", "yearNum");
List<ColModel> listColModel = Arrays.asList(colModelEquipmentNumber, colModelPower, colModelWindSpeed, colModelWind);
ResultsData resultsData = new ResultsData(DataGridMock, listColModel);
return ResponseHelper.buildResponse(resultsData);
IPage<Map<String,Object>> page = new Page<>();
page.setTotal(esEquipmentsMap.size());
page.setSize(999);
page.setCurrent(1);
page.setRecords(esEquipmentsMap);
return page;
// //构建平台数据
// DataGridMock DataGridMock = new DataGridMock(current, esEquipmentsMap.size(), false, current, esEquipmentsMap);
// ColModel colModelEquipmentNumber = new ColModel("name", "name", "设备名称", "设备名称", "dataGrid", "name");
// ColModel colModelPower = new ColModel("dayNum", "dayNum", "日发电量", "日发电量", "dataGrid", "dayNum");
// ColModel colModelWindSpeed = new ColModel("monthNum", "monthNum", "月发电量", "月发电量", "dataGrid", "monthNum");
// ColModel colModelWind = new ColModel("yearNum", "yearNum", "年发电量", "年发电量", "dataGrid", "yearNum");
// List<ColModel> listColModel = Arrays.asList(colModelEquipmentNumber, colModelPower, colModelWindSpeed, colModelWind);
// ResultsData resultsData = new ResultsData(DataGridMock, listColModel);
// return ResponseHelper.buildResponse(resultsData);
}
......@@ -1117,7 +1137,7 @@ public class MonitorFanIdxController extends BaseController {
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@Scheduled(cron = "0 0/10 * * * ? ")
@Scheduled(cron = "0/30 * * * * ? ")
@ApiOperation(value = "接入情况 ")
@GetMapping("/accessSituation")
public ResponseModel<Map<String,Object>> accessSituation(){
......@@ -1141,7 +1161,7 @@ public class MonitorFanIdxController extends BaseController {
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@Scheduled(cron = "0 0/10 * * * ? ")
@Scheduled(cron = "0/30 * * * * ? ")
@ApiOperation(value = "区域接入情况 ")
@GetMapping("/qyAccessSituation")
public ResponseModel<Map<String,Object>> qyAccessSituation(){
......@@ -1169,4 +1189,46 @@ public class MonitorFanIdxController extends BaseController {
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "健康运行百分比 ")
@GetMapping("/getFanStatusByZC")
public ResponseModel<Map<String,Object>> getFanStatusByZC(@RequestParam(value = "stationId", required = false) String stationId
) {
List<IndexDto> fanStatusList = monitorFanIndicator.getFanStatusStatistics(stationId);
int healthNum = 0;
int sum = 0;
for (IndexDto indexDto : fanStatusList) {
if (indexDto.getEquipmentIndexName().equals("正常运行")){
healthNum = Integer.parseInt(indexDto.getCountString());
}
sum += Integer.parseInt(indexDto.getCountString());
}
Map<String, Object> hashMap = new HashMap<>() ;
hashMap.put("title",healthNum+"/"+sum);
double percent = (double) healthNum / sum * 100;
int value = (int) percent;
String[] values = new String[]{String.valueOf(value)};
hashMap.put("seriesData",values);
return ResponseHelper.buildResponse(hashMap);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "单个风机状态")
@GetMapping("/getFanStatusByEquipNum")
public ResponseModel<Map<String,Object>> getFanStatusList(@RequestParam(value = "stationId", required = false) String stationId,
@RequestParam(value="equip")String equipNum) {
List<IndexDto> fanStatusList = monitorFanIndicator.getFanStatusList(stationId);
Map<String, Object> hashMap = new HashMap<>() ;
String status = "";
for (IndexDto indexDto : fanStatusList) {
if (indexDto.getEquipmentNumber().equals(equipNum)){
status =indexDto.getState();
}
}
hashMap.put("status",status);
return ResponseHelper.buildResponse(hashMap);
}
}
......@@ -19,6 +19,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.RegionMapper;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper;
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.entity.*;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.AlarmEventMapper;
......@@ -222,9 +223,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
Page<IndexDto> page = new Page<>(current, size);
String sql = "";
if (StringUtils.isNotEmpty(systemType)) {
sql = String.format("SELECT equipmentIndexName, value, frontModule, unit FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and frontModule =~/%s/ and systemType =~/%s/ ", stationBasic.getFanGatewayId(), equipNum, frontModule, systemType);
sql = String.format("SELECT equipmentIndexName, value, frontModule,systemType, unit FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and frontModule =~/%s/ and systemType =~/%s/ ", stationBasic.getFanGatewayId(), equipNum, frontModule, systemType);
} else {
sql = String.format("SELECT equipmentIndexName, value, frontModule, unit FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and frontModule =~/%s/", stationBasic.getFanGatewayId(), equipNum, frontModule);
sql = String.format("SELECT equipmentIndexName, value, frontModule,systemType, unit FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and frontModule =~/%s/", stationBasic.getFanGatewayId(), equipNum, frontModule);
}
List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
influxDBList.stream().forEach(e->{
......@@ -313,41 +314,50 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
public List<IndexDto> getFanStatusList(String stationId) {
// StationBasic stationBasic = getOneByStationNumber(stationId);
// String sql = String.format("SELECT equipmentNumber, equipmentIndexName as state FROM \"indicators_%s\" WHERE equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true'", stationBasic.getFanGatewayId());
// List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
// Map<String, String> collect = influxDBList.stream().collect(Collectors.toMap(IndexDto::getEquipmentNumber, IndexDto::getState, (item1, item2) -> item1));
// String sqlEquipNumList = String.format("SELECT (DISTINCT equipmentNumber) as equipmentNumber FROM \"indicators_%s\"", stationBasic.getFanGatewayId());
// List<IndexDto> equipNumList = influxDButils.getListData(sqlEquipNumList, IndexDto.class);
// List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), null);
// String equipmentSpecificNames = fanConfigPower.stream().map(t -> t.get("equipmentSpecificName")).collect(Collectors.joining("|"));
// String powerSql = String.format("SELECT equipmentNumber, value FROM \"indicators_%s\" WHERE equipmentSpecificName =~/^%s$/ and value = '9.0'", stationBasic.getFanGatewayId(), equipmentSpecificNames);
// List<IndexDto> powerNum = influxDButils.getListData(powerSql, IndexDto.class);
// List<String> powList = powerNum.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
// Date currentDayStartTime = DateUtils.dateAddMinutes(new Date(), -15);
// String time = "";
// try {
// time = DateUtils.dateFormat(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
// } catch (ParseException e) {
// e.printStackTrace();
// }
//
// String timeSql = String.format("select distinct equipmentNumber from \"indicators_%s\" where time >= '%s'", stationBasic.getFanGatewayId(), time);
// List<IndexDto> timeSqlList = influxDButils.getListData(timeSql, IndexDto.class);
// List<String> timeList = timeSqlList.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
// equipNumList.forEach(item -> {
// item.setState(collect.get(item.getEquipmentNumber()));
// if (!collect.containsKey(item.getEquipmentNumber())) {
// item.setState("正常运行");
// } else if (powList.contains(item.getEquipmentNumber())) {
// item.setState("限功率");
// } else if (!timeList.contains(item.getEquipmentNumber())) {
// item.setState("通讯中断");
// }
// });
StationBasic stationBasic = getOneByStationNumber(stationId);
String sql = String.format("SELECT equipmentNumber, equipmentIndexName as state FROM \"indicators_%s\" WHERE equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true'", stationBasic.getFanGatewayId());
String sql = String.format("SELECT equipmentNumber, equipmentIndexName as state FROM \"indicators_%s\" WHERE (equipmentIndexName =~/^发电状态|报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true') or (equipmentIndexName ='实时故障22' and value='9')", stationBasic.getFanGatewayId());
List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
Map<String, String> collect = influxDBList.stream().collect(Collectors.toMap(IndexDto::getEquipmentNumber, IndexDto::getState, (item1, item2) -> item1));
String sqlEquipNumList = String.format("SELECT (DISTINCT equipmentNumber) as equipmentNumber FROM \"indicators_%s\"", stationBasic.getFanGatewayId());
List<IndexDto> equipNumList = influxDButils.getListData(sqlEquipNumList, IndexDto.class);
List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), null);
String equipmentSpecificNames = fanConfigPower.stream().map(t -> t.get("equipmentSpecificName")).collect(Collectors.joining("|"));
String powerSql = String.format("SELECT equipmentNumber, value FROM \"indicators_%s\" WHERE equipmentSpecificName =~/^%s$/ and value = '9.0'", stationBasic.getFanGatewayId(), equipmentSpecificNames);
List<IndexDto> powerNum = influxDButils.getListData(powerSql, IndexDto.class);
List<String> powList = powerNum.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
Date currentDayStartTime = DateUtils.dateAddMinutes(new Date(), -15);
String time = "";
try {
time = DateUtils.dateFormat(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
String timeSql = String.format("select distinct equipmentNumber from \"indicators_%s\" where time >= '%s'", stationBasic.getFanGatewayId(), time);
List<IndexDto> timeSqlList = influxDButils.getListData(timeSql, IndexDto.class);
List<String> timeList = timeSqlList.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
Map<String, String> collect = influxDBList.stream().collect(Collectors.toMap(IndexDto::getEquipmentNumber, IndexDto::getState, (item1, item2) -> item1));
equipNumList.forEach(item -> {
item.setState(collect.get(item.getEquipmentNumber()));
if (!collect.containsKey(item.getEquipmentNumber())) {
item.setState("正常运行");
} else if (powList.contains(item.getEquipmentNumber())) {
item.setState("限功率");
} else if (!timeList.contains(item.getEquipmentNumber())) {
item.setState("通讯中断");
}
String status = ObjectUtils.isEmpty(CommonConstans.fanStatus.get(collect.get(item.getEquipmentNumber()))) ? "通讯中断" : CommonConstans.fanStatus.get(collect.get(item.getEquipmentNumber()));
item.setState(status);
});
return equipNumList;
}
public List<IndexDto> getFanStatusListOptimize(String stationId) {
StationBasic stationBasic = getOneByStationNumber(stationId);
......@@ -394,45 +404,46 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
return equipNumList;
}
public List<IndexDto> getFanStatusStatistics(String stationId) {
StationBasic stationBasic = getOneByStationNumber(stationId);
String sql = String.format("SELECT equipmentNumber, equipmentIndexName as state FROM \"indicators_%s\" WHERE equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true'", stationBasic.getFanGatewayId());
List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
Map<String, String> collect = influxDBList.stream().collect(Collectors.toMap(IndexDto::getEquipmentNumber, IndexDto::getState, (item1, item2) -> item1));
String sqlEquipNumList = String.format("SELECT (DISTINCT equipmentNumber) as equipmentNumber FROM \"indicators_%s\"", stationBasic.getFanGatewayId());
List<IndexDto> equipNumList = influxDButils.getListData(sqlEquipNumList, IndexDto.class);
List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), null);
String equipmentSpecificNames = fanConfigPower.stream().map(t -> t.get("equipmentSpecificName")).collect(Collectors.joining("|"));
String powerSql = String.format("SELECT equipmentNumber, value FROM \"indicators_%s\" WHERE equipmentSpecificName =~/^%s$/ and value = '9.0'", stationBasic.getFanGatewayId(), equipmentSpecificNames);
List<IndexDto> powerNum = influxDButils.getListData(powerSql, IndexDto.class);
List<String> powList = powerNum.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
Date currentDayStartTime = DateUtils.dateAddMinutes(new Date(), -15);
String time = "";
try {
time = DateUtils.dateFormat(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
String timeSql = String.format("select distinct equipmentNumber from \"indicators_%s\" where time >= '%s'", stationBasic.getFanGatewayId(), time);
List<IndexDto> timeSqlList = influxDButils.getListData(timeSql, IndexDto.class);
List<String> timeList = timeSqlList.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
equipNumList.forEach(item -> {
item.setState(collect.get(item.getEquipmentNumber()));
if (!collect.containsKey(item.getEquipmentNumber())) {
item.setState("正常运行");
} else if (powList.contains(item.getEquipmentNumber())) {
item.setState("限功率");
} else if (!timeList.contains(item.getEquipmentNumber())) {
item.setState("通讯中断");
}
});
// StationBasic stationBasic = getOneByStationNumber(stationId);
// String sql = String.format("SELECT equipmentNumber, equipmentIndexName as state FROM \"indicators_%s\" WHERE equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true'", stationBasic.getFanGatewayId());
// List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
// Map<String, String> collect = influxDBList.stream().collect(Collectors.toMap(IndexDto::getEquipmentNumber, IndexDto::getState, (item1, item2) -> item1));
// String sqlEquipNumList = String.format("SELECT (DISTINCT equipmentNumber) as equipmentNumber FROM \"indicators_%s\"", stationBasic.getFanGatewayId());
// List<IndexDto> equipNumList = influxDButils.getListData(sqlEquipNumList, IndexDto.class);
// List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), null);
// String equipmentSpecificNames = fanConfigPower.stream().map(t -> t.get("equipmentSpecificName")).collect(Collectors.joining("|"));
// String powerSql = String.format("SELECT equipmentNumber, value FROM \"indicators_%s\" WHERE equipmentSpecificName =~/^%s$/ and value = '9.0'", stationBasic.getFanGatewayId(), equipmentSpecificNames);
// List<IndexDto> powerNum = influxDButils.getListData(powerSql, IndexDto.class);
// List<String> powList = powerNum.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
// Date currentDayStartTime = DateUtils.dateAddMinutes(new Date(), -15);
// String time = "";
// try {
// time = DateUtils.dateFormat(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
// } catch (ParseException e) {
// e.printStackTrace();
// }
// String timeSql = String.format("select distinct equipmentNumber from \"indicators_%s\" where time >= '%s'", stationBasic.getFanGatewayId(), time);
// List<IndexDto> timeSqlList = influxDButils.getListData(timeSql, IndexDto.class);
// List<String> timeList = timeSqlList.stream().map(IndexDto::getEquipmentNumber).collect(Collectors.toList());
// equipNumList.forEach(item -> {
// item.setState(collect.get(item.getEquipmentNumber()));
// if (!collect.containsKey(item.getEquipmentNumber())) {
// item.setState("正常运行");
// } else if (powList.contains(item.getEquipmentNumber())) {
// item.setState("限功率");
// } else if (!timeList.contains(item.getEquipmentNumber())) {
// item.setState("通讯中断");
// }
// });
List<IndexDto> equipNumList = getFanStatusList(stationId);
Map<String, Long> countMap = equipNumList.stream().collect(Collectors.groupingBy(IndexDto::getState, Collectors.counting()));
List<IndexDto> resultList = new ArrayList<>();
List<String> list = Arrays.asList("正常运行", "告警运行", "正常停机", "故障停机", "限功率", "待机状态", "维护状态", "通讯中断");
List<String> list = Arrays.asList("正常运行", "报警运行", "停机状态", "故障状态", "限功率", "待机状态", "维护状态", "通讯中断");
HashMap<String, String> colorMap = new HashMap<>();
colorMap.put("正常运行", "#00aa00");
colorMap.put("警运行", "#ffc400");
colorMap.put("正常停机", "#0055ff");
colorMap.put("故障停机", "#00aaff");
colorMap.put("警运行", "#ffc400");
colorMap.put("停机状态", "#0055ff");
colorMap.put("故障状态", "#00aaff");
colorMap.put("限功率", "#a3f5aa");
colorMap.put("待机状态", "#ff0000");
colorMap.put("维护状态", "#ff00ff");
......
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