Commit 02627882 authored by hanbing's avatar hanbing

干线方案分析日期解析使用线程安全的类

parent 3d1ecef1
...@@ -35,6 +35,9 @@ import java.math.BigDecimal; ...@@ -35,6 +35,9 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.ToDoubleFunction; import java.util.function.ToDoubleFunction;
...@@ -75,6 +78,8 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -75,6 +78,8 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
private final GreenwaveMergeMapper greenwaveMergeMapper; private final GreenwaveMergeMapper greenwaveMergeMapper;
SimpleDateFormat hourMinuteFormat = new SimpleDateFormat("HH:mm"); SimpleDateFormat hourMinuteFormat = new SimpleDateFormat("HH:mm");
DateTimeFormatter safeHourMinuteFormat = DateTimeFormatter.ofPattern("HH:mm")
.withZone(java.time.ZoneId.systemDefault());
SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat chineseDayFormat = new SimpleDateFormat("M月d日"); SimpleDateFormat chineseDayFormat = new SimpleDateFormat("M月d日");
SimpleDateFormat dateHourMinuteFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); SimpleDateFormat dateHourMinuteFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
...@@ -1201,6 +1206,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -1201,6 +1206,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
.orElse(0.0)); .orElse(0.0));
int nonCoordValue = (int) Math.round(nonCoordValueDouble); int nonCoordValue = (int) Math.round(nonCoordValueDouble);
mainlineCrossEvaluateVO.setNonCoordValue(nonCoordValue); mainlineCrossEvaluateVO.setNonCoordValue(nonCoordValue);
mainlineCrossEvaluateVO.setQueueList(buildQueueList(filteredList));
// 计算非协调停车次数 // 计算非协调停车次数
double stopTimes = (filteredList.stream() double stopTimes = (filteredList.stream()
...@@ -1211,6 +1217,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -1211,6 +1217,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
bd = bd.setScale(2, RoundingMode.HALF_UP); bd = bd.setScale(2, RoundingMode.HALF_UP);
double formattedDouble = bd.doubleValue(); double formattedDouble = bd.doubleValue();
mainlineCrossEvaluateVO.setStopTimes(formattedDouble); mainlineCrossEvaluateVO.setStopTimes(formattedDouble);
mainlineCrossEvaluateVO.setStopTimesList(buildStopList(filteredList));
// 计算非协调二次停车率 // 计算非协调二次停车率
double twoStopRate = (filteredList.stream() double twoStopRate = (filteredList.stream()
...@@ -1219,6 +1226,19 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -1219,6 +1226,19 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
.orElse(0.0)); .orElse(0.0));
int intRate = (int) (twoStopRate * 100); int intRate = (int) (twoStopRate * 100);
mainlineCrossEvaluateVO.setTwoStopRate(intRate); mainlineCrossEvaluateVO.setTwoStopRate(intRate);
mainlineCrossEvaluateVO.setTwoStopRateList(buildTwoStopRateList(filteredList));
}
private List<MainlineCrossEvaluateVO.TimeAndValue> buildQueueList(List<CrossDirDataHistPOExt> filteredList) {
return null;
}
private List<MainlineCrossEvaluateVO.TimeAndValue> buildStopList(List<CrossDirDataHistPOExt> filteredList) {
return null;
}
private List<MainlineCrossEvaluateVO.TimeAndValue> buildTwoStopRateList(List<CrossDirDataHistPOExt> filteredList) {
return null;
} }
private List<String> buildCrossEvaluateList( private List<String> buildCrossEvaluateList(
...@@ -2472,7 +2492,10 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -2472,7 +2492,10 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
Date startDate = hourMinuteFormat.parse(startTime); Date startDate = hourMinuteFormat.parse(startTime);
Date endDate = hourMinuteFormat.parse(endTime); Date endDate = hourMinuteFormat.parse(endTime);
String histTimeStr = hourMinuteFormat.format(histGreenwaveGmtModified); LocalDateTime localDateTime = histGreenwaveGmtModified.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
String histTimeStr = localDateTime.format(safeHourMinuteFormat);
Date histTime = hourMinuteFormat.parse(histTimeStr); Date histTime = hourMinuteFormat.parse(histTimeStr);
res.setStartTime(startTime); res.setStartTime(startTime);
......
...@@ -36,6 +36,13 @@ public class MainlineCrossEvaluateVO { ...@@ -36,6 +36,13 @@ public class MainlineCrossEvaluateVO {
@ApiModelProperty(value = "评价") @ApiModelProperty(value = "评价")
private List<String> crossEvaluateList; private List<String> crossEvaluateList;
@ApiModelProperty(value = "非协调排队长度")
private List<TimeAndValue> queueList;
@ApiModelProperty(value = "非协调停车次数")
private List<TimeAndValue> stopTimesList;
@ApiModelProperty(value = "非协调二次停车率")
private List<TimeAndValue> twoStopRateList;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class DirElement { public static class DirElement {
...@@ -46,4 +53,14 @@ public class MainlineCrossEvaluateVO { ...@@ -46,4 +53,14 @@ public class MainlineCrossEvaluateVO {
private Integer value; private Integer value;
} }
@NoArgsConstructor
@Data
public static class TimeAndValue {
@ApiModelProperty(value = "小时分钟")
private String time;
@ApiModelProperty(value = "指标数值")
private Integer value;
}
} }
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