Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-zx-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
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
Jobs
Commits
Open sidebar
项目统一框架
一体化_户用光伏项目代码
amos-boot-zx-biz
Commits
25ff30a2
Commit
25ff30a2
authored
Feb 23, 2022
by
maoying
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
设备实时数据推送相关代码优化
parent
c55cc223
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
295 additions
and
45 deletions
+295
-45
MqttReceiveServiceImpl.java
...join/equipmanage/service/impl/MqttReceiveServiceImpl.java
+288
-40
CarPropertyMapper.xml
...tem-equip/src/main/resources/mapper/CarPropertyMapper.xml
+6
-4
EquipmentSpecificIndexMapper.xml
...rc/main/resources/mapper/EquipmentSpecificIndexMapper.xml
+1
-1
No files found.
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/MqttReceiveServiceImpl.java
View file @
25ff30a2
package
com
.
yeejoin
.
equipmanage
.
service
.
impl
;
package
com
.
yeejoin
.
equipmanage
.
service
.
impl
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionSynchronization
;
import
org.springframework.transaction.support.TransactionSynchronizationManager
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -11,35 +33,66 @@ import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentDefectAlarm;
...
@@ -11,35 +33,66 @@ import com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentDefectAlarm;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFaultAlarm
;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFaultAlarm
;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm
;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipmentFireAlarm
;
import
com.yeejoin.equipmanage.common.dto.TemperatureAlarmDto
;
import
com.yeejoin.equipmanage.common.dto.TemperatureAlarmDto
;
import
com.yeejoin.equipmanage.common.entity.*
;
import
com.yeejoin.equipmanage.common.entity.CarProperty
;
import
com.yeejoin.equipmanage.common.entity.EquipmentAlarmReportDay
;
import
com.yeejoin.equipmanage.common.entity.EquipmentDetail
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecific
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex
;
import
com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity
;
import
com.yeejoin.equipmanage.common.entity.publics.BaseEntity
;
import
com.yeejoin.equipmanage.common.entity.publics.BaseEntity
;
import
com.yeejoin.equipmanage.common.entity.vo.*
;
import
com.yeejoin.equipmanage.common.entity.vo.CarIndexVo
;
import
com.yeejoin.equipmanage.common.enums.*
;
import
com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentStateVo
;
import
com.yeejoin.equipmanage.common.entity.vo.IndexStateVo
;
import
com.yeejoin.equipmanage.common.enums.AlarmStatusEnum
;
import
com.yeejoin.equipmanage.common.enums.AlarmTypeEnum
;
import
com.yeejoin.equipmanage.common.enums.CarForGisEnum
;
import
com.yeejoin.equipmanage.common.enums.EquipAndCarEnum
;
import
com.yeejoin.equipmanage.common.enums.EquipmentIndexLabelsEnum
;
import
com.yeejoin.equipmanage.common.enums.EquipmentRiskTypeEnum
;
import
com.yeejoin.equipmanage.common.enums.NBalarmEnum
;
import
com.yeejoin.equipmanage.common.enums.RiskLeverForAutoSys
;
import
com.yeejoin.equipmanage.common.enums.TemperatureAlarm
;
import
com.yeejoin.equipmanage.common.enums.TopicEnum
;
import
com.yeejoin.equipmanage.common.enums.TrueOrFalseEnum
;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
import
com.yeejoin.equipmanage.common.utils.EquipmentStateUtil
;
import
com.yeejoin.equipmanage.common.utils.EquipmentStateUtil
;
import
com.yeejoin.equipmanage.common.utils.StringUtil
;
import
com.yeejoin.equipmanage.common.utils.StringUtil
;
import
com.yeejoin.equipmanage.common.vo.*
;
import
com.yeejoin.equipmanage.common.vo.CarIndexGisVo
;
import
com.yeejoin.equipmanage.common.vo.EquipmentIndexLabelsVo
;
import
com.yeejoin.equipmanage.common.vo.EquipmentVo
;
import
com.yeejoin.equipmanage.common.vo.IotDataVO
;
import
com.yeejoin.equipmanage.common.vo.Token
;
import
com.yeejoin.equipmanage.common.vo.TopicEntityVo
;
import
com.yeejoin.equipmanage.fegin.SystemctlFeign
;
import
com.yeejoin.equipmanage.fegin.SystemctlFeign
;
import
com.yeejoin.equipmanage.mapper.*
;
import
com.yeejoin.equipmanage.mapper.CarMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificIndexMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.mapper.FireFightingSystemMapper
;
import
com.yeejoin.equipmanage.remote.RemoteSecurityService
;
import
com.yeejoin.equipmanage.remote.RemoteSecurityService
;
import
com.yeejoin.equipmanage.service.*
;
import
com.yeejoin.equipmanage.service.ICarPropertyService
;
import
com.yeejoin.equipmanage.service.IEquipmentAlarmReportDayService
;
import
com.yeejoin.equipmanage.service.IEquipmentDetailService
;
import
com.yeejoin.equipmanage.service.IEquipmentIndexService
;
import
com.yeejoin.equipmanage.service.IEquipmentService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificIndexSerivce
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificIndexService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce
;
import
com.yeejoin.equipmanage.service.IFireFightingSystemService
;
import
com.yeejoin.equipmanage.service.IMainIotMonitorSerivce
;
import
com.yeejoin.equipmanage.service.ISyncDataService
;
import
com.yeejoin.equipmanage.service.MqttReceiveService
;
import
com.yeejoin.equipmanage.service.MqttSendGateway
;
import
com.yeejoin.equipmanage.utils.BeanUtil
;
import
com.yeejoin.equipmanage.utils.BeanUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionSynchronization
;
import
org.springframework.transaction.support.TransactionSynchronizationManager
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
java.text.SimpleDateFormat
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.*
;
import
java.util.stream.Collectors
;
//import net.sf.json.JSONObject;
//import net.sf.json.JSONObject;
...
@@ -179,7 +232,6 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
...
@@ -179,7 +232,6 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
String
iotCode
=
topic
.
substring
(
0
,
endIndex
).
replace
(
"/"
,
""
);
String
iotCode
=
topic
.
substring
(
0
,
endIndex
).
replace
(
"/"
,
""
);
topicEntity
.
setIotCode
(
iotCode
);
topicEntity
.
setIotCode
(
iotCode
);
List
<
EquipmentSpecificVo
>
eqIotCodeList
=
iEquipmentSpecificSerivce
.
getEquipAndCarIotcodeByIotcode
(
iotCode
);
List
<
EquipmentSpecificVo
>
eqIotCodeList
=
iEquipmentSpecificSerivce
.
getEquipAndCarIotcodeByIotcode
(
iotCode
);
// equipmentSpecificMapper.getEquipOrCarByIotCode(iotCode);
if
(
eqIotCodeList
.
isEmpty
())
{
if
(
eqIotCodeList
.
isEmpty
())
{
log
.
info
(
"该数据{}不存在!"
,
iotCode
);
log
.
info
(
"该数据{}不存在!"
,
iotCode
);
return
;
return
;
...
@@ -797,19 +849,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
...
@@ -797,19 +849,19 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
private
EquipmentAlarmReportDay
addEquipAlarmReportRecord
(
EquipmentSpecificIndex
equipmentSpecificIndex
)
{
private
EquipmentAlarmReportDay
addEquipAlarmReportRecord
(
EquipmentSpecificIndex
equipmentSpecificIndex
)
{
EquipmentAlarmReportDay
equipmentAlarmReportDay
=
new
EquipmentAlarmReportDay
();
EquipmentAlarmReportDay
equipmentAlarmReportDay
=
new
EquipmentAlarmReportDay
();
LambdaQueryWrapper
<
EquipmentSpecific
>
speWrapper
=
new
LambdaQueryWrapper
<>();
//
LambdaQueryWrapper<EquipmentSpecific> speWrapper = new LambdaQueryWrapper<>();
EquipmentSpecific
equipmentSpecific
=
iEquipmentSpecificSerivce
.
getOne
(
speWrapper
.
eq
(
BaseEntity:
:
getId
,
equipmentSpecificIndex
.
getEquipmentSpecificId
()));
//
EquipmentSpecific equipmentSpecific = iEquipmentSpecificSerivce.getOne(speWrapper.eq(BaseEntity::getId, equipmentSpecificIndex.getEquipmentSpecificId()));
LambdaQueryWrapper
<
EquipmentDetail
>
speDetailWrapper
=
new
LambdaQueryWrapper
<>();
//
LambdaQueryWrapper<EquipmentDetail> speDetailWrapper = new LambdaQueryWrapper<>();
EquipmentDetail
detail
=
iEquipmentDetailService
.
getOne
(
speDetailWrapper
.
eq
(
BaseEntity:
:
getId
,
equipmentSpecific
.
getEquipmentDetailId
()));
//
EquipmentDetail detail = iEquipmentDetailService.getOne(speDetailWrapper.eq(BaseEntity::getId, equipmentSpecific.getEquipmentDetailId()));
equipmentAlarmReportDay
.
setOrgCode
(
equipmentSpecific
.
getOrgCode
());
equipmentAlarmReportDay
.
setOrgCode
(
equipmentSpecific
Index
.
getOrgCode
());
equipmentAlarmReportDay
.
setReportDate
(
new
Date
());
equipmentAlarmReportDay
.
setReportDate
(
new
Date
());
equipmentAlarmReportDay
.
setSystemIds
(
equipmentSpecific
.
getSystemId
());
equipmentAlarmReportDay
.
setSystemIds
(
equipmentSpecific
Index
.
getSystemId
());
equipmentAlarmReportDay
.
setLastReportDate
(
new
Date
());
equipmentAlarmReportDay
.
setLastReportDate
(
new
Date
());
equipmentAlarmReportDay
.
setEquipmentSpecificId
(
equipmentSpecific
.
get
Id
());
equipmentAlarmReportDay
.
setEquipmentSpecificId
(
equipmentSpecific
Index
.
getEquipmentSpecific
Id
());
equipmentAlarmReportDay
.
setEquipmentSpecificName
(
detail
.
get
Name
());
equipmentAlarmReportDay
.
setEquipmentSpecificName
(
equipmentSpecificIndex
.
getEquipmentSpecial
Name
());
equipmentAlarmReportDay
.
setEquipmentDetailId
(
detail
.
get
Id
());
equipmentAlarmReportDay
.
setEquipmentDetailId
(
equipmentSpecificIndex
.
getEquipmentDetail
Id
());
equipmentAlarmReportDay
.
setEquipmentId
(
detail
.
getEquipmentId
());
equipmentAlarmReportDay
.
setEquipmentId
(
equipmentSpecificIndex
.
getEquipmentId
());
equipmentAlarmReportDay
.
setEquipmentCode
(
detail
.
ge
tCode
());
equipmentAlarmReportDay
.
setEquipmentCode
(
equipmentSpecificIndex
.
getEquipmen
tCode
());
equipmentAlarmReportDay
.
setIndexTrueNum
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpecificIndex
.
getValue
())
?
1L
:
0L
);
equipmentAlarmReportDay
.
setIndexTrueNum
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpecificIndex
.
getValue
())
?
1L
:
0L
);
equipmentAlarmReportDay
.
setAlarmType
(
equipmentSpecificIndex
.
getTypeCode
());
equipmentAlarmReportDay
.
setAlarmType
(
equipmentSpecificIndex
.
getTypeCode
());
equipmentAlarmReportDay
.
setAlarmTypeName
(
equipmentSpecificIndex
.
getTypeName
());
equipmentAlarmReportDay
.
setAlarmTypeName
(
equipmentSpecificIndex
.
getTypeName
());
...
@@ -872,19 +924,16 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
...
@@ -872,19 +924,16 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentSpecificAlarm
.
setEquipmentSpecificIndexKey
(
equipmentSpecificIndex
.
getNameKey
());
equipmentSpecificAlarm
.
setEquipmentSpecificIndexKey
(
equipmentSpecificIndex
.
getNameKey
());
equipmentSpecificAlarm
.
setEquipmentSpecificIndexValue
(
equipmentSpecificIndex
.
getValue
());
equipmentSpecificAlarm
.
setEquipmentSpecificIndexValue
(
equipmentSpecificIndex
.
getValue
());
equipmentSpecificAlarm
.
setEquipmentSpecificIndexLabel
(
equipmentSpecificIndex
.
getValueLabel
());
equipmentSpecificAlarm
.
setEquipmentSpecificIndexLabel
(
equipmentSpecificIndex
.
getValueLabel
());
if
(
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getTypeCode
()))
{
equipmentSpecificAlarm
.
setType
(
equipmentSpecificIndex
.
getTypeCode
());
equipmentSpecificAlarm
.
setType
(
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
());
}
else
if
(
EquipmentRiskTypeEnum
.
GZ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getTypeCode
()))
{
equipmentSpecificAlarm
.
setType
(
EquipmentRiskTypeEnum
.
GZ
.
getCode
());
}
else
if
(
EquipmentRiskTypeEnum
.
PB
.
getCode
().
equals
(
equipmentSpecificIndex
.
getTypeCode
()))
{
equipmentSpecificAlarm
.
setType
(
EquipmentRiskTypeEnum
.
PB
.
getCode
());
}
equipmentSpecificAlarm
.
setCreateDate
(
new
Date
());
equipmentSpecificAlarm
.
setCreateDate
(
new
Date
());
equipmentSpecificAlarm
.
setUpdateDate
(
new
Date
());
equipmentSpecificAlarm
.
setUpdateDate
(
new
Date
());
equipmentSpecificAlarm
.
setEquipmentCode
(
equipmentSpecificIndex
.
getEquipmentCode
());
equipmentSpecificAlarm
.
setEquipmentCode
(
equipmentSpecificIndex
.
getEquipmentCode
());
equipmentSpecificAlarm
.
setEquipmentId
(
equipmentSpecificIndex
.
getEquipmentId
());
equipmentSpecificAlarm
.
setEquipmentId
(
equipmentSpecificIndex
.
getEquipmentId
());
equipmentSpecificAlarm
.
setEquipmentDetailId
(
equipmentSpecificIndex
.
getEquipmentDetailId
());
equipmentSpecificAlarm
.
setEquipmentDetailId
(
equipmentSpecificIndex
.
getEquipmentDetailId
());
equipmentSpecificAlarm
.
setCode
(
equipmentSpecificIndex
.
getEquipmentSpecificCode
());
equipmentSpecificAlarm
.
setCode
(
equipmentSpecificIndex
.
getEquipmentSpecificCode
());
equipmentSpecificAlarm
.
setEmergencyLevel
(
equipmentSpecificIndex
.
getEmergencyLevel
());
equipmentSpecificAlarm
.
setEmergencyLevelColor
(
equipmentSpecificIndex
.
getEmergencyLevelColor
());
equipmentSpecificAlarm
.
setEmergencyLevelDescribe
(
equipmentSpecificIndex
.
getEmergencyLevelDescribe
());
equipmentSpecificAlarms
.
add
(
equipmentSpecificAlarm
);
equipmentSpecificAlarms
.
add
(
equipmentSpecificAlarm
);
return
equipmentSpecificAlarms
;
return
equipmentSpecificAlarms
;
}
}
...
@@ -972,6 +1021,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
...
@@ -972,6 +1021,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
equipmentSpecificIndex
.
setNameKey
(
AlarmTypeEnum
.
GZGJ
.
getCode
());
equipmentSpecificIndex
.
setNameKey
(
AlarmTypeEnum
.
GZGJ
.
getCode
());
equipmentSpecificIndex
.
setAlamReason
(
TemperatureAlarm
.
getAlarmContent
(
dto
.
getAlarmLevel
(),
dto
.
getAlarmType
(),
dto
.
getAlarmRule
(),
dto
.
getRuleTemperature
(),
dto
.
getTemperature
(),
dto
.
getThermometryUnit
()));
equipmentSpecificIndex
.
setAlamReason
(
TemperatureAlarm
.
getAlarmContent
(
dto
.
getAlarmLevel
(),
dto
.
getAlarmType
(),
dto
.
getAlarmRule
(),
dto
.
getRuleTemperature
(),
dto
.
getTemperature
(),
dto
.
getThermometryUnit
()));
equipmentSpecificIndex
.
setValue
(
"true"
);
equipmentSpecificIndex
.
setValue
(
"true"
);
equipmentSpecificIndex
.
setIsAlarm
(
1
);
temperatureMap
.
remove
(
traceId
);
temperatureMap
.
remove
(
traceId
);
}
}
return
equipmentSpecificIndex
;
return
equipmentSpecificIndex
;
...
@@ -1032,4 +1082,202 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
...
@@ -1032,4 +1082,202 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
}
}
return
flag
;
return
flag
;
}
}
public
void
realTimeDateProcessing
(
TopicEntityVo
topicEntity
,
List
<
IotDataVO
>
iotDatalist
){
String
iotCode
=
topicEntity
.
getIotCode
();
if
(
EquipAndCarEnum
.
equip
.
type
.
equals
(
topicEntity
.
getType
())){
List
<
EquipmentSpecificIndex
>
indexList
=
equipmentSpecificIndexService
.
getEquipmentSpeIndexBySpeIotCode
(
iotCode
);
if
(
ObjectUtils
.
isEmpty
(
indexList
)){
return
;
}
equipRealTimeDate
(
iotDatalist
,
indexList
);
}
else
{
List
<
CarProperty
>
carProperties
=
carPropertyService
.
getCarPropListByIotCode
(
iotCode
);
if
(
ObjectUtils
.
isEmpty
(
carProperties
)){
return
;
}
}
}
private
void
equipRealTimeDate
(
List
<
IotDataVO
>
iotDatalist
,
List
<
EquipmentSpecificIndex
>
indexList
){
List
<
EquipmentSpecificIndex
>
equipmentSpecificIndexList
=
new
ArrayList
<>();
List
<
EquipmentSpecificAlarm
>
equipmentSpecificAlarms
=
new
ArrayList
<>();
List
<
EquipmentSpecificAlarmLog
>
equipmentAlarmLogs
=
new
ArrayList
<>();
List
<
IndexStateVo
>
indexStateList
=
new
ArrayList
<>();
// 存储温度数据至内存中(火眼)
iotDataListToCacheMap
(
iotDatalist
);
iotDatalist
.
forEach
(
iotDataVO
->
{
for
(
EquipmentSpecificIndex
equipmentSpecificIndex
:
indexList
)
{
if
(!
ObjectUtils
.
isEmpty
(
equipmentSpecificIndex
.
getNameKey
())
&&
equipmentSpecificIndex
.
getNameKey
().
toLowerCase
().
equals
(
iotDataVO
.
getKey
().
toLowerCase
()))
{
EquipmentSpecificIndex
equipmentSpeIndex
=
new
EquipmentSpecificIndex
();
BeanUtils
.
copyProperties
(
equipmentSpecificIndex
,
equipmentSpeIndex
);
String
value
=
iotDataVO
.
getValue
().
toString
();
equipmentSpeIndex
.
setValue
(
value
);
equipmentSpeIndex
.
setValueLabel
(
valueTranslate
(
value
,
equipmentSpecificIndex
.
getValueEnum
()));
equipmentSpeIndex
.
setUpdateDate
(
new
Date
());
equipmentSpecificIndexList
.
add
(
equipmentSpeIndex
);
indexStateList
.
add
(
createIndexStateVo
(
equipmentSpeIndex
));
// 向预控系统发送消息
sendEquipSpecIndexToAutosysTopic
(
equipmentSpeIndex
);
//向画布推送
// 添加指标报告
saveEquipmentAlarmReportDay
(
equipmentSpeIndex
);
//火眼数据构造告警指标逻辑
equipmentSpecificIndex
=
handleTemperatureAlarm
(
equipmentSpeIndex
,
iotDatalist
);
//指标告警处理
if
(
1
==
equipmentSpecificIndex
.
getIsAlarm
()){
equipmentSpecificAlarms
.
addAll
(
createIndexAlarmRecord
(
equipmentSpecificIndex
));
}
}
}
});
// 首页性能指标数据订阅
mqttSendGateway
.
sendToMqtt
(
indexTopic
,
JSON
.
toJSONString
(
indexStateList
));
}
private
IndexStateVo
createIndexStateVo
(
EquipmentSpecificIndex
equipmentSpecificIndex
){
IndexStateVo
indexStateVo
=
new
IndexStateVo
();
BeanUtils
.
copyProperties
(
equipmentSpecificIndex
,
indexStateVo
);
indexStateVo
.
setId
(
equipmentSpecificIndex
.
getIotCode
()
+
"_"
+
equipmentSpecificIndex
.
getNameKey
());
indexStateVo
.
setData
(
equipmentSpecificIndex
.
getValue
());
indexStateVo
.
setIndexKey
(
equipmentSpecificIndex
.
getNameKey
());
return
indexStateVo
;
}
public
List
<
EquipmentSpecificAlarm
>
createIndexAlarmRecord
(
EquipmentSpecificIndex
equipmentSpcIndex
)
{
// 处理火眼视频异常
List
<
EquipmentSpecificAlarm
>
equipmentSpecificAlarms
=
new
ArrayList
<>();
EquipmentSpecificAlarm
equipmentSpecificAlarm
=
new
EquipmentSpecificAlarm
();
equipmentSpecificAlarm
.
setSystemIds
(
equipmentSpcIndex
.
getSystemId
());
equipmentSpecificAlarm
.
setSystemCodes
(
this
.
getSystemCodeBySpeId
(
equipmentSpcIndex
.
getSystemId
()));
List
<
EquipmentSpecificAlarm
>
indexAlarms
=
equipmentSpecificAlarmMapper
.
findEquipmentSpecificAlarmByEquipmentSpecificIdAndEquipmentIndexIdAndStatusIstrue
(
equipmentSpcIndex
.
getEquipmentSpecificId
()
,
equipmentSpcIndex
.
getEquipmentIndexId
());
// NB设备告警
if
(
verifyNB
(
equipmentSpcIndex
.
getNameKey
()))
{
return
getNbEquipAlarmList
(
indexAlarms
,
equipmentSpcIndex
,
equipmentSpecificAlarm
);
}
// 报警表新增信息
if
(
ObjectUtils
.
isEmpty
(
indexAlarms
)
&&
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpcIndex
.
getValue
())))
{
addEquipmentSpecificAlarm
(
equipmentSpecificAlarms
,
equipmentSpcIndex
,
equipmentSpecificAlarm
);
}
else
{
// 报警表更新信息
indexAlarms
.
forEach
(
action
->
{
if
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpcIndex
.
getValue
()))
{
// 报警,修改发生频率
action
.
setFrequency
((
action
.
getFrequency
()
+
1
));
}
else
{
// 报警恢复,修改数据为恢复状态
action
.
setRecoveryDate
(
new
Date
());
action
.
setEquipmentSpecificIndexValue
(
TrueOrFalseEnum
.
fake
.
value
);
action
.
setStatus
(
AlarmStatusEnum
.
HF
.
getCode
());
}
action
.
setUpdateDate
(
new
Date
());
// 更新所在系统,设备可能编辑过,更新所在系统、装备名称、装备定义code
action
.
setSystemIds
(
equipmentSpcIndex
.
getSystemId
());
action
.
setSystemCodes
(
this
.
getSystemCodeBySpeId
(
equipmentSpcIndex
.
getSystemId
()));
action
.
setEquipmentSpecificName
(
equipmentSpcIndex
.
getEquipmentSpecificName
());
action
.
setEquipmentCode
(
equipmentSpcIndex
.
getEquipmentCode
());
// 冗余字段,alarm_log表更新时使用
action
.
setCode
(
equipmentSpcIndex
.
getEquipmentSpecificCode
());
equipmentSpecificAlarms
.
add
(
action
);
});
}
return
equipmentSpecificAlarms
;
}
private
void
sendSpecIndexsToCanvasTopic
(
List
<
EquipmentSpecificIndex
>
equipmentSpecificIndexList
){
}
/**
* 发送数据至换流站
* @param equipmentSpecificIndex
*/
private
void
sendEquipSpecIndexToAutosysTopic
(
EquipmentSpecificIndex
equipmentSpeIndex
){
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronization
()
{
@Override
public
void
afterCommit
()
{
String
topic
=
""
;
if
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpeIndex
.
getValue
())
&&
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
().
equals
(
equipmentSpeIndex
.
getTypeCode
()))
{
equipmentSpeIndex
.
setType
(
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
());
topic
=
String
.
format
(
"%s.%s%s"
,
serverName
,
"equipment/"
,
RiskLeverForAutoSys
.
BJ
.
getCode
());
}
else
if
(
TrueOrFalseEnum
.
real
.
value
.
equals
(
equipmentSpeIndex
.
getValue
())
&&
EquipmentRiskTypeEnum
.
GZ
.
getCode
().
equals
(
equipmentSpeIndex
.
getTypeCode
()))
{
equipmentSpeIndex
.
setType
(
EquipmentRiskTypeEnum
.
GZ
.
getCode
());
topic
=
String
.
format
(
"%s.%s%s"
,
serverName
,
"equipment/"
,
RiskLeverForAutoSys
.
GZ
.
getCode
());
}
else
{
equipmentSpeIndex
.
setType
(
EquipmentRiskTypeEnum
.
QT
.
getCode
());
topic
=
String
.
format
(
"%s.%s%s"
,
serverName
,
"equipment/"
,
RiskLeverForAutoSys
.
JC
.
getCode
());
}
TopicEntityVo
topicEntityVo
=
new
TopicEntityVo
();
topicEntityVo
.
setIotCode
(
equipmentSpeIndex
.
getIotCode
());
topicEntityVo
.
setTopic
(
topic
);
topicEntityVo
.
setMessage
(
JSON
.
toJSONString
(
equipmentSpeIndex
));
mqttSendGateway
.
sendToMqtt
(
topic
,
JSON
.
toJSONString
(
topicEntityVo
));
}
});
}
private
void
saveEquipmentAlarmReportDay
(
EquipmentSpecificIndex
equipmentSpecificIndex
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateUtils
.
DATE_PATTERN
);
EquipmentAlarmReportDay
equipmentAlarmReportDay
=
addEquipAlarmReportRecord
(
equipmentSpecificIndex
);
LambdaQueryWrapper
<
EquipmentAlarmReportDay
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
EquipmentAlarmReportDay:
:
getReportDate
,
sdf
.
format
(
equipmentAlarmReportDay
.
getReportDate
())).
eq
(
EquipmentAlarmReportDay:
:
getIndexId
,
equipmentAlarmReportDay
.
getIndexId
())
.
eq
(
EquipmentAlarmReportDay:
:
getEquipmentSpecificId
,
equipmentAlarmReportDay
.
getEquipmentSpecificId
());
List
<
EquipmentAlarmReportDay
>
reportDayList
=
iEquipmentAlarmReportDayService
.
list
(
wrapper
);
if
(
reportDayList
.
isEmpty
())
{
equipmentAlarmReportDay
.
setReportDate
(
new
Date
());
equipmentAlarmReportDay
.
setFrequency
(
1
);
iEquipmentAlarmReportDayService
.
save
(
equipmentAlarmReportDay
);
}
else
{
EquipmentAlarmReportDay
reportDay
=
reportDayList
.
get
(
0
);
reportDay
.
setLastReportDate
(
new
Date
());
reportDay
.
setValue
(
equipmentAlarmReportDay
.
getValue
());
reportDay
.
setFrequency
(
reportDay
.
getFrequency
()
+
1
);
reportDay
.
setIndexTrueNum
(
reportDay
.
getIndexTrueNum
()
==
null
?
equipmentAlarmReportDay
.
getIndexTrueNum
()
:
reportDay
.
getIndexTrueNum
()
+
equipmentAlarmReportDay
.
getIndexTrueNum
());
iEquipmentAlarmReportDayService
.
updateById
(
reportDay
);
}
mqttSendGateway
.
sendToMqtt
(
TopicEnum
.
EQXXTJ
.
getTopic
(),
""
);
}
private
String
valueTranslate
(
String
value
,
String
enumStr
){
if
(
ObjectUtils
.
isEmpty
(
enumStr
)){
return
""
;
}
try
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
enumStr
);
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
jsonObject
=
jsonArray
.
getJSONObject
(
i
);
if
(
jsonObject
.
get
(
"key"
).
equals
(
value
))
{
return
jsonObject
.
getString
(
"label"
);
}
}
}
catch
(
Exception
e
)
{
}
return
""
;
}
private
void
carRealTimeDate
(){
}
}
}
amos-boot-system-equip/src/main/resources/mapper/CarPropertyMapper.xml
View file @
25ff30a2
...
@@ -8,15 +8,17 @@
...
@@ -8,15 +8,17 @@
wcp.value AS value,
wcp.value AS value,
wcp.remark AS remark,
wcp.remark AS remark,
wcp.equipment_index_id AS equipmentIndexId,
wcp.equipment_index_id AS equipmentIndexId,
wei.name_key AS nameKey
wei.name_key AS nameKey,
wcp.is_alarm as isAlarm,
wcp.emergency_level_color as emergencyLevelColor,
wcp.emergency_level as emergencyLevel,
wcp.emergency_level_describe as emergencyLevelDescribe
FROM
FROM
wl_car_property wcp
wl_car_property wcp
LEFT JOIN wl_car AS wc ON wc.id = wcp.car_id
LEFT JOIN wl_car AS wc ON wc.id = wcp.car_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wcp.equipment_index_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wcp.equipment_index_id
WHERE
WHERE
wc.iot_code = #{iotCode}
wc.iot_code = #{iotCode} and wei.is_iot = true
AND
TRIM(wei.name_key) != '' AND wei.name_key IS NOT NULL
</select>
</select>
<select
id=
"getCarPropertyList"
resultType=
"com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo"
>
<select
id=
"getCarPropertyList"
resultType=
"com.yeejoin.equipmanage.common.entity.vo.CarPropertyVo"
>
SELECT
SELECT
...
...
amos-boot-system-equip/src/main/resources/mapper/EquipmentSpecificIndexMapper.xml
View file @
25ff30a2
...
@@ -68,7 +68,7 @@
...
@@ -68,7 +68,7 @@
LEFT JOIN wl_equipment_detail ed ON ed.id = wes.equipment_detail_id
LEFT JOIN wl_equipment_detail ed ON ed.id = wes.equipment_detail_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
WHERE
WHERE
wes.iot_code = #{iotCode}
wes.iot_code = #{iotCode}
and wei.is_iot = true
</select>
</select>
<select
id=
"getEquipmentSpeIndexByIotCode"
<select
id=
"getEquipmentSpeIndexByIotCode"
...
...
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