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
3ee2b28d
Commit
3ee2b28d
authored
Apr 25, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 东山绿波带两个协调方向
parent
131ddc78
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
29 deletions
+56
-29
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+50
-28
HisenseSchemeRingPhaseInfoTask.java
...va/net/wanji/opt/task/HisenseSchemeRingPhaseInfoTask.java
+6
-1
No files found.
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
3ee2b28d
...
...
@@ -100,17 +100,17 @@ public class HisenseGreenChartTask {
Integer
greenId
=
entry
.
getKey
();
List
<
GreenCrossDirDTO
>
value
=
entry
.
getValue
();
// 1.获取行程时间
GreenCrossDirDTO
indexDTO
=
value
.
get
(
0
);
GreenCrossDirDTO
indexDTO
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
indexDTO
=
value
.
get
(
2
);
}
else
{
indexDTO
=
value
.
get
(
0
);
}
Integer
sort
=
indexDTO
.
getSort
();
Integer
indexDir
=
indexDTO
.
getInDir
();
Integer
totalDistance
=
indexDTO
.
getTotalDistance
();
String
greenKey
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
+
2
));
}
else
{
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
));
}
String
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
));
GreenwaveRealtimePO
greenwaveRealtimePO
=
realTimeMap
.
get
(
greenKey
);
Double
speed
=
Objects
.
isNull
(
greenwaveRealtimePO
.
getSpeed
())
?
0
:
greenwaveRealtimePO
.
getSpeed
();
// km/h速度换成m/s
...
...
@@ -128,12 +128,7 @@ public class HisenseGreenChartTask {
List
<
Double
>
backOffsets
=
new
ArrayList
<>();
List
<
Double
>
backDistances
=
new
ArrayList
<>();
String
backGreenKey
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
+
2
));
}
else
{
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
));
}
String
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
));
GreenwaveRealtimePO
backGreenwaveRealtimePO
=
realTimeMap
.
get
(
backGreenKey
);
// km/h速度换成m/s
Double
backSpeed
=
Objects
.
isNull
(
backGreenwaveRealtimePO
.
getSpeed
())
?
0
:
backGreenwaveRealtimePO
.
getSpeed
();
...
...
@@ -227,12 +222,12 @@ public class HisenseGreenChartTask {
GreenCrossDirDTO
firstDto
=
value
.
get
(
i
);
String
firstCrossId
=
firstDto
.
getCrossId
();
Integer
inDir
=
null
;
Integer
in
Cross
Dir
=
null
;
if
(
1
==
type
)
{
inDir
=
firstDto
.
getInDir
();
in
Cross
Dir
=
firstDto
.
getInDir
();
}
if
(
2
==
type
)
{
inDir
=
firstDto
.
getOutDir
();
in
Cross
Dir
=
firstDto
.
getOutDir
();
}
if
(
i
+
1
<
value
.
size
())
{
GreenCrossDirDTO
secondDto
=
value
.
get
(
i
+
1
);
...
...
@@ -240,13 +235,21 @@ public class HisenseGreenChartTask {
for
(
GreenBeltChartDTO
greenBeltChartDTO
:
greenBeltChartDTOS
)
{
Integer
beltGreenId
=
greenBeltChartDTO
.
getGreenId
();
Integer
beltDir
=
null
;
if
(
1
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getDir
();
}
if
(
2
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getBackDir
();
}
if
(
Objects
.
equals
(
greenId
,
beltGreenId
)
&&
Objects
.
equals
(
inDir
,
beltDir
))
{
if
(
Objects
.
equals
(
3
,
greenId
))
{
if
(
1
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getDir
()
-
2
;
}
if
(
2
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getBackDir
()
-
2
;
}
}
else
{
if
(
1
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getDir
();
}
if
(
2
==
type
)
{
beltDir
=
greenBeltChartDTO
.
getBackDir
();
}
}
if
(
Objects
.
equals
(
greenId
,
beltGreenId
)
&&
Objects
.
equals
(
inCrossDir
,
beltDir
))
{
Double
travelTime
=
getTravelTime
(
i
,
greenBeltChartDTO
,
type
);
Map
<
String
,
List
<
List
<
Double
>>>
crossGreenTimesMap
=
null
;
if
(
1
==
type
)
{
...
...
@@ -334,7 +337,12 @@ public class HisenseGreenChartTask {
String
crossId
=
greenCrossDirDTO
.
getCrossId
();
Integer
distance
=
greenCrossDirDTO
.
getDistance
();
distances
.
add
(
distance
*
1.0
);
String
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
));
String
crossKey
=
null
;
if
(
StringUtils
.
equalsIgnoreCase
(
"13MQV0B5KE0"
,
crossId
)
||
StringUtils
.
equalsIgnoreCase
(
"13MRN0B5MV0"
,
crossId
))
{
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
-
2
));
}
else
{
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
));
}
// 获取海信环相位信息
SchemeGreenDirGreenTimeDTO
firstGreenTimeDTO
=
greenDirGreenTimeMap
.
get
(
crossKey
);
if
(
Objects
.
isNull
(
firstGreenTimeDTO
))
{
...
...
@@ -439,8 +447,13 @@ public class HisenseGreenChartTask {
for
(
GreenCrossDirDTO
greenCrossDirDTO
:
greenCrossDirCache
)
{
Integer
greenId
=
greenCrossDirDTO
.
getGreenId
();
String
greenCrossId
=
greenCrossDirDTO
.
getCrossId
();
String
greenDirStr
=
greenCrossDirDTO
.
getGreenDir
();
String
greenDirStr
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
greenDirStr
=
"1,3,5,7"
;
}
else
{
greenDirStr
=
greenCrossDirDTO
.
getGreenDir
();
}
// 查询神思绿波优化下发
if
(
isGreenOptSend
(
greenId
))
{
List
<
SchemeGreenDirGreenTimeDTO
>
greenOptList
=
getGreenOptList
(
mapper
,
greenId
);
...
...
@@ -536,7 +549,8 @@ public class HisenseGreenChartTask {
int
index
=
100
;
for
(
GreenBeltInfoVO
.
CrossGreenDetail
greenDetail
:
crossGreenDetailList
)
{
SchemeGreenDirGreenTimeDTO
dto
=
new
SchemeGreenDirGreenTimeDTO
();
dto
.
setCrossId
(
greenDetail
.
getCrossId
());
String
crossId
=
greenDetail
.
getCrossId
();
dto
.
setCrossId
(
crossId
);
dto
.
setSchemeNo
(
100
);
dto
.
setOffset
(
greenDetail
.
getOffset
().
intValue
());
dto
.
setCycleLen
(
cycle
);
...
...
@@ -547,7 +561,15 @@ public class HisenseGreenChartTask {
dto
.
setStart
(
greenStart
.
intValue
());
Double
greenEnd
=
greenDetail
.
getPhaseEndTime
();
dto
.
setEnd
(
greenEnd
.
intValue
());
dto
.
setDir
(
inDir
);
if
(
StringUtils
.
equalsIgnoreCase
(
"13MQV0B5KE0"
,
crossId
)
||
StringUtils
.
equalsIgnoreCase
(
"13MRN0B5MV0"
,
crossId
))
{
if
(
Objects
.
equals
(
3
,
inDir
))
{
dto
.
setDir
(
1
);
}
else
{
dto
.
setDir
(
7
);
}
}
else
{
dto
.
setDir
(
inDir
);
}
dto
.
setDate
(
new
Date
());
dto
.
setFromScheme
(
2
);
schemeGreenDirGreenTimeDTOS
.
add
(
dto
);
...
...
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseSchemeRingPhaseInfoTask.java
View file @
3ee2b28d
...
...
@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask {
for
(
GreenCrossDirDTO
greenCrossDirDTO
:
greenCrossDirCache
)
{
Integer
greenId
=
greenCrossDirDTO
.
getGreenId
();
String
greenCrossId
=
greenCrossDirDTO
.
getCrossId
();
String
greenDirStr
=
greenCrossDirDTO
.
getGreenDir
();
String
greenDirStr
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
greenDirStr
=
"1,3,5,7"
;
}
else
{
greenDirStr
=
greenCrossDirDTO
.
getGreenDir
();
}
// 神思下发绿波时不需要优化
if
(
isGreenOptSend
(
greenId
))
{
continue
;
...
...
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