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
a291ebf2
Commit
a291ebf2
authored
Jun 13, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 信号优化,态势监测-修改绿波路口指标计算方式
parent
936d3411
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
134 additions
and
100 deletions
+134
-100
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+84
-97
BaseCrossLaneLightsMapper.java
...t/wanji/databus/dao/mapper/BaseCrossLaneLightsMapper.java
+1
-0
BaseCrossSectionMapper.java
.../net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
+2
-0
CrossTurnDataHistMapper.java
...net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
+3
-0
CrossBaseLaneInfoPO.java
...c/main/java/net/wanji/databus/po/CrossBaseLaneInfoPO.java
+0
-2
CrossTurnDataRealtimePO.java
...in/java/net/wanji/databus/po/CrossTurnDataRealtimePO.java
+10
-0
BaseCrossLaneLightsMapper.xml
...s/src/main/resources/mapper/BaseCrossLaneLightsMapper.xml
+10
-0
BaseCrossSectionMapper.xml
...abus/src/main/resources/mapper/BaseCrossSectionMapper.xml
+6
-0
CrossTurnDataHistMapper.xml
...bus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
+18
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
a291ebf2
...
@@ -8,6 +8,7 @@ import net.wanji.common.dto.CrossIdDTO;
...
@@ -8,6 +8,7 @@ import net.wanji.common.dto.CrossIdDTO;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.enums.TurnConvertEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.*
;
...
@@ -61,6 +62,10 @@ public class TrendServiceImpl implements TrendService {
...
@@ -61,6 +62,10 @@ public class TrendServiceImpl implements TrendService {
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
private
final
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
private
final
BaseCrossPhaseMapper
baseCrossPhaseMapper
;
private
final
BaseCrossPhaseMapper
baseCrossPhaseMapper
;
private
final
BaseCrossPhaseLightsMapper
crossPhaseLightsMapper
;
private
final
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
;
private
final
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
;
private
final
CrossTurnDataHistMapper
crossTurnDataHistMapper
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
...
@@ -69,7 +74,7 @@ public class TrendServiceImpl implements TrendService {
...
@@ -69,7 +74,7 @@ public class TrendServiceImpl implements TrendService {
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
,
RidInfoMapper
ridInfoMapper
,
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
RidInfoMapper
ridInfoMapper
,
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
,
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
,
SceneStrategyIdeaMapper
strategyIdeaMapper
,
StrategyMapper
strategyMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
BaseCrossSchemeMapper
crossSchemeMapper
,
BaseCrossSchemeMapper
baseCrossSchemeMapper
,
BaseCrossPhaseMapper
baseCrossPhaseMapper
)
{
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
,
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
,
SceneStrategyIdeaMapper
strategyIdeaMapper
,
StrategyMapper
strategyMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
BaseCrossSchemeMapper
crossSchemeMapper
,
BaseCrossSchemeMapper
baseCrossSchemeMapper
,
BaseCrossPhaseMapper
baseCrossPhaseMapper
,
BaseCrossPhaseLightsMapper
crossPhaseLightsMapper
,
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
baseCrossInfoMapper
=
baseCrossInfoMapper
;
this
.
baseCrossInfoMapper
=
baseCrossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
...
@@ -89,6 +94,10 @@ public class TrendServiceImpl implements TrendService {
...
@@ -89,6 +94,10 @@ public class TrendServiceImpl implements TrendService {
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSchemeMapper
=
baseCrossSchemeMapper
;
this
.
baseCrossSchemeMapper
=
baseCrossSchemeMapper
;
this
.
baseCrossPhaseMapper
=
baseCrossPhaseMapper
;
this
.
baseCrossPhaseMapper
=
baseCrossPhaseMapper
;
this
.
crossPhaseLightsMapper
=
crossPhaseLightsMapper
;
this
.
baseCrossLaneLightsMapper
=
baseCrossLaneLightsMapper
;
this
.
crossBaseLaneInfoMapper
=
crossBaseLaneInfoMapper
;
this
.
crossTurnDataHistMapper
=
crossTurnDataHistMapper
;
}
}
@Override
@Override
...
@@ -389,33 +398,13 @@ public class TrendServiceImpl implements TrendService {
...
@@ -389,33 +398,13 @@ public class TrendServiceImpl implements TrendService {
distanceToNextCross
=
(
int
)
nextCrossLen
;
distanceToNextCross
=
(
int
)
nextCrossLen
;
}
}
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
//
查找方向
平均速度
//
计算
平均速度
Double
speed
=
calcSpeed
(
greenwaveCross
List
,
i
,
crossId
);
Double
speed
=
calcSpeed
(
greenwaveCross
PO
,
crossId
);
greenwaveCross
.
setSpeed
(
speed
);
greenwaveCross
.
setSpeed
(
speed
);
// 获取当前方案
// 根据当前时间获取方案信息
Integer
sectionId
=
greenwaveCrossPO
.
getSectionId
();
Date
todayDate
=
new
Date
();
CrossSectionPO
crossSectionPO
=
baseCrossSectionMapper
.
selectById
(
sectionId
);
// 获取当前执行的调度
Integer
currentSchemeId
=
crossSectionPO
.
getSchemeId
();
BaseCrossSchedulesPO
baseCrossSchedulesPO
=
baseCrossSchedulesMapper
.
selectExecByCrossId
(
crossId
);
Integer
schedulesId
=
baseCrossSchedulesPO
.
getId
();
// 获取日计划
Integer
planId
=
null
;
// 判断是否是特殊日期
CrossSchedulesPlanPO
crossSchedulesPlanPO
=
crossSchedulesPlanMapper
.
selectBySpecialDate
(
crossId
,
schedulesId
,
todayDate
);
if
(
ObjectUtil
.
isNotEmpty
(
crossSchedulesPlanPO
))
{
planId
=
crossSchedulesPlanPO
.
getPlanId
();
}
else
{
// 判断是星期几
int
weekday
=
convertWeekDay
(
DateUtil
.
dayOfWeek
(
todayDate
));
CrossSchedulesPlanPO
weekdayPlanPO
=
crossSchedulesPlanMapper
.
selectByWeekday
(
crossId
,
schedulesId
,
weekday
);
planId
=
weekdayPlanPO
.
getPlanId
();
}
// 获取当前执行的方案
List
<
CrossSectionPO
>
baseCrossSectionPOList
=
baseCrossSectionMapper
.
selectByCrossAndPlan
(
crossId
,
planId
);
Integer
currentSchemeId
=
findCurrentScheme
(
baseCrossSectionPOList
,
todayDate
);
BaseCrossSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectById
(
currentSchemeId
);
BaseCrossSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectById
(
currentSchemeId
);
greenwaveCross
.
setOffset
(
baseCrossSchemePO
.
getOffset
());
greenwaveCross
.
setOffset
(
baseCrossSchemePO
.
getOffset
());
// 构造相位时差图
// 构造相位时差图
...
@@ -461,27 +450,6 @@ public class TrendServiceImpl implements TrendService {
...
@@ -461,27 +450,6 @@ public class TrendServiceImpl implements TrendService {
return
res
;
return
res
;
}
}
private
Integer
findCurrentScheme
(
List
<
CrossSectionPO
>
baseCrossSectionPOList
,
Date
todayDate
)
{
Integer
schemeId
=
null
;
for
(
CrossSectionPO
crossSectionPO
:
baseCrossSectionPOList
)
{
String
startTimeRaw
=
crossSectionPO
.
getStartTime
();
String
endTimeRaw
=
crossSectionPO
.
getEndTime
();
String
startTimeStr
=
startTimeRaw
.
replace
(
":"
,
""
);
String
endTimeStr
=
endTimeRaw
.
replace
(
":"
,
""
);
int
startTime
=
Integer
.
parseInt
(
startTimeStr
);
int
endTime
=
Integer
.
parseInt
(
endTimeStr
);
String
todayRaw
=
DateUtil
.
format
(
todayDate
,
"HH:mm"
);
String
todayStr
=
todayRaw
.
replace
(
":"
,
""
);
int
todayTime
=
Integer
.
parseInt
(
todayStr
);
if
(
todayTime
>=
startTime
&&
todayTime
<=
endTime
)
{
schemeId
=
crossSectionPO
.
getSchemeId
();
}
}
return
schemeId
;
}
private
int
convertWeekDay
(
int
i
)
{
private
int
convertWeekDay
(
int
i
)
{
if
(
1
==
i
)
{
if
(
1
==
i
)
{
return
7
;
return
7
;
...
@@ -489,26 +457,11 @@ public class TrendServiceImpl implements TrendService {
...
@@ -489,26 +457,11 @@ public class TrendServiceImpl implements TrendService {
return
i
-
1
;
return
i
-
1
;
}
}
private
Double
calcSpeed
(
List
<
GreenwaveCrossPO
>
greenwaveCrossList
,
int
i
,
String
currentCrossId
)
{
private
Double
calcSpeed
(
GreenwaveCrossPO
greenwaveCrossPO
,
String
currentCrossId
)
{
int
size
=
greenwaveCrossList
.
size
();
Integer
outDir
=
greenwaveCrossPO
.
getOutDir
();
int
lastCrossIndex
=
size
-
1
;
if
(
i
!=
lastCrossIndex
)
{
// 不是最后一个路口
GreenwaveCrossPO
nextCross
=
greenwaveCrossList
.
get
(
i
+
1
);
String
nextCrossId
=
nextCross
.
getCrossId
();
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
currentCrossId
,
nextCrossId
);
Integer
outDir
=
ridInfoEntity
.
getOutDir
();
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
crossDirDataRealtimeMapper
.
selectByCrossIdAndDirType
(
currentCrossId
,
outDir
);
crossDirDataRealtimeMapper
.
selectByCrossIdAndDirType
(
currentCrossId
,
outDir
);
return
crossDirDataRealtimePO
.
getSpeed
();
return
crossDirDataRealtimePO
.
getSpeed
();
}
else
{
GreenwaveCrossPO
preCross
=
greenwaveCrossList
.
get
(
i
-
1
);
String
preCrossId
=
preCross
.
getCrossId
();
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
preCrossId
,
currentCrossId
);
Integer
inDir
=
ridInfoEntity
.
getInDir
();
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
crossDirDataRealtimeMapper
.
selectByInDir
(
currentCrossId
,
inDir
);
return
crossDirDataRealtimePO
.
getSpeed
();
}
}
}
@Override
@Override
...
@@ -535,35 +488,69 @@ public class TrendServiceImpl implements TrendService {
...
@@ -535,35 +488,69 @@ public class TrendServiceImpl implements TrendService {
String
currentCrossId
=
crossId
;
String
currentCrossId
=
crossId
;
long
currentSeconds
=
timeStamp
;
long
currentSeconds
=
timeStamp
;
long
preSeconds
=
currentSeconds
-
60
*
5
;
long
preSeconds
=
currentSeconds
-
60
*
5
;
// 如果不是最后一个路口
// 获取当前方案
if
(
i
!=
lastCrossIndex
)
{
Integer
sectionId
=
greenwaveCrossPO
.
getSectionId
();
GreenwaveCrossPO
nextCross
=
greenwaveCrossList
.
get
(
i
+
1
);
CrossSectionPO
crossSectionPO
=
baseCrossSectionMapper
.
selectById
(
sectionId
);
String
nextCrossId
=
nextCross
.
getCrossId
();
Integer
schemeId
=
crossSectionPO
.
getSchemeId
();
// 当前路口出口方向
// 获取协调相位对应的车道集合
Integer
outDir
=
greenwaveCrossPO
.
getOutDir
();
BaseCrossSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectById
(
schemeId
);
List
<
CrossDirDataHistPO
>
listForNoPark
=
Integer
coordPhaseID
=
baseCrossSchemePO
.
getCoordPhase
();
crossDirDataHistMapper
.
selectNoPark
(
currentCrossId
,
outDir
,
currentSeconds
,
preSeconds
);
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
crossPhaseLightsMapper
.
selectByPhaseId
(
coordPhaseID
);
List
<
CrossDirDataHistPO
>
listForPhaseQueue
=
List
<
Integer
>
lightIds
=
crossPhaseLightsPOList
.
stream
()
crossDirDataHistMapper
.
selectPhaseQueue
(
currentCrossId
,
outDir
,
currentSeconds
,
preSeconds
);
.
map
(
CrossPhaseLightsPO:
:
getLightsId
)
setMetrics
(
greenwaveCrossMetricsVO
,
greenwaveCrossPO
,
listForNoPark
,
listForPhaseQueue
);
.
collect
(
Collectors
.
toList
());
}
else
{
List
<
CrossLaneLightsPO
>
crossLaneLightsPOList
=
baseCrossLaneLightsMapper
.
selectByLightIds
(
lightIds
);
// 最后一个路口
List
<
String
>
laneIds
=
crossLaneLightsPOList
.
stream
()
GreenwaveCrossPO
preCross
=
greenwaveCrossList
.
get
(
i
-
1
);
.
map
(
CrossLaneLightsPO:
:
getLaneId
)
String
preCrossId
=
preCross
.
getCrossId
();
.
collect
(
Collectors
.
toList
());
// 当前路口入口方向
List
<
CrossBaseLaneInfoPO
>
lanePOList
=
crossBaseLaneInfoMapper
.
selectBatchIds
(
laneIds
);
Integer
inDir
=
greenwaveCrossPO
.
getInDir
();
// 构造方向+转向列表
List
<
CrossDirDataHistPO
>
listForNoPark
=
List
<
List
<
Integer
>>
dirTurnList
=
new
ArrayList
<>();
crossDirDataHistMapper
.
selectNoParkEnd
(
currentCrossId
,
inDir
,
currentSeconds
,
preSeconds
);
for
(
CrossBaseLaneInfoPO
lanePO
:
lanePOList
)
{
List
<
CrossDirDataHistPO
>
listForPhaseQueue
=
Integer
dir
=
lanePO
.
getDir
();
crossDirDataHistMapper
.
selectPhaseQueueEnd
(
currentCrossId
,
inDir
,
currentSeconds
,
preSeconds
);
Integer
turn
=
lanePO
.
getTurn
();
List
<
Integer
>
dirTurn
=
new
ArrayList
<>();
dirTurn
.
add
(
dir
);
dirTurn
.
add
(
turn
);
dirTurnList
.
add
(
dirTurn
);
}
// 计算指标
List
<
CrossTurnDataHistPO
>
listForNoPark
=
new
ArrayList
<>();
for
(
List
<
Integer
>
dirTurn
:
dirTurnList
)
{
Integer
dir
=
dirTurn
.
get
(
0
);
Integer
turnInt
=
dirTurn
.
get
(
1
);
String
turn
=
TurnConvertEnum
.
getCodeByKey
(
turnInt
);
CrossTurnDataHistPO
noPark
=
crossTurnDataHistMapper
.
selectNoPark
(
currentCrossId
,
dir
,
turn
,
currentSeconds
,
preSeconds
);
if
(
noPark
!=
null
)
{
listForNoPark
.
add
(
noPark
);
}
}
List
<
CrossTurnDataHistPO
>
allPO
=
crossTurnDataHistMapper
.
selectByCrossId
(
currentCrossId
,
currentSeconds
,
preSeconds
);
List
<
CrossTurnDataHistPO
>
listForPhaseQueue
=
getPhaseQueueList
(
listForNoPark
,
allPO
);
setMetrics
(
greenwaveCrossMetricsVO
,
greenwaveCrossPO
,
listForNoPark
,
listForPhaseQueue
);
setMetrics
(
greenwaveCrossMetricsVO
,
greenwaveCrossPO
,
listForNoPark
,
listForPhaseQueue
);
}
res
.
add
(
greenwaveCrossMetricsVO
);
res
.
add
(
greenwaveCrossMetricsVO
);
}
}
return
res
;
return
res
;
}
}
private
List
<
CrossTurnDataHistPO
>
getPhaseQueueList
(
List
<
CrossTurnDataHistPO
>
listForNoPark
,
List
<
CrossTurnDataHistPO
>
allPO
)
{
Iterator
<
CrossTurnDataHistPO
>
iterator
=
allPO
.
iterator
();
while
(
iterator
.
hasNext
())
{
CrossTurnDataHistPO
next
=
iterator
.
next
();
for
(
CrossTurnDataHistPO
crossTurnDataHistPO
:
listForNoPark
)
{
if
(
Objects
.
equals
(
next
.
getTurnType
(),
crossTurnDataHistPO
.
getTurnType
())
&&
Objects
.
equals
(
next
.
getInDir
(),
crossTurnDataHistPO
.
getInDir
()))
{
iterator
.
remove
();
}
}
}
return
allPO
;
}
@Override
@Override
@Transactional
@Transactional
public
void
saveGreenwaveStrategy
(
SaveGreenwaveStrategyBO
saveGreenwaveStrategyBO
)
{
public
void
saveGreenwaveStrategy
(
SaveGreenwaveStrategyBO
saveGreenwaveStrategyBO
)
{
...
@@ -580,7 +567,7 @@ public class TrendServiceImpl implements TrendService {
...
@@ -580,7 +567,7 @@ public class TrendServiceImpl implements TrendService {
}
}
private
void
setMetrics
(
GreenwaveCrossMetricsVO
greenwaveCrossMetricsVO
,
GreenwaveCrossPO
greenwaveCrossPO
,
private
void
setMetrics
(
GreenwaveCrossMetricsVO
greenwaveCrossMetricsVO
,
GreenwaveCrossPO
greenwaveCrossPO
,
List
<
Cross
DirDataHistPO
>
listForNoPark
,
List
<
CrossDir
DataHistPO
>
listForPhaseQueue
)
{
List
<
Cross
TurnDataHistPO
>
listForNoPark
,
List
<
CrossTurn
DataHistPO
>
listForPhaseQueue
)
{
if
(
CollectionUtil
.
isNotEmpty
(
listForNoPark
)
&&
CollectionUtil
.
isNotEmpty
(
listForPhaseQueue
))
{
if
(
CollectionUtil
.
isNotEmpty
(
listForNoPark
)
&&
CollectionUtil
.
isNotEmpty
(
listForPhaseQueue
))
{
Integer
noparkPassRate
=
getAveRate
(
listForNoPark
);
Integer
noparkPassRate
=
getAveRate
(
listForNoPark
);
greenwaveCrossMetricsVO
.
setNoparkPassRate
(
noparkPassRate
);
greenwaveCrossMetricsVO
.
setNoparkPassRate
(
noparkPassRate
);
...
@@ -593,9 +580,9 @@ public class TrendServiceImpl implements TrendService {
...
@@ -593,9 +580,9 @@ public class TrendServiceImpl implements TrendService {
}
}
}
}
private
Double
getSpeed
(
List
<
Cross
Dir
DataHistPO
>
listForNoPark
)
{
private
Double
getSpeed
(
List
<
Cross
Turn
DataHistPO
>
listForNoPark
)
{
Double
total
=
0.0
;
Double
total
=
0.0
;
for
(
Cross
Dir
DataHistPO
crossDirDataHistPO
:
listForNoPark
)
{
for
(
Cross
Turn
DataHistPO
crossDirDataHistPO
:
listForNoPark
)
{
Double
speed
=
crossDirDataHistPO
.
getSpeed
();
Double
speed
=
crossDirDataHistPO
.
getSpeed
();
total
+=
speed
;
total
+=
speed
;
}
}
...
@@ -603,9 +590,9 @@ public class TrendServiceImpl implements TrendService {
...
@@ -603,9 +590,9 @@ public class TrendServiceImpl implements TrendService {
return
avgSpeed
;
return
avgSpeed
;
}
}
private
Integer
getPhaseQueue
(
List
<
Cross
Dir
DataHistPO
>
listForPhaseQueue
)
{
private
Integer
getPhaseQueue
(
List
<
Cross
Turn
DataHistPO
>
listForPhaseQueue
)
{
double
maxQueue
=
0.0
;
double
maxQueue
=
0.0
;
for
(
Cross
Dir
DataHistPO
crossDirDataHistPO
:
listForPhaseQueue
)
{
for
(
Cross
Turn
DataHistPO
crossDirDataHistPO
:
listForPhaseQueue
)
{
double
queueLength
=
crossDirDataHistPO
.
getQueueLength
();
double
queueLength
=
crossDirDataHistPO
.
getQueueLength
();
if
(
queueLength
>
maxQueue
)
{
if
(
queueLength
>
maxQueue
)
{
maxQueue
=
queueLength
;
maxQueue
=
queueLength
;
...
@@ -614,9 +601,9 @@ public class TrendServiceImpl implements TrendService {
...
@@ -614,9 +601,9 @@ public class TrendServiceImpl implements TrendService {
return
(
int
)
maxQueue
;
return
(
int
)
maxQueue
;
}
}
private
Integer
getAveRate
(
List
<
Cross
Dir
DataHistPO
>
crossDirDataHistPOList
)
{
private
Integer
getAveRate
(
List
<
Cross
Turn
DataHistPO
>
crossDirDataHistPOList
)
{
Double
total
=
0.0
;
Double
total
=
0.0
;
for
(
Cross
Dir
DataHistPO
crossDirDataHistPO
:
crossDirDataHistPOList
)
{
for
(
Cross
Turn
DataHistPO
crossDirDataHistPO
:
crossDirDataHistPOList
)
{
Double
noStopRate
=
crossDirDataHistPO
.
getNoStopRate
();
Double
noStopRate
=
crossDirDataHistPO
.
getNoStopRate
();
total
+=
noStopRate
;
total
+=
noStopRate
;
}
}
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossLaneLightsMapper.java
View file @
a291ebf2
...
@@ -36,4 +36,5 @@ public interface BaseCrossLaneLightsMapper {
...
@@ -36,4 +36,5 @@ public interface BaseCrossLaneLightsMapper {
List
<
CrossLaneLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
List
<
CrossLaneLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
List
<
CrossLaneLightsPO
>
selectByLightIds
(
List
<
Integer
>
ids
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
View file @
a291ebf2
...
@@ -22,4 +22,6 @@ public interface BaseCrossSectionMapper {
...
@@ -22,4 +22,6 @@ public interface BaseCrossSectionMapper {
List
<
CrossSectionPO
>
listCrossSectionPO
(
@Param
(
"entity"
)
CrossSectionPO
entity
);
List
<
CrossSectionPO
>
listCrossSectionPO
(
@Param
(
"entity"
)
CrossSectionPO
entity
);
List
<
CrossSectionPO
>
selectByCrossAndPlan
(
String
crossId
,
Integer
planId
);
List
<
CrossSectionPO
>
selectByCrossAndPlan
(
String
crossId
,
Integer
planId
);
CrossSectionPO
selectById
(
Integer
id
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
View file @
a291ebf2
...
@@ -17,4 +17,7 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
...
@@ -17,4 +17,7 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
void
insertBatch
(
@Param
(
"list"
)
List
<
CrossTurnDataHistPO
>
list
);
void
insertBatch
(
@Param
(
"list"
)
List
<
CrossTurnDataHistPO
>
list
);
void
deleteBatch
(
@Param
(
"list"
)
Collection
<
String
>
crossIds
);
void
deleteBatch
(
@Param
(
"list"
)
Collection
<
String
>
crossIds
);
CrossTurnDataHistPO
selectNoPark
(
String
crossId
,
Integer
dir
,
String
turn
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossTurnDataHistPO
>
selectByCrossId
(
String
crossId
,
long
currentSeconds
,
long
preSeconds
);
}
}
wj-databus/src/main/java/net/wanji/databus/po/CrossBaseLaneInfoPO.java
View file @
a291ebf2
...
@@ -34,8 +34,6 @@ public class CrossBaseLaneInfoPO {
...
@@ -34,8 +34,6 @@ public class CrossBaseLaneInfoPO {
@ApiModelProperty
(
name
=
"路段编号"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"路段编号"
,
notes
=
""
)
private
String
rid
;
private
String
rid
;
@ApiModelProperty
(
name
=
"渠化编号"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"渠化编号"
,
notes
=
""
)
private
String
segmentId
;
@ApiModelProperty
(
name
=
"车道长度"
,
notes
=
""
)
private
Double
length
;
private
Double
length
;
@ApiModelProperty
(
name
=
"车道宽度"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"车道宽度"
,
notes
=
""
)
private
Double
width
;
private
Double
width
;
...
...
wj-databus/src/main/java/net/wanji/databus/po/CrossTurnDataRealtimePO.java
View file @
a291ebf2
...
@@ -68,6 +68,16 @@ public class CrossTurnDataRealtimePO {
...
@@ -68,6 +68,16 @@ public class CrossTurnDataRealtimePO {
/** 可信度:0~1 */
/** 可信度:0~1 */
@ApiModelProperty
(
name
=
"可信度:0~1"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"可信度:0~1"
,
notes
=
""
)
private
Double
quality
;
private
Double
quality
;
@ApiModelProperty
(
name
=
"不停车率"
,
notes
=
""
)
private
Double
noStopRate
;
@ApiModelProperty
(
name
=
"一次停车率"
,
notes
=
""
)
private
Double
oneStopRate
;
@ApiModelProperty
(
name
=
"二次停车率"
,
notes
=
""
)
private
Double
twoStopRate
;
@ApiModelProperty
(
name
=
"三次停车率"
,
notes
=
""
)
private
Double
threeStopRate
;
/** 采集时间(10位时间戳) */
/** 采集时间(10位时间戳) */
@ApiModelProperty
(
name
=
"采集时间(10位时间戳)"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Integer
batchTime
;
private
Integer
batchTime
;
...
...
wj-databus/src/main/resources/mapper/BaseCrossLaneLightsMapper.xml
View file @
a291ebf2
...
@@ -81,5 +81,15 @@
...
@@ -81,5 +81,15 @@
where lights_id = #{lightsId}
where lights_id = #{lightsId}
</select>
</select>
<select
id=
"selectByLightIds"
resultType=
"net.wanji.databus.po.CrossLaneLightsPO"
>
select
id,lights_id,lane_id,cross_id,gmt_create,gmt_modified
from t_base_cross_lane_lights
where lights_id in
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</select>
</mapper>
</mapper>
wj-databus/src/main/resources/mapper/BaseCrossSectionMapper.xml
View file @
a291ebf2
...
@@ -57,5 +57,11 @@
...
@@ -57,5 +57,11 @@
where cross_id = #{crossId} and plan_id = #{planId}
where cross_id = #{crossId} and plan_id = #{planId}
</select>
</select>
<select
id=
"selectById"
resultType=
"net.wanji.databus.dao.entity.CrossSectionPO"
>
select
<include
refid=
"Base_Column_list"
/>
from t_base_cross_section
where id = #{id}
</select>
</mapper>
</mapper>
wj-databus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
View file @
a291ebf2
...
@@ -28,7 +28,8 @@
...
@@ -28,7 +28,8 @@
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id, turn_type, in_dir, out_dir, cross_id, flow, status, traffic_index, speed, in_speed, out_speed, queue_length,
id, turn_type, in_dir, out_dir, cross_id, flow, status, traffic_index, speed, in_speed, out_speed, queue_length,
stop_times, delay_time, sturation, vehhead_dist, vehhead_time, quality, batch_time, gmt_create, gmt_modified
stop_times, delay_time, sturation, vehhead_dist, vehhead_time, quality,no_stop_rate,one_stop_rate,two_stop_rate,
three_stop_rate, batch_time, gmt_create, gmt_modified
</sql>
</sql>
<insert
id=
"insertBatch"
parameterType=
"net.wanji.databus.po.CrossTurnDataRealtimePO"
>
<insert
id=
"insertBatch"
parameterType=
"net.wanji.databus.po.CrossTurnDataRealtimePO"
>
...
@@ -49,4 +50,20 @@
...
@@ -49,4 +50,20 @@
</foreach>
</foreach>
</delete>
</delete>
<select
id=
"selectNoPark"
resultType=
"net.wanji.databus.po.CrossTurnDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_turn_data_hist
where cross_id = #{crossId} and in_dir = #{dir} and turn_type = #{turn}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
<select
id=
"selectByCrossId"
resultType=
"net.wanji.databus.po.CrossTurnDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_turn_data_hist
where cross_id = #{crossId}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
</mapper>
</mapper>
\ No newline at end of file
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