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
1ea1cf93
Commit
1ea1cf93
authored
Dec 14, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 重点路口流量问题
parent
275e5985
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
16 deletions
+16
-16
GreenBeltServiceImpl.java
...anji/opt/service/signalopt/impl/GreenBeltServiceImpl.java
+2
-3
StrategyGreenBeltServiceImpl.java
.../synthesis/service/impl/StrategyGreenBeltServiceImpl.java
+5
-4
CrossMonitorTask.java
...ce/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
+9
-9
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/signalopt/impl/GreenBeltServiceImpl.java
View file @
1ea1cf93
...
@@ -130,8 +130,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
...
@@ -130,8 +130,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
vo
.
setStartTime
(
controlTime
);
vo
.
setStartTime
(
controlTime
);
String
crossGreenDetail
=
entity
.
getCrossGreenDetail
();
String
crossGreenDetail
=
entity
.
getCrossGreenDetail
();
Integer
cycle
=
entity
.
getCycle
();
Integer
cycle
=
entity
.
getCycle
();
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>
crossGreenDetails
=
mapper
.
readValue
(
crossGreenDetail
,
new
TypeReference
<
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>>()
{
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>
crossGreenDetails
=
mapper
.
readValue
(
crossGreenDetail
,
new
TypeReference
<
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>>()
{});
});
if
(!
CollectionUtils
.
isEmpty
(
crossGreenDetails
))
{
if
(!
CollectionUtils
.
isEmpty
(
crossGreenDetails
))
{
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>
keyCrossDetail
=
crossGreenDetails
.
stream
().
filter
(
details
->
StringUtils
.
equalsIgnoreCase
(
keyCross
,
details
.
getCrossId
())).
collect
(
Collectors
.
toList
());
List
<
GreenBeltInfoVO
.
CrossGreenDetail
>
keyCrossDetail
=
crossGreenDetails
.
stream
().
filter
(
details
->
StringUtils
.
equalsIgnoreCase
(
keyCross
,
details
.
getCrossId
())).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
keyCrossDetail
))
{
if
(!
CollectionUtils
.
isEmpty
(
keyCrossDetail
))
{
...
@@ -159,7 +158,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
...
@@ -159,7 +158,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
Integer
flow
=
crossDataHistPO
.
getFlow
();
Integer
flow
=
crossDataHistPO
.
getFlow
();
GreenBeltKeyCrossFlowTimeVO
resultVO
=
new
GreenBeltKeyCrossFlowTimeVO
();
GreenBeltKeyCrossFlowTimeVO
resultVO
=
new
GreenBeltKeyCrossFlowTimeVO
();
resultVO
.
setStartTime
(
minuteDate
);
resultVO
.
setStartTime
(
minuteDate
);
resultVO
.
setFlow
(
0
);
resultVO
.
setFlow
(
flow
);
resultVO
.
setGreenTimeRatio
(
0.0
);
resultVO
.
setGreenTimeRatio
(
0.0
);
resultVO
.
setCrossId
(
tempCrossId
);
resultVO
.
setCrossId
(
tempCrossId
);
resultVO
.
setDirName
(
"未执行"
);
resultVO
.
setDirName
(
"未执行"
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/StrategyGreenBeltServiceImpl.java
View file @
1ea1cf93
...
@@ -103,12 +103,12 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
...
@@ -103,12 +103,12 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
@Override
@Override
public
List
<
GreenBeltStopTimesQueueLengthVO
>
greenBeltStopTimeQueueLength
(
Integer
greenId
)
{
public
List
<
GreenBeltStopTimesQueueLengthVO
>
greenBeltStopTimeQueueLength
(
Integer
greenId
)
{
long
currentTimeMillis
=
System
.
currentTimeMillis
();
LambdaQueryWrapper
<
GreenwaveHistPO
>
queryWrapper
=
new
LambdaQueryWrapper
();
LambdaQueryWrapper
<
GreenwaveHistPO
>
queryWrapper
=
new
LambdaQueryWrapper
();
queryWrapper
.
eq
(
GreenwaveHistPO:
:
getGreenId
,
greenId
);
queryWrapper
.
eq
(
GreenwaveHistPO:
:
getGreenId
,
greenId
);
// 查询两个小时之前的
LocalDate
currentDate
=
LocalDate
.
now
();
Integer
startTime
=
(
int
)
(
currentTimeMillis
/
1000
)
-
3600
*
2
;
LocalTime
startTime
=
LocalTime
.
MIDNIGHT
;
queryWrapper
.
ge
(
GreenwaveHistPO:
:
getStartTime
,
new
Date
(
startTime
*
1000L
));
LocalDateTime
startOfDay
=
LocalDateTime
.
of
(
currentDate
,
startTime
);
queryWrapper
.
ge
(
GreenwaveHistPO:
:
getStartTime
,
startOfDay
);
List
<
GreenwaveHistPO
>
greenwaveHistPOS
=
greenwaveHistMapper
.
selectList
(
queryWrapper
);
List
<
GreenwaveHistPO
>
greenwaveHistPOS
=
greenwaveHistMapper
.
selectList
(
queryWrapper
);
List
<
GreenBeltStopTimesQueueLengthVO
>
results
=
new
ArrayList
<>();
List
<
GreenBeltStopTimesQueueLengthVO
>
results
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
greenwaveHistPOS
))
{
if
(!
CollectionUtils
.
isEmpty
(
greenwaveHistPOS
))
{
...
@@ -120,6 +120,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
...
@@ -120,6 +120,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
vo
.
setStopTimes
(
greenwaveHistPO
.
getStopTimes
());
vo
.
setStopTimes
(
greenwaveHistPO
.
getStopTimes
());
vo
.
setCordQueueRatio
(
Objects
.
isNull
(
greenwaveHistPO
.
getCordQueueRatio
())
?
0.0
:
greenwaveHistPO
.
getCordQueueRatio
()
*
100
);
vo
.
setCordQueueRatio
(
Objects
.
isNull
(
greenwaveHistPO
.
getCordQueueRatio
())
?
0.0
:
greenwaveHistPO
.
getCordQueueRatio
()
*
100
);
vo
.
setTravelTime
(
greenwaveHistPO
.
getTrvalTime
());
vo
.
setTravelTime
(
greenwaveHistPO
.
getTrvalTime
());
vo
.
setRoadDirection
(
GreenBeltDirEnum
.
getDesc
(
greenwaveHistPO
.
getRoadDirection
()));
results
.
add
(
vo
);
results
.
add
(
vo
);
}
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
View file @
1ea1cf93
...
@@ -37,28 +37,28 @@ public class CrossMonitorTask {
...
@@ -37,28 +37,28 @@ public class CrossMonitorTask {
* 路口实时监测
* 路口实时监测
*
*
*/
*/
@Scheduled
(
fixedRate
=
1
*
60
*
1000
)
//
@Scheduled(fixedRate = 1 * 60 * 1000)
public
void
realtimeMonitor
()
{
//
public void realtimeMonitor() {
log
.
info
(
"路口实时监测任务..."
);
//
log.info("路口实时监测任务...");
// 获取路口实时监测数据
// 获取路口实时监测数据
List
<
CrossDataRealtimePO
>
crossDataRealtimePOList
=
listCrossDataRealtime
();
//
List<CrossDataRealtimePO> crossDataRealtimePOList = listCrossDataRealtime();
log
.
info
(
"路口实时数据:{}条"
,
crossDataRealtimePOList
.
size
());
//
log.info("路口实时数据:{}条", crossDataRealtimePOList.size());
// 测试时无数据暂时注释
// 测试时无数据暂时注释
// if(crossDataRealtimePOList.isEmpty()) {
// if(crossDataRealtimePOList.isEmpty()) {
// return ;
// return ;
// }
// }
// 获取所有信控路口异常数据(失衡/拥堵/溢出/死锁)
// 获取所有信控路口异常数据(失衡/拥堵/溢出/死锁)
List
<
CrossDataRealtimePO
>
abnormalCrossList
=
listAbnormalCross
(
crossDataRealtimePOList
);
//
List<CrossDataRealtimePO> abnormalCrossList = listAbnormalCross(crossDataRealtimePOList);
log
.
info
(
"加载异常路口:{}条"
,
abnormalCrossList
.
size
());
//
log.info("加载异常路口:{}条", abnormalCrossList.size());
// if(abnormalCrossList.isEmpty()) {
// if(abnormalCrossList.isEmpty()) {
// return ;
// return ;
// }
// }
// 调用路口实时优化
// 调用路口实时优化
crossOptimizeService
.
realtimeOptimize
(
abnormalCrossList
,
crossDataRealtimePOList
);
//
crossOptimizeService.realtimeOptimize(abnormalCrossList, crossDataRealtimePOList);
}
//
}
/**
/**
* 获取异常路口数据
* 获取异常路口数据
...
...
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