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
9b11b276
Commit
9b11b276
authored
Nov 30, 2022
by
高建强
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
item:应急处置同步调整提交
parent
e88bf8f3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
77 additions
and
66 deletions
+77
-66
ContingencyInstanceImpl.java
...os/fas/business/service/impl/ContingencyInstanceImpl.java
+45
-33
ContingencyPlanServiceImpl.java
...fas/business/service/impl/ContingencyPlanServiceImpl.java
+3
-1
PlanVisual3dServiceImpl.java
...os/fas/business/service/impl/PlanVisual3dServiceImpl.java
+28
-31
PlanStepJsonVO.java
...java/com/yeejoin/amos/fas/business/vo/PlanStepJsonVO.java
+1
-1
No files found.
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/service/impl/ContingencyInstanceImpl.java
View file @
9b11b276
package
com
.
yeejoin
.
amos
.
fas
.
business
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
fas
.
business
.
service
.
impl
;
import
java.io.IOException
;
import
com.alibaba.fastjson.JSONObject
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
com.yeejoin.amos.fas.business.action.ContingencyAction
;
import
com.yeejoin.amos.fas.business.action.model.ContingencyEvent
;
import
com.yeejoin.amos.fas.business.action.model.ContingencyRo
;
import
com.yeejoin.amos.fas.business.action.mq.WebMqttComponent
;
import
com.yeejoin.amos.fas.business.action.mq.WebMqttComponent
;
import
com.yeejoin.amos.fas.business.action.util.ContingencyLogPublisher
;
import
com.yeejoin.amos.fas.business.bo.FirePlanAlarmBo
;
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.IContingencyPlanInstanceRepository
;
import
com.yeejoin.amos.fas.business.feign.RemoteSecurityService
;
import
com.yeejoin.amos.fas.business.service.intfc.*
;
import
com.yeejoin.amos.fas.business.service.intfc.*
;
import
com.yeejoin.amos.fas.business.service.model.Operate
;
import
com.yeejoin.amos.fas.business.service.model.OperateGroup
;
import
com.yeejoin.amos.fas.business.util.DateUtils
;
import
com.yeejoin.amos.fas.business.vo.PlanStepJsonVO
;
import
com.yeejoin.amos.fas.business.vo.PlanStepJsonVO
;
import
com.yeejoin.amos.fas.business.vo.Toke
;
import
com.yeejoin.amos.fas.common.enums.PlanReplyMessageEnum
;
import
com.yeejoin.amos.fas.common.enums.PlanReplyMessageEnum
;
import
com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData
;
import
com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance
;
import
com.yeejoin.amos.fas.dao.entity.Equipment
;
import
com.yeejoin.amos.fas.datasync.bo.ContingencyOriginalDataSyncBo
;
import
com.yeejoin.amos.fas.datasync.bo.ContingencyOriginalDataSyncBo
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
...
@@ -33,28 +40,15 @@ import org.springframework.core.io.Resource;
...
@@ -33,28 +40,15 @@ import org.springframework.core.io.Resource;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
com.alibaba.fastjson.JSONObject
;
import
java.io.IOException
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
java.nio.charset.StandardCharsets
;
import
com.yeejoin.amos.fas.business.action.ContingencyAction
;
import
java.util.*
;
import
com.yeejoin.amos.fas.business.action.model.ContingencyEvent
;
import
java.util.stream.Collectors
;
import
com.yeejoin.amos.fas.business.action.model.ContingencyRo
;
import
com.yeejoin.amos.fas.business.action.util.ContingencyLogPublisher
;
import
com.yeejoin.amos.fas.business.bo.FirePlanAlarmBo
;
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.IContingencyPlanInstanceRepository
;
import
com.yeejoin.amos.fas.business.feign.RemoteSecurityService
;
import
com.yeejoin.amos.fas.business.service.model.Operate
;
import
com.yeejoin.amos.fas.business.service.model.OperateGroup
;
import
com.yeejoin.amos.fas.business.util.DateUtils
;
import
com.yeejoin.amos.fas.business.vo.Toke
;
import
com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData
;
import
com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance
;
import
com.yeejoin.amos.fas.dao.entity.Equipment
;
@Service
@Service
public
class
ContingencyInstanceImpl
implements
IContingencyInstance
{
public
class
ContingencyInstanceImpl
implements
IContingencyInstance
{
...
@@ -247,7 +241,12 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
...
@@ -247,7 +241,12 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
BeanUtils
.
copyProperties
(
contingencyOriginalData
,
contingencyRo
);
BeanUtils
.
copyProperties
(
contingencyOriginalData
,
contingencyRo
);
contingencyRo
.
setStep
(
stepCode
);
contingencyRo
.
setStep
(
stepCode
);
contingencyRo
.
setStepState
(
stepMap
.
get
(
stepKey
));
contingencyRo
.
setStepState
(
stepMap
.
get
(
stepKey
));
// contingencyRo.setIsMock(true);
Object
isMock
=
redisTemplate
.
opsForValue
().
get
(
"isMock"
);
if
(
isMock
!=
null
)
{
contingencyRo
.
setIsMock
(
"1"
.
equals
(
isMock
.
toString
()));
}
else
{
contingencyRo
.
setIsMock
(
false
);
}
log
.
info
(
"stepstate:"
+
contingencyRo
.
getStepState
());
log
.
info
(
"stepstate:"
+
contingencyRo
.
getStepState
());
log
.
info
(
"stepCode:"
+
stepCode
);
log
.
info
(
"stepCode:"
+
stepCode
);
equipment
=
impAndFireEquipMapper
.
queryImpEqumtByFireEquipmt
(
Long
.
parseLong
(
contingencyRo
.
getFireEquipmentId
()));
equipment
=
impAndFireEquipMapper
.
queryImpEqumtByFireEquipmt
(
Long
.
parseLong
(
contingencyRo
.
getFireEquipmentId
()));
...
@@ -326,7 +325,7 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
...
@@ -326,7 +325,7 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
contingencyLogPublisher
.
publish
(
event
);
contingencyLogPublisher
.
publish
(
event
);
}
}
@Transactional
public
void
setButtonExecuted
(
String
batchNo
,
String
contingencyPlanId
,
String
code
,
String
buttonState
)
throws
Exception
{
public
void
setButtonExecuted
(
String
batchNo
,
String
contingencyPlanId
,
String
code
,
String
buttonState
)
throws
Exception
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
Optional
<
ContingencyPlanInstance
>
contingencyPlanInstance1
=
repository
.
findById
(
contingencyPlanId
);
Optional
<
ContingencyPlanInstance
>
contingencyPlanInstance1
=
repository
.
findById
(
contingencyPlanId
);
...
@@ -370,8 +369,6 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
...
@@ -370,8 +369,6 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
contingencyPlanInstance
.
setContent
(
operateJson
);
contingencyPlanInstance
.
setContent
(
operateJson
);
if
(
buttonState
.
equals
(
"CONFIRM"
))
{
if
(
buttonState
.
equals
(
"CONFIRM"
))
{
contingencyPlanInstance
.
setRunstate
(
true
);
contingencyPlanInstance
.
setRunstate
(
true
);
String
topic
=
String
.
format
(
"/%s/%s/%s"
,
serviceName
,
stationName
,
"plan"
);
webMqttComponent
.
publish
(
topic
,
"{\"msgType\":\"operateConfirmMessage\"}"
);
// 满足移动端确认按钮展示,确认后,多按钮json只保留最后一个按钮
// 满足移动端确认按钮展示,确认后,多按钮json只保留最后一个按钮
planVisual3dService
.
updateStatusById
(
contingencyPlanId
,
true
);
planVisual3dService
.
updateStatusById
(
contingencyPlanId
,
true
);
}
}
...
@@ -381,6 +378,21 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
...
@@ -381,6 +378,21 @@ public class ContingencyInstanceImpl implements IContingencyInstance {
planVisual3dService
.
updateStatusById
(
contingencyPlanId
,
false
);
planVisual3dService
.
updateStatusById
(
contingencyPlanId
,
false
);
}
}
ContingencyPlanInstance
instance
=
repository
.
save
(
contingencyPlanInstance
);
ContingencyPlanInstance
instance
=
repository
.
save
(
contingencyPlanInstance
);
if
(
buttonState
.
equals
(
"CONFIRM"
))
{
String
topic
=
String
.
format
(
"/%s/%s/%s"
,
serviceName
,
stationName
,
"plan"
);
webMqttComponent
.
publish
(
topic
,
"{\"msgType\":\"operateConfirmMessage\"}"
);
}
// if (buttonState.equals("CONFIRM")) {
// // TODO 数字化换流站组态屏数据推送,需要在事务提交之后,否侧事务隔离查询不出数据
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
// @Override
// public void afterCommit() {
// // 事物提交后业务逻辑
// String topic = String.format("/%s/%s/%s", serviceName, stationName, "plan");
// webMqttComponent.publish(topic, "{\"msgType\":\"operateConfirmMessage\"}");
// }
// });
// }
// 异步数据同步之消息发送
// 异步数据同步之消息发送
contingencyPlanInstanceDataSync
(
instance
);
contingencyPlanInstanceDataSync
(
instance
);
}
}
...
...
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/service/impl/ContingencyPlanServiceImpl.java
View file @
9b11b276
...
@@ -206,7 +206,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
...
@@ -206,7 +206,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
deviceData
.
setMonitor
(
equipment
.
getName
());
deviceData
.
setMonitor
(
equipment
.
getName
());
deviceData
.
setId
(
String
.
valueOf
(
equipmentSpecific
.
getId
()));
deviceData
.
setId
(
String
.
valueOf
(
equipmentSpecific
.
getId
()));
deviceData
.
setCode
(
equipmentSpecific
.
getCode
());
deviceData
.
setCode
(
equipmentSpecific
.
getCode
());
deviceData
.
setIsMock
((
vo
.
getStatus
()==
4
||
"4"
.
equals
(
vo
.
getStatus
()))?
true
:
false
);
boolean
isMock
=
vo
.
getStatus
()
==
4
;
deviceData
.
setIsMock
(
isMock
);
redisTemplate
.
opsForValue
().
set
(
"isMock"
,
isMock
?
"1"
:
"0"
);
String
batchNo
=
equipmentHandlerService
.
executeDynamicPlan
(
deviceData
,
equipment
,
equipmentSpecific
,
toke
,
operationRecord
.
getId
());
String
batchNo
=
equipmentHandlerService
.
executeDynamicPlan
(
deviceData
,
equipment
,
equipmentSpecific
,
toke
,
operationRecord
.
getId
());
//更新模型状态
//更新模型状态
PlanDetail
planDetail
=
PlanDetailOp
.
get
();
PlanDetail
planDetail
=
PlanDetailOp
.
get
();
...
...
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/service/impl/PlanVisual3dServiceImpl.java
View file @
9b11b276
...
@@ -396,37 +396,34 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService {
...
@@ -396,37 +396,34 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService {
@Override
@Override
@Transactional
@Transactional
public
void
updatePlanStep
(
String
batchNo
,
String
stepCode
,
String
contingencyPlanId
,
String
buttonCode
)
{
public
void
updatePlanStep
(
String
batchNo
,
String
stepCode
,
String
contingencyPlanId
,
String
buttonCode
)
{
String
json
=
""
;
if
(
StringUtils
.
isNotBlank
(
batchNo
)
&&
StringUtils
.
isNotBlank
(
contingencyPlanId
))
{
try
{
// 根据批次号查询预案步骤
json
=
IOUtils
.
toString
(
planStepResource
.
getInputStream
(),
String
.
valueOf
(
StandardCharsets
.
UTF_8
));
PlanRule
planRule
=
planOperationRecordMapper
.
getPlanRuleByBatchNo
(
batchNo
);
}
catch
(
IOException
e
)
{
if
(
planRule
!=
null
)
{
throw
new
RuntimeException
(
"获取预案相关角色信息失败!"
);
List
<
PlanStepJsonVO
>
list
=
JSONObject
.
parseArray
(
planRule
.
getPlanStep
(),
PlanStepJsonVO
.
class
);
}
List
<
PlanStepJsonVO
>
collect
=
list
.
stream
().
peek
(
x
->
{
List
<
PlanStepJsonVO
>
list
=
JSONObject
.
parseArray
(
json
,
PlanStepJsonVO
.
class
);
String
code
=
x
.
getStepCode
();
// 获取当前步骤的数据
if
(
code
.
equals
(
stepCode
))
{
List
<
PlanStepJsonVO
>
nowCollect
=
list
.
stream
().
filter
(
x
->
stepCode
.
equals
(
x
.
getStepCode
())).
collect
(
Collectors
.
toList
());
x
.
setTime
(
DateFormatUtils
.
format
(
new
Date
(),
"HH:mm:ss"
));
if
(!
CollectionUtils
.
isEmpty
(
nowCollect
))
{
x
.
setBatchNo
(
batchNo
);
List
<
PlanStepJsonVO
>
collect
=
nowCollect
.
stream
().
peek
(
x
->
{
x
.
setCaseId
(
contingencyPlanId
);
x
.
setTime
(
DateFormatUtils
.
format
(
new
Date
(),
"HH:mm:ss"
));
if
(
buttonCode
.
endsWith
(
"_NOT"
))
{
x
.
setBatchNo
(
batchNo
);
x
.
setCheckYesOrNo
(
"0"
);
x
.
setCaseId
(
contingencyPlanId
);
}
else
{
if
(
buttonCode
.
endsWith
(
"_NOT"
))
{
x
.
setCheckYesOrNo
(
"1"
);
x
.
setCheckYesOrNo
(
"0"
);
}
}
else
{
// 通过contingencyPlanId获取buttonJson数据
x
.
setCheckYesOrNo
(
"1"
);
ContingencyPlanInstance
planInstance
=
iContingencyPlanInstanceRepository
.
getOne
(
contingencyPlanId
);
}
x
.
setButtonJson
(
planInstance
.
getContent
());
// 通过contingencyPlanId获取buttonJson数据
}
ContingencyPlanInstance
planInstance
=
iContingencyPlanInstanceRepository
.
getOne
(
contingencyPlanId
);
// 更新进度条标志位
x
.
setButtonJson
(
planInstance
.
getContent
());
x
.
setShowLine
(
Integer
.
parseInt
(
x
.
getStepCode
())
<=
Integer
.
parseInt
(
stepCode
));
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
List
<
PlanStepJsonVO
>
updateCollect
=
collect
.
stream
().
peek
(
x
->
{
PlanStepVo
planStepVo
=
new
PlanStepVo
();
// 更新进度条标志位
planStepVo
.
setBatchNo
(
batchNo
);
x
.
setShowLine
(
Integer
.
parseInt
(
x
.
getStepCode
())
<=
Integer
.
parseInt
(
stepCode
));
planStepVo
.
setPlanStep
(
JSON
.
toJSONString
(
collect
));
}).
collect
(
Collectors
.
toList
());
updatePlanStep
(
planStepVo
);
PlanStepVo
planStepVo
=
new
PlanStepVo
();
}
planStepVo
.
setBatchNo
(
batchNo
);
planStepVo
.
setPlanStep
(
JSON
.
toJSONString
(
updateCollect
));
updatePlanStep
(
planStepVo
);
}
}
}
}
...
...
YeeAmosFireAutoSysService/src/main/java/com/yeejoin/amos/fas/business/vo/PlanStepJsonVO.java
View file @
9b11b276
...
@@ -15,7 +15,7 @@ public class PlanStepJsonVO {
...
@@ -15,7 +15,7 @@ public class PlanStepJsonVO {
private
String
caseId
;
private
String
caseId
;
private
String
buttonJson
;
private
String
buttonJson
;
private
String
time
;
private
String
time
;
private
boolean
showLine
=
false
;
private
boolean
showLine
;
/**
/**
* 1:是,0:否
* 1:是,0:否
*/
*/
...
...
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