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
e5184a14
Commit
e5184a14
authored
Oct 20, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 绿波时距图速度取平均
parent
6720c45d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
7 deletions
+27
-7
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+27
-7
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
e5184a14
...
...
@@ -32,8 +32,12 @@ import org.springframework.beans.factory.annotation.Qualifier;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.regex.Matcher
;
...
...
@@ -582,9 +586,10 @@ public class TrendServiceImpl implements TrendService {
private
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
buildGreenwaveCrossList
(
Integer
greenwaveId
,
String
greenwaveName
)
{
String
[]
split
=
greenwaveName
.
split
(
" "
);
// 旅游路 东向西 转山西路至霞景路路段:正向绿波 工作日 19:00-20:00
String
s
=
split
[
4
];
String
s
=
split
[
4
];
// 19:00-20:00
String
[]
split1
=
s
.
split
(
"-"
);
String
startTime
=
split1
[
0
];
String
endTime
=
split1
[
1
];
String
planName
=
split
[
3
];
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
res
=
new
ArrayList
<>();
...
...
@@ -640,8 +645,10 @@ public class TrendServiceImpl implements TrendService {
}
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
// 平均速度
Double
speed
=
calcSpeed
(
greenwaveCrossPO
,
crossId
);
greenwaveCross
.
setSpeed
(
speed
);
Double
speed
=
calcSpeed
(
greenwaveCrossPO
,
crossId
,
startTime
,
endTime
);
if
(
i
!=
size
-
1
)
{
greenwaveCross
.
setSpeed
(
speed
);
}
// 相位差
greenwaveCross
.
setOffset
(
greenwaveCrossPO
.
getOffset
());
...
...
@@ -742,11 +749,24 @@ public class TrendServiceImpl implements TrendService {
return
i
-
1
;
}
private
Double
calcSpeed
(
GreenwaveCrossPO
greenwaveCrossPO
,
String
currentCrossId
)
{
private
Double
calcSpeed
(
GreenwaveCrossPO
greenwaveCrossPO
,
String
currentCrossId
,
String
startTime
,
String
endTime
)
{
Integer
inDir
=
greenwaveCrossPO
.
getInDir
();
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
crossDirDataRealtimeMapper
.
selectByCrossIdAndDirType
(
currentCrossId
,
inDir
);
return
crossDirDataRealtimePO
.
getSpeed
();
LocalDate
today
=
LocalDate
.
now
();
LocalDate
yesterday
=
today
.
minusDays
(
1
);
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
String
formattedDate
=
yesterday
.
format
(
formatter
);
List
<
CrossDirDataHistPO
>
crossDirDataHistPOList
=
crossDirDataHistMapper
.
selectByCrossDirAndTimeSection
(
currentCrossId
,
inDir
,
formattedDate
,
formattedDate
,
startTime
,
endTime
);
double
v
=
crossDirDataHistPOList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPO:
:
getSpeed
)
.
average
().
orElse
(
0.0
);
BigDecimal
formattedAverage
=
new
BigDecimal
(
v
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
return
formattedAverage
.
doubleValue
();
}
@Override
...
...
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