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
jinan
traffic-signal-platform
Commits
0bbed52f
You need to sign in or sign up before continuing.
Commit
0bbed52f
authored
Apr 18, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 绿波图异常逻辑优化
parent
72528379
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
37 deletions
+39
-37
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+39
-37
No files found.
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
0bbed52f
...
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
...
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
*/
*/
@Component
@Component
@Slf4j
@Slf4j
@Profile
(
"
docker
"
)
@Profile
(
"
test
"
)
public
class
HisenseGreenChartTask
{
public
class
HisenseGreenChartTask
{
@Resource
@Resource
...
@@ -47,7 +47,7 @@ public class HisenseGreenChartTask {
...
@@ -47,7 +47,7 @@ public class HisenseGreenChartTask {
private
GreenChartSchemeHistMapper
greenChartSchemeHistMapper
;
private
GreenChartSchemeHistMapper
greenChartSchemeHistMapper
;
@Scheduled
(
fixedRate
=
1
0
*
60
*
1000
,
initialDelay
=
1
*
60
*
1000
)
@Scheduled
(
fixedRate
=
1
*
60
*
1000
,
initialDelay
=
1
*
60
*
1000
)
public
void
getGreenChart
()
{
public
void
getGreenChart
()
{
try
{
try
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
...
@@ -83,9 +83,7 @@ public class HisenseGreenChartTask {
...
@@ -83,9 +83,7 @@ public class HisenseGreenChartTask {
// 1.根据绿波带长度和速度计算行程时间
// 1.根据绿波带长度和速度计算行程时间
// 2.根据相位差,行程时间,海信环图计算绿灯红灯点位 正向 crossRedTimesMap 反向backCrossRedTimesMap
// 2.根据相位差,行程时间,海信环图计算绿灯红灯点位 正向 crossRedTimesMap 反向backCrossRedTimesMap
//Map<Integer, List<GreenCrossDirDTO>> greenMap = greenCrossDirCache.stream().collect(Collectors.groupingBy(GreenCrossDirDTO::getGreenId));
Map
<
Integer
,
List
<
GreenCrossDirDTO
>>
greenMap
=
greenCrossDirCache
.
stream
().
collect
(
Collectors
.
groupingBy
(
GreenCrossDirDTO:
:
getGreenId
));
// todo 测试只需要绿波编号1
Map
<
Integer
,
List
<
GreenCrossDirDTO
>>
greenMap
=
greenCrossDirCache
.
stream
().
filter
(
po
->
Objects
.
equals
(
1
,
po
.
getGreenId
())).
collect
(
Collectors
.
groupingBy
(
GreenCrossDirDTO:
:
getGreenId
));
List
<
GreenBeltChartDTO
>
greenBeltChartDTOS
=
new
ArrayList
<>();
List
<
GreenBeltChartDTO
>
greenBeltChartDTOS
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
Integer
,
List
<
GreenCrossDirDTO
>>
entry
:
greenMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Integer
,
List
<
GreenCrossDirDTO
>>
entry
:
greenMap
.
entrySet
())
{
GreenBeltChartDTO
greenBeltChartDTO
=
new
GreenBeltChartDTO
();
GreenBeltChartDTO
greenBeltChartDTO
=
new
GreenBeltChartDTO
();
...
@@ -184,8 +182,8 @@ public class HisenseGreenChartTask {
...
@@ -184,8 +182,8 @@ public class HisenseGreenChartTask {
greenChartSchemeHist
.
setQueryDate
(
date
);
greenChartSchemeHist
.
setQueryDate
(
date
);
greenChartSchemeHistMapper
.
insert
(
greenChartSchemeHist
);
greenChartSchemeHistMapper
.
insert
(
greenChartSchemeHist
);
}
}
log
.
info
(
"绿波图实体参数:{}"
,
mapper
.
writeValueAsString
(
results
));
log
.
debug
(
"绿波图实体参数:{}"
,
mapper
.
writeValueAsString
(
results
));
log
.
info
(
"绿波路口方案环图信息:{}"
,
mapper
.
writeValueAsString
(
greenSchemeRingPhaseMap
));
log
.
debug
(
"绿波路口方案环图信息:{}"
,
mapper
.
writeValueAsString
(
greenSchemeRingPhaseMap
));
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"通过海信方案处理绿波波定时任务失败:{}"
,
e
);
log
.
error
(
"通过海信方案处理绿波波定时任务失败:{}"
,
e
);
...
@@ -234,6 +232,7 @@ public class HisenseGreenChartTask {
...
@@ -234,6 +232,7 @@ public class HisenseGreenChartTask {
List
<
List
<
Double
>>
firstList
=
crossGreenTimesMap
.
get
(
firstCrossId
);
List
<
List
<
Double
>>
firstList
=
crossGreenTimesMap
.
get
(
firstCrossId
);
List
<
List
<
Double
>>
secondList
=
crossGreenTimesMap
.
get
(
secondCrossId
);
List
<
List
<
Double
>>
secondList
=
crossGreenTimesMap
.
get
(
secondCrossId
);
// 第一个路口循环绿灯开始时间
// 第一个路口循环绿灯开始时间
if
(!
CollectionUtils
.
isEmpty
(
firstList
)
&&
!
CollectionUtils
.
isEmpty
(
secondList
))
{
for
(
int
i1
=
0
;
i1
<
firstList
.
size
();
i1
++)
{
for
(
int
i1
=
0
;
i1
<
firstList
.
size
();
i1
++)
{
List
<
Double
>
greenStartEnd
=
firstList
.
get
(
i1
);
List
<
Double
>
greenStartEnd
=
firstList
.
get
(
i1
);
Double
greenStart
=
greenStartEnd
.
get
(
0
);
Double
greenStart
=
greenStartEnd
.
get
(
0
);
...
@@ -270,6 +269,7 @@ public class HisenseGreenChartTask {
...
@@ -270,6 +269,7 @@ public class HisenseGreenChartTask {
secondGreenStartList
.
add
(
Arrays
.
asList
(
start2
,
end2
));
secondGreenStartList
.
add
(
Arrays
.
asList
(
start2
,
end2
));
}
}
}
}
}
greenStartMap
.
put
(
firstCrossId
,
firstGreenStartList
);
greenStartMap
.
put
(
firstCrossId
,
firstGreenStartList
);
greenStartMap
.
put
(
secondCrossId
,
secondGreenStartList
);
greenStartMap
.
put
(
secondCrossId
,
secondGreenStartList
);
}
}
...
@@ -311,6 +311,10 @@ public class HisenseGreenChartTask {
...
@@ -311,6 +311,10 @@ public class HisenseGreenChartTask {
String
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
));
String
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
));
// 获取海信环相位信息
// 获取海信环相位信息
SchemeGreenDirGreenTimeDTO
firstGreenTimeDTO
=
greenDirGreenTimeMap
.
get
(
crossKey
);
SchemeGreenDirGreenTimeDTO
firstGreenTimeDTO
=
greenDirGreenTimeMap
.
get
(
crossKey
);
if
(
Objects
.
isNull
(
firstGreenTimeDTO
))
{
log
.
error
(
"当前路口:{}, 没有环相位信息异常"
,
crossKey
);
continue
;
}
Integer
cycleLen
=
firstGreenTimeDTO
.
getCycleLen
();
Integer
cycleLen
=
firstGreenTimeDTO
.
getCycleLen
();
// * 1.0转Double
// * 1.0转Double
Double
offset
=
firstGreenTimeDTO
.
getOffset
()
*
1.0
;
Double
offset
=
firstGreenTimeDTO
.
getOffset
()
*
1.0
;
...
@@ -375,8 +379,6 @@ public class HisenseGreenChartTask {
...
@@ -375,8 +379,6 @@ public class HisenseGreenChartTask {
private
Map
<
String
,
GreenwaveRealtimePO
>
getGreenRealTimeMap
()
{
private
Map
<
String
,
GreenwaveRealtimePO
>
getGreenRealTimeMap
()
{
Map
<
String
,
GreenwaveRealtimePO
>
realTimeMap
=
new
HashMap
<>();
Map
<
String
,
GreenwaveRealtimePO
>
realTimeMap
=
new
HashMap
<>();
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
// todo 测试绿波1
queryWrapper
.
eq
(
GreenwaveRealtimePO:
:
getGreenId
,
1
);
List
<
GreenwaveRealtimePO
>
greenwaveRealtimePOList
=
greenwaveRealtimeMapper
.
selectList
(
queryWrapper
);
List
<
GreenwaveRealtimePO
>
greenwaveRealtimePOList
=
greenwaveRealtimeMapper
.
selectList
(
queryWrapper
);
for
(
GreenwaveRealtimePO
greenwaveRealtimePO
:
greenwaveRealtimePOList
)
{
for
(
GreenwaveRealtimePO
greenwaveRealtimePO
:
greenwaveRealtimePOList
)
{
Integer
greenId
=
greenwaveRealtimePO
.
getGreenId
();
Integer
greenId
=
greenwaveRealtimePO
.
getGreenId
();
...
...
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