Commit 3a78f66e authored by chenzhao's avatar chenzhao

修改代码

parent a6c34b91
...@@ -255,9 +255,9 @@ public class MonitorFanIdxController extends BaseController { ...@@ -255,9 +255,9 @@ public class MonitorFanIdxController extends BaseController {
List<Map> list = parseArray(json, Map.class); List<Map> list = parseArray(json, Map.class);
for (Map map : list) { for (Map map : list) {
String key = map.get("title").toString(); String key = map.get("title").toString();
if (map.containsKey("action")){
map.put("title", columnMap.get(key)==null?0.00:columnMap.get(key)); map.put("title", columnMap.get(key)==null?0.00:columnMap.get(key));
map.put("title2",map.get("title")); map.put("title2",map.get("title"));
if (map.containsKey("action")){
if (key.equals("日利用小时")){ if (key.equals("日利用小时")){
String format = String.format("%.2f", ((Double.parseDouble(columnMap.get("日发电量").toString())*10)/ (Double.parseDouble(columnMap.get("装机容量").toString())))); String format = String.format("%.2f", ((Double.parseDouble(columnMap.get("日发电量").toString())*10)/ (Double.parseDouble(columnMap.get("装机容量").toString()))));
map.put("title", format); map.put("title", format);
......
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
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.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -19,6 +21,7 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic; ...@@ -19,6 +21,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.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.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.boot.module.jxiop.biz.entity.*; import com.yeejoin.amos.boot.module.jxiop.biz.entity.*;
...@@ -108,6 +111,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -108,6 +111,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
@Autowired @Autowired
CommonServiceImpl commonServiceImpl; CommonServiceImpl commonServiceImpl;
@Value("classpath:/json/fanlocation.json")
private Resource fanlocation;
@Value("${pictureUrl}") @Value("${pictureUrl}")
String pictureUrl; String pictureUrl;
...@@ -357,8 +362,28 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -357,8 +362,28 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
item.setState(status); item.setState(status);
}); });
return equipNumList; return equipNumList;
}
public List<ESEquipments> getFanStatusListEs(String stationId) {
StationBasic stationBasic = getOneByStationNumber(stationId);
Map<String, List<String>> queryCondtion = new HashMap<>();
queryCondtion.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("发电状态", "报警状态", "停机状态", "故障状态", "待机状态", "维护状态", "正常发电状态", "实时故障22"));
queryCondtion.put(CommonConstans.QueryStringGateWayId, Arrays.asList(stationBasic.getFanGatewayId()));
List<ESEquipments> result = commonServiceImpl.getListDataByCondtions(queryCondtion, null, ESEquipments.class);
Map<String, List<String>> queryCondtion1 = new HashMap<>();
queryCondtion1.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("报警状态"));
queryCondtion1.put(CommonConstans.QueryStringGateWayId, Arrays.asList(stationBasic.getFanGatewayId()));
List<ESEquipments> equipNumList = commonServiceImpl.getListDataByCondtions(queryCondtion1, null, ESEquipments.class);
Map<String, String> collect = result.stream().collect(Collectors.toMap(ESEquipments::getEquipmentNumber, ESEquipments::getEquipmentIndexName, (item1, item2) -> item1));
equipNumList.forEach(item -> {
String status = ObjectUtils.isEmpty(CommonConstans.fanStatus.get(collect.get(item.getEquipmentNumber()))) ? "通讯中断" : CommonConstans.fanStatus.get(collect.get(item.getEquipmentNumber()));
item.setAddress(status);
});
return equipNumList;
} }
public List<IndexDto> getFanStatusListOptimize(String stationId) { public List<IndexDto> getFanStatusListOptimize(String stationId) {
StationBasic stationBasic = getOneByStationNumber(stationId); StationBasic stationBasic = getOneByStationNumber(stationId);
String sqlAll = String.format("SELECT * FROM \"indicators_%s\"",stationBasic.getFanGatewayId()); String sqlAll = String.format("SELECT * FROM \"indicators_%s\"",stationBasic.getFanGatewayId());
...@@ -459,17 +484,65 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -459,17 +484,65 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
public IndexDto getFanBasicInfoByEquipNum(String equipNum, String stationId) { public IndexDto getFanBasicInfoByEquipNum(String equipNum, String stationId) {
// IndexDto indexDto = new IndexDto();
// StationBasic stationBasic = getOneByStationNumber(stationId);
// String sql = String.format("SELECT equipmentNumber, equipmentSpecificName, equipmentIndexName FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true' order by time desc limit 1", stationBasic.getFanGatewayId(), equipNum);
// List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class);
// if (CollectionUtils.isNotEmpty(influxDBList)) {
// String equipmentSpecificName = influxDBList.get(0).getEquipmentSpecificName();
// influxDBList.get(0).setEquipmentSpecificName(equipmentSpecificName.substring(0, equipmentSpecificName.indexOf("#")));
// String s = StringUtils.substringAfterLast(equipmentSpecificName, "#");
// influxDBList.get(0).setFanName(s);
// indexDto = influxDBList.get(0);
// } else {
// List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), equipNum);
// if (CollectionUtils.isEmpty(fanConfigPower)) {
// throw new BadRequest("fan_config_power表数据未维护该风机");
// }
// String equipmentSpecificName = fanConfigPower.get(0).get("equipmentSpecificName");
// String substring = equipmentSpecificName.substring(0, equipmentSpecificName.indexOf("#"));
// indexDto.setEquipmentSpecificName(substring);
// indexDto.setFanName(StringUtils.substringAfterLast(equipmentSpecificName, "#"));
// indexDto.setEquipmentIndexName("正常运行");
// 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());
//
// if (CollectionUtils.isNotEmpty(powList)) {
// indexDto.setEquipmentIndexName("限功率");
// } else if (!timeList.contains(equipNum)) {
// indexDto.setEquipmentIndexName("通讯中断");
// }
// }
// indexDto.setEquipmentNumber(equipNum);
// return indexDto;
String json = null;
try {
json = IOUtils.toString(fanlocation.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
JSONArray jsonArray = JSONObject.parseArray(json);
JSONObject jsonObject = (JSONObject) jsonArray.get(Integer.valueOf(equipNum) - 1);
IndexDto indexDto = new IndexDto(); IndexDto indexDto = new IndexDto();
indexDto.setLongitude(String.valueOf(jsonObject.get("longitude")));
indexDto.setLatitude(String.valueOf(jsonObject.get("latitude")));
StationBasic stationBasic = getOneByStationNumber(stationId); StationBasic stationBasic = getOneByStationNumber(stationId);
String sql = String.format("SELECT equipmentNumber, equipmentSpecificName, equipmentIndexName FROM \"indicators_%s\" WHERE equipmentNumber = '%s' and equipmentIndexName =~/^报警状态|停机状态|故障状态|待机状态|维护状态|正常发电状态$/ and value = 'true' order by time desc limit 1", stationBasic.getFanGatewayId(), equipNum); List<ESEquipments> fanStatusList = getFanStatusListEs(stationId);
List<IndexDto> influxDBList = influxDButils.getListData(sql, IndexDto.class); String fanStatus = fanStatusList.stream().filter(esEquipments -> esEquipments.getEquipmentNumber().equals(equipNum)).collect(Collectors.toList()).get(0).getAddress();
if (CollectionUtils.isNotEmpty(influxDBList)) { indexDto.setEquipmentIndexName(fanStatus);
String equipmentSpecificName = influxDBList.get(0).getEquipmentSpecificName();
influxDBList.get(0).setEquipmentSpecificName(equipmentSpecificName.substring(0, equipmentSpecificName.indexOf("#")));
String s = StringUtils.substringAfterLast(equipmentSpecificName, "#");
influxDBList.get(0).setFanName(s);
indexDto = influxDBList.get(0);
} else {
List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), equipNum); List<Map<String, String>> fanConfigPower = monitorFanIndicatorregionMapper.getFanConfigPower(stationBasic.getFanGatewayId(), equipNum);
if (CollectionUtils.isEmpty(fanConfigPower)) { if (CollectionUtils.isEmpty(fanConfigPower)) {
throw new BadRequest("fan_config_power表数据未维护该风机"); throw new BadRequest("fan_config_power表数据未维护该风机");
...@@ -477,30 +550,6 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -477,30 +550,6 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
String equipmentSpecificName = fanConfigPower.get(0).get("equipmentSpecificName"); String equipmentSpecificName = fanConfigPower.get(0).get("equipmentSpecificName");
String substring = equipmentSpecificName.substring(0, equipmentSpecificName.indexOf("#")); String substring = equipmentSpecificName.substring(0, equipmentSpecificName.indexOf("#"));
indexDto.setEquipmentSpecificName(substring); indexDto.setEquipmentSpecificName(substring);
indexDto.setFanName(StringUtils.substringAfterLast(equipmentSpecificName, "#"));
indexDto.setEquipmentIndexName("正常运行");
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());
if (CollectionUtils.isNotEmpty(powList)) {
indexDto.setEquipmentIndexName("限功率");
} else if (!timeList.contains(equipNum)) {
indexDto.setEquipmentIndexName("通讯中断");
}
}
indexDto.setEquipmentNumber(equipNum); indexDto.setEquipmentNumber(equipNum);
return indexDto; return indexDto;
} }
......
[
{
"euqipmentNumber": "01",
"latitude": "26°19'20.3968",
"longitude": "114°43'01.3487"
},
{
"euqipmentNumber": "02",
"latitude": "26°18'17.3192",
"longitude": "114°43'55.0756"
},
{
"euqipmentNumber": "03",
"latitude": "26°18'34.3219",
"longitude": "114°44'01.4686"
},
{
"euqipmentNumber": "04",
"latitude": "26°18'42.2673",
"longitude": "114°44'10.7522"
},
{
"euqipmentNumber": "05",
"latitude": "26°18'38.0098",
"longitude": "114°44'21.7018"
},
{
"euqipmentNumber": "06",
"latitude": "26°18'34.6466",
"longitude": "114°44'29.9556"
},
{
"euqipmentNumber": "07",
"latitude": "26°18'36.8995",
"longitude": "114°44'39.7470"
},
{
"euqipmentNumber": "08",
"latitude": "26°18'33.5051",
"longitude": "114°44'50.8102"
},
{
"euqipmentNumber": "09",
"longitude": "114°42'38.4597",
"latitude": "26°16'45.3175"
},
{
"euqipmentNumber": "10",
"longitude": "114°42'46.7892",
"latitude": "26°16'34.2193"
},
{
"euqipmentNumber": "11",
"longitude": "114°42'57.3524",
"latitude": "26°16'18.2295"
},
{
"euqipmentNumber": "12",
"longitude": "114°43'44.6453",
"latitude": "26°16'22.9530"
},
{
"euqipmentNumber": "13",
"latitude": "26°16'25.2473",
"longitude": "114°43'55.4240"
},
{
"euqipmentNumber": "14",
"latitude": "26°15'23.8288",
"longitude": "114°42'46.1713"
},
{
"euqipmentNumber": "15",
"latitude": "26°15'18.3501",
"longitude": "114°42'36.4494"
},
{
"euqipmentNumber": "16",
"latitude": "26°15'15.1157",
"longitude": "114°42'24.2207"
},
{
"euqipmentNumber": "17",
"latitude": "26°15'12.3541",
"longitude": "114°42'16.2315"
},
{
"euqipmentNumber": "18",
"latitude": "26°15'07.7590",
"longitude": "114°42'09.1002"
},
{
"euqipmentNumber": "19",
"latitude": "26°15'06.4482",
"longitude": "114°41'59.3730"
},
{
"euqipmentNumber": "20",
"latitude": "26°15'05.7242",
"longitude": "114°41'51.2436"
},
{
"euqipmentNumber": "21",
"latitude": "26°14'54.2353",
"longitude": "114°41'45.1572"
},
{
"euqipmentNumber": "22",
"latitude": "26°14'53.7742",
"longitude": "114°41'35.6931"
},
{
"euqipmentNumber": "23",
"latitude": "26°14'49.6670",
"longitude": "114°41'28.9852"
},
{
"euqipmentNumber": "24",
"latitude": "26°14'52.6637",
"longitude": "114°41'19.3269"
},
{
"euqipmentNumber": "25",
"latitude": "26°14'43.4608",
"longitude": "114°41'12.0974"
},
{
"euqipmentNumber": "26",
"latitude": "26°14'40.3649",
"longitude": "114°41'03.8101"
},
{
"euqipmentNumber": "27",
"latitude": "26°15'33.5730",
"longitude": "114°40'33.7931"
},
{
"euqipmentNumber": "28",
"latitude": "26°15'24.1330",
"longitude": "114°40'51.2196"
},
{
"euqipmentNumber": "29",
"latitude": "26°15'29.4603",
"longitude": "114°40'45.3326"
}
]
\ No newline at end of file
...@@ -635,7 +635,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -635,7 +635,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
temporaryData.setCreatedTime(time.split(" ")[1]); temporaryData.setCreatedTime(time.split(" ")[1]);
temporaryData.setEquipmentIndexName(indicatorsDto.getEquipmentIndexName()); temporaryData.setEquipmentIndexName(indicatorsDto.getEquipmentIndexName());
temporaryData.setGatewayId(indicatorsDto.getGatewayId()); temporaryData.setGatewayId(indicatorsDto.getGatewayId());
temporaryData.setValue(Float.valueOf(indicatorsDto.getValue())); temporaryData.setValue(indicatorsDto.getValueDouble());
temporaryData.setEquipmentNumber(indicatorsDto.getEquipmentNumber()); temporaryData.setEquipmentNumber(indicatorsDto.getEquipmentNumber());
temporaryDatas.add(temporaryData); temporaryDatas.add(temporaryData);
} catch (Exception e) { } catch (Exception e) {
...@@ -649,7 +649,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -649,7 +649,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
temporaryData.setCreatedTime(time.split(" ")[1]); temporaryData.setCreatedTime(time.split(" ")[1]);
temporaryData.setEquipmentIndexName(indicatorsDto.getEquipmentIndexName()); temporaryData.setEquipmentIndexName(indicatorsDto.getEquipmentIndexName());
temporaryData.setGatewayId(indicatorsDto.getGatewayId()); temporaryData.setGatewayId(indicatorsDto.getGatewayId());
temporaryData.setValue(Float.valueOf(indicatorsDto.getValue())); temporaryData.setValue(indicatorsDto.getValueDouble());
temporaryData.setEquipmentNumber(indicatorsDto.getEquipmentNumber()); temporaryData.setEquipmentNumber(indicatorsDto.getEquipmentNumber());
temporaryDatass.add(temporaryData); temporaryDatass.add(temporaryData);
} catch (Exception e) { } catch (Exception e) {
......
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