Commit 5e35ee5c authored by duanruiming's avatar duanruiming

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

parent 8b28a7a9
......@@ -37,7 +37,7 @@ public class CrossRidInfoCache implements CommandLineRunner {
public static RidInfoEntity getEndRidInfoEntity(String endCrossId, Integer inDir) {
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;
}
}
......
......@@ -349,7 +349,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
Double oneStopRate = 0.0;
Double twoStopRate = 0.0;
Double threeStopRate = 0.0;
Double length = 0.0;
Double effusionRate = 0.0;
Double greenLightEfficiency = 0.0;
for (CrossDirDataRealtimePO crossDirDataRealtimePOEntry : dirList) {
......@@ -366,7 +365,6 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
oneStopRate += crossDirDataRealtimePOEntry.getOneStopRate();
twoStopRate += crossDirDataRealtimePOEntry.getTwoStopRate();
threeStopRate += crossDirDataRealtimePOEntry.getThreeStopRate();
length = length >= crossDirDataRealtimePOEntry.getLength() ? length : crossDirDataRealtimePOEntry.getLength();
capacity += crossDirDataRealtimePOEntry.getCapacity();
effusionRate += crossDirDataRealtimePOEntry.getEffusionRate() == null ? 0.0 : crossDirDataRealtimePOEntry.getEffusionRate();
greenLightEfficiency = greenLightEfficiency >= crossDirDataRealtimePOEntry.getGreenLightEfficiency() ? greenLightEfficiency : crossDirDataRealTimePO.getGreenLightEfficiency();
......@@ -396,6 +394,7 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
crossDirDataRealTimePO.setCrossId(crossId);
crossDirDataRealTimePO.setDirType(dir);
crossDirDataRealTimePO.setInOutType(1);
double length = getDirRidLength(crossId, dir);
crossDirDataRealTimePO.setLength(Double.valueOf(decimalFormat.format(length)));
crossDirDataRealTimePO.setFlow(flow);
if (speedLaneCount == 0) {
......@@ -528,6 +527,20 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
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) {
String crossId = po.getCrossId();
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