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
fe04dd77
Commit
fe04dd77
authored
Mar 12, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 信号评价,评价指标-溢流率
parent
e2b2a4e6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
7 deletions
+42
-7
CrossDirDataHistAvgBO.java
...src/main/java/net/wanji/opt/bo/CrossDirDataHistAvgBO.java
+2
-0
EvaluateServiceImpl.java
.../java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
+35
-3
EvaluateMetricsVO.java
...ice/src/main/java/net/wanji/opt/vo/EvaluateMetricsVO.java
+2
-2
CrossDirDataHist.xml
...vice/src/main/resources/mapper/trend/CrossDirDataHist.xml
+2
-1
DoubleSerialize.java
...main/java/net/wanji/common/framework/DoubleSerialize.java
+1
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/bo/CrossDirDataHistAvgBO.java
View file @
fe04dd77
...
...
@@ -14,4 +14,6 @@ public class CrossDirDataHistAvgBO {
private
Double
avgQueueLength
;
// 平均拥堵指数
private
Double
avgIndex
;
// 平均溢流时长
private
Double
avgEffusionTime
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
View file @
fe04dd77
...
...
@@ -75,6 +75,7 @@ public class EvaluateServiceImpl implements EvaluateService {
String
crossId
=
crossIdAndMinutesDTO
.
getCrossId
();
Integer
minutes
=
crossIdAndMinutesDTO
.
getMinutes
();
EvaluateMetricsVO
evaluateMetricsVO
=
new
EvaluateMetricsVO
();
// 路口流量
List
<
EvaluateMetricsVO
.
CrossFlowElement
>
crossFlow
=
buildCrossFlow
(
crossId
,
minutes
);
evaluateMetricsVO
.
setCrossFlow
(
crossFlow
);
...
...
@@ -84,11 +85,43 @@ public class EvaluateServiceImpl implements EvaluateService {
// 拥堵指数
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
trafficIndex
=
buildTrafficIndex
(
crossId
,
minutes
);
evaluateMetricsVO
.
setTrafficIndex
(
trafficIndex
);
// // todo 溢流率
// evaluateMetricsVO.setOverFlowRate(null);
// 溢流率
List
<
EvaluateMetricsVO
.
EffusionRateElement
>
effusionRate
=
buildEffusionRate
(
crossId
,
minutes
);
evaluateMetricsVO
.
setEffusionRate
(
effusionRate
);
return
evaluateMetricsVO
;
}
private
List
<
EvaluateMetricsVO
.
EffusionRateElement
>
buildEffusionRate
(
String
crossId
,
Integer
minutes
)
{
List
<
EvaluateMetricsVO
.
EffusionRateElement
>
res
=
new
ArrayList
<>();
// 实时数据
Map
<
Integer
,
List
<
CrossDirDataRealtimePO
>>
dirObjMapRealtime
=
getRealTimeData
(
crossId
);
// 历史数据
Map
<
Integer
,
List
<
CrossDirDataHistAvgBO
>>
dirObjMapHist
=
getHistData
(
crossId
,
minutes
);
for
(
Integer
dir
:
dirObjMapRealtime
.
keySet
())
{
EvaluateMetricsVO
.
EffusionRateElement
effusionRateElement
=
new
EvaluateMetricsVO
.
EffusionRateElement
();
effusionRateElement
.
setDir
(
dir
);
List
<
CrossDirDataRealtimePO
>
realtimeObj
=
dirObjMapRealtime
.
get
(
dir
);
if
(
CollectionUtil
.
isNotEmpty
(
realtimeObj
))
{
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
realtimeObj
.
get
(
0
);
Double
effusionTime
=
crossDirDataRealtimePO
.
getEffusionTime
();
Double
effusionRate
=
effusionTime
/
minutes
;
effusionRateElement
.
setCurrentRate
(
effusionRate
);
}
List
<
CrossDirDataHistAvgBO
>
histObj
=
dirObjMapHist
.
get
(
dir
);
if
(
CollectionUtil
.
isNotEmpty
(
histObj
))
{
CrossDirDataHistAvgBO
crossDirDataHistAvgBO
=
histObj
.
get
(
0
);
Double
avgEffusionTime
=
crossDirDataHistAvgBO
.
getAvgEffusionTime
();
Double
avgEffusionRate
=
avgEffusionTime
/
minutes
;
effusionRateElement
.
setCompareRate
(
avgEffusionRate
);
}
res
.
add
(
effusionRateElement
);
}
return
res
;
}
private
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
buildTrafficIndex
(
String
crossId
,
Integer
minutes
)
{
List
<
EvaluateMetricsVO
.
TrafficIndexElement
>
res
=
new
ArrayList
<>();
// 实时数据
...
...
@@ -112,7 +145,6 @@ public class EvaluateServiceImpl implements EvaluateService {
res
.
add
(
trafficIndexElement
);
}
return
res
;
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/EvaluateMetricsVO.java
View file @
fe04dd77
...
...
@@ -23,7 +23,7 @@ public class EvaluateMetricsVO {
@ApiModelProperty
(
value
=
"拥堵指数"
)
private
List
<
TrafficIndexElement
>
trafficIndex
;
@ApiModelProperty
(
value
=
"溢流率"
)
private
List
<
OverFlowRateElement
>
overFlow
Rate
;
private
List
<
EffusionRateElement
>
effusion
Rate
;
@NoArgsConstructor
@Data
...
...
@@ -68,7 +68,7 @@ public class EvaluateMetricsVO {
@NoArgsConstructor
@Data
public
static
class
OverFlow
RateElement
{
public
static
class
Effusion
RateElement
{
@ApiModelProperty
(
value
=
"方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
)
private
Integer
dir
;
@ApiModelProperty
(
value
=
"当前时段溢流率"
)
...
...
signal-optimize-service/src/main/resources/mapper/trend/CrossDirDataHist.xml
View file @
fe04dd77
...
...
@@ -27,7 +27,8 @@
<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(traffic_index) as avgIndex
avg(queue_length) as avgQueueLength, avg(traffic_index) as avgIndex,
avg(effusion_time) as avgEffusionTime
FROM t_cross_dir_data_hist
WHERE cross_id = #{crossId}
AND in_out_type = #{inOutType}
...
...
wj-common/src/main/java/net/wanji/common/framework/DoubleSerialize.java
View file @
fe04dd77
...
...
@@ -16,7 +16,7 @@ import java.text.DecimalFormat;
*/
public
class
DoubleSerialize
extends
JsonSerializer
<
Double
>
{
private
DecimalFormat
df
=
new
DecimalFormat
(
"#
#
.00"
);
private
DecimalFormat
df
=
new
DecimalFormat
(
"#
0
.00"
);
@Override
public
void
serialize
(
Double
value
,
JsonGenerator
gen
,
SerializerProvider
serializers
)
...
...
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