Commit ee9bf979 authored by duanruiming's avatar duanruiming

[update] 优化东土实时数据调用

parent 296a7e1e
......@@ -20,6 +20,8 @@ public class SignalDataCache {
public static final Map<String, List<LightsInfoPojo>> lightInfoCache = new HashMap<>();
public static final Map<String, List<String>> realTimeLightCache = new ConcurrentHashMap<>();
public static final Map<String, List<RunningStatusPojo>> runningStatusCache = new ConcurrentHashMap<>();
public static final Map<String, List<RunningStatusPojo>> realTimeRunStatusCache = new ConcurrentHashMap<>();
public static final Map<String, List<PhaseStageStatusPojo>> realTimePhaseStatusStageCache = new ConcurrentHashMap<>();
}
......@@ -34,7 +34,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
public List<SignalStatusLogPO> runningStatusAlarm(String crossId) throws Exception {
List<String> lightsStatus = SignalDataCache.realTimeLightCache.get(crossId);
List<FaultInfoPojo> faultInfoPojos = getFaultInfoPojos(crossId);
List<RunningStatusPojo> runningStatusPojos = SignalDataCache.runningStatusCache.get(crossId);
List<RunningStatusPojo> runningStatusPojos = SignalDataCache.realTimeRunStatusCache.get(crossId);
return getSignalStatus(crossId, faultInfoPojos, runningStatusPojos);
}
......@@ -131,14 +131,14 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
}
@Override
public List<LightsStatusVO> lightStatus(String crossId) throws Exception {
public synchronized List<LightsStatusVO> lightStatus(String crossId) throws Exception {
List<String> lightsStatus = SignalDataCache.realTimeLightCache.get(crossId);
List<PhaseStageStatusPojo> phaseStageStatusPojos = getPhaseStageStatus(crossId);
List<RunningStatusPojo> runningStatusPojos = SignalDataCache.runningStatusCache.get(crossId);
List<PhaseStageStatusPojo> phaseStageStatusPojos = SignalDataCache.realTimePhaseStatusStageCache.get(crossId);
List<RunningStatusPojo> runningStatusPojos = SignalDataCache.realTimeRunStatusCache.get(crossId);
return getLightsStatusVOs(crossId, lightsStatus, phaseStageStatusPojos, runningStatusPojos);
}
private List<PhaseStageStatusPojo> getPhaseStageStatus(String crossId) throws Exception {
public static List<PhaseStageStatusPojo> getPhaseStageStatus(String crossId) throws Exception {
List<PhaseStageStatusPojo> phaseStageStatusPojos = new ArrayList<>();
CrossInfoPO crossInfoPO = DTControlCommandServiceImpl.checkCrossId(crossId);
String message = String.format(Constants.COMMAND_COMMON, Constants.COMMAND_QUERY, Constants.COMMAND_PHASE_STAGE_STATUS);
......
......@@ -3,6 +3,7 @@ package net.wanji.utc.dt.task;
import net.wanji.databus.po.CrossInfoPO;
import net.wanji.utc.dt.cache.CrossInfoCache;
import net.wanji.utc.dt.cache.SignalDataCache;
import net.wanji.utc.dt.pojo.dtconvert.PhaseStageStatusPojo;
import net.wanji.utc.dt.pojo.dtconvert.RunningStatusPojo;
import net.wanji.utc.dt.service.impl.DTSignalStatusServiceImpl;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -33,7 +34,9 @@ public class RealTimeTask {
List<String> lightsStatusInfoPojos = DTSignalStatusServiceImpl.getLightsStatusInfoPojos(crossId);
SignalDataCache.realTimeLightCache.put(crossId, lightsStatusInfoPojos);
List<RunningStatusPojo> runningStatusPojos = DTSignalStatusServiceImpl.getRunningStatusPojos(crossId);
SignalDataCache.runningStatusCache.put(crossId, runningStatusPojos);
SignalDataCache.realTimeRunStatusCache.put(crossId, runningStatusPojos);
List<PhaseStageStatusPojo> phaseStageStatus = DTSignalStatusServiceImpl.getPhaseStageStatus(crossId);
SignalDataCache.realTimePhaseStatusStageCache.put(crossId, phaseStageStatus);
} catch (Exception e) {
throw new RuntimeException(e);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment