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
1e855690
Commit
1e855690
authored
Feb 01, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 实时监控-监控参数设置转向参数
parent
06cf65d0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
11 deletions
+40
-11
CrossOptimizeServiceImpl.java
.../net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
+40
-11
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
View file @
1e855690
...
...
@@ -59,10 +59,12 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
public
String
realtimeOptimize
(
List
<
CrossDataRealtimeDTO
>
abnormalCrossList
)
{
try
{
// 获取所有信控路口转向实时数据
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
turnDataRealtime
=
listTurnDataRealtime
(
abnormalCrossList
);
// 相位配时信息,key:路口编号_方向类型_转向类型,value 相位配时信息
Map
<
String
,
CrossPhaseDTO
>
phaseMap
=
listPhaseList
();
setTurnList
(
abnormalCrossList
,
phaseMap
);
// 获取所有信控路口转向实时数据
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
turnDataRealtime
=
listTurnDataRealtime
(
abnormalCrossList
);
// 恢复优化路口原始方案
restoreOptCrossOriPlan
(
abnormalCrossList
,
phaseMap
);
...
...
@@ -87,6 +89,33 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
return
null
;
}
/**
* 设置异常数据转向数据
*
* @param abnormalCrossList
* @param phaseMap
*/
private
static
void
setTurnList
(
List
<
CrossDataRealtimeDTO
>
abnormalCrossList
,
Map
<
String
,
CrossPhaseDTO
>
phaseMap
)
{
for
(
CrossDataRealtimeDTO
crossDataRealtimeDTO
:
abnormalCrossList
)
{
List
<
CrossTurnInfoDTO
>
turnList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
CrossPhaseDTO
>
entry
:
phaseMap
.
entrySet
())
{
String
crossDirTurn
=
entry
.
getKey
();
String
[]
split
=
crossDirTurn
.
split
(
Constants
.
SystemParam
.
SEPARATOR_UNDER_LINE
);
String
crossId
=
split
[
0
];
String
dir
=
split
[
1
];
String
turn
=
split
[
2
];
CrossTurnInfoDTO
crossTurnInfoDTO
=
new
CrossTurnInfoDTO
();
if
(
StringUtils
.
equalsIgnoreCase
(
crossId
,
crossDataRealtimeDTO
.
getCrossId
()))
{
crossTurnInfoDTO
.
setTurnType
(
Integer
.
valueOf
(
turn
));
crossTurnInfoDTO
.
setInDir
(
Integer
.
valueOf
(
dir
));
turnList
.
add
(
crossTurnInfoDTO
);
}
}
crossDataRealtimeDTO
.
setTurnList
(
turnList
);
}
}
/**
* 通过第二批次列表,判断需要恢复的优化路口原始方案
*
...
...
@@ -410,7 +439,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
int
week
=
DateUtil
.
getWeek
(
new
Date
())
==
Constants
.
SystemParam
.
ZERO
?
WeekEnum
.
SUNDAY
.
getCode
()
:
DateUtil
.
getWeek
(
new
Date
());
// 获取当前星期
for
(
CrossSchedulesDTO
schedules
:
schedulesDTOList
)
{
if
(
schedules
.
getWeek
()
==
Constants
.
SystemParam
.
ZERO
&&
if
(
Objects
.
equals
(
schedules
.
getWeek
(),
Constants
.
SystemParam
.
ZERO
)
&&
!
DateUtil
.
getDate
().
equals
(
schedules
.
getSpecialDate
()))
{
// 先判断是否为特殊日期,如果特殊日期与当前日期不相同,则跳过
continue
;
}
else
if
(
schedules
.
getWeek
()
!=
week
)
{
...
...
@@ -453,19 +482,19 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
List
<
CrossTurnDataRealtimeDTO
>
crossTurnDataRealtimeDTOS
=
new
ArrayList
<>();
realTimeData
.
forEach
(
realData
->
{
List
<
CrossDirInfoDTO
>
dirList
=
realData
.
getDirList
();
List
<
CrossTurnInfoDTO
>
turnList
=
realData
.
getTurnList
();
dirList
.
forEach
(
dirInfo
->
{
turnList
.
forEach
(
turnInfo
->
{
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
=
new
CrossTurnDataRealtimeDTO
();
BeanUtils
.
copyProperties
(
realData
,
crossTurnDataRealtimeDTO
);
});
turnList
.
forEach
(
crossTurnInfoDTO
->
{
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
=
new
CrossTurnDataRealtimeDTO
();
BeanUtils
.
copyProperties
(
realData
,
crossTurnDataRealtimeDTO
);
crossTurnDataRealtimeDTO
.
setTurnType
(
crossTurnInfoDTO
.
getTurnType
());
crossTurnDataRealtimeDTO
.
setInDir
(
crossTurnInfoDTO
.
getInDir
());
crossTurnDataRealtimeDTO
.
setOutDir
(
crossTurnInfoDTO
.
getOutDir
());
crossTurnDataRealtimeDTOS
.
add
(
crossTurnDataRealtimeDTO
);
});
});
turnDataRealtimeDTOList
.
put
(
crossId
,
crossTurnDataRealtimeDTOS
);
});
return
turnDataRealtimeDTOList
;
}
...
...
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