Commit 3ee2b28d authored by duanruiming's avatar duanruiming

[add] 东山绿波带两个协调方向

parent 131ddc78
...@@ -100,17 +100,17 @@ public class HisenseGreenChartTask { ...@@ -100,17 +100,17 @@ public class HisenseGreenChartTask {
Integer greenId = entry.getKey(); Integer greenId = entry.getKey();
List<GreenCrossDirDTO> value = entry.getValue(); List<GreenCrossDirDTO> value = entry.getValue();
// 1.获取行程时间 // 1.获取行程时间
GreenCrossDirDTO indexDTO = value.get(0); GreenCrossDirDTO indexDTO = null;
if (Objects.equals(3, greenId)) {
indexDTO = value.get(2);
} else {
indexDTO = value.get(0);
}
Integer sort = indexDTO.getSort(); Integer sort = indexDTO.getSort();
Integer indexDir = indexDTO.getInDir(); Integer indexDir = indexDTO.getInDir();
Integer totalDistance = indexDTO.getTotalDistance(); Integer totalDistance = indexDTO.getTotalDistance();
String greenKey = null; String greenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexDir));
if (Objects.equals(3, greenId)) {
greenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexDir + 2));
} else {
greenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexDir));
}
GreenwaveRealtimePO greenwaveRealtimePO = realTimeMap.get(greenKey); GreenwaveRealtimePO greenwaveRealtimePO = realTimeMap.get(greenKey);
Double speed = Objects.isNull(greenwaveRealtimePO.getSpeed()) ? 0 : greenwaveRealtimePO.getSpeed(); Double speed = Objects.isNull(greenwaveRealtimePO.getSpeed()) ? 0 : greenwaveRealtimePO.getSpeed();
// km/h速度换成m/s // km/h速度换成m/s
...@@ -128,12 +128,7 @@ public class HisenseGreenChartTask { ...@@ -128,12 +128,7 @@ public class HisenseGreenChartTask {
List<Double> backOffsets = new ArrayList<>(); List<Double> backOffsets = new ArrayList<>();
List<Double> backDistances = new ArrayList<>(); List<Double> backDistances = new ArrayList<>();
String backGreenKey = null; String backGreenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexOutDir));
if (Objects.equals(3, greenId)) {
backGreenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexOutDir + 2));
} else {
backGreenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexOutDir));
}
GreenwaveRealtimePO backGreenwaveRealtimePO = realTimeMap.get(backGreenKey); GreenwaveRealtimePO backGreenwaveRealtimePO = realTimeMap.get(backGreenKey);
// km/h速度换成m/s // km/h速度换成m/s
Double backSpeed = Objects.isNull(backGreenwaveRealtimePO.getSpeed()) ? 0 : backGreenwaveRealtimePO.getSpeed(); Double backSpeed = Objects.isNull(backGreenwaveRealtimePO.getSpeed()) ? 0 : backGreenwaveRealtimePO.getSpeed();
...@@ -227,12 +222,12 @@ public class HisenseGreenChartTask { ...@@ -227,12 +222,12 @@ public class HisenseGreenChartTask {
GreenCrossDirDTO firstDto = value.get(i); GreenCrossDirDTO firstDto = value.get(i);
String firstCrossId = firstDto.getCrossId(); String firstCrossId = firstDto.getCrossId();
Integer inDir = null; Integer inCrossDir = null;
if (1 == type) { if (1 == type) {
inDir = firstDto.getInDir(); inCrossDir = firstDto.getInDir();
} }
if (2 == type) { if (2 == type) {
inDir = firstDto.getOutDir(); inCrossDir = firstDto.getOutDir();
} }
if (i + 1 < value.size()) { if (i + 1 < value.size()) {
GreenCrossDirDTO secondDto = value.get(i + 1); GreenCrossDirDTO secondDto = value.get(i + 1);
...@@ -240,13 +235,21 @@ public class HisenseGreenChartTask { ...@@ -240,13 +235,21 @@ public class HisenseGreenChartTask {
for (GreenBeltChartDTO greenBeltChartDTO : greenBeltChartDTOS) { for (GreenBeltChartDTO greenBeltChartDTO : greenBeltChartDTOS) {
Integer beltGreenId = greenBeltChartDTO.getGreenId(); Integer beltGreenId = greenBeltChartDTO.getGreenId();
Integer beltDir = null; Integer beltDir = null;
if (Objects.equals(3, greenId)) {
if (1 == type) {
beltDir = greenBeltChartDTO.getDir() - 2;
}
if (2 == type) {
beltDir = greenBeltChartDTO.getBackDir() - 2;
}
} else {
if (1 == type) { if (1 == type) {
beltDir = greenBeltChartDTO.getDir(); beltDir = greenBeltChartDTO.getDir();
} }
if (2 == type) { if (2 == type) {
beltDir = greenBeltChartDTO.getBackDir(); beltDir = greenBeltChartDTO.getBackDir();
} } }
if (Objects.equals(greenId, beltGreenId) && Objects.equals(inDir, beltDir)) { if (Objects.equals(greenId, beltGreenId) && Objects.equals(inCrossDir, beltDir)) {
Double travelTime = getTravelTime(i, greenBeltChartDTO, type); Double travelTime = getTravelTime(i, greenBeltChartDTO, type);
Map<String, List<List<Double>>> crossGreenTimesMap = null; Map<String, List<List<Double>>> crossGreenTimesMap = null;
if (1 == type) { if (1 == type) {
...@@ -334,7 +337,12 @@ public class HisenseGreenChartTask { ...@@ -334,7 +337,12 @@ public class HisenseGreenChartTask {
String crossId = greenCrossDirDTO.getCrossId(); String crossId = greenCrossDirDTO.getCrossId();
Integer distance = greenCrossDirDTO.getDistance(); Integer distance = greenCrossDirDTO.getDistance();
distances.add(distance * 1.0); distances.add(distance * 1.0);
String crossKey = CommonUtils.getStrJoin(String.valueOf(crossId), String.valueOf(indexDir)); String crossKey = null;
if (StringUtils.equalsIgnoreCase("13MQV0B5KE0", crossId) || StringUtils.equalsIgnoreCase("13MRN0B5MV0", crossId)) {
crossKey = CommonUtils.getStrJoin(String.valueOf(crossId), String.valueOf(indexDir - 2));
} else {
crossKey = CommonUtils.getStrJoin(String.valueOf(crossId), String.valueOf(indexDir));
}
// 获取海信环相位信息 // 获取海信环相位信息
SchemeGreenDirGreenTimeDTO firstGreenTimeDTO = greenDirGreenTimeMap.get(crossKey); SchemeGreenDirGreenTimeDTO firstGreenTimeDTO = greenDirGreenTimeMap.get(crossKey);
if (Objects.isNull(firstGreenTimeDTO)) { if (Objects.isNull(firstGreenTimeDTO)) {
...@@ -439,7 +447,12 @@ public class HisenseGreenChartTask { ...@@ -439,7 +447,12 @@ public class HisenseGreenChartTask {
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) { for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId(); Integer greenId = greenCrossDirDTO.getGreenId();
String greenCrossId = greenCrossDirDTO.getCrossId(); String greenCrossId = greenCrossDirDTO.getCrossId();
String greenDirStr = greenCrossDirDTO.getGreenDir(); String greenDirStr = null;
if (Objects.equals(3, greenId)) {
greenDirStr = "1,3,5,7";
} else {
greenDirStr = greenCrossDirDTO.getGreenDir();
}
// 查询神思绿波优化下发 // 查询神思绿波优化下发
if (isGreenOptSend(greenId)) { if (isGreenOptSend(greenId)) {
...@@ -536,7 +549,8 @@ public class HisenseGreenChartTask { ...@@ -536,7 +549,8 @@ public class HisenseGreenChartTask {
int index = 100; int index = 100;
for (GreenBeltInfoVO.CrossGreenDetail greenDetail : crossGreenDetailList) { for (GreenBeltInfoVO.CrossGreenDetail greenDetail : crossGreenDetailList) {
SchemeGreenDirGreenTimeDTO dto = new SchemeGreenDirGreenTimeDTO(); SchemeGreenDirGreenTimeDTO dto = new SchemeGreenDirGreenTimeDTO();
dto.setCrossId(greenDetail.getCrossId()); String crossId = greenDetail.getCrossId();
dto.setCrossId(crossId);
dto.setSchemeNo(100); dto.setSchemeNo(100);
dto.setOffset(greenDetail.getOffset().intValue()); dto.setOffset(greenDetail.getOffset().intValue());
dto.setCycleLen(cycle); dto.setCycleLen(cycle);
...@@ -547,7 +561,15 @@ public class HisenseGreenChartTask { ...@@ -547,7 +561,15 @@ public class HisenseGreenChartTask {
dto.setStart(greenStart.intValue()); dto.setStart(greenStart.intValue());
Double greenEnd = greenDetail.getPhaseEndTime(); Double greenEnd = greenDetail.getPhaseEndTime();
dto.setEnd(greenEnd.intValue()); dto.setEnd(greenEnd.intValue());
if (StringUtils.equalsIgnoreCase("13MQV0B5KE0", crossId) || StringUtils.equalsIgnoreCase("13MRN0B5MV0", crossId)) {
if (Objects.equals(3, inDir)) {
dto.setDir(1);
} else {
dto.setDir(7);
}
} else {
dto.setDir(inDir); dto.setDir(inDir);
}
dto.setDate(new Date()); dto.setDate(new Date());
dto.setFromScheme(2); dto.setFromScheme(2);
schemeGreenDirGreenTimeDTOS.add(dto); schemeGreenDirGreenTimeDTOS.add(dto);
......
...@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask { ...@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask {
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) { for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId(); Integer greenId = greenCrossDirDTO.getGreenId();
String greenCrossId = greenCrossDirDTO.getCrossId(); String greenCrossId = greenCrossDirDTO.getCrossId();
String greenDirStr = greenCrossDirDTO.getGreenDir(); String greenDirStr = null;
if (Objects.equals(3, greenId)) {
greenDirStr = "1,3,5,7";
} else {
greenDirStr = greenCrossDirDTO.getGreenDir();
}
// 神思下发绿波时不需要优化 // 神思下发绿波时不需要优化
if (isGreenOptSend(greenId)) { if (isGreenOptSend(greenId)) {
continue; continue;
......
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