dev #2
@ -89,7 +89,9 @@ public class ProtectionPlanTask {
|
|||||||
Long planId = 0L;
|
Long planId = 0L;
|
||||||
try {
|
try {
|
||||||
// 获取所有方案,轮询
|
// 获取所有方案,轮询
|
||||||
List<EmsFaultProtectionPlan> planList = iEmsFaultProtectionPlanService.selectEmsFaultProtectionPlanList(null);
|
EmsFaultProtectionPlan emsFaultProtectionPlan = new EmsFaultProtectionPlan();
|
||||||
|
emsFaultProtectionPlan.setSiteId("021_DDS_01");
|
||||||
|
List<EmsFaultProtectionPlan> planList = iEmsFaultProtectionPlanService.selectEmsFaultProtectionPlanList(emsFaultProtectionPlan);
|
||||||
|
|
||||||
for (EmsFaultProtectionPlan plan : planList) {
|
for (EmsFaultProtectionPlan plan : planList) {
|
||||||
planId = plan.getId();
|
planId = plan.getId();
|
||||||
@ -123,6 +125,7 @@ public class ProtectionPlanTask {
|
|||||||
// 需要同步云端
|
// 需要同步云端
|
||||||
@SyncAfterInsert
|
@SyncAfterInsert
|
||||||
private boolean dealWithProtectionPlan(EmsFaultProtectionPlan plan, List<ProtectionSettingVo> protSettings) {
|
private boolean dealWithProtectionPlan(EmsFaultProtectionPlan plan, List<ProtectionSettingVo> protSettings) {
|
||||||
|
logger.info("<轮询保护方案> 站点:{},方案ID:{}", plan.getSiteId(), plan.getId());
|
||||||
boolean isHighLevel = false;
|
boolean isHighLevel = false;
|
||||||
|
|
||||||
String siteId = plan.getSiteId();
|
String siteId = plan.getSiteId();
|
||||||
@ -130,6 +133,7 @@ public class ProtectionPlanTask {
|
|||||||
final Long status = plan.getStatus();
|
final Long status = plan.getStatus();
|
||||||
// 看方案是否启用,走不同判断
|
// 看方案是否启用,走不同判断
|
||||||
if (Objects.equals(status, ProtPlanStatus.STOP.getCode())) {
|
if (Objects.equals(status, ProtPlanStatus.STOP.getCode())) {
|
||||||
|
logger.info("<方案未启用> 站点:{},方案ID:{}", siteId, plan.getId());
|
||||||
// 未启用,获取方案的故障值与最新数据判断是否需要下发方案
|
// 未启用,获取方案的故障值与最新数据判断是否需要下发方案
|
||||||
if(checkIsNeedIssuedPlan(protSettings, siteId)){
|
if(checkIsNeedIssuedPlan(protSettings, siteId)){
|
||||||
if("3".equals(plan.getFaultLevel())){
|
if("3".equals(plan.getFaultLevel())){
|
||||||
@ -166,6 +170,7 @@ public class ProtectionPlanTask {
|
|||||||
}, faultDelay, TimeUnit.SECONDS);
|
}, faultDelay, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
logger.info("<方案已启用> 站点:{},方案ID:{}", siteId, plan.getId());
|
||||||
// 已启用,则获取方案的释放值与最新数据判断是否需要取消方案
|
// 已启用,则获取方案的释放值与最新数据判断是否需要取消方案
|
||||||
if(checkIsNeedCancelPlan(protSettings, siteId)){
|
if(checkIsNeedCancelPlan(protSettings, siteId)){
|
||||||
// 延时,
|
// 延时,
|
||||||
@ -282,6 +287,7 @@ public class ProtectionPlanTask {
|
|||||||
}
|
}
|
||||||
// 获取点位最新值
|
// 获取点位最新值
|
||||||
BigDecimal lastPointValue = getPointLastValue(deviceId, point, siteId);
|
BigDecimal lastPointValue = getPointLastValue(deviceId, point, siteId);
|
||||||
|
logger.info("checkIsNeedCancelPlan 点位:{},最新值:{},比较方式:{},释放值:{}", point, lastPointValue, vo.getReleaseOperator(), releaseValue);
|
||||||
if(lastPointValue == null){
|
if(lastPointValue == null){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -293,11 +299,10 @@ public class ProtectionPlanTask {
|
|||||||
conditionSb.append(" ").append(relation).append(" ");
|
conditionSb.append(" ").append(relation).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
// 执行比较语句
|
// 执行比较语句
|
||||||
return executeWithParser(conditionSb.toString());
|
return executeWithParser(conditionSb.toString());
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 校验故障值是否需要下发方案
|
// 校验故障值是否需要下发方案
|
||||||
private boolean checkIsNeedIssuedPlan(List<ProtectionSettingVo> protSettings, String siteId) {
|
private boolean checkIsNeedIssuedPlan(List<ProtectionSettingVo> protSettings, String siteId) {
|
||||||
@ -315,6 +320,7 @@ public class ProtectionPlanTask {
|
|||||||
}
|
}
|
||||||
// 获取点位最新值
|
// 获取点位最新值
|
||||||
BigDecimal lastPointValue = getPointLastValue(deviceId, point, siteId);
|
BigDecimal lastPointValue = getPointLastValue(deviceId, point, siteId);
|
||||||
|
logger.info("checkIsNeedIssuedPlan 点位:{},最新值:{},比较方式:{},故障值:{}", point, lastPointValue, vo.getFaultOperator(), faultValue);
|
||||||
if(lastPointValue == null){
|
if(lastPointValue == null){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -326,11 +332,10 @@ public class ProtectionPlanTask {
|
|||||||
conditionSb.append(" ").append(relation).append(" ");
|
conditionSb.append(" ").append(relation).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
// 执行比较语句
|
// 执行比较语句
|
||||||
return executeWithParser(conditionSb.toString());
|
return executeWithParser(conditionSb.toString());
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private BigDecimal getPointLastValue(String deviceId, String point, String siteId) {
|
private BigDecimal getPointLastValue(String deviceId, String point, String siteId) {
|
||||||
JSONObject mqttJson = redisCache.getCacheObject(RedisKeyConstants.SYNC_DATA + siteId + "_" + deviceId);
|
JSONObject mqttJson = redisCache.getCacheObject(RedisKeyConstants.SYNC_DATA + siteId + "_" + deviceId);
|
||||||
@ -461,7 +466,7 @@ public class ProtectionPlanTask {
|
|||||||
boolean finalResult = atomicResults.get(0);
|
boolean finalResult = atomicResults.get(0);
|
||||||
for (int i = 0; i < logicRelations.size(); i++) {
|
for (int i = 0; i < logicRelations.size(); i++) {
|
||||||
String relation = logicRelations.get(i);
|
String relation = logicRelations.get(i);
|
||||||
boolean nextResult = atomicResults.get(i + 1);
|
boolean nextResult = atomicResults.get(i+1);
|
||||||
if ("&&".equals(relation)) {
|
if ("&&".equals(relation)) {
|
||||||
finalResult = finalResult && nextResult;
|
finalResult = finalResult && nextResult;
|
||||||
} else if ("||".equals(relation)) {
|
} else if ("||".equals(relation)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user