|
|
@ -256,37 +256,6 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { |
|
|
|
dcExecuteAction.setExecuteConfig(executeConfig.toJSONString()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 感知事件 - 根据事件类型查询事件预案 |
|
|
|
* |
|
|
|
* @param dcWarning 感知事件 |
|
|
|
* @return 结果 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<DcEmergencyPlans> selectDcEmergencyPlansByWarningType(DcWarning dcWarning) { |
|
|
|
int eventType = ValueConverter.convertValueHost(dcWarning.getWarningType()); |
|
|
|
List<DcEmergencyPlans> dcEmergencyPlansList = dcEmergencyPlansMapper.selectDcEmergencyPlansByWarningType(eventType); |
|
|
|
|
|
|
|
int warningType = Integer.parseInt(dcWarning.getWarningType().toString()); |
|
|
|
|
|
|
|
if (warningType == WarningTypeEnum.UNUSUAL_WEATHER.getCode()) { |
|
|
|
return dcEmergencyPlansList.stream() |
|
|
|
.filter(dcEmergencyPlans -> { |
|
|
|
String triggerMechanism = dcEmergencyPlans.getTriggerMechanism(); |
|
|
|
JSONObject triggerJson = JSONObject.parseObject(triggerMechanism); |
|
|
|
String eventSubclass = triggerJson.get("eventSubclass").toString(); |
|
|
|
|
|
|
|
// 事件--异常天气数据
|
|
|
|
String warningSubclass = ValueConverter.convertValueSon(dcWarning.getWarningSubclass()); |
|
|
|
|
|
|
|
return eventSubclass.equals(warningSubclass); |
|
|
|
}) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} else { |
|
|
|
return dcEmergencyPlansList; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 交通事件-情报板确认回显原始模板 |
|
|
|
*/ |
|
|
@ -308,27 +277,6 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { |
|
|
|
return getBoardTemplate(dcDevices); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 感知事件-情报板确认回显原始模板 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public Map<String, List<DcInfoBoardTemplate>> warningBoardConfirm(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) { |
|
|
|
// 获取事件数据
|
|
|
|
DcWarning dcWarning = dcEventAnDcEmergencyPlans.getDcWarning(); |
|
|
|
// 方向
|
|
|
|
String direction = dcWarning.getDirection(); |
|
|
|
// 事件桩号
|
|
|
|
dcWarning.setStakeMark(dcWarning.getStakeMark().replace("K", "")); |
|
|
|
String[] markArray = dcWarning.getStakeMark().split("\\+"); |
|
|
|
if (markArray[1].length() < 3) { |
|
|
|
// 不足三位 补零
|
|
|
|
markArray[1] = String.format("%0" + 3 + "d", markArray[1]); |
|
|
|
} |
|
|
|
DcExecuteAction executeAction = dcEventAnDcEmergencyPlans.getDcEmergencyPlans().getExecuteAction(); |
|
|
|
List<DcDevice> dcDevices = ruleFiltering(executeAction, markArray, direction); |
|
|
|
return getBoardTemplate(dcDevices); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 情报板设备执行3A功能,获取模板 |
|
|
|
*/ |
|
|
@ -576,36 +524,6 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { |
|
|
|
return eventPlanAssocMapper.selectById(eventPlanAssoc); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 感知事件-情报板自动生成 |
|
|
|
* |
|
|
|
* @param dcEventAnDcEmergencyPlans |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public DcInfoBoardTemplate warningAutomaticGeneration(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) { |
|
|
|
// 根据感知事件类型等、生成情报板的内容
|
|
|
|
DcWarning dcWarning = dcEventAnDcEmergencyPlans.getDcWarning(); |
|
|
|
DcInfoBoardTemplate dcInfoBoardTemplate = dcEventAnDcEmergencyPlans.getDcInfoBoardTemplate(); |
|
|
|
Integer warningType = dcWarning.getWarningType(); |
|
|
|
if (warningType.equals(WarningTypeEnum.TRAFFIC_JAM.getCode())) { |
|
|
|
// 交通拥堵
|
|
|
|
dcInfoBoardTemplate.setContent("前方" + WarningTypeEnum.TRAFFIC_JAM.getInfo() + "请谨慎驾驶"); |
|
|
|
} else if (warningType.equals(WarningTypeEnum.NON_MOTOR_VEHICLE.getCode())) { |
|
|
|
dcInfoBoardTemplate.setContent("前方出现" + WarningTypeEnum.NON_MOTOR_VEHICLE.getInfo() + "请注意避让"); |
|
|
|
} else if (warningType.equals(WarningTypeEnum.PEDESTRIAN.getCode())) { |
|
|
|
dcInfoBoardTemplate.setContent("前方出现" + WarningTypeEnum.PEDESTRIAN.getInfo() + "请注意避让"); |
|
|
|
} else if (warningType.equals(WarningTypeEnum.FIREWORKS.getCode())) { |
|
|
|
dcInfoBoardTemplate.setContent("前方出现" + WarningTypeEnum.FIREWORKS.getInfo() + "请注意避让"); |
|
|
|
} else if (warningType.equals(WarningTypeEnum.OUTFALL.getCode())) { |
|
|
|
dcInfoBoardTemplate.setContent("前方出现" + WarningTypeEnum.OUTFALL.getInfo() + "请注意避让"); |
|
|
|
} else if (warningType.equals(WarningTypeEnum.VEHICLE_CONVERSE_RUNNING.getCode())) { |
|
|
|
dcInfoBoardTemplate.setContent("前方出现" + WarningTypeEnum.OUTFALL.getInfo() + "请注意避让"); |
|
|
|
} |
|
|
|
|
|
|
|
return dcInfoBoardTemplate; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 交通事件-情报板自动生成 |
|
|
|
* |
|
|
@ -670,24 +588,6 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { |
|
|
|
return content; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 感知事件确认 |
|
|
|
* |
|
|
|
* @param dcEventAnDcEmergencyPlans 事件数据 和 事件预案数据 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public JSONObject executionWarningConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) { |
|
|
|
// 获取事件数据
|
|
|
|
DcWarning dcWarning = dcEventAnDcEmergencyPlans.getDcWarning(); |
|
|
|
|
|
|
|
// 方向
|
|
|
|
String direction = dcWarning.getDirection(); |
|
|
|
// 事件编号
|
|
|
|
String id = dcWarning.getId(); |
|
|
|
return executionConfirmation(dcEventAnDcEmergencyPlans, dcWarning.getStakeMark(), direction, id); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 事件确认 |
|
|
|
* |
|
|
|