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
295236e4
Commit
295236e4
authored
Aug 28, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 新信号评价-方案评价完成
parent
f9da91b8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
12 deletions
+67
-12
SchemeEvaluateServiceImpl.java
...net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
+57
-6
SchemeEvaluateProblemSchemeVO.java
.../java/net/wanji/opt/vo/SchemeEvaluateProblemSchemeVO.java
+10
-6
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
View file @
295236e4
...
@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
...
@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -91,16 +92,66 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -91,16 +92,66 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
byDateVOList
=
buildProblemSchemeListByDate
(
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
byDateVOList
=
buildProblemSchemeListByDate
(
dateProblemsMap
,
dateSchemesMap
);
dateProblemsMap
,
dateSchemesMap
);
res
.
setProblemSchemeListByDate
(
byDateVOList
);
res
.
setProblemSchemeListByDate
(
byDateVOList
);
// 构造计数
// res.setSchemeCounts();
int
schemeCounts
=
calcSchemeCounts
(
dateSchemesMap
);
// res.setEfficiencyProblemCounts();
res
.
setSchemeCounts
(
schemeCounts
);
// res.setBalanceProblemCounts();
res
.
setEfficiencyProblemCounts
(
calcProblemCounts
(
// res.setSecurityProblemCounts();
byDateVOList
,
SchemeEvaluateProblemSchemeVO
.
ByDateVO
::
getEfficiencyProblemCounts
));
// res.setProblemSchemeListByScheme();
res
.
setBalanceProblemCounts
(
calcProblemCounts
(
byDateVOList
,
SchemeEvaluateProblemSchemeVO
.
ByDateVO
::
getBalanceProblemCounts
));
res
.
setSecurityProblemCounts
(
calcProblemCounts
(
byDateVOList
,
SchemeEvaluateProblemSchemeVO
.
ByDateVO
::
getSecurityProblemCounts
));
// 构造问题方案列表(根据方案)
res
.
setProblemSchemeListByScheme
(
buildProblemSchemeListByScheme
(
dateSchemesMap
));
return
res
;
return
res
;
}
}
private
List
<
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
>
buildProblemSchemeListByScheme
(
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
)
{
// 使用一个Map来临时存储按方案名称分组的数据
Map
<
String
,
List
<
SchemeEvaluateProblemSchemeVO
.
SchemeDatetime
>>
tempMap
=
new
HashMap
<>();
for
(
Map
.
Entry
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
entry
:
dateSchemesMap
.
entrySet
())
{
Date
date
=
entry
.
getKey
();
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
problemSchemes
=
entry
.
getValue
();
for
(
RunningEvaluateMetricsDetailVO
.
ProblemScheme
problemScheme
:
problemSchemes
)
{
String
schemeName
=
problemScheme
.
getSchemeName
();
SchemeEvaluateProblemSchemeVO
.
SchemeDatetime
schemeDatetime
=
new
SchemeEvaluateProblemSchemeVO
.
SchemeDatetime
();
schemeDatetime
.
setProblemDate
(
date
);
schemeDatetime
.
setStartTime
(
problemScheme
.
getStartTime
());
schemeDatetime
.
setEndTime
(
problemScheme
.
getEndTime
());
tempMap
.
computeIfAbsent
(
schemeName
,
k
->
new
ArrayList
<>()).
add
(
schemeDatetime
);
}
}
// 构建最终的 List<BySchemeVO>
List
<
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
>
bySchemeVOList
=
tempMap
.
entrySet
().
stream
()
.
map
(
entry
->
{
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
bySchemeVO
=
new
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
();
bySchemeVO
.
setSchemeName
(
entry
.
getKey
());
bySchemeVO
.
setSchemeDatetimeList
(
entry
.
getValue
());
return
bySchemeVO
;
})
.
collect
(
Collectors
.
toList
());
return
bySchemeVOList
;
}
private
int
calcProblemCounts
(
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
byDateVOList
,
Function
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
,
Integer
>
getCount
)
{
return
byDateVOList
.
stream
().
mapToInt
(
getCount:
:
apply
).
sum
();
}
private
int
calcSchemeCounts
(
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
)
{
int
schemeCounts
=
0
;
for
(
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
list
:
dateSchemesMap
.
values
())
{
schemeCounts
+=
list
.
size
();
}
return
schemeCounts
;
}
@NotNull
@NotNull
private
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
buildProblemSchemeListByDate
(
private
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
buildProblemSchemeListByDate
(
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
,
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
,
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/SchemeEvaluateProblemSchemeVO.java
View file @
295236e4
...
@@ -64,17 +64,21 @@ public class SchemeEvaluateProblemSchemeVO {
...
@@ -64,17 +64,21 @@ public class SchemeEvaluateProblemSchemeVO {
public
static
class
BySchemeVO
{
public
static
class
BySchemeVO
{
@ApiModelProperty
(
value
=
"方案名称"
)
@ApiModelProperty
(
value
=
"方案名称"
)
private
String
schemeName
;
private
String
schemeName
;
@ApiModelProperty
(
value
=
"方案日期时间列表"
)
private
List
<
SchemeDatetime
>
SchemeDatetimeList
;
}
@NoArgsConstructor
@Data
public
static
class
SchemeDatetime
{
@ApiModelProperty
(
value
=
"日期"
)
@ApiModelProperty
(
value
=
"日期"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"M/d"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"M/d"
,
timezone
=
"GMT+8"
)
private
Date
problemDate
;
private
Date
problemDate
;
@ApiModelProperty
(
value
=
"开始时间"
)
@ApiModelProperty
(
value
=
"开始时间 HH:mm"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
String
startTime
;
Date
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
@ApiModelProperty
(
value
=
"结束时间 HH:mm"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
String
endTime
;
Date
endTime
;
}
}
}
}
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