Commit 246e60da authored by wujiang's avatar wujiang

提交代码

parent 9ae08238
......@@ -126,7 +126,7 @@ public class CommonConstans {
public static final String taiheActivePowerPoint = "南瑞光差保护_313P";
public static final String taiheIrradiationPonit = "WTX-801_25_WTX-801_总辐射";
public static final String xiazaoActivePowerPoint = "220kV夏雩线212线路测控装置PCS-9705TA有功功率一次值";
public static final String xiazaoActivePowerPoint = "#1主变高压侧测控装置PCS-9705TA有功功率一次值";
public static final String xiazaoWindSpeedrPoint = "瞬时风速";
public static final List<String> xiazaoElectricityMeter = new ArrayList<>(Arrays.asList("夏雩线212主表", "夏雩线212副表", "1号主变高压侧201", "1号主变低压侧301",
......
......@@ -30,6 +30,7 @@ import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -236,13 +237,13 @@ public class MonitorFanIdxController extends BaseController {
queryCondtion.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId));
List<ESEquipments> result2 = commonServiceImpl.getListDataByCondtions(queryCondtion, null, ESEquipments.class);
columnMap.put("日发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "日发电量")));
columnMap.put("月发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "月发电量")));
columnMap.put("年发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "年发电量")));
columnMap.put("日发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "日发电量")/10000));
columnMap.put("月发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "月发电量")/10000));
columnMap.put("年发电量", String.format(CommonConstans.Fourdecimalplaces, commonServiceImpl.getSumByEquipmentIndxName(result2, "年发电量")/10000));
columnMap.put("30秒平均风速", String.format(CommonConstans.Twodecimalplaces, commonServiceImpl.getAvagerByEquipmentIndxName(result2, "30秒平均风速")));
Map<String, List<String>> queryCondtion1 = new HashMap<>();
queryCondtion1.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("220kV夏雩线212线路测控装置PCS-9705TA有功功率一次值"));
queryCondtion1.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("#1主变高压侧测控装置PCS-9705TA有功功率一次值"));
queryCondtion1.put(CommonConstans.QueryStringGateWayId, Arrays.asList(stationBasic.getBoosterGatewayId()));
List<ESEquipments> result1 = commonService.getListDataByCondtions(queryCondtion1, null, ESEquipments.class);
......@@ -650,15 +651,30 @@ public class MonitorFanIdxController extends BaseController {
StationBasic stationBasic = stationBasicMapper.selectById(stationId);
String gatewayId = stationBasic.getFanGatewayId();
String boosterGatewayId = stationBasic.getBoosterGatewayId();
String[] columnList = new String[]{CommonConstans.taiHeGenIndicatorDay, CommonConstans.taiHeGenIndicatorMonth, CommonConstans.taiHeGenIndicatorYear};
String[] columnList = new String[]{"日发电量","年发电量","月发电量"};
String[] columnLists = new String[]{"有功功率"};
Map<String, Object> columnMap = new HashMap<>();
//日 月 年发电量同仅统计逆变器数据
List<Map<String, Object>> mapList;
// for (String column : columnList) {
// Double result = commonService.getTotalByIndicatiorByGF(boosterGatewayId, column);
// columnMap.put(column, result);
// }
for (String column : columnList) {
Double result = commonService.getTotalByIndicatiorByGF(boosterGatewayId, column);
columnMap.put(column, result);
//用于组装-es查询条件
Map<String, List<String>> queryCondtion = new HashMap<>();
queryCondtion.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList(column));
queryCondtion.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId));
List<ESEquipments> result = commonService.getListDataByCondtions(queryCondtion, null, ESEquipments.class);
Double totalvalue = 0.00;
try {
result=result.stream().filter(i->i.getEquipmentSpecificName().endsWith("子阵")).collect(Collectors.toList());
totalvalue = result.stream()
.filter(stringObjectMap -> !ObjectUtils.isEmpty(stringObjectMap.getValueF())).mapToDouble(l -> Double.parseDouble(l.getValueF().toString())).sum();
} catch (Exception e) {
}
columnMap.put(column, Double.valueOf(String.format("%.4f", totalvalue/10000)));
}
Map<String, List<String>> queryCondtion = new HashMap<>();
......@@ -676,25 +692,25 @@ public class MonitorFanIdxController extends BaseController {
data.put("title", columnMap.get("装机容量").toString());
objects.add(data);
Map<String, Object> data1 = new HashMap<>();
data1.put("title", columnMap.get(CommonConstans.taiHeGenIndicatorDay).toString());
data1.put("title", columnMap.get("日发电量").toString());
objects.add(data1);
Map<String, Object> data2 = new HashMap<>();
data2.put("title", columnMap.get("风机台数").toString().replace(".0", ""));
objects.add(data2);
Map<String, Object> data3 = new HashMap<>();
data3.put("title", columnMap.get(CommonConstans.taiHeGenIndicatorMonth).toString());
data3.put("title", columnMap.get("月发电量").toString());
objects.add(data3);
Map<String, Object> data4 = new HashMap<>();
data4.put("title", String.format("%.2f", commonService.getSumByEquipmentIndxName(result1, "WTX-801_25_WTX-801_总辐射")));
objects.add(data4);
Map<String, Object> data5 = new HashMap<>();
data5.put("title", columnMap.get(CommonConstans.taiHeGenIndicatorYear).toString());
data5.put("title", columnMap.get("年发电量").toString());
objects.add(data5);
Map<String, Object> data6 = new HashMap<>();
data6.put("title", columnMap.get("有功功率").toString());
objects.add(data6);
Map<String, Object> data7 = new HashMap<>();
data7.put("title", String.format("%.2f", ((Double.parseDouble(columnMap.get(CommonConstans.taiHeGenIndicatorDay).toString()) * CommonConstans.wkwhToMv) / (Double.parseDouble(columnMap.get("装机容量").toString())))));
data7.put("title", String.format("%.2f", ((Double.parseDouble(columnMap.get("日发电量").toString()) * CommonConstans.wkwhToMv) / (Double.parseDouble(columnMap.get("装机容量").toString())))));
objects.add(data7);
Map<String, Object> data8 = new HashMap<>();
data8.put("title", String.format("%.2f", commonService.getSumByEquipmentIndxName(result1, "WTX-801_25_WTX-801_总辐射累计")));
......@@ -703,7 +719,7 @@ public class MonitorFanIdxController extends BaseController {
//综合效率 = 发电量/理论发电量
//理论发电量 = 峰值日照数 * 总装机容量
//峰值日照数 = 累计辐照度/3.6
Double todayPower = Double.valueOf(columnMap.get(CommonConstans.taiHeGenIndicatorDay).toString());
Double todayPower = Double.valueOf(columnMap.get("日发电量").toString());
Double total = commonService.getSumByEquipmentIndxName(result1, "WTX-801_25_WTX-801_总辐射累计");
if (todayPower > 0 && total > 0) {
Double overallEfficiency = todayPower * CommonConstans.wkwhToMv / ((total / 3.6) * capacityl);
......
......@@ -59,7 +59,7 @@ public class JXDZExecute {
@Scheduled(cron = "0 0 */1 * * ?")
@PostConstruct
//@PostConstruct
public void hourInterface() {
if (!jxdzScheduledEnable) {
return;
......@@ -150,7 +150,7 @@ public class JXDZExecute {
}
@Scheduled(cron = "0 0 1 * * ?")
@PostConstruct
//@PostConstruct
public void dayInterface() {
if (!jxdzScheduledEnable) {
return;
......
......@@ -5,6 +5,7 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.text.Collator;
import java.text.ParseException;
import java.time.LocalTime;
import java.util.*;
import java.util.Map.Entry;
import java.util.function.Function;
......@@ -260,7 +261,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
result.stream().forEach(e -> {
if (powerOther.contains(e.getEquipmentIndexName()) || e.getEquipmentIndexName().equals("日发电量")) {
e.setValue(String.format(CommonConstans.Fourdecimalplaces, e.getValueF()));
e.setValue(String.format(CommonConstans.Fourdecimalplaces, e.getValueF()/10000));
} else {
e.setValue(String.format(CommonConstans.Twodecimalplaces, e.getValueF()));
}
......@@ -654,18 +655,41 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
List<IndicatorData> activePowerList = new ArrayList<>();
List<IndicatorData> otherList = new ArrayList<>();
Double installedCapacity = commonServiceImpl.getStationCapactityByStationWerks(stationBasic.getStationNumber());
String startTime = "2024-12-22 16:00:00";
// 获取当前时间(不含日期)
LocalTime now = LocalTime.now();
// 提取时、分、秒
int hour = now.getHour()-8; // 0-23
String hours = String.valueOf(hour);
if(hour<10)
{
hours="0"+hours;
}
int minute = now.getMinute(); // 0-59
String minutes = String.valueOf(minute);
if(minute<10)
{
minutes="0"+minutes;
}
int second = now.getSecond(); // 0-59
String seconds = String.valueOf(second);
if(second<10)
{
seconds="0"+seconds;
}
String endTime = "2024-12-23 "+hours+":"+minutes+":"+seconds;
if ("FDZ".equals(stationBasic.getStationType())) {
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(
CommonConstans.xiazaoActivePowerPoint, stationBasic.getBoosterGatewayId());
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.xiazaoWindSpeedrPoint,
stationBasic.getFanGatewayId());
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeM(
CommonConstans.xiazaoActivePowerPoint, stationBasic.getBoosterGatewayId(),startTime,endTime);
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeM(CommonConstans.xiazaoWindSpeedrPoint,
stationBasic.getFanGatewayId(),startTime,endTime);
groupMap = otherList.stream().collect(Collectors.groupingBy(IndicatorData::getCreatedTime,
Collectors.averagingDouble(IndicatorData::getValueF)));
} else {
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(
CommonConstans.taiheActivePowerPoint, stationBasic.getBoosterGatewayId());
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.taiheIrradiationPonit,
stationBasic.getBoosterGatewayId());
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeM(
CommonConstans.taiheActivePowerPoint, stationBasic.getBoosterGatewayId(),startTime,endTime);
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeM(CommonConstans.taiheIrradiationPonit,
stationBasic.getBoosterGatewayId(),startTime,endTime);
}
Integer size = activePowerList.size() > otherList.size() ? otherList.size() : activePowerList.size();
for (int i = 0; i < size; i++) {
......@@ -741,16 +765,40 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
List<IndicatorData> indicatorDataListWindSpeed = new ArrayList<>();
List<IndicatorData> indicatorDataListActivePower = new ArrayList<>();
indicatorDataListWindSpeed = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("瞬时风速",
name, gatewayId);
String startTime = "2024-12-22 16:00:00";
// 获取当前时间(不含日期)
LocalTime now = LocalTime.now();
// 提取时、分、秒
int hour = now.getHour()-8; // 0-23
String hours = String.valueOf(hour);
if(hour<10)
{
hours="0"+hours;
}
int minute = now.getMinute(); // 0-59
String minutes = String.valueOf(minute);
if(minute<10)
{
minutes="0"+minutes;
}
int second = now.getSecond(); // 0-59
String seconds = String.valueOf(second);
if(second<10)
{
seconds="0"+seconds;
}
String endTime = "2024-12-23 "+hours+":"+minutes+":"+seconds;
indicatorDataListWindSpeed = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberM("瞬时风速",
name, gatewayId,startTime,endTime);
indicatorDataListActivePower = indicatorDataMapper
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, gatewayId);
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberM("有功功率", name, gatewayId,startTime,endTime);
List<String> windSpeeds = new ArrayList<>();
List<String> activePowers = new ArrayList<>();
List<String> axisData = new ArrayList<>();
Integer size = indicatorDataListWindSpeed.size() > indicatorDataListActivePower.size()
? indicatorDataListActivePower.size()
: indicatorDataListWindSpeed.size();
for (int i = 0; i < size; i++) {
windSpeeds.add(String.format(CommonConstans.Twodecimalplaces,
Double.valueOf(indicatorDataListWindSpeed.get(i).getValue())));
......@@ -772,9 +820,32 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
public Map<String, Object> getDetailsWindSpeeds(String gatewayId, String name) {
String startTime = "2024-12-22 16:00:00";
// 获取当前时间(不含日期)
LocalTime now = LocalTime.now();
// 提取时、分、秒
int hour = now.getHour()-8; // 0-23
String hours = String.valueOf(hour);
if(hour<10)
{
hours="0"+hours;
}
int minute = now.getMinute(); // 0-59
String minutes = String.valueOf(minute);
if(minute<10)
{
minutes="0"+minutes;
}
int second = now.getSecond(); // 0-59
String seconds = String.valueOf(second);
if(second<10)
{
seconds="0"+seconds;
}
String endTime = "2024-12-23 "+hours+":"+minutes+":"+seconds;
List<IndicatorData> indicatorDataListActivePowers = new ArrayList<>();
indicatorDataListActivePowers = indicatorDataMapper
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, gatewayId);
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberM("有功功率", name, gatewayId,startTime,endTime);
List<String> axisData = new ArrayList<>();
List<String> activePowers = new ArrayList<>();
for (int i = 0; i < indicatorDataListActivePowers.size(); i++) {
......@@ -1358,7 +1429,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
stringStringHashMap.put("electricity",
String.format(CommonConstans.Fourdecimalplaces,
ObjectUtils.isEmpty(electricitySqlMap.get(esEquipments.getEquipmentNumber())) ? 0.0000
: Double.valueOf(electricitySqlMap.get(esEquipments.getEquipmentNumber()))));
: Double.valueOf(electricitySqlMap.get(esEquipments.getEquipmentNumber()))/10000));
resultList.add(stringStringHashMap);
}
// 构建平台数据
......@@ -2011,7 +2082,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
SjglZsjZsbtz sjglZsjZsbtz = sjglZsjZsbtzMapper.selectOne(queryWrapper);
resultMap.put("equipmentSpecificName", list.get(0).getEquipmentSpecificName().split("区域/")[1]);
resultMap.put("equipmentIndexName", null == sjglZsjZsbtz.getGgxh() ? "" : sjglZsjZsbtz.getGgxh());
//resultMap.put("equipmentIndexName", null == sjglZsjZsbtz.getGgxh() ? "" : sjglZsjZsbtz.getGgxh());
resultMap.put("equipmentInfoName", list.get(0).getEquipmentSpecificName().substring(5).replace("/", " "));
}
return resultMap;
......@@ -2307,8 +2378,31 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
public Map<String, Object> hlWindSpeeds(String gatewayId, String equipNum) {
String startTime = "2024-12-22 16:00:00";
// 获取当前时间(不含日期)
LocalTime now = LocalTime.now();
// 提取时、分、秒
int hour = now.getHour()-8; // 0-23
String hours = String.valueOf(hour);
if(hour<10)
{
hours="0"+hours;
}
int minute = now.getMinute(); // 0-59
String minutes = String.valueOf(minute);
if(minute<10)
{
minutes="0"+minutes;
}
int second = now.getSecond(); // 0-59
String seconds = String.valueOf(second);
if(second<10)
{
seconds="0"+seconds;
}
String endTime = "2024-12-23 "+hours+":"+minutes+":"+seconds;
List<IndicatorData> originarPVs = indicatorDataMapper
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(equipNum, gatewayId);
.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPvM(equipNum, gatewayId,startTime,endTime);
originarPVs.size();
Map<String, Object> resultMap = new HashMap<>();
Map<String, List<IndicatorData>> data = originarPVs.stream().collect(
......
......@@ -14,12 +14,22 @@ public interface IndicatorDataMapper extends BaseMapper<IndicatorData> {
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and equipment_number = #{equipmentNumber} and ts >= TODAY()-8h and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumber(@Param("equipmentIndexName") String equipmentIndexName, @Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId);
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and equipment_number = #{equipmentNumber} and ts >=#{startime} and ts<=#{endtime} and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumberM(@Param("equipmentIndexName") String equipmentIndexName, @Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId, @Param("startime") String startime, @Param("endtime") String endtime);
@Select("select `value`, created_time, `value_f` as valueF, equipment_index_name from iot_data.indicator_data where equipment_index_name like '%路电流%' and equipment_number = #{equipmentNumber} and ts >= TODAY()-8h and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(@Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId);
@Select("select `value`, created_time, `value_f` as valueF, equipment_index_name from iot_data.indicator_data where equipment_index_name like '%路电流%' and equipment_number = #{equipmentNumber} and ts >=#{startime} and ts<=#{endtime} and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPvM(@Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId, @Param("startime") String startime, @Param("endtime") String endtime);
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and ts >=TODAY()-8h")
List<IndicatorData> selectDataByequipmentIndexNameAndtime(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId);
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and ts >=TODAY()-#{day}d-8h")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeJp(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId,@Param("day") Long day);
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and ts >=#{startime} and ts<=#{endtime}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeM(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId, @Param("startime") String startime, @Param("endtime") String endtime);
}
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