Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YeeAmosFireAutoSysRoot
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
station
YeeAmosFireAutoSysRoot
Commits
92c88642
Commit
92c88642
authored
Jan 05, 2021
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、预案代码修改
parent
76fc69a6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
155 deletions
+40
-155
HandlerMqttMessageImpl.java
...mos/fas/business/service/impl/HandlerMqttMessageImpl.java
+37
-146
RiskSourceServiceImpl.java
...amos/fas/business/service/impl/RiskSourceServiceImpl.java
+3
-9
No files found.
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/service/impl/HandlerMqttMessageImpl.java
View file @
92c88642
package
com
.
yeejoin
.
amos
.
fas
.
business
.
service
.
impl
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
...
...
@@ -33,13 +10,7 @@ import com.yeejoin.amos.fas.business.action.model.FireEquimentDataRo;
import
com.yeejoin.amos.fas.business.action.model.SetpEnum
;
import
com.yeejoin.amos.fas.business.action.mq.WebMqttComponent
;
import
com.yeejoin.amos.fas.business.action.mq.WebMqttSubscribe
;
import
com.yeejoin.amos.fas.business.dao.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.FireEquipMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.FireEquipPointMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.FmeaEquipmentPointMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.FmeaMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.FmeaPointInputitemMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.ImpAndFireEquipMapper
;
import
com.yeejoin.amos.fas.business.dao.mapper.*
;
import
com.yeejoin.amos.fas.business.dao.repository.IContingencyOriginalDataDao
;
import
com.yeejoin.amos.fas.business.dao.repository.IEvaluationModelDao
;
import
com.yeejoin.amos.fas.business.dao.repository.IPreplanPictureDao
;
...
...
@@ -50,22 +21,31 @@ import com.yeejoin.amos.fas.business.service.intfc.IEquipmentHandlerService;
import
com.yeejoin.amos.fas.business.service.intfc.IView3dService
;
import
com.yeejoin.amos.fas.business.util.JexlUtil
;
import
com.yeejoin.amos.fas.business.util.RpnUtils
;
import
com.yeejoin.amos.fas.business.util.StringUtil
;
import
com.yeejoin.amos.fas.business.vo.EquipmentSpecificForRiskVo
;
import
com.yeejoin.amos.fas.business.vo.EquipmentSpecificIndexVo
;
import
com.yeejoin.amos.fas.business.vo.ReginParams
;
import
com.yeejoin.amos.fas.business.vo.Toke
;
import
com.yeejoin.amos.fas.business.vo.TopicEntityVo
;
import
com.yeejoin.amos.fas.client.invoke.RsDataQueue
;
import
com.yeejoin.amos.fas.common.enums.EquipmentRiskTypeEnum
;
import
com.yeejoin.amos.fas.common.enums.View3dRefreshAreaEum
;
import
com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData
;
import
com.yeejoin.amos.fas.dao.entity.Equipment
;
import
com.yeejoin.amos.fas.dao.entity.EvaluationModel
;
import
com.yeejoin.amos.fas.dao.entity.Fmea
;
import
com.yeejoin.amos.fas.dao.entity.FmeaEquipmentPoint
;
import
com.yeejoin.amos.fas.dao.entity.FmeaPointInputitem
;
import
com.yeejoin.amos.fas.dao.entity.PreplanPicture
;
import
com.yeejoin.amos.fas.dao.entity.*
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* @author keyong
...
...
@@ -123,9 +103,6 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
private
FmeaEquipmentPointMapper
fmeaEquipmentPointMapper
;
@Autowired
private
FireEquipMapper
fireEquipMapper
;
@Autowired
EquipmentSpecificMapper
equipmentSpecificMapper
;
@Autowired
...
...
@@ -134,9 +111,6 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
@Autowired
private
IEvaluationModelDao
iEvaluationModelDao
;
@Autowired
private
FmeaMapper
fmeaMapper
;
@Value
(
"${station.name}"
)
private
String
stationName
;
...
...
@@ -156,38 +130,29 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
deviceData
.
setMonitor
(
equipment
!=
null
?
equipment
.
getName
()
:
""
);
deviceData
.
setId
(
String
.
valueOf
(
equipmentSpecific
.
getId
()));
deviceData
.
setCode
(
equipmentSpecific
.
getCode
());
if
(
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getType
()))
{
//设备告警处理逻辑
//设备告警处理逻辑
if
(
EquipmentRiskTypeEnum
.
HZGJ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getType
()))
{
log
.
info
(
"(报警)Message type is: "
+
equipmentSpecificIndex
.
getType
());
// 报警触发调用规则服务
executeDynamicPlan
(
deviceData
,
equipment
,
equipmentSpecific
,
toke
);
}
else
if
(
EquipmentRiskTypeEnum
.
GZ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getType
()))
{
// 设备故障处理逻辑
}
else
if
(
EquipmentRiskTypeEnum
.
GZ
.
getCode
().
equals
(
equipmentSpecificIndex
.
getType
()))
{
// 设备故障处理逻辑
log
.
info
(
"(故障)Message type is: "
+
equipmentSpecificIndex
.
getType
());
long
equipId
=
0
;
if
(
StringUtil
.
isNotEmpty
(
equipment
))
{
equipId
=
equipment
.
getId
();
}
long
specificIndexId
=
equipmentSpecificIndex
.
getId
();
notifyAlarm
(
equipmentSpecificIndex
,
1
);
// 是否关联风险点
List
<
FmeaEquipmentPoint
>
list
=
fmeaEquipmentPointMapper
.
listFmeaByEquipIndexIdAndEquipId
(
specificIndexId
,
equipId
);
if
(
list
.
size
()
>
0
)
{
// 关联风险点进行rpn,rpni值的修改
list
.
forEach
(
fmeaEqPoint
->
{
long
fmeaId
=
fmeaEqPoint
.
getFmeaId
();
updateFmeaRpn
(
fmeaId
);
});
}
else
{
// 没有关联风险点,三维页面消息推送
fireEquipRuleMessagePush
(
deviceData
,
toke
);
final
String
stateTrue
=
"true"
;
final
String
stateFalse
=
"false"
;
String
state
=
equipmentSpecificIndex
.
getValue
();
if
(
stateTrue
.
equals
(
state
))
{
//故障
notifyAlarm
(
equipmentSpecificIndex
,
1
);
}
else
if
(
stateFalse
.
equals
(
state
))
{
//故障恢复
notifyAlarm
(
equipmentSpecificIndex
,
0
);
}
}
else
{
// 向三维推送实时值修改
//三维页面消息推送
fireEquipRuleMessagePush
(
deviceData
,
toke
);
}
else
{
// 监测数据逻辑
log
.
info
(
"(监测)Message type is: "
+
equipmentSpecificIndex
.
getType
());
// 是否关联风险点
notifyAlarm
(
equipmentSpecificIndex
,
0
);
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"id"
,
"id"
);
content
.
put
(
"label"
,
"eqPointName"
);
...
...
@@ -198,29 +163,8 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
String
title
=
String
.
format
(
"/%s/%s/%s"
,
serviceName
,
stationName
,
"data/refresh/monitorData"
);
webMqttComponent
.
publish
(
title
,
JSON
.
toJSONString
(
view3dService
.
getEquipStatusList
(
equipmentSpecific
.
getOrgCode
())));
}
}
// @Override
// public void subscribeTopic(ReginParams reginParams) {
// // 若登录系统则订阅装备数据
// webMqttSubscribe.adapter.removeTopic(defaultTopic);
// String orgCode = reginParams.getCompany().getOrgCode();
// String topic = String.format("%s.%s%s", serverName, "equipment", "/#");
// String[] strs = webMqttSubscribe.adapter.getTopic();
// List<String> list = Stream.of(strs).collect(Collectors.toList());
// if(list.size() > 0) {
// list.forEach(x -> {
// if(!(x.equals(topic))) {
// webMqttSubscribe.adapter.addTopic(topic);
// }
// });
// } else {
// webMqttSubscribe.adapter.addTopic(topic);
// }
//
// }
@Override
public
void
subscribeTopic
()
{
// 若登录系统则订阅装备数据
...
...
@@ -240,47 +184,6 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
}
/**
* <pre>
* @Description: rpn,rpni值修改
* </pre>
*
* @MethodName:
* @Param: [fmeaId]
* @Return: void
* @Throws
* @Author keyong
* @Date 2020/11/16 18:26
*/
public
void
updateFmeaRpn
(
long
fmeaId
)
{
Fmea
fmea
=
fmeaMapper
.
getById
(
fmeaId
);
BigDecimal
oidValue
=
new
BigDecimal
(
fmea
.
getOidValue
());
BigDecimal
sidValue
=
new
BigDecimal
(
fmea
.
getSidValue
());
BigDecimal
didValue
=
new
BigDecimal
(
fmea
.
getDidValue
());
// 计算rpni
BigDecimal
rpni
=
oidValue
.
multiply
(
sidValue
).
multiply
(
didValue
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
rpn
;
if
(
fmea
.
getNewEvaluationOid
()
==
null
)
{
EvaluationModel
evaluationModel
=
this
.
getEvaluationModel
(
fmeaId
);
if
(
evaluationModel
!=
null
)
{
// 已经绑定点位或者巡检点项且匹配到风险模型,则更新为计算后的结果
BigDecimal
newOidValue
=
new
BigDecimal
(
evaluationModel
.
getCoefficient
());
rpn
=
newOidValue
.
multiply
(
sidValue
).
multiply
(
didValue
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
fmea
.
setNewEvaluationOid
(
evaluationModel
.
getId
());
}
else
{
// 未绑定点位或者巡检点项或者匹配不到风险模型,则更新为rpn与rpni一致
fmea
.
setNewEvaluationOid
(
fmea
.
getEvaluationOid
());
rpn
=
rpni
;
}
}
else
{
BigDecimal
newOidValue
=
new
BigDecimal
(
fmea
.
getNewOidValue
());
rpn
=
newOidValue
.
multiply
(
sidValue
).
multiply
(
didValue
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
}
fmea
.
setRpni
(
rpni
);
fmea
.
setRpn
(
rpn
);
// 更新fmea
fmeaMapper
.
updateRpn
(
fmea
);
}
/**
* <pre>
* @Description: 设备消息规则推送
...
...
@@ -295,18 +198,7 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
*/
@Async
void
fireEquipRuleMessagePush
(
AlarmParam
deviceData
,
Toke
toke
)
{
String
bacthNo
=
UUID
.
randomUUID
().
toString
();
FireEquimentDataRo
fireEquimentDataRo
=
new
FireEquimentDataRo
();
deviceData
.
setBatchNo
(
bacthNo
);
BeanUtils
.
copyProperties
(
deviceData
,
fireEquimentDataRo
);
try
{
RequestContext
.
setToken
(
toke
.
getToke
());
RequestContext
.
setProduct
(
toke
.
getProduct
());
log
.
info
(
"设备消息规则推送"
+
JSONObject
.
toJSONString
(
deviceData
));
ruleTrigger
.
publish
(
fireEquimentDataRo
,
"风险管控/fireEquiment"
,
null
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
RiskSourceServiceImpl
.
ruleMsgSend
(
deviceData
,
toke
,
log
,
ruleTrigger
);
}
/**
...
...
@@ -329,7 +221,6 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
ids
.
add
(
fmeaEquipmentPoint
.
getId
());
fmeaIds
.
add
(
fmeaEquipmentPoint
.
getFmeaId
());
});
if
(
ids
.
size
()
>
0
)
{
fmeaEquipmentPointMapper
.
updateStateByIds
(
state
,
ids
);
}
...
...
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/service/impl/RiskSourceServiceImpl.java
View file @
92c88642
...
...
@@ -90,10 +90,6 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
private
static
final
String
DATETYPE_YYYY
=
"yyyy"
;
//年
private
static
final
String
TOKE
=
"TOKE"
;
private
static
CacheMap
cacheMap
=
CacheFactory
.
newChacheMap
();
@Autowired
private
IRiskSourceDao
iRiskSourceDao
;
...
...
@@ -177,9 +173,6 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
private
IRiskFactorDao
iRiskFactorDao
;
@Autowired
private
IEquipManageFeign
equipManageFeign
;
@Autowired
protected
HttpServletRequest
request
;
@Autowired
...
...
@@ -1053,10 +1046,8 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
if
(
equipment
!=
null
)
{
deviceData
.
setMonitor
(
equipment
.
getName
());
deviceData
.
setEquimentId
(
String
.
valueOf
(
equipment
.
getId
()));
List
<
RiskSource
>
riskSources
=
this
.
riskSourceMapper
.
queryByFireEqument
(
deviceData
.
getFireEquimentId
());
//asymbleWithParent(batchNo, riskSources, FireEquimentDataRo.class.getSimpleName(), deviceData.getFireEquimentId(), deviceData.getNodeState(), null, null);
try
{
alermContingency
(
deviceData
.
getBatchNo
(),
fireEquipment
,
equipment
);
}
catch
(
Exception
e
)
{
...
...
@@ -1072,7 +1063,10 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
*/
@Async
void
fireEquipRuleMessagePush
(
AlarmParam
deviceData
,
Toke
toke
)
{
ruleMsgSend
(
deviceData
,
toke
,
log
,
ruleTrigger
);
}
static
void
ruleMsgSend
(
AlarmParam
deviceData
,
Toke
toke
,
Logger
log
,
RuleTrigger
ruleTrigger
)
{
String
bacthNo
=
UUID
.
randomUUID
().
toString
();
FireEquimentDataRo
fireEquimentDataRo
=
new
FireEquimentDataRo
();
deviceData
.
setBatchNo
(
bacthNo
);
...
...
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