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
ab70db29
Commit
ab70db29
authored
Oct 20, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 绿波时距图速度取平均
parent
e5184a14
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
61 additions
and
40 deletions
+61
-40
GreenwaveDetailBO.java
...ice/src/main/java/net/wanji/opt/bo/GreenwaveDetailBO.java
+22
-0
TrendController.java
...c/main/java/net/wanji/opt/controller/TrendController.java
+2
-5
TrendService.java
...ice/src/main/java/net/wanji/opt/service/TrendService.java
+2
-5
MainlineEvaluateServiceImpl.java
...t/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
+1
-0
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+34
-30
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/bo/GreenwaveDetailBO.java
0 → 100644
View file @
ab70db29
package
net
.
wanji
.
opt
.
bo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author Kent HAN
* @date 2023/6/9 13:52
*/
@Data
@ApiModel
(
value
=
"GreenwaveDetailBO"
,
description
=
"绿波详情"
)
public
class
GreenwaveDetailBO
{
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
greenwaveName
;
@ApiModelProperty
(
value
=
"开始日期 yyyy/MM/dd"
)
private
String
startDate
;
@ApiModelProperty
(
value
=
"结束日期 yyyy/MM/dd"
)
private
String
endDate
;
}
signal-optimize-service/src/main/java/net/wanji/opt/controller/TrendController.java
View file @
ab70db29
...
@@ -6,10 +6,7 @@ import io.swagger.annotations.ApiResponse;
...
@@ -6,10 +6,7 @@ import io.swagger.annotations.ApiResponse;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.bo.GreenwaveIdAndTimeStampBO
;
import
net.wanji.opt.bo.*
;
import
net.wanji.opt.bo.GreenwaveIdBO
;
import
net.wanji.opt.bo.GreenwaveNameBO
;
import
net.wanji.opt.bo.SaveGreenwaveStrategyBO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.EventAlarmDTO
;
import
net.wanji.opt.dto.trend.EventAlarmDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
...
@@ -74,7 +71,7 @@ public class TrendController {
...
@@ -74,7 +71,7 @@ public class TrendController {
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenwaveDetailVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenwaveDetailVO
.
class
),
})
})
public
JsonViewObject
greenwaveDetail
(
@RequestBody
Greenwave
Name
BO
bo
)
{
public
JsonViewObject
greenwaveDetail
(
@RequestBody
Greenwave
Detail
BO
bo
)
{
GreenwaveDetailVO
res
=
trendService
.
greenwaveDetail
(
bo
);
GreenwaveDetailVO
res
=
trendService
.
greenwaveDetail
(
bo
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/TrendService.java
View file @
ab70db29
package
net
.
wanji
.
opt
.
service
;
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.opt.bo.GreenwaveIdAndTimeStampBO
;
import
net.wanji.opt.bo.*
;
import
net.wanji.opt.bo.GreenwaveIdBO
;
import
net.wanji.opt.bo.GreenwaveNameBO
;
import
net.wanji.opt.bo.SaveGreenwaveStrategyBO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.vo.*
;
import
net.wanji.opt.vo.*
;
...
@@ -33,7 +30,7 @@ public interface TrendService {
...
@@ -33,7 +30,7 @@ public interface TrendService {
List
<
GreenwaveRunMonitorVO
>
greenwaveRunMonitor
(
GreenwaveIdBO
greenwaveIdBO
);
List
<
GreenwaveRunMonitorVO
>
greenwaveRunMonitor
(
GreenwaveIdBO
greenwaveIdBO
);
GreenwaveDetailVO
greenwaveDetail
(
Greenwave
NameBO
greenwaveName
BO
);
GreenwaveDetailVO
greenwaveDetail
(
Greenwave
DetailBO
greenwaveDetail
BO
);
List
<
GreenwaveCrossMetricsVO
>
greenwaveCrossMetrics
(
GreenwaveIdAndTimeStampBO
greenwaveIdAndTimeStampBO
);
List
<
GreenwaveCrossMetricsVO
>
greenwaveCrossMetrics
(
GreenwaveIdAndTimeStampBO
greenwaveIdAndTimeStampBO
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
View file @
ab70db29
...
@@ -1710,6 +1710,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
...
@@ -1710,6 +1710,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
}
}
}
}
List
<
String
>
res
=
new
ArrayList
<>();
List
<
String
>
res
=
new
ArrayList
<>();
qualifiedSet
.
removeAll
(
notQualifiedSet
);
// 只要有一次不符合,则剔除
res
.
add
(
"符合控制策略方案数 "
+
qualifiedSet
.
size
()
+
"个"
);
res
.
add
(
"符合控制策略方案数 "
+
qualifiedSet
.
size
()
+
"个"
);
res
.
add
(
"不符合控制策略方案数 "
+
notQualifiedSet
.
size
()
+
"个"
);
res
.
add
(
"不符合控制策略方案数 "
+
notQualifiedSet
.
size
()
+
"个"
);
return
res
;
return
res
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
ab70db29
...
@@ -36,8 +36,6 @@ import java.math.BigDecimal;
...
@@ -36,8 +36,6 @@ import java.math.BigDecimal;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
...
@@ -379,8 +377,11 @@ public class TrendServiceImpl implements TrendService {
...
@@ -379,8 +377,11 @@ public class TrendServiceImpl implements TrendService {
}
}
@Override
@Override
public
GreenwaveDetailVO
greenwaveDetail
(
GreenwaveNameBO
greenwaveNameBO
)
{
public
GreenwaveDetailVO
greenwaveDetail
(
GreenwaveDetailBO
greenwaveDetailBO
)
{
String
greenwaveName
=
greenwaveNameBO
.
getGreenwaveName
();
String
greenwaveName
=
greenwaveDetailBO
.
getGreenwaveName
();
String
startDate
=
greenwaveDetailBO
.
getStartDate
();
String
endDate
=
greenwaveDetailBO
.
getEndDate
();
LineSchemeDTO
lineSchemeDTO
=
MainlineEvaluateServiceImpl
.
lineSchemeBuffer
.
get
(
greenwaveName
);
LineSchemeDTO
lineSchemeDTO
=
MainlineEvaluateServiceImpl
.
lineSchemeBuffer
.
get
(
greenwaveName
);
Integer
greenwaveId
=
lineSchemeDTO
.
getGreenwaveId
();
Integer
greenwaveId
=
lineSchemeDTO
.
getGreenwaveId
();
...
@@ -419,7 +420,8 @@ public class TrendServiceImpl implements TrendService {
...
@@ -419,7 +420,8 @@ public class TrendServiceImpl implements TrendService {
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
res
.
setStrategySelected
(
collect
);
res
.
setStrategySelected
(
collect
);
// 绿波路口信息
// 绿波路口信息
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
greenwaveCrossList
=
buildGreenwaveCrossList
(
greenwaveId
,
greenwaveName
);
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
greenwaveCrossList
=
buildGreenwaveCrossList
(
greenwaveId
,
greenwaveName
,
startDate
,
endDate
);
res
.
setGreenwaveCrossList
(
greenwaveCrossList
);
res
.
setGreenwaveCrossList
(
greenwaveCrossList
);
// 绿波带
// 绿波带
if
(
dir
==
0
)
{
// 正向
if
(
dir
==
0
)
{
// 正向
...
@@ -584,7 +586,7 @@ public class TrendServiceImpl implements TrendService {
...
@@ -584,7 +586,7 @@ public class TrendServiceImpl implements TrendService {
return
greenwavePoint
;
return
greenwavePoint
;
}
}
private
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
buildGreenwaveCrossList
(
Integer
greenwaveId
,
String
greenwaveName
)
{
private
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
buildGreenwaveCrossList
(
Integer
greenwaveId
,
String
greenwaveName
,
String
startDate
,
String
endDate
)
{
String
[]
split
=
greenwaveName
.
split
(
" "
);
// 旅游路 东向西 转山西路至霞景路路段:正向绿波 工作日 19:00-20:00
String
[]
split
=
greenwaveName
.
split
(
" "
);
// 旅游路 东向西 转山西路至霞景路路段:正向绿波 工作日 19:00-20:00
String
s
=
split
[
4
];
// 19:00-20:00
String
s
=
split
[
4
];
// 19:00-20:00
String
[]
split1
=
s
.
split
(
"-"
);
String
[]
split1
=
s
.
split
(
"-"
);
...
@@ -637,18 +639,19 @@ public class TrendServiceImpl implements TrendService {
...
@@ -637,18 +639,19 @@ public class TrendServiceImpl implements TrendService {
greenwaveCross
.
setCrossName
(
baseCrossInfoPO
.
getName
());
greenwaveCross
.
setCrossName
(
baseCrossInfoPO
.
getName
());
greenwaveCross
.
setIsKeyRoute
(
greenwaveCrossPO
.
getIsKeyRoute
());
greenwaveCross
.
setIsKeyRoute
(
greenwaveCrossPO
.
getIsKeyRoute
());
greenwaveCross
.
setSort
(
greenwaveCrossPO
.
getSort
());
greenwaveCross
.
setSort
(
greenwaveCrossPO
.
getSort
());
// 到下一个路口距离
// 到下一个路口距离
和速度
Integer
distanceToNextCross
=
null
;
Integer
distanceToNextCross
=
null
;
Double
speed
=
null
;
if
(
i
<
size
-
1
)
{
// 不是最后一个路口
if
(
i
<
size
-
1
)
{
// 不是最后一个路口
double
nextCrossLen
=
greenwaveCrossPO
.
getNextCrossLen
();
double
nextCrossLen
=
greenwaveCrossPO
.
getNextCrossLen
();
distanceToNextCross
=
(
int
)
nextCrossLen
;
distanceToNextCross
=
(
int
)
nextCrossLen
;
GreenwaveCrossPO
nextCrossPO
=
filteredList
.
get
(
i
+
1
);
String
nextCrossId
=
nextCrossPO
.
getCrossId
();
speed
=
calcSpeed
(
greenwaveCrossPO
,
nextCrossId
,
startTime
,
endTime
,
startDate
,
endDate
);
}
}
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
// 平均速度
Double
speed
=
calcSpeed
(
greenwaveCrossPO
,
crossId
,
startTime
,
endTime
);
if
(
i
!=
size
-
1
)
{
greenwaveCross
.
setSpeed
(
speed
);
greenwaveCross
.
setSpeed
(
speed
);
}
// 相位差
// 相位差
greenwaveCross
.
setOffset
(
greenwaveCrossPO
.
getOffset
());
greenwaveCross
.
setOffset
(
greenwaveCrossPO
.
getOffset
());
...
@@ -749,18 +752,18 @@ public class TrendServiceImpl implements TrendService {
...
@@ -749,18 +752,18 @@ public class TrendServiceImpl implements TrendService {
return
i
-
1
;
return
i
-
1
;
}
}
private
Double
calcSpeed
(
GreenwaveCrossPO
greenwaveCrossPO
,
String
c
urrentC
rossId
,
private
Double
calcSpeed
(
GreenwaveCrossPO
greenwaveCrossPO
,
String
crossId
,
String
startTime
,
String
endTime
)
{
String
startTime
,
String
endTime
,
String
startDate
,
String
endDate
)
{
Integer
inDir
=
greenwaveCrossPO
.
getInDir
();
Integer
inDir
=
greenwaveCrossPO
.
getInDir
();
LocalDate
today
=
LocalDate
.
now
();
if
(
ObjectUtil
.
isEmpty
(
startDate
))
{
// 查询实时数据
LocalDate
yesterday
=
today
.
minusDays
(
1
);
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
crossDirDataRealtimeMapper
.
selectByCrossIdAndDirType
(
crossId
,
inDir
);
String
formattedDate
=
yesterday
.
format
(
formatter
);
return
crossDirDataRealtimePO
.
getSpeed
(
);
}
else
{
// 查询历史数据
List
<
CrossDirDataHistPO
>
crossDirDataHistPOList
=
crossDirDataHistMapper
.
selectByCrossDirAndTimeSection
(
List
<
CrossDirDataHistPO
>
crossDirDataHistPOList
=
crossDirDataHistMapper
.
selectByCrossDirAndTimeSection
(
currentCrossId
,
inDir
,
formattedDate
,
formatte
dDate
,
startTime
,
endTime
);
crossId
,
inDir
,
startDate
,
en
dDate
,
startTime
,
endTime
);
double
v
=
crossDirDataHistPOList
.
stream
()
double
v
=
crossDirDataHistPOList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPO:
:
getSpeed
)
.
mapToDouble
(
CrossDirDataHistPO:
:
getSpeed
)
...
@@ -768,6 +771,7 @@ public class TrendServiceImpl implements TrendService {
...
@@ -768,6 +771,7 @@ public class TrendServiceImpl implements TrendService {
BigDecimal
formattedAverage
=
new
BigDecimal
(
v
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
formattedAverage
=
new
BigDecimal
(
v
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
return
formattedAverage
.
doubleValue
();
return
formattedAverage
.
doubleValue
();
}
}
}
@Override
@Override
public
List
<
GreenwaveCrossMetricsVO
>
greenwaveCrossMetrics
(
GreenwaveIdAndTimeStampBO
greenwaveIdAndTimeStampBO
)
{
public
List
<
GreenwaveCrossMetricsVO
>
greenwaveCrossMetrics
(
GreenwaveIdAndTimeStampBO
greenwaveIdAndTimeStampBO
)
{
...
@@ -979,9 +983,9 @@ public class TrendServiceImpl implements TrendService {
...
@@ -979,9 +983,9 @@ public class TrendServiceImpl implements TrendService {
throw
new
RuntimeException
(
"无当天绿波历史数据"
);
throw
new
RuntimeException
(
"无当天绿波历史数据"
);
}
}
String
lineSchemeName
=
matchingData
.
getName
();
String
lineSchemeName
=
matchingData
.
getName
();
Greenwave
NameBO
greenwaveNameBO
=
new
GreenwaveName
BO
();
Greenwave
DetailBO
greenwaveDetailBO
=
new
GreenwaveDetail
BO
();
greenwave
Name
BO
.
setGreenwaveName
(
lineSchemeName
);
greenwave
Detail
BO
.
setGreenwaveName
(
lineSchemeName
);
GreenwaveDetailVO
greenwaveDetailVO
=
greenwaveDetail
(
greenwave
Name
BO
);
GreenwaveDetailVO
greenwaveDetailVO
=
greenwaveDetail
(
greenwave
Detail
BO
);
return
greenwaveDetailVO
;
return
greenwaveDetailVO
;
}
}
...
...
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