Commit 03605293 authored by duwei's avatar duwei

4个指标优化

parent 98a2cd1d
...@@ -293,13 +293,15 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService { ...@@ -293,13 +293,15 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
//1. 构造入参开始和结束时间戳 //1. 构造入参开始和结束时间戳
Date startDate = bo.getStartDate(); Date startDate = bo.getStartDate();
Date endDate = bo.getEndDate(); Date endDate = bo.getEndDate();
endDate = DateUtil.offsetDay(endDate, 1); // 包含最后一天 // endDate = DateUtil.offsetDay(endDate, 1); // 包含最后一天
// int startStamp = (int) (startDate.getTime() / 1000); // 10位时间戳 // int startStamp = (int) (startDate.getTime() / 1000); // 10位时间戳
// int endStamp = (int) (endDate.getTime() / 1000); // int endStamp = (int) (endDate.getTime() / 1000);
String startTime = DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss"); String startTime = DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss");
String endTime = DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss"); String endTime = DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss");
String checktime = DateUtil.format(startDate, "HH:mm:ss");
//2. 查询路口统计表 t_cross_data_hist //2. 查询路口统计表 t_cross_data_hist
List<RunningEvaluateIndexStatusVO> runningEvaluateIndexStatusVOS = buildRes(bo, crossId, status); List<RunningEvaluateIndexStatusVO> runningEvaluateIndexStatusVOS = buildRes(bo, crossId, status);
...@@ -318,11 +320,28 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService { ...@@ -318,11 +320,28 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
//5. 整合数据(按状态、时间区间重叠合并,并计算持续时间) //5. 整合数据(按状态、时间区间重叠合并,并计算持续时间)
runningEvaluateStatusVO.setProblemStatusList(buildProblemStatusList(filteredList)); runningEvaluateStatusVO.setProblemStatusList(buildProblemStatusList(filteredList));
//1天时间每5分钟一个时间点列表 ["00:15", "00:30" ... ] //1天时间每5分钟一个时间点列表 ["00:15", "00:30" ... ]
runningEvaluateStatusVO.setTimeList(TimeArrayUtil.getMinuteSectionArray(5)); List<String> minuteSectionArray = TimeArrayUtil.getMinuteSectionArray(5);
if (!"00:00:00".equals(checktime)) {
//根据查询时间,startTime和endTime,生成时间列表,
// 比如,开始时间是2025-04-08 09:10:10 ,结束时间是2025-04-08 09:20:10,则生成时间列表是["09:10", "09:15" ... "09:20"]
String startHour = startTime.substring(11, 16);
String endHour = endTime.substring(11, 16);
//在startHour和endHour之间生成时间列表
List<String> timeList = TimeArrayUtil.getCustomTimeIntervals(startHour, endHour, 5);
runningEvaluateStatusVO.setTimeList(timeList);
}else{
runningEvaluateStatusVO.setTimeList(minuteSectionArray);
}
return runningEvaluateStatusVO; return runningEvaluateStatusVO;
} }
public static void main(String[] args) {
String s = "2025-04-08 09:10:10";
String startHour = s.substring(11, 16);
System.out.println(startHour);
}
@Override @Override
public List<RunningEvaluateSchemeProblemsVO> schemeProblems(CrossIdAndStartEndDateBO bo) { public List<RunningEvaluateSchemeProblemsVO> schemeProblems(CrossIdAndStartEndDateBO bo) {
String crossId = bo.getCrossId(); String crossId = bo.getCrossId();
......
...@@ -60,7 +60,7 @@ public class TimeArrayUtil { ...@@ -60,7 +60,7 @@ public class TimeArrayUtil {
int endMinutes = convertToMinutes(endHourMinuteStr); int endMinutes = convertToMinutes(endHourMinuteStr);
List<String> res = new ArrayList<>(); List<String> res = new ArrayList<>();
for (int currentMinutes = startMinutes; currentMinutes < endMinutes; currentMinutes += minutes) { for (int currentMinutes = startMinutes; currentMinutes <=endMinutes; currentMinutes += minutes) {
res.add(convertToHourMinuteStr(currentMinutes)); res.add(convertToHourMinuteStr(currentMinutes));
} }
......
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