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
e2b2a4e6
Commit
e2b2a4e6
authored
Mar 12, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 信号评价,评价指标-拥堵指数
parent
28a598c5
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
4 deletions
+33
-4
CrossDirDataHistAvgBO.java
...src/main/java/net/wanji/opt/bo/CrossDirDataHistAvgBO.java
+2
-0
EvaluateServiceImpl.java
.../java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
+30
-3
CrossDirDataHist.xml
...vice/src/main/resources/mapper/trend/CrossDirDataHist.xml
+1
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/bo/CrossDirDataHistAvgBO.java
View file @
e2b2a4e6
...
...
@@ -12,4 +12,6 @@ public class CrossDirDataHistAvgBO {
private
Integer
avgFlow
;
// 平均排队长度
private
Double
avgQueueLength
;
// 平均拥堵指数
private
Double
avgIndex
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
View file @
e2b2a4e6
...
...
@@ -81,14 +81,41 @@ public class EvaluateServiceImpl implements EvaluateService {
// 路口排队长度
List
<
EvaluateMetricsVO
.
QueueLengthElement
>
queueLength
=
buildQueueLength
(
crossId
,
minutes
);
evaluateMetricsVO
.
setQueueLength
(
queueLength
);
//
//
拥堵指数
// List<EvaluateMetricsVO.TrafficIndexElement> trafficIndex = buildTrafficIndex(
);
//
evaluateMetricsVO.setTrafficIndex(trafficIndex);
// 拥堵指数
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
trafficIndex
=
buildTrafficIndex
(
crossId
,
minutes
);
evaluateMetricsVO
.
setTrafficIndex
(
trafficIndex
);
// // todo 溢流率
// evaluateMetricsVO.setOverFlowRate(null);
return
evaluateMetricsVO
;
}
private
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
buildTrafficIndex
(
String
crossId
,
Integer
minutes
)
{
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
res
=
new
ArrayList
<>();
// 实时数据
Map
<
Integer
,
List
<
CrossDirDataRealtimePO
>>
dirObjMapRealtime
=
getRealTimeData
(
crossId
);
// 历史数据
Map
<
Integer
,
List
<
CrossDirDataHistAvgBO
>>
dirObjMapHist
=
getHistData
(
crossId
,
minutes
);
for
(
Integer
dir
:
dirObjMapRealtime
.
keySet
())
{
EvaluateMetricsVO
.
TrafficIndexElement
trafficIndexElement
=
new
EvaluateMetricsVO
.
TrafficIndexElement
();
trafficIndexElement
.
setDir
(
dir
);
List
<
CrossDirDataRealtimePO
>
realtimeObj
=
dirObjMapRealtime
.
get
(
dir
);
if
(
CollectionUtil
.
isNotEmpty
(
realtimeObj
))
{
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
realtimeObj
.
get
(
0
);
trafficIndexElement
.
setCurrentIndex
(
crossDirDataRealtimePO
.
getTrafficIndex
());
}
List
<
CrossDirDataHistAvgBO
>
histObj
=
dirObjMapHist
.
get
(
dir
);
if
(
CollectionUtil
.
isNotEmpty
(
histObj
))
{
CrossDirDataHistAvgBO
crossDirDataHistAvgBO
=
histObj
.
get
(
0
);
trafficIndexElement
.
setCompareIndex
(
crossDirDataHistAvgBO
.
getAvgIndex
());
}
res
.
add
(
trafficIndexElement
);
}
return
res
;
}
private
List
<
EvaluateMetricsVO
.
QueueLengthElement
>
buildQueueLength
(
String
crossId
,
Integer
minutes
)
{
List
<
EvaluateMetricsVO
.
QueueLengthElement
>
res
=
new
ArrayList
<>();
// 实时数据
...
...
signal-optimize-service/src/main/resources/mapper/trend/CrossDirDataHist.xml
View file @
e2b2a4e6
...
...
@@ -27,7 +27,7 @@
<select
id=
"selectByCrossIdInOutTimestamp"
resultType=
"net.wanji.opt.bo.CrossDirDataHistAvgBO"
>
SELECT dir_type as dirType, avg(capacity) as avgCapacity, avg(flow) as avgFlow,
avg(queue_length) as avgQueueLength
avg(queue_length) as avgQueueLength
, avg(traffic_index) as avgIndex
FROM t_cross_dir_data_hist
WHERE cross_id = #{crossId}
AND in_out_type = #{inOutType}
...
...
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