Commit 5e35ee5c authored by duanruiming's avatar duanruiming

[update] 转向实时数据-优化方向路段长度字段

parent 8b28a7a9
...@@ -37,7 +37,7 @@ public class CrossRidInfoCache implements CommandLineRunner { ...@@ -37,7 +37,7 @@ public class CrossRidInfoCache implements CommandLineRunner {
public static RidInfoEntity getEndRidInfoEntity(String endCrossId, Integer inDir) { public static RidInfoEntity getEndRidInfoEntity(String endCrossId, Integer inDir) {
for (RidInfoEntity ridInfoEntity : ridInfoEntityList) { for (RidInfoEntity ridInfoEntity : ridInfoEntityList) {
if (StringUtils.equalsIgnoreCase(endCrossId, ridInfoEntity.getEndCrossId()) && Objects.equals(inDir, Integer.parseInt(ridInfoEntity.getId()))) { if (StringUtils.equalsIgnoreCase(endCrossId, ridInfoEntity.getEndCrossId()) && Objects.equals(inDir, ridInfoEntity.getInDir())) {
return ridInfoEntity; return ridInfoEntity;
} }
} }
......
...@@ -349,7 +349,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService { ...@@ -349,7 +349,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
Double oneStopRate = 0.0; Double oneStopRate = 0.0;
Double twoStopRate = 0.0; Double twoStopRate = 0.0;
Double threeStopRate = 0.0; Double threeStopRate = 0.0;
Double length = 0.0;
Double effusionRate = 0.0; Double effusionRate = 0.0;
Double greenLightEfficiency = 0.0; Double greenLightEfficiency = 0.0;
for (CrossDirDataRealtimePO crossDirDataRealtimePOEntry : dirList) { for (CrossDirDataRealtimePO crossDirDataRealtimePOEntry : dirList) {
...@@ -366,7 +365,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService { ...@@ -366,7 +365,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
oneStopRate += crossDirDataRealtimePOEntry.getOneStopRate(); oneStopRate += crossDirDataRealtimePOEntry.getOneStopRate();
twoStopRate += crossDirDataRealtimePOEntry.getTwoStopRate(); twoStopRate += crossDirDataRealtimePOEntry.getTwoStopRate();
threeStopRate += crossDirDataRealtimePOEntry.getThreeStopRate(); threeStopRate += crossDirDataRealtimePOEntry.getThreeStopRate();
length = length >= crossDirDataRealtimePOEntry.getLength() ? length : crossDirDataRealtimePOEntry.getLength();
capacity += crossDirDataRealtimePOEntry.getCapacity(); capacity += crossDirDataRealtimePOEntry.getCapacity();
effusionRate += crossDirDataRealtimePOEntry.getEffusionRate() == null ? 0.0 : crossDirDataRealtimePOEntry.getEffusionRate(); effusionRate += crossDirDataRealtimePOEntry.getEffusionRate() == null ? 0.0 : crossDirDataRealtimePOEntry.getEffusionRate();
greenLightEfficiency = greenLightEfficiency >= crossDirDataRealtimePOEntry.getGreenLightEfficiency() ? greenLightEfficiency : crossDirDataRealTimePO.getGreenLightEfficiency(); greenLightEfficiency = greenLightEfficiency >= crossDirDataRealtimePOEntry.getGreenLightEfficiency() ? greenLightEfficiency : crossDirDataRealTimePO.getGreenLightEfficiency();
...@@ -396,6 +394,7 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService { ...@@ -396,6 +394,7 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
crossDirDataRealTimePO.setCrossId(crossId); crossDirDataRealTimePO.setCrossId(crossId);
crossDirDataRealTimePO.setDirType(dir); crossDirDataRealTimePO.setDirType(dir);
crossDirDataRealTimePO.setInOutType(1); crossDirDataRealTimePO.setInOutType(1);
double length = getDirRidLength(crossId, dir);
crossDirDataRealTimePO.setLength(Double.valueOf(decimalFormat.format(length))); crossDirDataRealTimePO.setLength(Double.valueOf(decimalFormat.format(length)));
crossDirDataRealTimePO.setFlow(flow); crossDirDataRealTimePO.setFlow(flow);
if (speedLaneCount == 0) { if (speedLaneCount == 0) {
...@@ -528,6 +527,20 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService { ...@@ -528,6 +527,20 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
return insertCrossDirDataRealtimePOS; return insertCrossDirDataRealtimePOS;
} }
/**
* 获取路口方向的路段长度
* @param crossId
* @param dir
* @return
*/
private double getDirRidLength(String crossId, Integer dir) {
RidInfoEntity endRidInfoEntity = CrossRidInfoCache.getEndRidInfoEntity(crossId, dir);
if (Objects.nonNull(endRidInfoEntity)) {
return endRidInfoEntity.getLength();
}
return 0.0;
}
private void replaceDirPartFields(CrossDirDataRealtimePO po, Date startDate) { private void replaceDirPartFields(CrossDirDataRealtimePO po, Date startDate) {
String crossId = po.getCrossId(); String crossId = po.getCrossId();
Integer dirType = po.getDirType(); Integer dirType = po.getDirType();
......
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