Commit a1f09a83 authored by duanruiming's avatar duanruiming

[add] 绿波图优化数组

parent d881ac5d
......@@ -157,9 +157,13 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
private static GreenBeltChartVO calGreenChart(GreenBeltInfoVO greenBeltInfoVO) throws JsonProcessingException {
ObjectMapper mapper = JacksonUtils.getInstance();
Map<String, List<List<Double>>> crossRedTimesMap = new LinkedHashMap<>();
List<List<Double>> crossRedTimeList = new LinkedList<List<Double>>();
Map<String, List<List<Double>>> backCrossRedTimesMap = new TreeMap<>();
List<List<Double>> backCrossRedTimeList = new LinkedList<List<Double>>();
Map<String, Double> crossGreenStartMap = new LinkedHashMap<>();
LinkedList<Double> crossGreenStartList = new LinkedList<>();
Map<String, Double> backCrossGreenStartMap = new TreeMap<>();
LinkedList<Double> backCrossGreenStartList = new LinkedList<>();
Map<String, Double> distanceMap = new LinkedHashMap<>();
Map<String, Double> backDistanceMap = new TreeMap<>();
String decideSpeed = "";
......@@ -180,7 +184,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
if (dirType == 1) {
greenWidthTime = dirGreenDetail.getGreenWidthTime();
List<GreenBeltInfoVO.CrossGreenDetail> list = dirGreenDetail.getCrossGreenDetailList();
getaDouble(crossRedTimesMap, crossGreenStartMap, distanceMap, cycle, list);
getaDouble(crossRedTimesMap, crossGreenStartMap, distanceMap, cycle, list, crossGreenStartList);
decideSpeed = String.join("~", String.valueOf(dirGreenDetail.getMinSpeed()), String.valueOf(dirGreenDetail.getMaxSpeed()));
List<Double> travelTimeList = list.stream().map(GreenBeltInfoVO.CrossGreenDetail::getTravelTime).collect(Collectors.toList());
travelTime = mapper.writeValueAsString(travelTimeList);
......@@ -200,7 +204,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
backGreenWidthTime = dirGreenDetail.getGreenWidthTime();
List<GreenBeltInfoVO.CrossGreenDetail> list = dirGreenDetail.getCrossGreenDetailList();
Collections.reverse(list);
getaDouble(backCrossRedTimesMap, backCrossGreenStartMap, backDistanceMap, cycle, list);
getaDouble(backCrossRedTimesMap, backCrossGreenStartMap, backDistanceMap, cycle, list, backCrossGreenStartList);
List<Double> travelTimeList = list.stream().map(GreenBeltInfoVO.CrossGreenDetail::getTravelTime).collect(Collectors.toList());
backtravelTime = mapper.writeValueAsString(travelTimeList);
List<Double> speedList = list.stream().map(GreenBeltInfoVO.CrossGreenDetail::getSpeed).collect(Collectors.toList());
......@@ -230,11 +234,25 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
greenBeltChartVO.setCrossSpeed(crossSpeed);
greenBeltChartVO.setBackCrossSpeed(backCrossSpeed);
greenBeltChartVO.setOffset(offset);
greenBeltChartVO.setCrossGreenStartList(strArray(crossGreenStartList));
Collections.reverse(backCrossGreenStartList);
greenBeltChartVO.setBackCrossGreenStartList(strArray(backCrossGreenStartList));
return greenBeltChartVO;
}
private static String strArray(List<Double> crossGreenStartList) {
StringBuilder sb = new StringBuilder();
if (!CollectionUtils.isEmpty(crossGreenStartList)) {
for (Double aDouble : crossGreenStartList) {
sb.append(aDouble).append(",");
}
}
return sb.toString();
}
private static void getaDouble(Map<String, List<List<Double>>> crossRedTimesMap, Map<String, Double> crossGreenStartMap, Map<String, Double> distanceMap,
Integer cycle, List<GreenBeltInfoVO.CrossGreenDetail> crossGreenDetailList) {
Integer cycle, List<GreenBeltInfoVO.CrossGreenDetail> crossGreenDetailList,
LinkedList<Double> crossGreenStartList) {
if (!CollectionUtils.isEmpty(crossGreenDetailList)) {
// 所有行程时间
......@@ -314,6 +332,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
crossRedTimesMap.put(crossId, uniqueSortedRedTimes);
}
crossGreenStartMap.put(crossId, crossGreenStartTime);
crossGreenStartList.add(crossGreenStartTime);
crossGreenStartTime += travelTime;
distanceMap.put(crossId, distance);
}
......
......@@ -5,14 +5,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.wanji.common.utils.tool.JacksonUtils;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @author duanruiming
......@@ -48,6 +41,8 @@ public class GreenBeltChartVO {
private String crossSpeed;
private String backCrossSpeed;
private String offset;
private String crossGreenStartList;
private String backCrossGreenStartList;
@JsonCreator
public GreenBeltChartVO(){
......
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