Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
bed3355f
Commit
bed3355f
authored
Apr 08, 2024
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
大屏监盘风电、光伏场站运行指标数据接口调整。
parent
74977b0f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
159 additions
and
9 deletions
+159
-9
BuDunStationDetailInfo.java
...mos/boot/module/jxiop/api/dto/BuDunStationDetailInfo.java
+4
-0
StationBasic.java
...ejoin/amos/boot/module/jxiop/api/entity/StationBasic.java
+5
-0
MonitorService.java
...in/amos/boot/module/jxiop/biz/service/MonitorService.java
+14
-0
MonitorServiceImpl.java
...oot/module/jxiop/biz/service/impl/MonitorServiceImpl.java
+136
-9
No files found.
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/dto/BuDunStationDetailInfo.java
View file @
bed3355f
...
@@ -7,7 +7,11 @@ public class BuDunStationDetailInfo {
...
@@ -7,7 +7,11 @@ public class BuDunStationDetailInfo {
private
String
station_name
;
private
String
station_name
;
private
Double
actual_installed_capacity
;
private
Double
actual_installed_capacity
;
private
Double
year
;
private
Double
year
;
private
Double
year_complete
;
private
Double
year_hours
;
private
Double
month
;
private
Double
month
;
private
Double
month_hours
;
private
Double
day
;
private
Double
day
;
private
Double
day_hours
;
private
Double
wind_as_irradiance
;
private
Double
wind_as_irradiance
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-api/src/main/java/com/yeejoin/amos/boot/module/jxiop/api/entity/StationBasic.java
View file @
bed3355f
...
@@ -174,4 +174,9 @@ public class StationBasic extends BaseEntity {
...
@@ -174,4 +174,9 @@ public class StationBasic extends BaseEntity {
*/
*/
@TableField
(
"installed_capacity"
)
@TableField
(
"installed_capacity"
)
private
Double
installedCapacity
=
0.0
;
private
Double
installedCapacity
=
0.0
;
/**
* 装机容量
*/
@TableField
(
"equip_numbers"
)
private
Integer
equipNumbers
=
0
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-bigscreen-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/MonitorService.java
View file @
bed3355f
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.yeejoin.amos.boot.module.jxiop.biz.dto.RegionNationWideDto
;
import
com.yeejoin.amos.boot.module.jxiop.biz.dto.RegionNationWideDto
;
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.dto.SeriesData
;
import
com.yeejoin.amos.boot.module.jxiop.biz.dto.SeriesData
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -78,4 +79,17 @@ public interface MonitorService {
...
@@ -78,4 +79,17 @@ public interface MonitorService {
* @return
* @return
*/
*/
Page
<
Map
<
String
,
Object
>>
stationRanking
(
String
day
,
String
type
,
String
areaCode
);
Page
<
Map
<
String
,
Object
>>
stationRanking
(
String
day
,
String
type
,
String
areaCode
);
/**
* @Descritpion 根据入参动态获取风电站数据
* @param stationId
* @return
*/
IPage
<
Map
>
getStationOverViewFanByStationId
(
String
stationId
);
/**
* @Descritpion 根据入参动态获取光伏站数据
* @param stationId
* @return
*/
IPage
<
Map
>
getStationOverViewPVByStationId
(
String
stationId
);
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-bigscreen-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/MonitorServiceImpl.java
View file @
bed3355f
...
@@ -23,24 +23,25 @@ import com.yeejoin.amos.boot.module.jxiop.biz.dto.StationCacheInfoDto;
...
@@ -23,24 +23,25 @@ import com.yeejoin.amos.boot.module.jxiop.biz.dto.StationCacheInfoDto;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.CoreCommonService
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.CoreCommonService
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.MonitorService
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.MonitorService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.io.IOUtils
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.elasticsearch.search.aggregations.Aggregation
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.elasticsearch.search.aggregations.Aggregations
;
import
org.springframework.core.io.Resource
;
import
org.elasticsearch.search.aggregations.bucket.terms.Terms
;
import
org.elasticsearch.search.aggregations.metrics.ParsedAvg
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
java.math.BigDecimal
;
import
java.io.IOException
;;
import
java.text.DecimalFormat
;
import
java.nio.charset.StandardCharsets
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
parseArray
;
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
MonitorServiceImpl
implements
MonitorService
{
public
class
MonitorServiceImpl
implements
MonitorService
{
...
@@ -50,6 +51,10 @@ public class MonitorServiceImpl implements MonitorService {
...
@@ -50,6 +51,10 @@ public class MonitorServiceImpl implements MonitorService {
private
final
EmqKeeper
emqKeeper
;
private
final
EmqKeeper
emqKeeper
;
private
final
HttpRequestUtil
httpRequestUtil
;
private
final
HttpRequestUtil
httpRequestUtil
;
private
final
CoreCommonService
coreCommonService
;
private
final
CoreCommonService
coreCommonService
;
@Value
(
"classpath:/json/overview.json"
)
private
Resource
overview
;
@Value
(
"classpath:/json/overviewGF.json"
)
private
Resource
overviewGF
;
@Override
@Override
public
IPage
<
Map
<
String
,
Object
>>
operationData
(
String
areaCode
)
{
public
IPage
<
Map
<
String
,
Object
>>
operationData
(
String
areaCode
)
{
...
@@ -396,6 +401,128 @@ public class MonitorServiceImpl implements MonitorService {
...
@@ -396,6 +401,128 @@ public class MonitorServiceImpl implements MonitorService {
return
socialContributionDtoPage
;
return
socialContributionDtoPage
;
}
}
@Override
public
IPage
<
Map
>
getStationOverViewFanByStationId
(
String
stationId
)
{
StationBasic
stationBasic
=
stationBasicMapper
.
selectById
(
stationId
);
List
<
CoreValuesDto
>
coreValuesDtoList
=
new
ArrayList
<>();
List
<
String
>
stringNames
=
Arrays
.
asList
(
stationBasic
.
getStationCoreName
(),
stationBasic
.
getBoosterCoreName
());
coreValuesDtoList
=
coreCommonService
.
getValuesByStationNamesAndPointsNames
(
stringNames
.
stream
().
collect
(
Collectors
.
joining
(
","
)),
CommonConstans
.
ACTIVE_POWER
);
// 获取风场详情信息
String
requestUrl
=
Constants
.
BASE_URL
+
"?"
+
Constants
.
get_province_station_item
+
"&stationId="
+
stationId
;
List
<
BuDunStationDetailInfo
>
buDunStationDetailInfos
=
httpRequestUtil
.
getResPonse
(
requestUrl
,
Constants
.
REQUEST_GET
,
""
,
Constants
.
resovleRule_data
,
BuDunStationDetailInfo
.
class
);
BuDunStationDetailInfo
buDunStationDetailInfo
=
buDunStationDetailInfos
.
stream
().
filter
(
buDunStationDetailInfo1
->
stationBasic
.
getStationName
().
contains
(
buDunStationDetailInfo1
.
getStation_name
().
replace
(
"电场"
,
""
).
replace
(
"电站"
,
""
))).
findFirst
().
orElse
(
null
);
Map
<
String
,
Object
>
columnMap
=
new
HashMap
<>();
columnMap
.
put
(
"日发电量"
,
0.0
);
columnMap
.
put
(
"月发电量"
,
0.0
);
columnMap
.
put
(
"年发电量"
,
0.0
);
columnMap
.
put
(
"30秒平均风速"
,
0.0
);
columnMap
.
put
(
"有功功率"
,
0.0
);
columnMap
.
put
(
"风机台数"
,
0
);
columnMap
.
put
(
"装机容量"
,
0.0
);
columnMap
.
put
(
"年发电量完成率(%)"
,
0.0
);
columnMap
.
put
(
"日利用小时(h)"
,
0.0
);
if
(!
ObjectUtils
.
isEmpty
(
buDunStationDetailInfo
))
{
columnMap
.
put
(
"日发电量"
,
buDunStationDetailInfo
.
getDay
());
columnMap
.
put
(
"月发电量"
,
buDunStationDetailInfo
.
getMonth
());
columnMap
.
put
(
"年发电量"
,
buDunStationDetailInfo
.
getYear
());
columnMap
.
put
(
"30秒平均风速"
,
buDunStationDetailInfo
.
getWind_as_irradiance
());
columnMap
.
put
(
"风机台数"
,
stationBasic
.
getEquipNumbers
());
columnMap
.
put
(
"装机容量"
,
buDunStationDetailInfo
.
getActual_installed_capacity
());
columnMap
.
put
(
"年发电量完成率(%)"
,
buDunStationDetailInfo
.
getYear_complete
());
columnMap
.
put
(
"日利用小时(h)"
,
buDunStationDetailInfo
.
getDay_hours
());
}
if
(
coreValuesDtoList
.
size
()
>
0
)
{
columnMap
.
put
(
"有功功率"
,
coreCommonService
.
getAverageOfByPointName
(
coreValuesDtoList
,
CommonConstans
.
ACTIVE_POWER
));
}
String
json
=
null
;
try
{
json
=
IOUtils
.
toString
(
overview
.
getInputStream
(),
String
.
valueOf
(
StandardCharsets
.
UTF_8
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
List
<
Map
>
list
=
parseArray
(
json
,
Map
.
class
);
for
(
Map
map
:
list
)
{
String
key
=
map
.
get
(
"title"
).
toString
();
map
.
put
(
"title"
,
columnMap
.
get
(
key
)
==
null
?
0.00
:
columnMap
.
get
(
key
));
map
.
put
(
"title2"
,
map
.
get
(
"title"
));
}
IPage
<
Map
>
result
=
new
Page
<>();
result
.
setRecords
(
list
);
result
.
setCurrent
(
1
);
result
.
setTotal
(
list
.
size
());
return
result
;
}
@Override
public
IPage
<
Map
>
getStationOverViewPVByStationId
(
String
stationId
)
{
StationBasic
stationBasic
=
stationBasicMapper
.
selectById
(
stationId
);
List
<
CoreValuesDto
>
coreValuesDtoList
=
new
ArrayList
<>();
List
<
String
>
stringNames
=
Arrays
.
asList
(
stationBasic
.
getStationCoreName
(),
stationBasic
.
getBoosterCoreName
());
coreValuesDtoList
=
coreCommonService
.
getValuesByStationNamesAndPointsNames
(
stringNames
.
stream
().
collect
(
Collectors
.
joining
(
","
)),
CommonConstans
.
ACTIVE_POWER
+
","
+
CommonConstans
.
TOTAL_RADIATION_SUM
);
// 获取风场详情信息
String
requestUrl
=
Constants
.
BASE_URL
+
"?"
+
Constants
.
get_province_station_item
+
"&stationId="
+
stationId
;
List
<
BuDunStationDetailInfo
>
buDunStationDetailInfos
=
httpRequestUtil
.
getResPonse
(
requestUrl
,
Constants
.
REQUEST_GET
,
""
,
Constants
.
resovleRule_data
,
BuDunStationDetailInfo
.
class
);
BuDunStationDetailInfo
buDunStationDetailInfo
=
buDunStationDetailInfos
.
stream
().
filter
(
buDunStationDetailInfo1
->
stationBasic
.
getStationName
().
contains
(
buDunStationDetailInfo1
.
getStation_name
().
replace
(
"电场"
,
""
).
replace
(
"电站"
,
""
))).
findFirst
().
orElse
(
null
);
Map
<
String
,
Object
>
columnMap
=
new
HashMap
<>();
//日 月 年发电量同仅统计逆变器数据
List
<
Map
<
String
,
Object
>>
mapList
;
columnMap
.
put
(
"日发电量"
,
0.0
);
columnMap
.
put
(
"月发电量"
,
0.0
);
columnMap
.
put
(
"年发电量"
,
0.0
);
columnMap
.
put
(
"辐照强度"
,
0.0
);
columnMap
.
put
(
"有功功率"
,
0.0
);
columnMap
.
put
(
"逆变器台数"
,
0
);
columnMap
.
put
(
"装机容量"
,
0.0
);
columnMap
.
put
(
"年发电量完成率(%)"
,
0.0
);
columnMap
.
put
(
"日利用小时(h)"
,
0.0
);
columnMap
.
put
(
"综合效率"
,
0.0
);
columnMap
.
put
(
"总辐射累计"
,
0.0
);
if
(!
ObjectUtils
.
isEmpty
(
buDunStationDetailInfo
))
{
columnMap
.
put
(
"日发电量"
,
buDunStationDetailInfo
.
getDay
());
columnMap
.
put
(
"月发电量"
,
buDunStationDetailInfo
.
getMonth
());
columnMap
.
put
(
"年发电量"
,
buDunStationDetailInfo
.
getYear
());
columnMap
.
put
(
"辐照强度"
,
buDunStationDetailInfo
.
getWind_as_irradiance
());
columnMap
.
put
(
"风机台数"
,
stationBasic
.
getEquipNumbers
());
columnMap
.
put
(
"装机容量"
,
buDunStationDetailInfo
.
getActual_installed_capacity
());
columnMap
.
put
(
"年发电量完成率(%)"
,
buDunStationDetailInfo
.
getYear_complete
());
columnMap
.
put
(
"日利用小时(h)"
,
buDunStationDetailInfo
.
getDay_hours
());
}
if
(
coreValuesDtoList
.
size
()
>
0
)
{
columnMap
.
put
(
"有功功率"
,
coreCommonService
.
getAverageOfByPointName
(
coreValuesDtoList
,
CommonConstans
.
ACTIVE_POWER
));
columnMap
.
put
(
"总辐射累计"
,
coreCommonService
.
getAverageOfByPointName
(
coreValuesDtoList
,
CommonConstans
.
TOTAL_RADIATION_SUM
));
//综合效率 = 发电量/理论发电量
//理论发电量 = 峰值日照数 * 总装机容量
//峰值日照数 = 累计辐照度/3.6
Double
todayPower
=
Double
.
valueOf
(
columnMap
.
get
(
"日发电量"
).
toString
());
Double
total
=
Double
.
valueOf
(
columnMap
.
get
(
"总辐射累计"
).
toString
());
if
(
todayPower
>
0
&&
total
>
0
)
{
Double
overallEfficiency
=
todayPower
*
CommonConstans
.
wkwhToMv
/
((
total
/
3.6
)
*
Double
.
valueOf
(
columnMap
.
get
(
"装机容量"
).
toString
()));
columnMap
.
put
(
"综合效率"
,
String
.
format
(
"%.2f"
,
overallEfficiency
*
100
)
+
"%"
);
//综合效率
}
}
String
json
=
null
;
try
{
json
=
IOUtils
.
toString
(
overviewGF
.
getInputStream
(),
java
.
lang
.
String
.
valueOf
(
StandardCharsets
.
UTF_8
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
List
<
Map
>
list
=
parseArray
(
json
,
Map
.
class
);
for
(
Map
map
:
list
)
{
String
key
=
map
.
get
(
"title"
).
toString
();
map
.
put
(
"title"
,
columnMap
.
get
(
key
)
==
null
?
0.00
:
columnMap
.
get
(
key
));
map
.
put
(
"title2"
,
map
.
get
(
"title"
));
}
IPage
<
Map
>
result
=
new
Page
<>();
result
.
setRecords
(
list
);
result
.
setCurrent
(
1
);
result
.
setTotal
(
list
.
size
());
return
result
;
}
/**
/**
* 获取qg数据并将其发布到MQTT服务器
* 获取qg数据并将其发布到MQTT服务器
...
@@ -455,14 +582,14 @@ public class MonitorServiceImpl implements MonitorService {
...
@@ -455,14 +582,14 @@ public class MonitorServiceImpl implements MonitorService {
List
<
CoreValuesDto
>
coreValuesDtos
=
coreCommonService
.
getValuesByStationNamesAndPointsNames
(
null
,
null
);
List
<
CoreValuesDto
>
coreValuesDtos
=
coreCommonService
.
getValuesByStationNamesAndPointsNames
(
null
,
null
);
List
<
StationCacheInfoDto
>
stationCacheInfoDtoList
=
getListStationCacheInfoDto
();
List
<
StationCacheInfoDto
>
stationCacheInfoDtoList
=
getListStationCacheInfoDto
();
List
<
MapRegion
>
mapRegionList
=
mapRegionMapper
.
selectList
(
new
QueryWrapper
<
MapRegion
>().
isNotNull
(
"name"
));
List
<
MapRegion
>
mapRegionList
=
mapRegionMapper
.
selectList
(
new
QueryWrapper
<
MapRegion
>().
isNotNull
(
"name"
));
mapRegionList
.
forEach
(
mapRegion
->{
mapRegionList
.
forEach
(
mapRegion
->
{
if
(!
ObjectUtils
.
isEmpty
(
mapRegion
.
getName
()))
{
if
(!
ObjectUtils
.
isEmpty
(
mapRegion
.
getName
()))
{
List
<
StationCacheInfoDto
>
stationCacheInfoDtoListTemp
=
stationCacheInfoDtoList
.
stream
().
filter
(
stationCacheInfoDto
->
stationCacheInfoDto
.
getAreaCode
().
equals
(
mapRegion
.
getAreaCode
())
&&
stationCacheInfoDto
.
getStationCoreName
()
!=
null
&&
stationCacheInfoDto
.
getBoosterCoreName
()
!=
null
).
collect
(
Collectors
.
toList
());
List
<
StationCacheInfoDto
>
stationCacheInfoDtoListTemp
=
stationCacheInfoDtoList
.
stream
().
filter
(
stationCacheInfoDto
->
stationCacheInfoDto
.
getAreaCode
().
equals
(
mapRegion
.
getAreaCode
())
&&
stationCacheInfoDto
.
getStationCoreName
()
!=
null
&&
stationCacheInfoDto
.
getBoosterCoreName
()
!=
null
).
collect
(
Collectors
.
toList
());
List
<
String
>
stationNames
=
new
ArrayList
<>();
List
<
String
>
stationNames
=
new
ArrayList
<>();
stationNames
.
addAll
(
stationCacheInfoDtoList
.
stream
().
map
(
StationCacheInfoDto:
:
getStationCoreName
).
collect
(
Collectors
.
toList
()));
stationNames
.
addAll
(
stationCacheInfoDtoList
.
stream
().
map
(
StationCacheInfoDto:
:
getStationCoreName
).
collect
(
Collectors
.
toList
()));
stationNames
.
addAll
(
stationCacheInfoDtoList
.
stream
().
map
(
StationCacheInfoDto:
:
getBoosterCoreName
).
collect
(
Collectors
.
toList
()));
stationNames
.
addAll
(
stationCacheInfoDtoList
.
stream
().
map
(
StationCacheInfoDto:
:
getBoosterCoreName
).
collect
(
Collectors
.
toList
()));
List
<
CoreValuesDto
>
coreValuesDtosTemp
=
coreValuesDtos
.
stream
().
filter
(
coreValuesDto
->
stationNames
.
contains
(
coreValuesDto
.
getName
())).
collect
(
Collectors
.
toList
());
List
<
CoreValuesDto
>
coreValuesDtosTemp
=
coreValuesDtos
.
stream
().
filter
(
coreValuesDto
->
stationNames
.
contains
(
coreValuesDto
.
getName
())).
collect
(
Collectors
.
toList
());
getqy
(
mapRegion
,
coreValuesDtosTemp
);
getqy
(
mapRegion
,
coreValuesDtosTemp
);
}
}
});
});
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment