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
56882d8d
Commit
56882d8d
authored
Apr 22, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 济南测试平台-添加同比环比指标
parent
e6d0eb2a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
46 additions
and
1 deletion
+46
-1
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+46
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
56882d8d
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
net.wanji.common.enums.*
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.bo.CrossIdBO
;
...
...
@@ -85,6 +86,7 @@ public class TrendServiceImpl implements TrendService {
private
final
CrossLaneDataHistMapper
crossLaneDataHistMapper
;
private
final
LaneSnapshotDataQueryService
laneSnapshotDataQueryService
;
private
final
DirectionMappingsConfig
directionMappingsConfig
;
private
final
CrossDataHistMapper
crossDataHistMapper
;
// 用于计算路口状态,key为方向,value为状态
private
Map
<
Integer
,
Integer
>
preStatus
=
new
HashMap
<
Integer
,
Integer
>()
{{
...
...
@@ -110,7 +112,8 @@ public class TrendServiceImpl implements TrendService {
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
,
RidInfoMapper
ridInfoMapper
,
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
,
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
,
SceneStrategyIdeaMapper
strategyIdeaMapper
,
StrategyMapper
strategyMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
BaseCrossSchemeMapper
crossSchemeMapper
,
BaseCrossSchemeMapper
baseCrossSchemeMapper
,
BaseCrossPhaseMapper
baseCrossPhaseMapper
,
BaseCrossPhaseLightsMapper
crossPhaseLightsMapper
,
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
@Qualifier
(
"greenwaveSceneMapper"
)
GreenwaveSceneMapper
greenwaveSceneMapper
,
@Qualifier
(
"sceneStrategyMapper"
)
SceneStrategyMapper
sceneStrategyMapper
,
@Qualifier
(
"sceneMapper"
)
SceneMapper
sceneMapper
,
@Qualifier
(
"baseCrossPlanMapper"
)
BaseCrossPlanMapper
baseCrossPlanMapper
,
MainlineEvaluateServiceImpl
mainlineEvaluateServiceImpl
,
CrossLaneDataHistMapper
crossLaneDataHistMapper
,
LaneSnapshotDataQueryService
laneSnapshotDataQueryService
,
DirectionMappingsConfig
directionMappingsConfig
)
{
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
,
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
,
SceneStrategyIdeaMapper
strategyIdeaMapper
,
StrategyMapper
strategyMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
BaseCrossSchemeMapper
crossSchemeMapper
,
BaseCrossSchemeMapper
baseCrossSchemeMapper
,
BaseCrossPhaseMapper
baseCrossPhaseMapper
,
BaseCrossPhaseLightsMapper
crossPhaseLightsMapper
,
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
@Qualifier
(
"greenwaveSceneMapper"
)
GreenwaveSceneMapper
greenwaveSceneMapper
,
@Qualifier
(
"sceneStrategyMapper"
)
SceneStrategyMapper
sceneStrategyMapper
,
@Qualifier
(
"sceneMapper"
)
SceneMapper
sceneMapper
,
@Qualifier
(
"baseCrossPlanMapper"
)
BaseCrossPlanMapper
baseCrossPlanMapper
,
MainlineEvaluateServiceImpl
mainlineEvaluateServiceImpl
,
CrossLaneDataHistMapper
crossLaneDataHistMapper
,
LaneSnapshotDataQueryService
laneSnapshotDataQueryService
,
DirectionMappingsConfig
directionMappingsConfig
,
CrossDataHistMapper
crossDataHistMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
baseCrossInfoMapper
=
baseCrossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
...
...
@@ -142,6 +145,7 @@ public class TrendServiceImpl implements TrendService {
this
.
crossLaneDataHistMapper
=
crossLaneDataHistMapper
;
this
.
laneSnapshotDataQueryService
=
laneSnapshotDataQueryService
;
this
.
directionMappingsConfig
=
directionMappingsConfig
;
this
.
crossDataHistMapper
=
crossDataHistMapper
;
}
@Override
...
...
@@ -240,6 +244,26 @@ public class TrendServiceImpl implements TrendService {
}
CrossComparator
crossComparator
=
new
CrossComparator
();
abnormalCrossListVOList
.
sort
(
crossComparator
);
// 设置拥堵指数同比 环比
for
(
AbnormalCrossListVO
abnormalCrossListVO
:
abnormalCrossListVOList
)
{
String
crossId
=
abnormalCrossListVO
.
getId
();
Integer
batchTime
=
abnormalCrossListVO
.
getBatchTime
();
Double
congestionIndex
=
abnormalCrossListVO
.
getCongestionIndex
();
double
lastWeekIndex
=
getIndex
(
congestionIndex
,
crossId
,
batchTime
-
604800
);
double
lastPeriodIndex
=
getIndex
(
congestionIndex
,
crossId
,
batchTime
-
300
);
abnormalCrossListVO
.
setLastWeekIndex
(
lastWeekIndex
);
abnormalCrossListVO
.
setLastPeriodIndex
(
lastPeriodIndex
);
// 常发性偶发性 一个月内超过三次
int
frequent
=
getFrequent
(
crossId
,
batchTime
);
abnormalCrossListVO
.
setFrequent
(
frequent
);
}
abnormalCrossVO
.
setAbnormalCrossList
(
abnormalCrossListVOList
);
// 构造统计信息
List
<
AbnormalCrossListVO
>
listForStats
=
...
...
@@ -249,6 +273,27 @@ public class TrendServiceImpl implements TrendService {
return
abnormalCrossVO
;
}
private
int
getFrequent
(
String
crossId
,
Integer
batchTime
)
{
LambdaQueryWrapper
<
CrossDataHistPO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
CrossDataHistPO:
:
getCrossId
,
crossId
);
queryWrapper
.
between
(
CrossDataHistPO:
:
getBatchTime
,
batchTime
-
30
*
86400
,
batchTime
);
List
<
CrossDataHistPO
>
crossDataHistPOS
=
crossDataHistMapper
.
selectList
(
queryWrapper
);
int
frequent
=
crossDataHistPOS
.
size
()
>
3
?
1
:
0
;
return
frequent
;
}
private
double
getIndex
(
Double
congestionIndex
,
String
crossId
,
Integer
batchTime
)
{
LambdaQueryWrapper
<
CrossDataHistPO
>
lastWeekQuery
=
new
LambdaQueryWrapper
<>();
lastWeekQuery
.
eq
(
CrossDataHistPO:
:
getCrossId
,
crossId
);
lastWeekQuery
.
eq
(
CrossDataHistPO:
:
getBatchTime
,
batchTime
);
CrossDataHistPO
lastHistPO
=
crossDataHistMapper
.
selectOne
(
lastWeekQuery
);
if
(
Objects
.
isNull
(
lastHistPO
))
{
return
0.0
;
}
Double
lastCongestionIndex
=
lastHistPO
.
getCongestionIndex
();
return
Math
.
abs
((
congestionIndex
-
lastCongestionIndex
))/
lastCongestionIndex
*
100
;
}
private
static
class
CrossComparator
implements
Comparator
<
AbnormalCrossListVO
>
{
@Override
public
int
compare
(
AbnormalCrossListVO
o1
,
AbnormalCrossListVO
o2
)
{
...
...
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