Commit ee9bf979 authored by duanruiming's avatar duanruiming

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

parent 296a7e1e
...@@ -20,6 +20,8 @@ public class SignalDataCache { ...@@ -20,6 +20,8 @@ public class SignalDataCache {
public static final Map<String, List<LightsInfoPojo>> lightInfoCache = new HashMap<>(); 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<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 { ...@@ -34,7 +34,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
public List<SignalStatusLogPO> runningStatusAlarm(String crossId) throws Exception { public List<SignalStatusLogPO> runningStatusAlarm(String crossId) throws Exception {
List<String> lightsStatus = SignalDataCache.realTimeLightCache.get(crossId); List<String> lightsStatus = SignalDataCache.realTimeLightCache.get(crossId);
List<FaultInfoPojo> faultInfoPojos = getFaultInfoPojos(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); return getSignalStatus(crossId, faultInfoPojos, runningStatusPojos);
} }
...@@ -131,14 +131,14 @@ public class DTSignalStatusServiceImpl implements SignalStatusService { ...@@ -131,14 +131,14 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
} }
@Override @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<String> lightsStatus = SignalDataCache.realTimeLightCache.get(crossId);
List<PhaseStageStatusPojo> phaseStageStatusPojos = getPhaseStageStatus(crossId); List<PhaseStageStatusPojo> phaseStageStatusPojos = SignalDataCache.realTimePhaseStatusStageCache.get(crossId);
List<RunningStatusPojo> runningStatusPojos = SignalDataCache.runningStatusCache.get(crossId); List<RunningStatusPojo> runningStatusPojos = SignalDataCache.realTimeRunStatusCache.get(crossId);
return getLightsStatusVOs(crossId, lightsStatus, phaseStageStatusPojos, runningStatusPojos); 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<>(); List<PhaseStageStatusPojo> phaseStageStatusPojos = new ArrayList<>();
CrossInfoPO crossInfoPO = DTControlCommandServiceImpl.checkCrossId(crossId); CrossInfoPO crossInfoPO = DTControlCommandServiceImpl.checkCrossId(crossId);
String message = String.format(Constants.COMMAND_COMMON, Constants.COMMAND_QUERY, Constants.COMMAND_PHASE_STAGE_STATUS); 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; ...@@ -3,6 +3,7 @@ package net.wanji.utc.dt.task;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.utc.dt.cache.CrossInfoCache; import net.wanji.utc.dt.cache.CrossInfoCache;
import net.wanji.utc.dt.cache.SignalDataCache; 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.pojo.dtconvert.RunningStatusPojo;
import net.wanji.utc.dt.service.impl.DTSignalStatusServiceImpl; import net.wanji.utc.dt.service.impl.DTSignalStatusServiceImpl;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
...@@ -33,7 +34,9 @@ public class RealTimeTask { ...@@ -33,7 +34,9 @@ public class RealTimeTask {
List<String> lightsStatusInfoPojos = DTSignalStatusServiceImpl.getLightsStatusInfoPojos(crossId); List<String> lightsStatusInfoPojos = DTSignalStatusServiceImpl.getLightsStatusInfoPojos(crossId);
SignalDataCache.realTimeLightCache.put(crossId, lightsStatusInfoPojos); SignalDataCache.realTimeLightCache.put(crossId, lightsStatusInfoPojos);
List<RunningStatusPojo> runningStatusPojos = DTSignalStatusServiceImpl.getRunningStatusPojos(crossId); 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) { } catch (Exception e) {
throw new RuntimeException(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