首页获取功率趋势,发电量趋势;

This commit is contained in:
yu 2024-11-01 14:02:48 +08:00
parent 5eb9c86d57
commit 49316cca90
6 changed files with 167 additions and 357 deletions

View File

@ -1,9 +1,10 @@
package com.das.modules.page.controller;
import com.das.common.result.R;
import com.das.modules.page.domian.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.HomeWindTurbineMatrixDataVoVo;
import com.das.modules.data.domain.TSValueQueryParam;
import com.das.modules.page.domian.dto.WindFarmRealDataDto;
import com.das.modules.page.domian.vo.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.vo.HomeWindTurbineMatrixDataVoVo;
import com.das.modules.page.service.HomeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 首页相关Controller
@ -46,4 +48,12 @@ public class HomeController {
}
/**
* 获取历史数据(1.获取功率趋势的曲线,2.发电量日 趋势的曲线)
*/
@PostMapping("/getHistoryData")
public R<Map<String, Map<String, Map<String, Object>>>> getHistoryData(@RequestBody TSValueQueryParam param) {
return R.success(homeService.getHistoryData(param));
}
}

View File

@ -1,4 +1,4 @@
package com.das.modules.page.domian;
package com.das.modules.page.domian.vo;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.das.modules.page.domian;
package com.das.modules.page.domian.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

View File

@ -1,10 +1,12 @@
package com.das.modules.page.service;
import com.das.modules.page.domian.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.HomeWindTurbineMatrixDataVoVo;
import com.das.modules.data.domain.TSValueQueryParam;
import com.das.modules.page.domian.dto.WindFarmRealDataDto;
import com.das.modules.page.domian.vo.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.vo.HomeWindTurbineMatrixDataVoVo;
import java.util.List;
import java.util.Map;
public interface HomeService {
/**
@ -22,30 +24,13 @@ public interface HomeService {
*/
HomeWindFarmRealDataVo getWindFarmRealData(WindFarmRealDataDto windFarmRealDataDto);
/**
* 接口3 获取功率趋势的曲线
* 页面左下角功率趋势
* 测点WindFarmActivePower全场总有功功率WindFarmAvgWindSpeed 全场平均风速
* 时间间隔 5分钟
* 时间区间从 今天的00:00:00 现在的时间
*/
/**
* 接口4 发电量日 趋势的曲线
* 页面右中角发电量趋势中的日
* 测点WindFarmDayProdEnergy 日发电量
* 时间间隔 1天
* 时间区间从 本月1号 到月末31号 一个月一天一条记录
* 同期就是去年对应时间
* 获取历史数据(1.获取功率趋势的曲线,2.发电量日趋势的曲线)
*/
Map<String, Map<String, Map<String, Object>>> getHistoryData(TSValueQueryParam param);
/**
* 接口5 发电量月 趋势的曲线
* 页面右中角发电量趋势中的日
* 测点WIndFarmMonthProdEnergy 月发电量
* 时间间隔 1月
* 时间区间从 今年的1月1日 年底12月31日 一年每个月一条记录
* 同期就是去年对应时间
*/
}

View File

@ -3,14 +3,17 @@ package com.das.modules.page.service.impl;
import com.das.common.constant.EquipmentTypeIds;
import com.das.modules.data.domain.SnapshotValueQueryParam;
import com.das.modules.data.domain.TSValueQueryParam;
import com.das.modules.data.service.impl.DataServiceImpl;
import com.das.modules.equipment.domain.dto.SysEquipmentDto;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.mapper.SysEquipmentMapper;
import com.das.modules.page.domian.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.HomeWindTurbineMatrixDataVoVo;
import com.das.modules.page.domian.dto.WindFarmRealDataDto;
import com.das.modules.page.domian.vo.HomeWindFarmRealDataVo;
import com.das.modules.page.domian.vo.HomeWindTurbineMatrixDataVoVo;
import com.das.modules.page.service.HomeService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +21,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class HomeServiceImpl implements HomeService {
@ -145,4 +149,30 @@ public class HomeServiceImpl implements HomeService {
}
return homeWindFarmRealDataVo;
}
/**
* 获取历史数据(1.获取功率趋势的曲线,2.发电量日 趋势的曲线)
*/
@Override
public Map<String, Map<String, Map<String, Object>>> getHistoryData(TSValueQueryParam param) {
List<SnapshotValueQueryParam> devices = param.getDevices();
for (SnapshotValueQueryParam device : devices) {
if (StringUtils.isBlank(device.getDeviceId())){
//查询数据库中风电场设备取第一个风电场
SysEquipmentDto sysEquipmentDto = new SysEquipmentDto();
sysEquipmentDto.setObjectType(EquipmentTypeIds.EQUIPMENT_TYPE_WIND_FARM);
List<SysEquipmentVo> list = sysEquipmentMapper.queryEquipmentList(sysEquipmentDto);
if(list.isEmpty()){
throw new RuntimeException("系统中没有风电场台账信息");
}
device.setDeviceId(list.get(0).getId().toString());
}
}
Map<String, Map<String, Map<String, Object>>> mapResult = dataServiceImpl.queryTimeSeriesValues(param);
return mapResult;
}
}

