Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
signal
traffic-signal-platform
Commits
3a4f03dd
Commit
3a4f03dd
authored
Apr 17, 2025
by
duwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
评价指标再次优化时间线,由之前的小时级调整为分钟级,产品定的
parent
d3213562
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
+13
-6
RunningEvaluateServiceImpl.java
...et/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
+13
-6
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
View file @
3a4f03dd
...
...
@@ -389,10 +389,11 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
}
private
Map
<
String
,
List
<
CrossDataHistPO
>>
buildTimePOMap
(
List
<
CrossDataHistPO
>
crossDataHistPOList
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH
"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH
:mm"
);
//HH
Map
<
String
,
List
<
CrossDataHistPO
>>
timePOMap
=
crossDataHistPOList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
po
->
{
Date
date
=
new
Date
((
long
)
po
.
getBatchTime
()
*
1000
);
// 将10位时间戳转换为Date对象
// Date date = new Date((long) po.getBatchTime() * 1000); // 将10位时间戳转换为Date对象
Date
date
=
po
.
getStartTime
();
return
sdf
.
format
(
date
);
// 将Date对象转换为"HH"格式的字符串
}));
return
timePOMap
;
...
...
@@ -937,15 +938,20 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
List
<
RunningEvaluateIndexStatusVO
>
res
=
new
ArrayList
<>();
//根据查询时间,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
,
13
);
String
endHour
=
endTime
.
substring
(
11
,
13
);
// String startHour = startTime.substring(11, 13);
// String endHour = endTime.substring(11, 13);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
String
startMinute
=
sdf
.
format
(
startDate
);
String
endMinute
=
sdf
.
format
(
endDate
);
//在startHour和endHour之间生成时间列表
List
<
String
>
timeArray
=
TimeArrayUtil
.
getHourArrayScope
(
Integer
.
valueOf
(
startHour
),
Integer
.
valueOf
(
endHour
));
// List<String> timeArray = TimeArrayUtil.getHourArrayScope(Integer.valueOf(startHour), Integer.valueOf(endHour));
List
<
String
>
timeArray
=
TimeArrayUtil
.
getCustomTimeIntervals
(
startMinute
,
endMinute
,
5
);
for
(
String
time
:
timeArray
)
{
RunningEvaluateIndexStatusVO
vo
=
new
RunningEvaluateIndexStatusVO
();
vo
.
setTime
(
time
);
List
<
CrossDataHistPO
>
subList
=
timePOMap
.
get
(
time
.
substring
(
0
,
2
));
//
保留小时字符串
List
<
CrossDataHistPO
>
subList
=
timePOMap
.
get
(
time
);
// time.substring(0, 2)
保留小时字符串
if
(
subList
!=
null
)
{
//根据状态计算平均值(拥堵、溢出、失衡、空放)
Double
avgCongestionIndex
=
calcAvgIndex
(
subList
,
status
);
...
...
@@ -977,6 +983,7 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
.
orElse
(
0.0
);
}
else
if
(
status
==
CrossStatusEnum
.
EMPTY_RELEASE
.
getCode
())
{
average
=
subList
.
stream
()
.
filter
(
crossDataHistPO
->
crossDataHistPO
.
getStatus
()
==
status
)
.
mapToDouble
(
CrossDataHistPO:
:
getDuration
)
.
average
()
.
orElse
(
0.0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment