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
6c07a322
Commit
6c07a322
authored
Sep 21, 2023
by
zhangsen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
分析需求API
parent
eb27686f
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
432 additions
and
8 deletions
+432
-8
CommonConstans.java
.../amos/boot/module/jxiop/biz/constants/CommonConstans.java
+102
-0
BigScreenAnalyseController.java
...dule/jxiop/biz/controller/BigScreenAnalyseController.java
+122
-1
ESEquipmentsDTO.java
...ejoin/amos/boot/module/jxiop/biz/dto/ESEquipmentsDTO.java
+29
-0
IdxBizFanHealthIndex.java
...os/boot/module/jxiop/biz/entity/IdxBizFanHealthIndex.java
+6
-0
IdxBizPvHealthIndex.java
...mos/boot/module/jxiop/biz/entity/IdxBizPvHealthIndex.java
+7
-0
IdxBizFanHealthIndexMapper.java
.../module/jxiop/biz/mapper2/IdxBizFanHealthIndexMapper.java
+12
-0
CommonServiceImpl.java
...boot/module/jxiop/biz/service/impl/CommonServiceImpl.java
+38
-0
IdxBizFanHealthIndexMapper.xml
...n/resources/mapper/cluster/IdxBizFanHealthIndexMapper.xml
+116
-7
No files found.
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/constants/CommonConstans.java
0 → 100644
View file @
6c07a322
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
constants
;
import
java.util.HashMap
;
public
class
CommonConstans
{
//光伏发电量系数
public
static
final
Double
pvGenPoweActor
=
0.000001
;
// 风电站:
// (日/月/年)发电量=场站所有风机(日/月/年)发电量总和
// 装机容量=场站所有风机装机容量总和
//
// 光伏站:
// (日/月/年)发电量=场站所有逆变器(日/月/年)发电量总和
// 装机容量=场站所有逆变器装机容量总和
//
// 通用:
// 发电量完成率=(月/年)发电量/(月/年)发电量指标
// 小时数完成率=(月/年)可利用小时/(月/年)可利用小时数指标
// 可利用小时(h)=(日/月/年)发电量(万kW·h)/装机容量(万kW)
// 二氧化碳减排量(万t)=发电量(万kW·h)*0.997 * 10 / 10000
public
static
final
Double
carbonDioxide
=
0.997
*
10
/
10000
;
// 节约标准煤(万t)=发电量(万kW·h)*0.29
public
static
final
Double
standardCoal
=
0.29
;
// 炭粉尘减排量(t)=发电量(万kW·h)*0.30
public
static
final
Double
toner
=
0.30
;
// 二氧化硫减排量(t)=发电量(万kW·h)*1.51
public
static
final
Double
sulfurDioxide
=
1.51
;
// 氮氧化物减排量(t)=发电量(万kW·h)*1.69
public
static
final
Double
oxynitride
=
1.69
;
//吨转万吨
public
static
final
Double
tToWT
=
0.0001
;
//万Kwh转MV
public
static
final
Integer
wkwhToMv
=
10
;
// 正常运行 发电状态=1
// 告警运行 报警状态=1
// 正常停机 停机状态=1
// 故障停机 故障状态=1
// 限功率
// 待机状态 待机状态=1
// 维护状态 维护状态=1
// 通讯中断
public
static
final
HashMap
<
String
,
String
>
fanStatus
=
new
HashMap
<
String
,
String
>()
{
{
put
(
"发电状态"
,
"正常运行"
);
put
(
"报警状态"
,
"报警运行"
);
put
(
"停机状态"
,
"停机状态"
);
put
(
"故障状态"
,
"故障状态"
);
put
(
"待机状态"
,
"待机状态"
);
put
(
"维护状态"
,
"维护状态"
);
put
(
"限功率"
,
"限功率"
);
put
(
"通讯中断"
,
"通讯中断"
);
}
};
// 正常运行 运行=1
// 正常停机 停机=1
// 限功率 限额运行=1
// 限电停机 降额运行=1
// 告警运行 告警运行=1
// 故障停机 故障停机=1
// 待机状态 待机=1
// 通讯中断 通讯故障=1
public
static
final
HashMap
<
String
,
String
>
pvStatus
=
new
HashMap
<
String
,
String
>()
{
{
put
(
"运行"
,
"正常运行"
);
put
(
"停机"
,
"正常停机"
);
put
(
"限额运行"
,
"限功率"
);
put
(
"降额运行"
,
"限电停机"
);
put
(
"告警运行"
,
"告警运行"
);
put
(
"故障停机"
,
"故障停机"
);
put
(
"待机"
,
"待机状态"
);
put
(
"通讯故障"
,
"通讯中断"
);
}
};
//es EquipIndexName 查绚关键字
public
static
final
String
QueryStringEquipmentIndexName
=
"equipmentIndexName.keyword"
;
//es EquipIndexName 查绚关键字
public
static
final
String
QueryStringEquipmentIndexNameNotKeyword
=
"equipmentIndexName"
;
//es gatewayId 查绚关键字
public
static
final
String
QueryStringGateWayId
=
"gatewayId.keyword"
;
public
static
final
String
QueryStringFrontMoudle
=
"frontModule.keyword"
;
public
static
final
String
QueryStringSystemType
=
"systemType"
;
public
static
final
String
QueryStringSystemTypeKeyword
=
"systemType.keyword"
;
public
static
final
String
QueryStringEquipmentNumber
=
"equipmentNumber"
;
public
static
final
String
QueryStringEquipmentNumberKeyword
=
"equipmentNumber.keyword"
;
public
static
final
String
QueryStringValue
=
"value"
;
public
static
final
String
QueryStringValueKeyword
=
"value.keyword"
;
public
static
final
String
QueryStringValueLabel
=
"valueLabel"
;
public
static
final
String
QueryStringValueLabelKeyword
=
"valueLabel.keyword"
;
public
static
final
String
QueryStringDataType
=
"dataType"
;
public
static
final
String
QueryStringDisplayName
=
"displayName"
;
public
static
final
String
QueryStringDisplayNameKeyword
=
"displayName.keyword"
;
public
static
final
String
QueryStringIsAlarm
=
"isAlarm"
;
public
static
final
String
QueryStringIsAlarmKeyword
=
"isAlarm.keyword"
;
public
static
final
String
Twodecimalplaces
=
"%.2f"
;
public
static
final
String
Fourdecimalplaces
=
"%.4f"
;
public
static
final
String
QueryStringFrontMoudleNotKeyWord
=
"frontModule"
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/controller/BigScreenAnalyseController.java
View file @
6c07a322
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
controller
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
controller
;
import
cn.hutool.core.text.CharSequenceUtil
;
import
cn.hutool.core.text.CharSequenceUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic
;
import
com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic
;
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.dto.ESEquipmentsDTO
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthLevel
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanPointProcessVariableClassification
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanWarningRecord
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanWarningRecord
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanHealthIndexMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanHealthIndexMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanHealthLevelMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanWarningRecordMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanWarningRecordMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.impl.CommonServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -41,6 +49,12 @@ public class BigScreenAnalyseController extends BaseController {
...
@@ -41,6 +49,12 @@ public class BigScreenAnalyseController extends BaseController {
@Autowired
@Autowired
StationBasicMapper
stationBasicMapper
;
StationBasicMapper
stationBasicMapper
;
@Autowired
CommonServiceImpl
commonServiceImpl
;
@Autowired
IdxBizFanHealthLevelMapper
idxBizFanHealthLevelMapper
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"场站设备健康状态指数与趋势 - 仪表盘"
,
notes
=
"场站设备健康状态指数与趋势 - 仪表盘"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"场站设备健康状态指数与趋势 - 仪表盘"
,
notes
=
"场站设备健康状态指数与趋势 - 仪表盘"
)
@GetMapping
(
value
=
"/getHealthScoreInfo"
)
@GetMapping
(
value
=
"/getHealthScoreInfo"
)
...
@@ -211,7 +225,7 @@ public class BigScreenAnalyseController extends BaseController {
...
@@ -211,7 +225,7 @@ public class BigScreenAnalyseController extends BaseController {
public
ResponseModel
<
Map
<
String
,
Object
>>
getHealthInfoByArea
(
@RequestParam
(
required
=
false
)
String
areaCode
)
{
public
ResponseModel
<
Map
<
String
,
Object
>>
getHealthInfoByArea
(
@RequestParam
(
required
=
false
)
String
areaCode
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
List
<
Map
<
String
,
Object
>>
healthListInfo
=
idxBizFanHealthIndexMapper
.
getHealthInfoByStation
(
areaCode
);
List
<
Map
<
String
,
Object
>>
healthListInfo
=
idxBizFanHealthIndexMapper
.
getHealthInfoByStation
(
areaCode
);
Map
<
String
,
BigDecimal
>
collect
=
healthListInfo
.
stream
().
collect
(
Collectors
.
toMap
(
t
->
t
.
get
(
"
area
"
).
toString
(),
t
->
new
BigDecimal
(
t
.
get
(
"healthIndex"
).
toString
())));
Map
<
String
,
BigDecimal
>
collect
=
healthListInfo
.
stream
().
collect
(
Collectors
.
toMap
(
t
->
t
.
get
(
"
station
"
).
toString
(),
t
->
new
BigDecimal
(
t
.
get
(
"healthIndex"
).
toString
())));
...
@@ -305,4 +319,111 @@ public class BigScreenAnalyseController extends BaseController {
...
@@ -305,4 +319,111 @@ public class BigScreenAnalyseController extends BaseController {
return
ResponseHelper
.
buildResponse
(
resultMap
);
return
ResponseHelper
.
buildResponse
(
resultMap
);
}
}
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"风站 左侧风机信息列表"
)
@GetMapping
(
"/getFanInfoByPage"
)
public
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
getFanInfoByPage
(
@RequestParam
(
value
=
"stationId"
,
required
=
false
)
String
stationId
)
{
StationBasic
stationBasic
=
stationBasicMapper
.
selectById
(
stationId
);
List
<
Map
<
String
,
Object
>>
equipmentList
=
idxBizFanHealthIndexMapper
.
getFanInfoByPage
(
stationBasic
.
getFanGatewayId
());
List
<
Map
<
String
,
Object
>>
healthInfoList
=
idxBizFanHealthIndexMapper
.
getFanHealthInfoList
(
stationBasic
.
getFanGatewayId
());
Map
<
Object
,
Double
>
equipmentHealthIndexMap
=
healthInfoList
.
stream
().
collect
(
Collectors
.
toMap
(
t
->
t
.
get
(
"equipmentName"
),
t
->
Double
.
parseDouble
(
t
.
get
(
"avgHealthIndex"
).
toString
())));
equipmentList
.
forEach
(
item
->
{
Double
equipmentHealthScore
=
equipmentHealthIndexMap
.
getOrDefault
(
item
.
get
(
"equipmentName"
),
100.0
);
if
(
100.0
==
equipmentHealthScore
)
{
item
.
put
(
"warningName"
,
"安全"
);
}
else
{
LambdaQueryWrapper
<
IdxBizFanHealthLevel
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
IdxBizFanHealthLevel:
:
getAnalysisObjType
,
"设备"
);
query
.
eq
(
IdxBizFanHealthLevel:
:
getStatus
,
stationBasic
.
getStationName
());
query
.
le
(
IdxBizFanHealthLevel:
:
getGroupLowerLimit
,
equipmentHealthScore
);
query
.
ge
(
IdxBizFanHealthLevel:
:
getGroupUpperLimit
,
equipmentHealthScore
);
IdxBizFanHealthLevel
idxBizFanHealthLevel
=
idxBizFanHealthLevelMapper
.
selectOne
(
query
);
item
.
put
(
"warningName"
,
idxBizFanHealthLevel
.
getHealthLevel
());
}
item
.
put
(
"healthIndex"
,
equipmentHealthScore
);
String
equipmentName
=
CharSequenceUtil
.
replace
(
item
.
get
(
"equipmentName"
).
toString
(),
"集电Ⅳ线#"
,
""
);
String
replace
=
CharSequenceUtil
.
replace
(
equipmentName
,
"集电Ⅲ线#"
,
""
);
String
replace1
=
CharSequenceUtil
.
replace
(
replace
,
"集电Ⅱ线#"
,
""
);
String
replace2
=
CharSequenceUtil
.
replace
(
replace1
,
"集电Ⅰ线#"
,
""
);
String
replace3
=
CharSequenceUtil
.
replace
(
replace2
,
"风机系统"
,
""
);
item
.
put
(
"equipmentNameSimple"
,
replace3
);
});
Page
<
Map
<
String
,
Object
>>
mapPage
=
new
Page
<>();
mapPage
.
setSize
(
equipmentList
.
size
());
mapPage
.
setTotal
(
equipmentList
.
size
());
mapPage
.
setCurrent
(
1
);
mapPage
.
setRecords
(
equipmentList
);
return
ResponseHelper
.
buildResponse
(
mapPage
);
}
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"风站 风机子系统状态指数 柱状图"
)
@GetMapping
(
"/getSubSystemInfo"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getSubSystemInfo
(
@RequestParam
(
value
=
"equipmentName"
,
required
=
false
)
String
equipmentName
,
@RequestParam
(
value
=
"stationId"
,
required
=
false
)
String
stationId
)
{
StationBasic
stationBasic
=
stationBasicMapper
.
selectById
(
stationId
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
List
<
Map
<
String
,
Object
>>
healthListInfo
=
idxBizFanHealthIndexMapper
.
getSubSystemInfo
(
equipmentName
,
stationBasic
.
getFanGatewayId
());
Map
<
Object
,
Double
>
equipmentHealthIndexMap
=
healthListInfo
.
stream
().
collect
(
Collectors
.
toMap
(
t
->
t
.
get
(
"subSystem"
),
t
->
Double
.
parseDouble
(
t
.
get
(
"healthIndex"
).
toString
())));
List
<
Object
>
seriesData
=
new
ArrayList
<>();
List
<
Object
>
axisData
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
equipmentList
=
idxBizFanHealthIndexMapper
.
getSumSystemListByEquipment
(
stationBasic
.
getFanGatewayId
(),
equipmentName
);
equipmentList
.
forEach
(
item
->
{
Double
equipmentHealthScore
=
equipmentHealthIndexMap
.
getOrDefault
(
item
.
get
(
"subSystem"
),
100.0
);
seriesData
.
add
(
equipmentHealthScore
);
axisData
.
add
(
item
.
get
(
"subSystem"
));
});
resultMap
.
put
(
"axisData"
,
axisData
);
resultMap
.
put
(
"seriesData"
,
seriesData
);
return
ResponseHelper
.
buildResponse
(
resultMap
);
}
@TycloudOperation
(
needAuth
=
false
,
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"该子系统各指标预警 - 风站中间 下方列表"
)
@GetMapping
(
"/getSubSystemPointInfo"
)
public
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
getSubSystemPointInfo
(
@RequestParam
(
value
=
"subSystem"
,
required
=
false
)
String
subSystem
,
@RequestParam
(
value
=
"stationId"
,
required
=
false
)
String
stationId
)
{
StationBasic
stationBasic
=
stationBasicMapper
.
selectById
(
stationId
);
List
<
Map
<
String
,
Object
>>
healthListInfo
=
idxBizFanHealthIndexMapper
.
getHealthInfoBySubSystem
(
subSystem
,
stationBasic
.
getFanGatewayId
());
Map
<
Object
,
Double
>
equipmentHealthIndexMap
=
healthListInfo
.
stream
().
collect
(
Collectors
.
toMap
(
t
->
t
.
get
(
"pointName"
),
t
->
Double
.
parseDouble
(
t
.
get
(
"healthIndex"
).
toString
())));
List
<
Map
<
String
,
Object
>>
pointNameList
=
idxBizFanHealthIndexMapper
.
getPointNameListBySumSystem
(
stationBasic
.
getFanGatewayId
(),
subSystem
);
pointNameList
.
forEach
(
item
->
{
Double
equipmentHealthScore
=
equipmentHealthIndexMap
.
getOrDefault
(
item
.
get
(
"pointName"
),
100.0
);
if
(
100.0
==
equipmentHealthScore
)
{
item
.
put
(
"warningName"
,
"安全"
);
}
else
{
LambdaQueryWrapper
<
IdxBizFanHealthLevel
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
IdxBizFanHealthLevel:
:
getAnalysisObjType
,
"设备"
);
query
.
eq
(
IdxBizFanHealthLevel:
:
getStatus
,
stationBasic
.
getStationName
());
query
.
le
(
IdxBizFanHealthLevel:
:
getGroupLowerLimit
,
equipmentHealthScore
);
query
.
ge
(
IdxBizFanHealthLevel:
:
getGroupUpperLimit
,
equipmentHealthScore
);
IdxBizFanHealthLevel
idxBizFanHealthLevel
=
idxBizFanHealthLevelMapper
.
selectOne
(
query
);
item
.
put
(
"warningName"
,
idxBizFanHealthLevel
.
getHealthLevel
());
}
item
.
put
(
"healthIndex"
,
equipmentHealthScore
);
});
Page
<
Map
<
String
,
Object
>>
mapPage
=
new
Page
<>();
mapPage
.
setSize
(
pointNameList
.
size
());
mapPage
.
setTotal
(
pointNameList
.
size
());
mapPage
.
setCurrent
(
1
);
mapPage
.
setRecords
(
pointNameList
);
return
ResponseHelper
.
buildResponse
(
mapPage
);
}
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/dto/ESEquipmentsDTO.java
0 → 100644
View file @
6c07a322
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
dto
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ESEquipmentsDTO
{
private
String
id
;
private
String
address
;
private
String
dataType
;
private
String
equipmentSpecificName
;
private
String
gatewayId
;
private
String
isAlarm
;
private
Date
createdTime
;
private
String
unit
;
private
String
value
;
private
Float
valueF
;
private
String
valueLabel
;
private
String
traceId
;
private
String
equipmentIndexName
;
private
String
equipmentNumber
;
private
String
frontModule
;
private
String
systemType
;
private
String
pictureName
;
private
String
displayName
;
private
String
state
;
private
String
color
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/entity/IdxBizFanHealthIndex.java
View file @
6c07a322
...
@@ -153,4 +153,10 @@ public class IdxBizFanHealthIndex {
...
@@ -153,4 +153,10 @@ public class IdxBizFanHealthIndex {
@TableField
(
"ANOMALY"
)
@TableField
(
"ANOMALY"
)
private
Double
ANOMALY
;
private
Double
ANOMALY
;
/**
* 分析变量名称
*/
@TableField
(
"POINT_NAME"
)
private
String
pointName
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/entity/IdxBizPvHealthIndex.java
View file @
6c07a322
...
@@ -162,4 +162,11 @@ public class IdxBizPvHealthIndex{
...
@@ -162,4 +162,11 @@ public class IdxBizPvHealthIndex{
@TableField
(
"ANOMALY"
)
@TableField
(
"ANOMALY"
)
private
Double
ANOMALY
;
private
Double
ANOMALY
;
/**
* 分析变量名称
*/
@TableField
(
"POINT_NAME"
)
private
String
pointName
;
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/mapper2/IdxBizFanHealthIndexMapper.java
View file @
6c07a322
...
@@ -37,4 +37,16 @@ public interface IdxBizFanHealthIndexMapper extends BaseMapper<IdxBizFanHealthIn
...
@@ -37,4 +37,16 @@ public interface IdxBizFanHealthIndexMapper extends BaseMapper<IdxBizFanHealthIn
List
<
Map
<
String
,
Object
>>
getAllEquipAlarmInfoAnalysisByArea
(
@Param
(
"areaCode"
)
String
areaCode
);
List
<
Map
<
String
,
Object
>>
getAllEquipAlarmInfoAnalysisByArea
(
@Param
(
"areaCode"
)
String
areaCode
);
List
<
Map
<
String
,
Object
>>
getSubSystemInfo
(
@Param
(
"equipmentName"
)
String
equipmentName
,
@Param
(
"gatewayId"
)
String
gatewayId
);
List
<
Map
<
String
,
Object
>>
getFanInfoByPage
(
@Param
(
"gatewayId"
)
String
gatewayId
);
List
<
Map
<
String
,
Object
>>
getFanHealthInfoList
(
@Param
(
"gatewayId"
)
String
gatewayId
);
List
<
Map
<
String
,
Object
>>
getSumSystemListByEquipment
(
@Param
(
"gatewayId"
)
String
gatewayId
,
@Param
(
"equipmentName"
)
String
equipmentName
);
List
<
Map
<
String
,
Object
>>
getPointNameListBySumSystem
(
@Param
(
"gatewayId"
)
String
gatewayId
,
@Param
(
"subSystem"
)
String
subSystem
);
List
<
Map
<
String
,
Object
>>
getHealthInfoBySubSystem
(
@Param
(
"subSystem"
)
String
subSystem
,
@Param
(
"gatewayId"
)
String
gatewayId
);
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/CommonServiceImpl.java
View file @
6c07a322
...
@@ -27,6 +27,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
...
@@ -27,6 +27,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import
org.springframework.data.elasticsearch.core.SearchHit
;
import
org.springframework.data.elasticsearch.core.SearchHit
;
import
org.springframework.data.elasticsearch.core.SearchHits
;
import
org.springframework.data.elasticsearch.core.SearchHits
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.data.elasticsearch.core.query.Query
;
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
;
...
@@ -1225,4 +1226,41 @@ public class CommonServiceImpl {
...
@@ -1225,4 +1226,41 @@ public class CommonServiceImpl {
}
}
}
}
}
}
/**
* 根据查询条件获取列表信息
*
* @param mustQuerCondtion
* @param shouldQuerCondtion
* @param tClass
* @param <T>
* @return
*/
public
<
T
>
List
<
T
>
getListDataByCondtions
(
Map
<
String
,
List
<
String
>>
mustQuerCondtion
,
Map
<
String
,
String
>
shouldQuerCondtion
,
Class
<
T
>
tClass
)
{
BoolQueryBuilder
queryBuilder
=
QueryBuilders
.
boolQuery
();
if
(!
ObjectUtils
.
isEmpty
(
mustQuerCondtion
))
{
for
(
String
key
:
mustQuerCondtion
.
keySet
())
{
List
<
String
>
va
=
mustQuerCondtion
.
get
(
key
);
queryBuilder
.
must
(
QueryBuilders
.
termsQuery
(
key
,
va
));
}
}
if
(!
ObjectUtils
.
isEmpty
(
shouldQuerCondtion
))
{
for
(
String
key
:
shouldQuerCondtion
.
keySet
())
{
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
key
,
shouldQuerCondtion
.
get
(
key
)));
}
}
Query
query
=
new
NativeSearchQueryBuilder
()
.
withQuery
(
queryBuilder
)
.
build
();
query
.
setTrackTotalHits
(
true
);
SearchHits
search
=
elasticsearchTemplate
.
search
(
query
,
tClass
);
if
(
search
.
hasSearchHits
())
{
List
<
SearchHit
<
T
>>
searchHitList
=
search
.
getSearchHits
();
List
<
T
>
list
=
searchHitList
.
stream
().
map
(
hit
->
hit
.
getContent
()).
collect
(
Collectors
.
toList
());
return
list
;
}
return
null
;
}
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/resources/mapper/cluster/IdxBizFanHealthIndexMapper.xml
View file @
6c07a322
...
@@ -185,9 +185,10 @@
...
@@ -185,9 +185,10 @@
FROM
FROM
idx_biz_fan_health_index
idx_biz_fan_health_index
<where>
<where>
( STATION IS NOT NULL OR STATION != '' )
STATION IS NOT NULL
AND ANALYSIS_TYPE = '按天'
AND STATION != ''
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = DATE_FORMAT( NOW(), "%Y-%m-%d" )
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = DATE_FORMAT( NOW(), "%Y-%m-%d" )
<if
test=
"areaCode != null and areaCode != ''"
>
<if
test=
"areaCode != null and areaCode != ''"
>
AND ARAE = #{areaCode}
AND ARAE = #{areaCode}
</if>
</if>
...
@@ -197,13 +198,14 @@
...
@@ -197,13 +198,14 @@
(
(
SELECT
SELECT
IFNULL( AVG( HEALTH_INDEX ), 0 ) AS avgHealthIndex,
IFNULL( AVG( HEALTH_INDEX ), 0 ) AS avgHealthIndex,
ARAE
STATION
FROM
FROM
idx_biz_pv_health_index
idx_biz_pv_health_index
<where>
<where>
( STATION IS NOT NULL OR STATION != '' )
STATION IS NOT NULL
AND ANALYSIS_TYPE = '按天'
AND STATION != ''
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = DATE_FORMAT( NOW(), "%Y-%m-%d" )
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = DATE_FORMAT( NOW(), "%Y-%m-%d" )
<if
test=
"areaCode != null and areaCode != ''"
>
<if
test=
"areaCode != null and areaCode != ''"
>
AND ARAE = #{areaCode}
AND ARAE = #{areaCode}
</if>
</if>
...
@@ -302,4 +304,111 @@
...
@@ -302,4 +304,111 @@
a.pointName IS NOT NULL
a.pointName IS NOT NULL
AND a.pointName != ''
AND a.pointName != ''
</select>
</select>
<select
id=
"getSubSystemInfo"
resultType=
"java.util.Map"
>
SELECT
IFNULL( HEALTH_INDEX, 0 ) AS healthIndex,
SUB_SYSTEM AS subSystem
FROM
idx_biz_fan_health_index
<where>
STATION IS NOT NULL
AND STATION != ''
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURRENT_DATE
<if
test=
"equipmentName != null and equipmentName != ''"
>
AND EQUIPMENT_NAME = #{equipmentName}
</if>
<if
test=
"gatewayId != null and gatewayId != ''"
>
AND GATEWAY_ID = #{gatewayId}
</if>
</where>
</select>
<select
id=
"getFanInfoByPage"
resultType=
"java.util.Map"
>
SELECT
EQUIPMENT_NAME as equipmentName
FROM
idx_biz_fan_point_process_variable_classification
<where>
EQUIPMENT_NAME LIKE '%#%'
<if
test=
"gatewayId != null and gatewayId != ''"
>
AND GATEWAY_ID = #{gatewayId}
</if>
</where>
GROUP BY
EQUIPMENT_NAME
ORDER BY
RIGHT(EQUIPMENT_NAME, 6) ASC
</select>
<select
id=
"getFanHealthInfoList"
resultType=
"java.util.Map"
>
SELECT
IFNULL( AVG( HEALTH_INDEX ), 0 ) AS avgHealthIndex,
EQUIPMENT_NAME as equipmentName
FROM
idx_biz_fan_health_index
<where>
STATION IS NOT NULL
AND STATION != ''
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = DATE_FORMAT( NOW(), "%Y-%m-%d" )
<if
test=
"gatewayId != null and gatewayId != ''"
>
AND GATEWAY_ID = #{gatewayId}
</if>
</where>
GROUP BY
EQUIPMENT_NAME
</select>
<select
id=
"getSumSystemListByEquipment"
resultType=
"java.util.Map"
>
SELECT
SUB_SYSTEM as subSystem
FROM
idx_biz_fan_point_process_variable_classification
<where>
EQUIPMENT_NAME = #{equipmentName}
AND GATEWAY_ID = #{gatewayId}
</where>
GROUP BY
SUB_SYSTEM
</select>
<select
id=
"getPointNameListBySumSystem"
resultType=
"java.util.Map"
>
SELECT
POINT_NAME as pointName
FROM
idx_biz_fan_point_process_variable_classification
<where>
SUB_SYSTEM = #{subSystem}
AND GATEWAY_ID = #{gatewayId}
</where>
GROUP BY
POINT_NAME
</select>
<select
id=
"getHealthInfoBySubSystem"
resultType=
"java.util.Map"
>
SELECT
IFNULL( avg( HEALTH_INDEX ), 0 ) AS healthIndex,
POINT_NAME AS pointName
FROM
idx_biz_fan_health_index
<where>
STATION IS NOT NULL
AND STATION != ''
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURRENT_DATE
AND POINT_NAME IS NOT NULL
AND POINT_NAME != ''
<if
test=
"subSystem != null and subSystem != ''"
>
AND SUB_SYSTEM = #{subSystem}
</if>
<if
test=
"gatewayId != null and gatewayId != ''"
>
AND GATEWAY_ID = #{gatewayId}
</if>
</where>
GROUP BY
POINT_NAME
</select>
</mapper>
</mapper>
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