View File

@ -2,25 +2,19 @@
## API接口一览表
| 接口分类 | 接口描述 | 查询条件 | API接口 | 权限 |
|--------|-------------|------------------------------| ---------------------------- | ---------------------------- |
| 2.1 首页 | 2.1.1风场概况 | 实时数据,没有入参 | /api/home/windFarmOverview | |
| | 2.1.2今日运行状态 | 实时数据,没有入参 | /api/home/currentDayStatus | |
| | 2.1.3功率趋势 | 当天24小时数据5分钟间隔 | /api/home/powerTrends | |
| | 2.1.4风机矩阵 | 实时数据,没有参数 | /api/home/windTurbineMatrix | |
| | 2.1.5发电量概况 | 昨日数据; | /api/home/generationOverview | |
| | 2.1.6发电量趋势 | 日: 当前月的每日数据同期是去年数据当年每月月数据12个月 | /api/home/generationTrend | |
| | 2.1.7实时告警 | 近一个月内所有的报警数据,滚动显示;已确认的数据 按钮灰色;未确认的显示确认按钮 | /api/home/realTimeAlert | |
| | 2.1.8实时告警确认 | 告警记录ID | /api/home/realTimeAlertConfirm | |
| 接口分类 | 接口描述 | 查询条件 | API接口 | 权限 |
|--------|----------------|-----------| ---------------------------- | ---------------------------- |
| 2.1 首页 | 2.1.1风机矩阵 | 实时数据,没有入参 | /api/home/getWindTurbineMatrixData | |
| | 2.1.2获取风电场实时数据 | 风电场id | /api/home/getWindFarmRealData | |
## 2.1 首页相关接口
### 2.1.1 风场概况
### 2.1.1 风机矩阵
POST 请求接口
> /api/home/windFarmOverview
> /api/home/getWindTurbineMatrixData
请求参数
@ -32,366 +26,157 @@ POST 请求接口
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data":
{
"power": 56.2,
"windSpeed": 45.3,
"dailyUsageHours": 20,
"monthlyUsageHours": 78
}
"code": 200,
"success": true,
"data": [
{
"irn": "1846101273013739522",
"name": "A-001",
"modelId": "1807685851882508289",
"model": "倍福1.5",
"belongLine": "线路1",
"standard": 1,
"nominalCapacity": 66.23,
"attributeMap": {
"iwindspeed": 10.84000015258789,
"iturbineoperationmode": 6,
"iyplevel": 0,
"ikwhthisday": 0,
"igenpower": 0,
"gridlostdetected": 0
}
}
],
"msg": "操作成功"
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------- |---------| ---- |--------|
| power | Double | 否 | 功率 |
| windSpeed | Double | 否 | 风速 |
| dailyUsageHours | Integer | 否 | 日利用小时数 |
| monthlyUsageHours | Integer | 否 | 月利用小时数 |
| ------------ |---------| ---- |--------|
| standard | Integer | 否 | 是否标杆 |
| nominalCapacity | Double | 否 | 容量 |
| iwindspeed | Double | 否 | 风速 |
| iyplevel | Double | 否 | 偏航运行模式 |
| ikwhthisday | Double | 否 | 日发电量 |
| igenpower | Double | 否 | 有功功率 |
| gridlostdetected | Double | 否 | 风机电网掉电 |
### 2.1.2 今日运行状态
### 2.1.2 获取风电场实时数据
POST 请求接口
> /api/home/currentDayStatus
> /api/home/getWindFarmRealData
请求参数
```json
{
"windFarmId":1846101273013739522
}
```
入参描述
注:实时数据,没有入参
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------ |------| ---- |------|
| windFarmId | Long | yes | 风场id |
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data":
{
"windTurbineNum": 40,
"installedCapacity": 45.32,
"runCapacity": 20.2,
"runNum": 78,
"standbyCapacity": 63.2,
"standbyNum": 35,
"faultCapacity": 56.4,
"faultNum": 53,
"offlineCapacity": 16.4,
"offlineNum": 20
}
"code": 200,
"success": true,
"data": {
"windFarmId": 1848624295633317890,
"attributeMap": {
"windfarmactivepower": 111.01,
"windfarmavgwindspeed": 111.01,
"windfarmdayoperationhours": 111.01,
"windfarmmonthoperationhours": 111.01,
"windfarmdayprodenergy": 111.01,
"windfarmmonthprodenergy": 111.01,
"windfarmyearprodenergy": 111.01,
"windfarmtotalprodenergy": 111.01
}
},
"msg": "操作成功"
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------- |---------| ---- |------|
| windTurbineNum | Integer | 否 | 风机台数 |
| installedCapacity | Double | 否 | 装机容量 |
| runCapacity | Double | 否 | 运行容量 |
| runNum | Integer | 否 | 运行台数 |
| standbyCapacity | Double | 否 | 待机容量 |
| standbyNum | Integer | 否 | 待机台数 |
| faultCapacity | Double | 否 | 故障容量 |
| faultNum | Integer | 否 | 故障台数 |
| offlineCapacity | Double | 否 | 离线容量 |
| offlineNum | Integer | 否 | 离线台数 |
| windFarmId | Long | 否 | 风场id |
| windfarmactivepower | Double | 否 | 功率 |
| windfarmavgwindspeed | Double | 否 | 平均风速 |
| windfarmdayoperationhours | Double | 否 | 日利用小时 |
| windfarmmonthoperationhours | Double | 否 | 月利用小时 |
| windfarmdayprodenergy | Double | 否 | 日发电量 |
| windfarmmonthprodenergy | Double | 否 | 月发电量 |
| windfarmyearprodenergy | Double | 否 | 年发电量 |
| windfarmtotalprodenergy | Double | 否 | 总发电量 |
### 2.1.3 功率趋势
### 2.1.3 获取风电场历史数据
POST 请求接口
> /api/home/powerTrends
> /api/home/getHistoryData
请求参数
注:当天24小时数据5分钟间隔
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data": [
{
"power": 12.6,
"windSpeed": 56.3,
"dataTime": "2024-10-17 00:00:00"
},
{
"power": 10.6,
"windSpeed": 16.3,
"dataTime": "2024-10-17 00:05:00"
}
]
"startTime": "123452435324242",
"endTime": "123452435924242",
"devices": [
{
"deviceId":"129476828342323",
"attributes":["power","windSpeed"]
},
{
"deviceId":"129476828342324",
"attributes":["power","dailyUsageHours"]
}
],
"interval": "5m"
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|--------| ---- |------|
| power | Double | 否 | 功率 |
| windSpeed | Double | 否 | 风速 |
| dataTime | String | 否 | 数据时间 |
### 2.1.4 风机矩阵
POST 请求接口
> /api/home/windTurbineMatrix
请求参数
注:实时数据
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data": [
{
"power": 12.6,
"windSpeed": 56.3,
"dayGeneration": 56.2,
"windStatus": "并网",
"standard": 1,
"windTurbine": "GDWT00001"
},
{
"power": 12.6,
"windSpeed": 56.3,
"dayGeneration": 56.2,
"windStatus": "待机",
"standard": 1,
"windTurbine": "GDWT00002"
}
]
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|---------| ---- |---------|
| power | Double | 否 | 功率 |
| windSpeed | Double | 否 | 风速 |
| dayGeneration | Double | 否 | 日发电量 |
| windStatus | String | 否 | 风机状态 |
| standard | Integer | 否 | 是否为标杆机组 |
| windTurbine | String | 否 | 风机编码 |
### 2.1.5 发电量概况
POST 请求接口
> /api/home/generationOverview
请求参数
```json
{
"requestTime":"2024-10-16"
}
```
入参描述
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------ | -------- | ---- |------|
| requestTime | String | yes | 请求时间 |
注:请求时间默认为:昨日时间
| startTime | String | no | 开始时间戳 |
| endTime | String | no | 结束时间戳 |
| devices.deviceId | String | no | 设备ID |
| devices.attributes | StringArray | no | 要查询实时数据的设备属性列表 |
| interval | String | yes | 抽样间隔,1a(毫秒),1s(秒),1m(分),1h(小时),1d(天),1w(周)。 忽略或者值为空时,返回原始数据(不抽样) |
| endTime | String | no | 结束时间戳 |
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data":
{
"dailyGeneration": 63.2,
"dayGeneration": 56.2,
"monthGeneration": 60.2,
"yearGeneration": 200.6,
"totalGeneration": 500.6
"code": 200,
"msg": "操作成功",
"success": true,
"data": {
//设备ID
"129476828342323":{
//属性名
"power": {
//时间戳列表
"times": [123452435924242,123452435924342,123452435924442,123452435924542],
//值列表
"values": [123.23,35.21,34.56,67]
} ,
//属性名
"windSpeed": {
"times": [123452435924242,123452435924342,123452435924442,123452435924542],
"values": [123.23,35.21,34.56,67]
}
},
.......
}
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|---------| ---- |-------|
| dailyGeneration | Double | 否 | 当日发电量 |
| dayGeneration | Double | 否 | 日发电量 |
| monthGeneration | Double | 否 | 月发电量 |
| yearGeneration | Double | 否 | 年发电量 |
| totalGeneration | Double | 否 | 总发电量 |
### 2.1.6 发电量趋势
POST 请求接口
> /api/home/generationTrend
请求参数
```json
{
"timeType":"日"
}
```
注: 日:当前月的每日数据;同期是去年数据;月:当年每月月数据12个月
入参描述
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------ | -------- | ---- |------|
| timeType | String | yes | 时间类型 |
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data": [
{
"currentPeriod": 56.3,
"samePeriod": 63.5,
"generationTime": "2024-10-01"
},
{
"currentPeriod": 66.3,
"samePeriod": 73.5,
"generationTime": "2024-10-02"
}
]
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|---------| ---- |-------|
| currentPeriod | Double | 否 | 本期 |
| samePeriod | Double | 否 | 同期 |
| generationTime | Double | 否 | 发电量时间 |
### 2.1.7 实时告警
POST 请求接口
> /api/home/realTimeAlert
请求参数
注:近一个月内所有的报警数据,滚动显示;已确认的数据 按钮灰色;未确认的显示确认按钮
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data": [
{
"alertTime": "2024-10-16 12:16:42",
"windTurbine": "SC-01",
"alertContent": "故障",
"alertId": 4562366,
"confirmStatus": 0
},
{
"alertTime": "2024-10-16 12:16:42",
"windTurbine": "SC-01",
"alertContent": "待机",
"alertId": 4562366555,
"confirmStatus": 1
}
]
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|---------| ---- |------|
| alertTime | String | 否 | 告警时间 |
| windTurbine | String | 否 | 风机编码 |
| alertContent | String | 否 | 告警内容 |
| alertId | Long | 否 | 告警id |
| confirmStatus | Integer | 否 | 确认状态 |
### 2.1.8 实时告警-确认
POST 请求接口
> /api/home/realTimeAlertConfirm
请求参数
```json
{
"alertId":45566222
}
```
入参描述
| 参数名 | 参数类型 | 可选 | 描述 |
| ------------ |------| ---- |------|
| alertId | Long | yes | 告警id |
返回报文
```json
{
"code": 200,
"msg": "操作成功",
"success": true,
"data": [
]
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|-------------|---------| ---- |-------|