Commit 3ee2b28d authored by duanruiming's avatar duanruiming

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

parent 131ddc78
......@@ -100,17 +100,17 @@ public class HisenseGreenChartTask {
Integer greenId = entry.getKey();
List<GreenCrossDirDTO> value = entry.getValue();
// 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 indexDir = indexDTO.getInDir();
Integer totalDistance = indexDTO.getTotalDistance();
String greenKey = null;
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));
}
String greenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexDir));
GreenwaveRealtimePO greenwaveRealtimePO = realTimeMap.get(greenKey);
Double speed = Objects.isNull(greenwaveRealtimePO.getSpeed()) ? 0 : greenwaveRealtimePO.getSpeed();
// km/h速度换成m/s
......@@ -128,12 +128,7 @@ public class HisenseGreenChartTask {
List<Double> backOffsets = new ArrayList<>();
List<Double> backDistances = new ArrayList<>();
String backGreenKey = null;
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));
}
String backGreenKey = CommonUtils.getStrJoin(String.valueOf(greenId), String.valueOf(indexOutDir));
GreenwaveRealtimePO backGreenwaveRealtimePO = realTimeMap.get(backGreenKey);
// km/h速度换成m/s
Double backSpeed = Objects.isNull(backGreenwaveRealtimePO.getSpeed()) ? 0 : backGreenwaveRealtimePO.getSpeed();
......@@ -227,12 +222,12 @@ public class HisenseGreenChartTask {
GreenCrossDirDTO firstDto = value.get(i);
String firstCrossId = firstDto.getCrossId();
Integer inDir = null;
Integer inCrossDir = null;
if (1 == type) {
inDir = firstDto.getInDir();
inCrossDir = firstDto.getInDir();
}
if (2 == type) {
inDir = firstDto.getOutDir();
inCrossDir = firstDto.getOutDir();
}
if (i + 1 < value.size()) {
GreenCrossDirDTO secondDto = value.get(i + 1);
......@@ -240,13 +235,21 @@ public class HisenseGreenChartTask {
for (GreenBeltChartDTO greenBeltChartDTO : greenBeltChartDTOS) {
Integer beltGreenId = greenBeltChartDTO.getGreenId();
Integer beltDir = null;
if (1 == type) {
beltDir = greenBeltChartDTO.getDir();
}
if (2 == type) {
beltDir = greenBeltChartDTO.getBackDir();
}
if (Objects.equals(greenId, beltGreenId) && Objects.equals(inDir, beltDir)) {
if (Objects.equals(3, greenId)) {
if (1 == type) {
beltDir = greenBeltChartDTO.getDir() - 2;
}
if (2 == type) {
beltDir = greenBeltChartDTO.getBackDir() - 2;
}
} else {
if (1 == type) {
beltDir = greenBeltChartDTO.getDir();
}
if (2 == type) {
beltDir = greenBeltChartDTO.getBackDir();
} }
if (Objects.equals(greenId, beltGreenId) && Objects.equals(inCrossDir, beltDir)) {
Double travelTime = getTravelTime(i, greenBeltChartDTO, type);
Map<String, List<List<Double>>> crossGreenTimesMap = null;
if (1 == type) {
......@@ -334,7 +337,12 @@ public class HisenseGreenChartTask {
String crossId = greenCrossDirDTO.getCrossId();
Integer distance = greenCrossDirDTO.getDistance();
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);
if (Objects.isNull(firstGreenTimeDTO)) {
......@@ -439,8 +447,13 @@ public class HisenseGreenChartTask {
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId();
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)) {
List<SchemeGreenDirGreenTimeDTO> greenOptList = getGreenOptList(mapper, greenId);
......@@ -536,7 +549,8 @@ public class HisenseGreenChartTask {
int index = 100;
for (GreenBeltInfoVO.CrossGreenDetail greenDetail : crossGreenDetailList) {
SchemeGreenDirGreenTimeDTO dto = new SchemeGreenDirGreenTimeDTO();
dto.setCrossId(greenDetail.getCrossId());
String crossId = greenDetail.getCrossId();
dto.setCrossId(crossId);
dto.setSchemeNo(100);
dto.setOffset(greenDetail.getOffset().intValue());
dto.setCycleLen(cycle);
......@@ -547,7 +561,15 @@ public class HisenseGreenChartTask {
dto.setStart(greenStart.intValue());
Double greenEnd = greenDetail.getPhaseEndTime();
dto.setEnd(greenEnd.intValue());
dto.setDir(inDir);
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.setDate(new Date());
dto.setFromScheme(2);
schemeGreenDirGreenTimeDTOS.add(dto);
......
......@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask {
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId();
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)) {
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