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
870bdbd9
Commit
870bdbd9
authored
Nov 02, 2023
by
tangwei
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
4656ba5e
d352e924
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
565 additions
and
58 deletions
+565
-58
CommonConstans.java
.../amos/boot/module/jxiop/biz/constants/CommonConstans.java
+13
-1
AnalyseController.java
...s/boot/module/jxiop/biz/controller/AnalyseController.java
+4
-4
TestController.java
...amos/boot/module/jxiop/biz/controller/TestController.java
+27
-11
IdxBizFanPointVarCorrelation.java
...module/jxiop/biz/entity/IdxBizFanPointVarCorrelation.java
+10
-0
IdxBizPvPointVarCorrelation.java
.../module/jxiop/biz/entity/IdxBizPvPointVarCorrelation.java
+12
-0
AlarmInfoDetailServiceImpl.java
...le/jxiop/biz/service/impl/AlarmInfoDetailServiceImpl.java
+376
-37
CommonServiceImpl.java
...boot/module/jxiop/biz/service/impl/CommonServiceImpl.java
+43
-2
FanHealthIndexMapper.java
...boot/module/jxiop/biz/tdMapper2/FanHealthIndexMapper.java
+6
-0
PvHealthIndexMapper.java
.../boot/module/jxiop/biz/tdMapper2/PvHealthIndexMapper.java
+8
-0
FanHealthIndex.java
...n/amos/boot/module/jxiop/biz/tdengine/FanHealthIndex.java
+1
-1
PvHealthIndex.java
...in/amos/boot/module/jxiop/biz/tdengine/PvHealthIndex.java
+1
-1
IndicatorDataMapper.java
...s/boot/module/jxiop/biz/tdmapper/IndicatorDataMapper.java
+2
-0
application-dev.properties
...analyse-biz/src/main/resources/application-dev.properties
+1
-1
FanHealthIndex.xml
...iz/src/main/resources/mapper/tdengine2/FanHealthIndex.xml
+30
-0
PvHealthIndex.xml
...biz/src/main/resources/mapper/tdengine2/PvHealthIndex.xml
+31
-0
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
View file @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
constants
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.HashMap
;
public
class
CommonConstans
{
...
...
@@ -100,7 +103,7 @@ public class CommonConstans {
public
static
final
String
Fourdecimalplaces
=
"%.4f"
;
public
static
final
String
QueryStringFrontMoudleNotKeyWord
=
"frontModule"
;
public
static
final
HashMap
<
String
,
String
>
waringPeriodS
=
new
HashMap
<
String
,
String
>()
{
public
static
final
HashMap
<
String
,
String
>
waringPeriodS
tatus
=
new
HashMap
<
String
,
String
>()
{
{
put
(
"按时刻"
,
"按10分钟周期"
);
...
...
@@ -108,4 +111,13 @@ public class CommonConstans {
put
(
"按天"
,
"按1天周期"
);
}
};
public
static
final
HashMap
<
String
,
String
>
waringPeriodDateFormate
=
new
HashMap
<
String
,
String
>()
{
{
put
(
"按时刻"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
put
(
"按小时"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
put
(
"按天"
,
DatePattern
.
NORM_DATE_PATTERN
);
}
};
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/controller/AnalyseController.java
View file @
870bdbd9
...
...
@@ -235,14 +235,14 @@ public class AnalyseController extends BaseController {
return
ResponseHelper
.
buildResponse
(
commonServiceImpl
.
getInfluxdbDataByConditon
(
stationType
,
pointId
,
startTime
,
endTime
))
;
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"
post
"
,
value
=
"预警详情信息-风机"
,
notes
=
"预警详情信息-风机"
)
@
Pos
tMapping
(
value
=
"/getAlramInfoDetailOfFan"
)
@ApiOperation
(
httpMethod
=
"
GET
"
,
value
=
"预警详情信息-风机"
,
notes
=
"预警详情信息-风机"
)
@
Ge
tMapping
(
value
=
"/getAlramInfoDetailOfFan"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getAlramInfoDetailOfFan
(
@RequestParam
(
required
=
true
)
String
id
){
return
ResponseHelper
.
buildResponse
(
iAlarmInfoDetailService
.
getAlramInfoDetailOfFan
(
id
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"
post
"
,
value
=
"预警详情信息-光伏"
,
notes
=
"预警详情信息-光伏"
)
@
Pos
tMapping
(
value
=
"/getAlramInfoDetailOfPv"
)
@ApiOperation
(
httpMethod
=
"
GET
"
,
value
=
"预警详情信息-光伏"
,
notes
=
"预警详情信息-光伏"
)
@
Ge
tMapping
(
value
=
"/getAlramInfoDetailOfPv"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getAlramInfoDetailOfPv
(
@RequestParam
(
required
=
true
)
String
id
){
return
ResponseHelper
.
buildResponse
(
iAlarmInfoDetailService
.
getAlramInfoDetailOfPv
(
id
));
}
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/controller/TestController.java
View file @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
controller
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IndicatorData
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.impl.CommonServiceImpl
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdMapper2.FanHealthIndexMapper
;
...
...
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
java.util.ArrayList
;
import
java.util.List
;
@RestController
...
...
@@ -61,31 +64,44 @@ public class TestController extends BaseController {
QueryWrapper
<
FanHealthIndex
>
fanHealthIndexQueryWrapper
=
new
QueryWrapper
<>();
List
<
FanHealthIndex
>
fanHealthIndices
=
fanHealthIndexMapper
.
selectList
(
fanHealthIndexQueryWrapper
);
FanHealthIndex
fanHealthIndex
=
new
FanHealthIndex
();
List
<
IdxBizFanHealthIndex
>
list
=
new
ArrayList
<>();
IdxBizFanHealthIndex
fanHealthIndex
=
new
IdxBizFanHealthIndex
();
fanHealthIndex
.
setHealthIndex
(
2.0
);
fanHealthIndex
.
setTs
(
System
.
currentTimeMillis
());
fanHealthIndex
.
setAr
ea
(
"区域"
);
fanHealthIndex
.
setAnalysisEndTime
(
DateUtil
.
now
());
//
fanHealthIndex.setTs(System.currentTimeMillis());
fanHealthIndex
.
setAr
ae
(
"区域"
);
fanHealthIndex
.
setAnalysisEndTime
(
DateUtil
.
date
());
fanHealthIndex
.
setAnalysisObjSeq
(
"2"
);
fanHealthIndex
.
setHealthLevel
(
"2321"
);
fanHealthIndex
.
setHealthIndex
(
25.0
);
fanHealthIndex
.
setAnalysisStartTime
(
DateUtil
.
now
());
fanHealthIndex
.
setAnalysisStartTime
(
DateUtil
.
date
());
fanHealthIndex
.
setAnalysisObjType
(
"21"
);
fanHealthIndex
.
setA
nalysisTime
(
"21"
);
fanHealthIndex
.
setA
nomaly
(
2.0
);
fanHealthIndex
.
setA
NALYSISTIME
(
"21"
);
fanHealthIndex
.
setA
NOMALY
(
2.0
);
fanHealthIndex
.
setEquipmentName
(
"21"
);
fanHealthIndex
.
setGatewayId
(
"213412"
);
fanHealthIndex
.
setPointName
(
"21312"
);
fanHealthIndex
.
setNumber
(
"213"
);
fanHealthIndex
.
setKks
(
"213"
);
fanHealthIndex
.
setRecDate
(
DateUtil
.
now
());
fanHealthIndex
.
setRecDate
(
DateUtil
.
date
());
fanHealthIndex
.
setSubSystem
(
"213421"
);
fanHealthIndex
.
setWeig
ht
(
2.2
);
fanHealthIndex
.
setAnalysisType
(
"
21
"
);
fanHealthIndex
.
setWeig
th
(
2.2
);
fanHealthIndex
.
setAnalysisType
(
"
按时刻
"
);
fanHealthIndex
.
setStation
(
"rwwrrw"
);
fanHealthIndex
.
setIndexAddress
(
"2321"
);
FanHealthIndex
fanHealthIndex1
=
new
FanHealthIndex
();
BeanUtil
.
copyProperties
(
fanHealthIndex
,
fanHealthIndex1
);
fanHealthIndex1
.
setWeight
(
fanHealthIndex
.
getWeigth
());
fanHealthIndex1
.
setAnomaly
(
fanHealthIndex
.
getANOMALY
());
fanHealthIndex1
.
setRecDate
(
DateUtil
.
now
());
fanHealthIndex1
.
setArea
(
fanHealthIndex
.
getArae
());
fanHealthIndex1
.
setAnalysisTime
(
DateUtil
.
now
());
fanHealthIndex1
.
setHealthLevel
(
fanHealthIndex
.
getHealthLevel
());
fanHealthIndex1
.
setKks
(
"123456"
);
ArrayList
<
FanHealthIndex
>
fanHealthIndices1
=
new
ArrayList
<>();
fanHealthIndices1
.
add
(
fanHealthIndex1
);
list
.
add
(
fanHealthIndex
);
// commonService.healthWarningMinuteByFJ();
fanHealthIndexMapper
.
insert
(
fanHealthIndex
);
fanHealthIndexMapper
.
saveBatchHealthIndexList
(
fanHealthIndices1
,
"fan_health_index_moment"
);
}
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/entity/IdxBizFanPointVarCorrelation.java
View file @
870bdbd9
...
...
@@ -138,5 +138,15 @@ public class IdxBizFanPointVarCorrelation{
*/
@TableField
(
"EQUIPMENT_NAME"
)
private
String
equipmentName
;
/**
* 分析变量名称
*/
@TableField
(
"ANALYSIS_POINT_NAME"
)
private
String
analysisPointName
;
/**
* 工况变量名称
*/
@TableField
(
"PROCESS_POINT_NAME"
)
private
String
processPointName
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/entity/IdxBizPvPointVarCorrelation.java
View file @
870bdbd9
...
...
@@ -139,4 +139,16 @@ public class IdxBizPvPointVarCorrelation{
@TableField
(
"EQUIPMENT_NAME"
)
private
String
equipmentName
;
/**
* 分析变量名称
*/
@TableField
(
"ANALYSIS_POINT_NAME"
)
private
String
analysisPointName
;
/**
* 工况变量名称
*/
@TableField
(
"PROCESS_POINT_NAME"
)
private
String
processPointName
;
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/AlarmInfoDetailServiceImpl.java
View file @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
service
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.constants.CommonConstans
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.*
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.*
;
import
com.yeejoin.amos.boot.module.jxiop.biz.service.IAlarmInfoDetailService
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdmapper.IndicatorDataMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
AlarmInfoDetailServiceImpl
implements
IAlarmInfoDetailService
{
@Autowired
IndicatorDataMapper
indicatorDataMapper
;
@Autowired
IdxBizFanWarningRecordMapper
idxBizFanWarningRecordMapper
;
@Autowired
IdxBizPvWarningRecordMapper
idxBizPvWarningRecordMapper
;
@Autowired
IdxBizFanHealthIndexMapper
idxBizFanHealthIndexMapper
;
@Autowired
IdxBizPvHealthIndexMapper
idxBizPvHealthIndexMapper
;
@Autowired
IdxBizFanPointVarCentralValueMapper
idxBizFanPointVarCentralValueMapper
;
@Autowired
IdxBizPvPointVarCentralValueMapper
idxBizPvPointVarCentralValueMapper
;
@Autowired
IdxBizFanPointProcessVariableClassificationMapper
idxBizFanPointProcessVariableClassificationMapper
;
@Autowired
IdxBizPvWarningRecordMapper
idxBizPvWarningRecordMapper
;
IdxBizPvPointProcessVariableClassificationMapper
idxBizPvPointProcessVariableClassificationMapper
;
@Autowired
IdxBizFanPointVarCorrelationMapper
idxBizFanPointVarCorrelationMapper
;
@Autowired
IdxBizPvPointVarCorrelationMapper
idxBizPvPointVarCorrelationMapper
;
@Override
public
Map
<
String
,
Object
>
getAlramInfoDetailOfFan
(
String
id
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
IdxBizFanWarningRecord
idxBizFanWarningRecord
=
idxBizFanWarningRecordMapper
.
selectById
(
id
);
//------------预警信息
result
.
put
(
"warningInfo"
,
getFanAlarmInfoMap
(
idxBizFanWarningRecord
));
// -----------预警趋势
HashMap
<
String
,
Object
>
alarmTrendAndAlarmAbnormalityListResult
=
getFanAlarmTrendAndAlarmAbnormalityList
(
idxBizFanWarningRecord
);
result
.
put
(
"alarmTrend"
,
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"alarmTrend"
));
result
.
put
(
"alarmAbnormalityList"
,
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"alarmAbnormalityList"
));
String
startTime
=
(
String
)
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"startTime"
);
String
endTime
=
(
String
)
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"endTime"
);
//----健康指数来源
List
<
IdxBizFanPointVarCentralValue
>
idxBizFanPointVarCentralValueList
=
idxBizFanPointVarCentralValueMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanPointVarCentralValue
>()
.
eq
(
"ANALYSIS_POINT_ID"
,
idxBizFanWarningRecord
.
getAnalysisPointId
()));
IdxBizFanPointVarCentralValue
idxBizFanPointVarCentralValue
=
new
IdxBizFanPointVarCentralValue
();
if
(
idxBizFanPointVarCentralValueList
.
size
()
<=
0
)
{
return
result
;
}
idxBizFanPointVarCentralValue
=
idxBizFanPointVarCentralValueList
.
get
(
0
);
handlerIdxBizFanPointVarCentralValue
(
idxBizFanPointVarCentralValueList
);
//健康指数来源测点信息
HashMap
<
String
,
String
>
healthPointInfoMap
=
new
HashMap
<>();
healthPointInfoMap
.
put
(
"analysisPointName"
,
idxBizFanPointVarCentralValue
.
getAnalysisPointName
());
healthPointInfoMap
.
put
(
"processPoint1Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint1Name
());
healthPointInfoMap
.
put
(
"processPoint2Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint2Name
());
healthPointInfoMap
.
put
(
"processPoint3Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint3Name
());
result
.
put
(
"healthPointInfo"
,
healthPointInfoMap
);
List
<
IdxBizFanPointProcessVariableClassification
>
idxBizFanPointProcessVariableClassificationList
=
idxBizFanPointProcessVariableClassificationMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanPointProcessVariableClassification
>()
.
in
(
"SEQUENCE_NBR"
,
Arrays
.
asList
(
idxBizFanPointVarCentralValue
.
getAnalysisPointId
(),
idxBizFanPointVarCentralValue
.
getProcessPoint1Id
(),
idxBizFanPointVarCentralValue
.
getProcessPoint2Id
(),
idxBizFanPointVarCentralValue
.
getProcessPoint3Id
())));
String
addresss
=
idxBizFanPointProcessVariableClassificationList
.
stream
()
.
map
(
idxBizFanPointProcessVariableClassification
->
"'"
+
idxBizFanPointProcessVariableClassification
.
getIndexAddress
()
+
"'"
)
.
collect
(
Collectors
.
joining
(
","
));
Map
<
String
,
String
>
idAddressMap
=
idxBizFanPointProcessVariableClassificationList
.
stream
()
.
collect
(
Collectors
.
toMap
(
IdxBizFanPointProcessVariableClassification:
:
getSequenceNbr
,
IdxBizFanPointProcessVariableClassification:
:
getIndexAddress
));
//查询固化数据---------------------
List
<
IndicatorData
>
indicatorDataList
=
indicatorDataMapper
.
selectDataByGatewayIdAndAddressForAlarmInfoDetail
(
idxBizFanPointProcessVariableClassificationList
.
get
(
0
).
getGatewayId
(),
addresss
,
startTime
,
endTime
);
Map
<
String
,
Double
>
indicatorDataListMap
=
new
HashMap
<>(
indicatorDataList
.
size
());
TreeSet
<
String
>
timesindicatorDataList
=
new
TreeSet
<>();
indicatorDataList
.
forEach
(
indicatorData
->
{
String
time
=
DateUtil
.
format
(
indicatorData
.
getCreatedTime
(),
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
)
+
":00"
;
indicatorDataListMap
.
put
(
time
+
"_"
+
indicatorData
.
getAddress
(),
Double
.
valueOf
(
indicatorData
.
getValueF
()));
timesindicatorDataList
.
add
(
time
);
});
//当前值
List
<
HashMap
<
String
,
String
>>
currentValue
=
new
ArrayList
<>();
//训练值
List
<
HashMap
<
String
,
String
>>
trainValue
=
new
ArrayList
<>();
String
analyseValueAddress
=
idAddressMap
.
get
(
idxBizFanPointVarCentralValue
.
getAnalysisPointId
());
String
process1Address
=
idAddressMap
.
get
(
idxBizFanPointVarCentralValue
.
getProcessPoint1Id
());
String
process2Address
=
idAddressMap
.
get
(
idxBizFanPointVarCentralValue
.
getProcessPoint2Id
());
String
process3Address
=
idAddressMap
.
get
(
idxBizFanPointVarCentralValue
.
getProcessPoint3Id
());
timesindicatorDataList
.
forEach
(
s
->
{
HashMap
<
String
,
String
>
currentValueMap
=
new
HashMap
<>();
currentValueMap
.
put
(
"time"
,
s
);
Double
analyseValue
=
indicatorDataListMap
.
get
(
s
+
"_"
+
analyseValueAddress
);
Double
processValue1
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process1Address
);
Double
processValue2
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process2Address
);
Double
processValue3
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process3Address
);
currentValueMap
.
put
(
"analyseValue"
,
String
.
valueOf
(
analyseValue
));
currentValueMap
.
put
(
"processValue1"
,
String
.
valueOf
(
processValue1
));
currentValueMap
.
put
(
"processValue2"
,
String
.
valueOf
(
processValue2
));
currentValueMap
.
put
(
"processValue3"
,
String
.
valueOf
(
processValue3
));
HashMap
<
String
,
String
>
trainValueMap
=
getWorkingConditionCombinationIntervalFan
(
processValue1
,
processValue2
,
processValue3
,
idxBizFanPointVarCentralValueList
);
trainValueMap
.
put
(
"time"
,
s
);
currentValue
.
add
(
currentValueMap
);
trainValue
.
add
(
trainValueMap
);
}
);
result
.
put
(
"currentValue"
,
currentValue
);
result
.
put
(
"trainValue"
,
trainValue
);
//---------------工况组合来源
result
.
put
(
"sourceInfo"
,
getSourceInfoMapFan
(
idxBizFanWarningRecord
));
return
result
;
}
@Override
public
Map
<
String
,
Object
>
getAlramInfoDetailOfPv
(
String
id
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
IdxBizPvWarningRecord
idxBizPvWarningRecord
=
idxBizPvWarningRecordMapper
.
selectById
(
id
);
result
.
put
(
"warningInfo"
,
getPvAlarmInfoMap
(
idxBizPvWarningRecord
));
// -----------预警趋势
HashMap
<
String
,
Object
>
alarmTrendAndAlarmAbnormalityListResult
=
getPvAlarmTrendAndAlarmAbnormalityList
(
idxBizPvWarningRecord
);
result
.
put
(
"alarmTrend"
,
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"alarmTrend"
));
result
.
put
(
"alarmAbnormalityList"
,
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"alarmAbnormalityList"
));
String
startTime
=
(
String
)
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"startTime"
);
String
endTime
=
(
String
)
alarmTrendAndAlarmAbnormalityListResult
.
get
(
"endTime"
);
//----健康指数来源
List
<
IdxBizPvPointVarCentralValue
>
idxBizPvPointVarCentralValueList
=
idxBizPvPointVarCentralValueMapper
.
selectList
(
new
QueryWrapper
<
IdxBizPvPointVarCentralValue
>()
.
eq
(
"ANALYSIS_POINT_ID"
,
idxBizPvWarningRecord
.
getAnalysisPointId
()));
IdxBizPvPointVarCentralValue
idxBizPvPointVarCentralValue
=
new
IdxBizPvPointVarCentralValue
();
if
(
idxBizPvPointVarCentralValueList
.
size
()
<=
0
)
{
return
result
;
}
idxBizPvPointVarCentralValue
=
idxBizPvPointVarCentralValueList
.
get
(
0
);
handlerIdxBizPvPointVarCentralValue
(
idxBizPvPointVarCentralValueList
);
//健康指数来源测点信息
HashMap
<
String
,
String
>
healthPointInfoMap
=
new
HashMap
<>();
healthPointInfoMap
.
put
(
"analysisPointName"
,
idxBizPvPointVarCentralValue
.
getAnalysisPointIdName
());
healthPointInfoMap
.
put
(
"processPoint1Name"
,
idxBizPvPointVarCentralValue
.
getProcessPoint1IdName
());
healthPointInfoMap
.
put
(
"processPoint2Name"
,
idxBizPvPointVarCentralValue
.
getProcessPoint2IdName
());
healthPointInfoMap
.
put
(
"processPoint3Name"
,
idxBizPvPointVarCentralValue
.
getProcessPoint3IdName
());
result
.
put
(
"healthPointInfo"
,
healthPointInfoMap
);
List
<
IdxBizPvPointProcessVariableClassification
>
idxBizPvPointProcessVariableClassificationList
=
idxBizPvPointProcessVariableClassificationMapper
.
selectList
(
new
QueryWrapper
<
IdxBizPvPointProcessVariableClassification
>()
.
in
(
"SEQUENCE_NBR"
,
Arrays
.
asList
(
idxBizPvPointVarCentralValue
.
getAnalysisPointId
(),
idxBizPvPointVarCentralValue
.
getProcessPoint1Id
(),
idxBizPvPointVarCentralValue
.
getProcessPoint2Id
(),
idxBizPvPointVarCentralValue
.
getProcessPoint3Id
())));
String
addresss
=
idxBizPvPointProcessVariableClassificationList
.
stream
()
.
map
(
idxBizFanPointProcessVariableClassification
->
"'"
+
idxBizFanPointProcessVariableClassification
.
getIndexAddress
()
+
"'"
)
.
collect
(
Collectors
.
joining
(
","
));
Map
<
String
,
String
>
idAddressMap
=
idxBizPvPointProcessVariableClassificationList
.
stream
()
.
collect
(
Collectors
.
toMap
(
IdxBizPvPointProcessVariableClassification:
:
getSequenceNbr
,
IdxBizPvPointProcessVariableClassification:
:
getIndexAddress
));
//查询固化数据---------------------
List
<
IndicatorData
>
indicatorDataList
=
indicatorDataMapper
.
selectDataByGatewayIdAndAddressForAlarmInfoDetail
(
idxBizPvPointProcessVariableClassificationList
.
get
(
0
).
getGatewayId
(),
addresss
,
startTime
,
endTime
);
Map
<
String
,
Double
>
indicatorDataListMap
=
new
HashMap
<>(
indicatorDataList
.
size
());
TreeSet
<
String
>
timesindicatorDataList
=
new
TreeSet
<>();
indicatorDataList
.
forEach
(
indicatorData
->
{
String
time
=
DateUtil
.
format
(
indicatorData
.
getCreatedTime
(),
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
)
+
":00"
;
indicatorDataListMap
.
put
(
time
+
"_"
+
indicatorData
.
getAddress
(),
Double
.
valueOf
(
indicatorData
.
getValueF
()));
timesindicatorDataList
.
add
(
time
);
});
//当前值
List
<
HashMap
<
String
,
String
>>
currentValue
=
new
ArrayList
<>();
//训练值
List
<
HashMap
<
String
,
String
>>
trainValue
=
new
ArrayList
<>();
String
analyseValueAddress
=
idAddressMap
.
get
(
idxBizPvPointVarCentralValue
.
getAnalysisPointId
());
String
process1Address
=
idAddressMap
.
get
(
idxBizPvPointVarCentralValue
.
getProcessPoint1Id
());
String
process2Address
=
idAddressMap
.
get
(
idxBizPvPointVarCentralValue
.
getProcessPoint2Id
());
String
process3Address
=
idAddressMap
.
get
(
idxBizPvPointVarCentralValue
.
getProcessPoint3Id
());
timesindicatorDataList
.
forEach
(
s
->
{
HashMap
<
String
,
String
>
currentValueMap
=
new
HashMap
<>();
currentValueMap
.
put
(
"time"
,
s
);
Double
analyseValue
=
indicatorDataListMap
.
get
(
s
+
"_"
+
analyseValueAddress
);
Double
processValue1
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process1Address
);
Double
processValue2
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process2Address
);
Double
processValue3
=
indicatorDataListMap
.
get
(
s
+
"_"
+
process3Address
);
currentValueMap
.
put
(
"analyseValue"
,
String
.
valueOf
(
analyseValue
));
currentValueMap
.
put
(
"processValue1"
,
String
.
valueOf
(
processValue1
));
currentValueMap
.
put
(
"processValue2"
,
String
.
valueOf
(
processValue2
));
currentValueMap
.
put
(
"processValue3"
,
String
.
valueOf
(
processValue3
));
HashMap
<
String
,
String
>
trainValueMap
=
getWorkingConditionCombinationIntervalPv
(
processValue1
,
processValue2
,
processValue3
,
idxBizPvPointVarCentralValueList
);
trainValueMap
.
put
(
"time"
,
s
);
currentValue
.
add
(
currentValueMap
);
trainValue
.
add
(
trainValueMap
);
}
);
result
.
put
(
"currentValue"
,
currentValue
);
result
.
put
(
"trainValue"
,
trainValue
);
//---------------工况组合来源
result
.
put
(
"sourceInfo"
,
getSourceInfoMapPv
(
idxBizPvWarningRecord
));
return
result
;
}
// 获取风机告警信息
public
HashMap
<
String
,
String
>
getFanAlarmInfoMap
(
IdxBizFanWarningRecord
idxBizFanWarningRecord
)
{
HashMap
<
String
,
String
>
alarmInfoMap
=
new
HashMap
<>();
//测点名称
alarmInfoMap
.
put
(
"pointName"
,
idxBizFanWarningRecord
.
getPointName
());
//告警周期
alarmInfoMap
.
put
(
"waringPeriod"
,
idxBizFanWarningRecord
.
getWarningPeriod
(
));
alarmInfoMap
.
put
(
"waringPeriod"
,
CommonConstans
.
waringPeriodStatus
.
get
(
idxBizFanWarningRecord
.
getWarningPeriod
()
));
//告警时间
alarmInfoMap
.
put
(
"waringTime"
,
idxBizFanWarningRecord
.
getRecDate
().
toString
(
));
alarmInfoMap
.
put
(
"waringTime"
,
DateUtil
.
format
(
idxBizFanWarningRecord
.
getRecDate
(),
CommonConstans
.
waringPeriodDateFormate
.
get
(
idxBizFanWarningRecord
.
getWarningPeriod
())
));
//预警等级
alarmInfoMap
.
put
(
"waringLevel"
,
idxBizFanWarningRecord
.
getWarningName
());
//预警触发规则
alarmInfoMap
.
put
(
"waringRule"
,
idxBizFanWarningRecord
.
getCONTENT
());
result
.
put
(
"warningInfo"
,
alarmInfoMap
);
// -----------预警趋势
return
alarmInfoMap
;
}
// 获取光伏告警信息
public
HashMap
<
String
,
String
>
getPvAlarmInfoMap
(
IdxBizPvWarningRecord
idxBizPvWarningRecord
)
{
HashMap
<
String
,
String
>
alarmInfoMap
=
new
HashMap
<>();
//测点名称
alarmInfoMap
.
put
(
"pointName"
,
idxBizPvWarningRecord
.
getPointName
());
//告警周期
alarmInfoMap
.
put
(
"waringPeriod"
,
CommonConstans
.
waringPeriodStatus
.
get
(
idxBizPvWarningRecord
.
getWarningPeriod
()));
//告警时间
alarmInfoMap
.
put
(
"waringTime"
,
DateUtil
.
format
(
idxBizPvWarningRecord
.
getRecDate
(),
CommonConstans
.
waringPeriodDateFormate
.
get
(
idxBizPvWarningRecord
.
getWarningPeriod
())));
//预警等级
alarmInfoMap
.
put
(
"waringLevel"
,
idxBizPvWarningRecord
.
getWarningName
());
//预警触发规则
alarmInfoMap
.
put
(
"waringRule"
,
idxBizPvWarningRecord
.
getCONTENT
());
return
alarmInfoMap
;
}
// 获取风机趋势图与异常度
public
HashMap
<
String
,
Object
>
getFanAlarmTrendAndAlarmAbnormalityList
(
IdxBizFanWarningRecord
idxBizFanWarningRecord
)
{
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
HashMap
<
String
,
List
<
String
>>
alarmTrendMap
=
new
HashMap
<>();
List
<
HashMap
<
String
,
String
>>
alarmAbnormalityList
=
new
ArrayList
<>();
Long
analysisDate
=
idxBizFanWarningRecord
.
getRecDate
().
getTime
()
+
1000
*
60
;
List
<
HashMap
<
String
,
String
>>
alarmAbnormalityList
=
new
ArrayList
<>();
Long
analysisDate
=
idxBizFanWarningRecord
.
getRecDate
().
getTime
()
+
1000
*
60
;
List
<
IdxBizFanHealthIndex
>
idxBizFanHealthIndexList
=
idxBizFanHealthIndexMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanHealthIndex
>()
.
eq
(
"GATEWAY_ID"
,
idxBizFanWarningRecord
.
getGatewayId
())
.
eq
(
"INDEX_ADDRESS"
,
idxBizFanWarningRecord
.
getIndexAddress
())
...
...
@@ -53,49 +244,197 @@ public class AlarmInfoDetailServiceImpl implements IAlarmInfoDetailService {
.
last
(
"limit 30"
));
List
<
String
>
xDatas
=
new
ArrayList
<>();
List
<
String
>
yDatas
=
new
ArrayList
<>();
for
(
int
i
=
idxBizFanHealthIndexList
.
size
()
-
1
;
i
>
0
;
i
--)
{
HashMap
<
String
,
String
>
alarmAbnormalityItem
=
new
HashMap
<>();
String
startTime
=
""
;
String
endTime
=
""
;
for
(
int
i
=
idxBizFanHealthIndexList
.
size
()
-
1
;
i
>=
0
;
i
--)
{
HashMap
<
String
,
String
>
alarmAbnormalityItem
=
new
HashMap
<>();
IdxBizFanHealthIndex
idxBizFanHealthIndex
=
idxBizFanHealthIndexList
.
get
(
i
);
xDatas
.
add
(
idxBizFanHealthIndex
.
getANALYSISTIME
());
yDatas
.
add
(
String
.
valueOf
(
idxBizFanHealthIndex
.
getHealthIndex
()));
alarmAbnormalityItem
.
put
(
"time"
,
idxBizFanHealthIndex
.
getANALYSISTIME
());
alarmAbnormalityItem
.
put
(
"time"
,
idxBizFanHealthIndex
.
getANALYSISTIME
());
alarmAbnormalityItem
.
put
(
"abnormal"
,
String
.
valueOf
(
idxBizFanHealthIndex
.
getANOMALY
()));
alarmAbnormalityItem
.
put
(
"healthValue"
,
String
.
valueOf
(
idxBizFanHealthIndex
.
getHealthIndex
()));
alarmAbnormalityItem
.
put
(
"healthValue"
,
String
.
valueOf
(
idxBizFanHealthIndex
.
getHealthIndex
()));
if
(
i
==
0
)
{
endTime
=
idxBizFanHealthIndex
.
getANALYSISTIME
();
}
if
(
i
==
2
)
{
startTime
=
idxBizFanHealthIndex
.
getANALYSISTIME
();
}
alarmAbnormalityList
.
add
(
alarmAbnormalityItem
);
}
alarmTrendMap
.
put
(
"xDatas"
,
xDatas
);
alarmTrendMap
.
put
(
"yDatas"
,
yDatas
);
result
.
put
(
"alarmTrend"
,
alarmTrendMap
);
alarmTrendMap
.
put
(
"xDatas"
,
xDatas
);
alarmTrendMap
.
put
(
"yDatas"
,
yDatas
);
result
.
put
(
"alarmTrend"
,
alarmTrendMap
);
// 异常度 alarmAbnormality
result
.
put
(
"alarmAbnormalityList"
,
alarmAbnormalityList
.
subList
(
alarmAbnormalityList
.
size
()-
3
,
alarmAbnormalityList
.
size
()));
//----健康指数来源
List
<
IdxBizFanPointVarCentralValue
>
idxBizFanPointVarCentralValueList
=
idxBizFanPointVarCentralValueMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanPointVarCentralValue
>().
eq
(
"ANALYSIS_POINT_ID"
,
idxBizFanWarningRecord
.
getAnalysisPointId
()));
IdxBizFanPointVarCentralValue
idxBizFanPointVarCentralValue
=
new
IdxBizFanPointVarCentralValue
();
if
(
idxBizFanPointVarCentralValueList
.
size
()<=
0
){
result
.
put
(
"alarmAbnormalityList"
,
alarmAbnormalityList
.
subList
(
alarmAbnormalityList
.
size
()
-
3
,
alarmAbnormalityList
.
size
()));
result
.
put
(
"startTime"
,
startTime
);
result
.
put
(
"endTime"
,
endTime
);
return
result
;
}
idxBizFanPointVarCentralValue
=
idxBizFanPointVarCentralValueList
.
get
(
0
);
//健康指数来源测点信息
HashMap
<
String
,
String
>
healthPointInfoMap
=
new
HashMap
<>();
healthPointInfoMap
.
put
(
"analysisPointName"
,
idxBizFanPointVarCentralValue
.
getAnalysisPointName
());
healthPointInfoMap
.
put
(
"processPoint1Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint1Name
());
healthPointInfoMap
.
put
(
"processPoint2Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint2Name
());
healthPointInfoMap
.
put
(
"processPoint3Name"
,
idxBizFanPointVarCentralValue
.
getProcessPoint3Name
());
result
.
put
(
"healthPointInfo"
,
healthPointInfoMap
);
List
<
IdxBizFanPointProcessVariableClassification
>
idxBizFanPointProcessVariableClassificationList
=
idxBizFanPointProcessVariableClassificationMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanPointProcessVariableClassification
>().
in
(
"SEQUENCE_NBR"
,
Arrays
.
asList
(
idxBizFanPointVarCentralValue
.
getAnalysisPointId
(),
idxBizFanPointVarCentralValue
.
getProcessPoint1Id
(),
idxBizFanPointVarCentralValue
.
getProcessPoint2Id
(),
idxBizFanPointVarCentralValue
.
getProcessPoint3Id
())));
// List<IndicatorData> indicatorDataList =
//当前值
// 获取光伏趋势图与异常度
public
HashMap
<
String
,
Object
>
getPvAlarmTrendAndAlarmAbnormalityList
(
IdxBizPvWarningRecord
idxBizPvWarningRecord
)
{
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
HashMap
<
String
,
List
<
String
>>
alarmTrendMap
=
new
HashMap
<>();
List
<
HashMap
<
String
,
String
>>
alarmAbnormalityList
=
new
ArrayList
<>();
Long
analysisDate
=
idxBizPvWarningRecord
.
getRecDate
().
getTime
()
+
1000
*
60
;
List
<
IdxBizPvHealthIndex
>
idxBizPvHealthIndexList
=
idxBizPvHealthIndexMapper
.
selectList
(
new
QueryWrapper
<
IdxBizPvHealthIndex
>()
.
eq
(
"GATEWAY_ID"
,
idxBizPvWarningRecord
.
getGatewayId
())
.
eq
(
"INDEX_ADDRESS"
,
idxBizPvWarningRecord
.
getIndexAddress
())
.
le
(
"ANALYSIS_TIME"
,
DateUtil
.
formatDateTime
(
new
Date
(
analysisDate
)))
.
orderByDesc
(
"ANALYSIS_TIME"
)
.
last
(
"limit 30"
));
List
<
String
>
xDatas
=
new
ArrayList
<>();
List
<
String
>
yDatas
=
new
ArrayList
<>();
String
startTime
=
""
;
String
endTime
=
""
;
for
(
int
i
=
idxBizPvHealthIndexList
.
size
()
-
1
;
i
>=
0
;
i
--)
{
HashMap
<
String
,
String
>
alarmAbnormalityItem
=
new
HashMap
<>();
IdxBizPvHealthIndex
idxBizPvHealthIndex
=
idxBizPvHealthIndexList
.
get
(
i
);
xDatas
.
add
(
idxBizPvHealthIndex
.
getANALYSISTIME
());
yDatas
.
add
(
String
.
valueOf
(
idxBizPvHealthIndex
.
getHealthIndex
()));
alarmAbnormalityItem
.
put
(
"time"
,
idxBizPvHealthIndex
.
getANALYSISTIME
());
alarmAbnormalityItem
.
put
(
"abnormal"
,
String
.
valueOf
(
idxBizPvHealthIndex
.
getANOMALY
()));
alarmAbnormalityItem
.
put
(
"healthValue"
,
String
.
valueOf
(
idxBizPvHealthIndex
.
getHealthIndex
()));
if
(
i
==
0
)
{
endTime
=
idxBizPvHealthIndex
.
getANALYSISTIME
();
}
if
(
i
==
2
)
{
startTime
=
idxBizPvHealthIndex
.
getANALYSISTIME
();
}
alarmAbnormalityList
.
add
(
alarmAbnormalityItem
);
}
alarmTrendMap
.
put
(
"xDatas"
,
xDatas
);
alarmTrendMap
.
put
(
"yDatas"
,
yDatas
);
result
.
put
(
"alarmTrend"
,
alarmTrendMap
);
// 异常度 alarmAbnormality
result
.
put
(
"alarmAbnormalityList"
,
alarmAbnormalityList
.
subList
(
alarmAbnormalityList
.
size
()
-
3
,
alarmAbnormalityList
.
size
()));
result
.
put
(
"startTime"
,
startTime
);
result
.
put
(
"endTime"
,
endTime
);
return
result
;
}
//处理风机-相关性区间
public
void
handlerIdxBizFanPointVarCentralValue
(
List
<
IdxBizFanPointVarCentralValue
>
idxBizFanPointVarCentralValueList
)
{
idxBizFanPointVarCentralValueList
.
forEach
(
idxBizFanPointVarCentralValue1
->
{
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getProcess1Min
()))
{
idxBizFanPointVarCentralValue1
.
setProcess1Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getProcess2Min
()))
{
idxBizFanPointVarCentralValue1
.
setProcess2Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getProcess3Min
()))
{
idxBizFanPointVarCentralValue1
.
setProcess3Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getProcess1Max
()))
{
idxBizFanPointVarCentralValue1
.
setProcess1Max
(
Double
.
POSITIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getPorcess2Max
()))
{
idxBizFanPointVarCentralValue1
.
setPorcess2Max
(
Double
.
POSITIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizFanPointVarCentralValue1
.
getProcess3Max
()))
{
idxBizFanPointVarCentralValue1
.
setProcess3Max
(
Double
.
POSITIVE_INFINITY
);
}
});
}
//处理光伏-相关性区间
public
void
handlerIdxBizPvPointVarCentralValue
(
List
<
IdxBizPvPointVarCentralValue
>
idxBizPvPointVarCentralValueList
)
{
idxBizPvPointVarCentralValueList
.
forEach
(
idxBizPvPointVarCentralValue1
->
{
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess1Min
()))
{
idxBizPvPointVarCentralValue1
.
setProcess1Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess2Min
()))
{
idxBizPvPointVarCentralValue1
.
setProcess2Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess3Min
()))
{
idxBizPvPointVarCentralValue1
.
setProcess3Min
(
Double
.
NEGATIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess1Max
()))
{
idxBizPvPointVarCentralValue1
.
setProcess1Max
(
Double
.
POSITIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess2Max
()))
{
idxBizPvPointVarCentralValue1
.
setProcess2Max
(
Double
.
POSITIVE_INFINITY
);
}
if
(
ObjectUtils
.
isEmpty
(
idxBizPvPointVarCentralValue1
.
getProcess3Max
()))
{
idxBizPvPointVarCentralValue1
.
setProcess3Max
(
Double
.
POSITIVE_INFINITY
);
}
});
}
//训练值
//根据工况变量值获取分析变量的中心值、标准值、以及工况组合区间值-风机
public
HashMap
<
String
,
String
>
getWorkingConditionCombinationIntervalFan
(
Double
processPoint1Value
,
Double
processPoint2Value
,
Double
processPoint3Value
,
List
<
IdxBizFanPointVarCentralValue
>
idxBizFanPointVarCentralValueList
)
{
HashMap
<
String
,
String
>
result
=
new
HashMap
<>();
IdxBizFanPointVarCentralValue
idxBizFanPointVarCentralValue
=
idxBizFanPointVarCentralValueList
.
stream
()
.
filter
(
idxBizFanPointVarCentralValue1
->
processPoint1Value
>=
idxBizFanPointVarCentralValue1
.
getProcess1Min
()
&&
processPoint1Value
<=
idxBizFanPointVarCentralValue1
.
getProcess1Max
()
&&
processPoint2Value
>=
idxBizFanPointVarCentralValue1
.
getProcess2Min
()
&&
processPoint2Value
<=
idxBizFanPointVarCentralValue1
.
getPorcess2Max
()
&&
processPoint3Value
>=
idxBizFanPointVarCentralValue1
.
getProcess3Min
()
&&
processPoint3Value
<=
idxBizFanPointVarCentralValue1
.
getProcess3Max
()
).
collect
(
Collectors
.
toList
()).
get
(
0
);
//异常度
result
.
put
(
"analysisCenterValue"
,
String
.
valueOf
(
idxBizFanPointVarCentralValue
.
getAnalysisCenterValue
()));
result
.
put
(
"analysisStdDev"
,
String
.
valueOf
(
idxBizFanPointVarCentralValue
.
getAnalysisStdDev
()));
result
.
put
(
"WorkingConditionCombinationInterval"
,
(
idxBizFanPointVarCentralValue
.
getProcess1Min
()
+
":"
+
idxBizFanPointVarCentralValue
.
getProcess1Max
()
+
","
+
idxBizFanPointVarCentralValue
.
getProcess2Min
()
+
":"
+
idxBizFanPointVarCentralValue
.
getPorcess2Max
()
+
","
+
idxBizFanPointVarCentralValue
.
getProcess3Min
()
+
":"
+
idxBizFanPointVarCentralValue
.
getProcess3Max
()).
replace
(
"Infinity"
,
"∞"
));
return
result
;
}
//根据工况变量值获取分析变量的中心值、标准值、以及工况组合区间值-光伏
public
HashMap
<
String
,
String
>
getWorkingConditionCombinationIntervalPv
(
Double
processPoint1Value
,
Double
processPoint2Value
,
Double
processPoint3Value
,
List
<
IdxBizPvPointVarCentralValue
>
idxBizPvPointVarCentralValueList
)
{
HashMap
<
String
,
String
>
result
=
new
HashMap
<>();
IdxBizPvPointVarCentralValue
idxBizPvPointVarCentralValue
=
idxBizPvPointVarCentralValueList
.
stream
()
.
filter
(
idxBizFanPointVarCentralValue1
->
processPoint1Value
>=
idxBizFanPointVarCentralValue1
.
getProcess1Min
()
&&
processPoint1Value
<=
idxBizFanPointVarCentralValue1
.
getProcess1Max
()
&&
processPoint2Value
>=
idxBizFanPointVarCentralValue1
.
getProcess2Min
()
&&
processPoint2Value
<=
idxBizFanPointVarCentralValue1
.
getProcess2Max
()
&&
processPoint3Value
>=
idxBizFanPointVarCentralValue1
.
getProcess3Min
()
&&
processPoint3Value
<=
idxBizFanPointVarCentralValue1
.
getProcess3Max
()
).
collect
(
Collectors
.
toList
()).
get
(
0
);
result
.
put
(
"analysisCenterValue"
,
String
.
valueOf
(
idxBizPvPointVarCentralValue
.
getAnalysisCenterValue
()));
result
.
put
(
"analysisStdDev"
,
String
.
valueOf
(
idxBizPvPointVarCentralValue
.
getAnalysisStdDev
()));
result
.
put
(
"WorkingConditionCombinationInterval"
,
(
idxBizPvPointVarCentralValue
.
getProcess1Min
()
+
":"
+
idxBizPvPointVarCentralValue
.
getProcess1Max
()
+
","
+
idxBizPvPointVarCentralValue
.
getProcess2Min
()
+
":"
+
idxBizPvPointVarCentralValue
.
getProcess2Max
()
+
","
+
idxBizPvPointVarCentralValue
.
getProcess3Min
()
+
":"
+
idxBizPvPointVarCentralValue
.
getProcess3Max
()).
replace
(
"Infinity"
,
"∞"
));
return
result
;
}
//获取sourceInfoMap-风机
public
HashMap
<
String
,
Object
>
getSourceInfoMapFan
(
IdxBizFanWarningRecord
idxBizFanWarningRecord
)
{
List
<
IdxBizFanPointVarCorrelation
>
idxBizFanPointVarCorrelationList
=
idxBizFanPointVarCorrelationMapper
.
selectList
(
new
QueryWrapper
<
IdxBizFanPointVarCorrelation
>().
eq
(
"EQUIPMENT_NAME"
,
idxBizFanWarningRecord
.
getEquipmentName
()));
Map
<
String
,
Double
>
idxBizFanPointVarCorrelationListValues
=
new
HashMap
<>();
TreeSet
<
String
>
anaylysisPonites
=
new
TreeSet
<>();
TreeSet
<
String
>
processPointes
=
new
TreeSet
<>();
idxBizFanPointVarCorrelationList
.
forEach
(
idxBizFanPointVarCorrelation
->
{
anaylysisPonites
.
add
(
idxBizFanPointVarCorrelation
.
getAnalysisPointName
());
processPointes
.
add
(
idxBizFanPointVarCorrelation
.
getProcessPointName
());
idxBizFanPointVarCorrelationListValues
.
put
(
idxBizFanPointVarCorrelation
.
getAnalysisPointName
()
+
"_"
+
idxBizFanPointVarCorrelation
.
getProcessPointName
(),
idxBizFanPointVarCorrelation
.
getCorrelationCoefficient
());
}
);
HashMap
<
String
,
Object
>
sourceInfoMap
=
new
HashMap
<>();
sourceInfoMap
.
put
(
"xDatas"
,
processPointes
);
sourceInfoMap
.
put
(
"yDatas"
,
anaylysisPonites
);
sourceInfoMap
.
put
(
"values"
,
idxBizFanPointVarCorrelationListValues
);
return
sourceInfoMap
;
}
@Override
public
Map
<
String
,
Object
>
getAlramInfoDetailOfPv
(
String
id
)
{
return
null
;
//获取sourceInfoMap-光伏
public
HashMap
<
String
,
Object
>
getSourceInfoMapPv
(
IdxBizPvWarningRecord
idxBizPvWarningRecord
)
{
List
<
IdxBizPvPointVarCorrelation
>
idxBizPvPointVarCorrelationList
=
idxBizPvPointVarCorrelationMapper
.
selectList
(
new
QueryWrapper
<
IdxBizPvPointVarCorrelation
>().
eq
(
"EQUIPMENT_NAME"
,
idxBizPvWarningRecord
.
getEquipmentName
()));
Map
<
String
,
Double
>
idxBizPvPointVarCorrelationListValues
=
new
HashMap
<>();
TreeSet
<
String
>
anaylysisPonites
=
new
TreeSet
<>();
TreeSet
<
String
>
processPointes
=
new
TreeSet
<>();
idxBizPvPointVarCorrelationList
.
forEach
(
idxBizPvPointVarCorrelation
->
{
anaylysisPonites
.
add
(
idxBizPvPointVarCorrelation
.
getAnalysisPointName
());
processPointes
.
add
(
idxBizPvPointVarCorrelation
.
getProcessPointName
());
idxBizPvPointVarCorrelationListValues
.
put
(
idxBizPvPointVarCorrelation
.
getAnalysisPointName
()
+
"_"
+
idxBizPvPointVarCorrelation
.
getProcessPointName
(),
idxBizPvPointVarCorrelation
.
getCorrelationCoefficient
());
}
);
HashMap
<
String
,
Object
>
sourceInfoMap
=
new
HashMap
<>();
sourceInfoMap
.
put
(
"xDatas"
,
processPointes
);
sourceInfoMap
.
put
(
"yDatas"
,
anaylysisPonites
);
sourceInfoMap
.
put
(
"values"
,
idxBizPvPointVarCorrelationListValues
);
return
sourceInfoMap
;
}
}
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 @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.event.AnalysisEventListener
;
...
...
@@ -17,6 +20,10 @@ import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableC
import
com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.*
;
import
com.yeejoin.amos.boot.module.jxiop.biz.mapper2.*
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdMapper2.FanHealthIndexMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdMapper2.PvHealthIndexMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdengine.FanHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdengine.PvHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdmapper.IndicatorDataMapper
;
import
javafx.scene.control.Tab
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
...
...
@@ -34,6 +41,7 @@ import org.springframework.data.elasticsearch.core.SearchHit;
import
org.springframework.data.elasticsearch.core.SearchHits
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.data.elasticsearch.core.query.Query
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
...
...
@@ -46,6 +54,7 @@ import tech.tablesaw.api.Table;
import
java.io.File
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.concurrent.*
;
import
java.util.stream.Collectors
;
...
...
@@ -136,6 +145,12 @@ public class CommonServiceImpl {
@Autowired
private
ElasticsearchRestTemplate
elasticsearchTemplate
;
@Autowired
private
FanHealthIndexMapper
fanHealthIndexMapper
;
@Autowired
private
PvHealthIndexMapper
pvHealthIndexMapper
;
/**
* @return
* @deprecated 获取工况变量列表风机
...
...
@@ -1439,6 +1454,7 @@ public class CommonServiceImpl {
return
;
}
Date
time
=
new
Date
();
String
format
=
DateUtil
.
format
(
time
,
DatePattern
.
NORM_DATETIME_PATTERN
);
Calendar
calendar
=
Calendar
.
getInstance
();
List
<
IdxBizFanPointProcessVariableClassificationDto
>
data
=
idxBizFanPointProcessVariableClassificationMapper
.
getInfluxDBData
();
Map
<
String
,
List
<
IdxBizFanPointProcessVariableClassificationDto
>>
maps
=
data
.
stream
().
collect
(
Collectors
.
groupingBy
(
IdxBizFanPointProcessVariableClassificationDto:
:
getGatewayId
));
...
...
@@ -1622,7 +1638,7 @@ public class CommonServiceImpl {
query
.
eq
(
IdxBizFanHealthLevel:
:
getAnalysisObjType
,
"测点"
);
query
.
in
(
IdxBizFanHealthLevel:
:
getStatus
,
stations
);
List
<
IdxBizFanHealthLevel
>
idxBizFanHealthLevels
=
idxBizFanHealthLevelMapper
.
selectList
(
query
);
ArrayList
<
FanHealthIndex
>
fanHealthIndices1
=
new
ArrayList
<>();
for
(
IdxBizFanPointProcessVariableClassification
obj
:
list
)
{
for
(
int
i
=
0
;
i
<
analysisVariableIdArray
.
size
();
i
++)
{
if
(
analysisVariableIdArray
.
get
(
i
).
toString
().
equals
(
obj
.
getSequenceNbr
()))
{
...
...
@@ -1654,10 +1670,22 @@ public class CommonServiceImpl {
}
idxBizFanHealthIndex
.
setANALYSISTIME
(
DateUtils
.
getDateNowString
());
idxBizFanHealthIndexs
.
add
(
idxBizFanHealthIndex
);
FanHealthIndex
fanHealthIndex
=
new
FanHealthIndex
();
BeanUtil
.
copyProperties
(
idxBizFanHealthIndex
,
fanHealthIndex
);
fanHealthIndex
.
setWeight
(
idxBizFanHealthIndex
.
getWeigth
());
fanHealthIndex
.
setAnomaly
(
idxBizFanHealthIndex
.
getANOMALY
());
fanHealthIndex
.
setRecDate
(
DateUtil
.
now
());
fanHealthIndex
.
setArea
(
idxBizFanHealthIndex
.
getArae
());
fanHealthIndex
.
setAnalysisTime
(
DateUtil
.
now
());
fanHealthIndex
.
setHealthLevel
(
fanHealthIndex
.
getHealthLevel
());
fanHealthIndex
.
setKks
(
idxBizFanHealthIndex
.
getKks
());
fanHealthIndex
.
setRecDate
(
format
);
fanHealthIndices1
.
add
(
fanHealthIndex
);
}
}
}
idxBizFanHealthIndexService
.
saveBatch
(
idxBizFanHealthIndexs
);
fanHealthIndexMapper
.
saveBatchHealthIndexList
(
fanHealthIndices1
,
"fan_health_index_moment"
);
}
try
{
...
...
@@ -1682,6 +1710,7 @@ public class CommonServiceImpl {
}
Calendar
calendar
=
Calendar
.
getInstance
();
Date
time
=
new
Date
();
String
format
=
DateUtil
.
format
(
time
,
DatePattern
.
NORM_DATETIME_PATTERN
);
List
<
IdxBizPvPointProcessVariableClassificationDto
>
data
=
idxBizPvPointProcessVariableClassificationMapper
.
getInfluxDBData
();
Map
<
String
,
List
<
IdxBizPvPointProcessVariableClassificationDto
>>
maps
=
data
.
stream
().
collect
(
Collectors
.
groupingBy
(
IdxBizPvPointProcessVariableClassificationDto:
:
getGatewayId
));
// BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
...
...
@@ -1843,6 +1872,7 @@ public class CommonServiceImpl {
List
<
IdxBizPvHealthIndex
>
idxBizPvHealthIndexs
=
new
ArrayList
<>();
ArrayList
<
PvHealthIndex
>
fanHealthIndices1
=
new
ArrayList
<>();
for
(
IdxBizPvPointProcessVariableClassification
obj
:
list
)
{
for
(
int
i
=
0
;
i
<
analysisVariableIdArray
.
size
();
i
++)
{
if
(
analysisVariableIdArray
.
get
(
i
).
toString
().
equals
(
obj
.
getSequenceNbr
()))
{
...
...
@@ -1868,10 +1898,22 @@ public class CommonServiceImpl {
idxBizPvHealthIndex
.
setANOMALY
(
scoreValueArray
.
getDoubleValue
(
i
));
idxBizPvHealthIndex
.
setANALYSISTIME
(
DateUtils
.
getDateNowString
());
idxBizPvHealthIndexs
.
add
(
idxBizPvHealthIndex
);
PvHealthIndex
pvHealthIndex
=
new
PvHealthIndex
();
BeanUtil
.
copyProperties
(
idxBizPvHealthIndex
,
pvHealthIndex
);
pvHealthIndex
.
setWeight
(
idxBizPvHealthIndex
.
getWeigth
());
pvHealthIndex
.
setAnomaly
(
idxBizPvHealthIndex
.
getANOMALY
());
pvHealthIndex
.
setRecDate
(
DateUtil
.
now
());
pvHealthIndex
.
setArea
(
idxBizPvHealthIndex
.
getArae
());
pvHealthIndex
.
setAnalysisTime
(
DateUtil
.
now
());
pvHealthIndex
.
setHealthLevel
(
idxBizPvHealthIndex
.
getHealthLevel
());
pvHealthIndex
.
setKks
(
idxBizPvHealthIndex
.
getKks
());
pvHealthIndex
.
setRecDate
(
format
);
fanHealthIndices1
.
add
(
pvHealthIndex
);
}
}
}
idxBizPvHealthIndexService
.
saveBatch
(
idxBizPvHealthIndexs
);
pvHealthIndexMapper
.
saveBatchHealthIndexList
(
fanHealthIndices1
,
"pv_health_index_moment"
);
}
try
{
logger
.
info
(
"--------------------response: "
+
response
);
...
...
@@ -1879,7 +1921,6 @@ public class CommonServiceImpl {
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
healthStatusIndicatorService
.
healthWarningMinuteGF
(
calendar
,
time
);
}
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/tdMapper2/FanHealthIndexMapper.java
View file @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
tdMapper2
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdengine.FanHealthIndex
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
FanHealthIndexMapper
extends
BaseMapper
<
FanHealthIndex
>
{
int
saveBatchHealthIndexList
(
@Param
(
"list"
)
List
<
FanHealthIndex
>
list
,
@Param
(
"tableName"
)
String
tableName
);
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/tdMapper2/PvHealthIndexMapper.java
View file @
870bdbd9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jxiop
.
biz
.
tdMapper2
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvHealthIndex
;
import
com.yeejoin.amos.boot.module.jxiop.biz.tdengine.PvHealthIndex
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
PvHealthIndexMapper
extends
BaseMapper
<
PvHealthIndex
>
{
int
saveBatchHealthIndexList
(
@Param
(
"list"
)
List
<
PvHealthIndex
>
list
,
@Param
(
"tableName"
)
String
tableName
);
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/tdengine/FanHealthIndex.java
View file @
870bdbd9
...
...
@@ -7,7 +7,7 @@ import java.io.Serializable;
import
java.util.Date
;
@Data
@TableName
(
value
=
"fan_health_index"
,
autoResultMap
=
true
)
@TableName
(
value
=
"fan_health_index
_data
"
,
autoResultMap
=
true
)
public
class
FanHealthIndex
implements
Serializable
{
private
Long
ts
;
private
String
recDate
;
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/tdengine/PvHealthIndex.java
View file @
870bdbd9
...
...
@@ -10,7 +10,7 @@ import lombok.Data;
* @date 2023-08-15
*/
@Data
@TableName
(
value
=
"pv_health_index"
,
autoResultMap
=
true
)
@TableName
(
value
=
"pv_health_index
_data
"
,
autoResultMap
=
true
)
public
class
PvHealthIndex
{
private
Long
ts
;
private
String
recDate
;
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/tdmapper/IndicatorDataMapper.java
View file @
870bdbd9
...
...
@@ -49,5 +49,7 @@ public interface IndicatorDataMapper extends BaseMapper<IndicatorData> {
@Select
(
"select `value`,`value_f`, address, gateway_id from iot_data.indicator_data where ts > NOW()-10m and gateway_id = #{gatewayId}"
)
List
<
IndicatorData
>
selectDataByGatewayIdAndAddress
(
@Param
(
"gatewayId"
)
String
gatewayId
);
@Select
(
"select created_time,`value`,`value_f`, address, gateway_id from iot_data.indicator_data where gateway_id = #{gatewayId} and `address` in ( ${addresses} ) and ts >= #{startTime} and ts <= #{endTime}"
)
List
<
IndicatorData
>
selectDataByGatewayIdAndAddressForAlarmInfoDetail
(
@Param
(
"gatewayId"
)
String
gatewayId
,
@Param
(
"addresses"
)
String
addresses
,
@Param
(
"startTime"
)
String
startTime
,
@Param
(
"endTime"
)
String
endTime
);
}
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/resources/application-dev.properties
View file @
870bdbd9
...
...
@@ -79,7 +79,7 @@ spring.db3.datasource.driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
# 分析专用td数据库 analyse_data
#spring.db4.datasource.type: com.alibaba.druid.pool.DruidDataSource
spring.db4.datasource.url
=
jdbc:TAOS-RS://139.9.170.47:6041/analys
e
_data?user=root&password=taosdata&timezone=GMT%2b8&allowMultiQueries=true
spring.db4.datasource.url
=
jdbc:TAOS-RS://139.9.170.47:6041/analys
is
_data?user=root&password=taosdata&timezone=GMT%2b8&allowMultiQueries=true
spring.db4.datasource.username
=
root
spring.db4.datasource.password
=
taosdata
spring.db4.datasource.driver-class-name
:
com.taosdata.jdbc.rs.RestfulDriver
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/resources/mapper/tdengine2/FanHealthIndex.xml
View file @
870bdbd9
...
...
@@ -2,4 +2,34 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.amos.boot.module.jxiop.biz.tdMapper2.FanHealthIndexMapper"
>
<insert
id=
"saveBatchHealthIndexList"
>
insert into
<foreach
collection=
"list"
separator=
","
item=
"item"
index=
"index"
>
${tableName}
using fan_health_index_data TAGS (#{item.analysisType})
values
(
now + #{index}a,
#{item.recDate, jdbcType=VARCHAR},
#{item.analysisObjType, jdbcType=VARCHAR},
#{item.analysisObjSeq, jdbcType=VARCHAR},
#{item.weight, jdbcType=FLOAT},
#{item.healthIndex, jdbcType=FLOAT},
#{item.healthLevel, jdbcType=VARCHAR},
#{item.analysisStartTime, jdbcType=VARCHAR},
#{item.analysisEndTime, jdbcType=VARCHAR},
#{item.area, jdbcType=VARCHAR},
#{item.station, jdbcType=VARCHAR},
#{item.subSystem, jdbcType=VARCHAR},
#{item.number, jdbcType=VARCHAR},
#{item.equipmentName, jdbcType=VARCHAR},
#{item.gatewayId, jdbcType=VARCHAR},
#{item.indexAddress, jdbcType=VARCHAR},
#{item.anomaly, jdbcType=FLOAT},
#{item.pointName, jdbcType=VARCHAR},
#{item.analysisTime, jdbcType=VARCHAR},
#{item.kks, jdbcType=VARCHAR}
)
</foreach>
</insert>
</mapper>
amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/resources/mapper/tdengine2/PvHealthIndex.xml
View file @
870bdbd9
...
...
@@ -2,4 +2,35 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.amos.boot.module.jxiop.biz.tdMapper2.PvHealthIndexMapper"
>
<insert
id=
"saveBatchHealthIndexList"
>
insert into
<foreach
collection=
"list"
separator=
","
item=
"item"
index=
"index"
>
${tableName}
using pv_health_index_data TAGS (#{item.analysisType})
values
(
now,
#{item.recDate, jdbcType=VARCHAR},
#{item.analysisObjType, jdbcType=VARCHAR},
#{item.analysisObjSeq, jdbcType=VARCHAR},
#{item.weight, jdbcType=FLOAT},
#{item.healthIndex, jdbcType=FLOAT},
#{item.healthLevel, jdbcType=VARCHAR},
#{item.analysisStartTime, jdbcType=VARCHAR},
#{item.analysisEndTime, jdbcType=VARCHAR},
#{item.area, jdbcType=VARCHAR},
#{item.station, jdbcType=VARCHAR},
#{item.subarray, jdbcType=VARCHAR},
#{item.manufacturer, jdbcType=VARCHAR},
#{item.deviceType, jdbcType=VARCHAR},
#{item.equipmentName, jdbcType=VARCHAR},
#{item.gatewayId, jdbcType=VARCHAR},
#{item.indexAddress, jdbcType=VARCHAR},
#{item.anomaly, jdbcType=FLOAT},
#{item.pointName, jdbcType=VARCHAR},
#{item.analysisTime, jdbcType=VARCHAR},
#{item.kks, jdbcType=VARCHAR},
)
</foreach>
</insert>
</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