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
1bb43043
Commit
1bb43043
authored
Apr 24, 2024
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 城市大脑-干线评价-干线路口评价
parent
e93ffaa0
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
58 additions
and
35 deletions
+58
-35
RunningEvaluateController.java
...a/net/wanji/opt/controller/RunningEvaluateController.java
+1
-1
MainlineEvaluateServiceImpl.java
...t/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
+49
-32
MainlineCrossEvaluateVO.java
...c/main/java/net/wanji/opt/vo/MainlineCrossEvaluateVO.java
+6
-0
CrossIdAndStartEndDateBO.java
...n/java/net/wanji/databus/bo/CrossIdAndStartEndDateBO.java
+2
-2
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/RunningEvaluateController.java
View file @
1bb43043
...
...
@@ -39,7 +39,7 @@ public class RunningEvaluateController {
@ApiOperation
(
value
=
"路口列表"
,
notes
=
"路口列表"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/crossList"
,
@PostMapping
(
value
=
"/
`
crossList"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RunningEvaluateCrossListVO
.
class
),
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
View file @
1bb43043
...
...
@@ -1014,8 +1014,8 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
coordDirCodeList
.
add
(
dirCode2
);
}
mainlineCrossEvaluateVO
.
setCoordValue
(
calcCoordValue
(
coordDirCodeList
,
crossId
,
crossDirDataHistPOList
));
mainlineCrossEvaluateVO
.
setNonCoordValue
(
calcNonCoordValue
(
coordDirCodeList
,
crossId
,
crossDirDataHistPOList
,
baseCrossDirInfoPOList
)
);
fillNonCoordValue
(
mainlineCrossEvaluateVO
,
coordDirCodeList
,
crossId
,
crossDirDataHistPOList
,
baseCrossDirInfoPOList
);
mainlineCrossEvaluateVO
.
setDirElementList
(
buildDirElementList
(
crossId
,
metricName
,
baseCrossDirInfoPOList
,
crossDirDataHistPOList
,
crossEmptyPhaseList
));
mainlineCrossEvaluateVO
.
setCrossEvaluateList
(
buildCrossEvaluateList
(
...
...
@@ -1025,6 +1025,53 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
return
res
;
}
private
void
fillNonCoordValue
(
MainlineCrossEvaluateVO
mainlineCrossEvaluateVO
,
List
<
Integer
>
coordDirCodeList
,
String
crossId
,
List
<
CrossDirDataHistPOExt
>
crossDirDataHistPOList
,
List
<
BaseCrossDirInfoPO
>
baseCrossDirInfoPOList
)
{
// 筛选非协调方向
List
<
BaseCrossDirInfoPO
>
collect
=
baseCrossDirInfoPOList
.
stream
()
.
filter
(
item
->
crossId
.
equals
(
item
.
getCrossId
()))
.
collect
(
Collectors
.
toList
());
List
<
Integer
>
nonCoordDirCodeList
=
collect
.
stream
()
.
map
(
BaseCrossDirInfoPO:
:
getDirType
)
.
collect
(
Collectors
.
toList
());
nonCoordDirCodeList
.
removeAll
(
coordDirCodeList
);
// 查询时段内路口非协调方向数据
List
<
CrossDirDataHistPOExt
>
filteredList
=
crossDirDataHistPOList
.
stream
()
.
filter
(
item
->
crossId
.
equals
(
item
.
getCrossId
()))
.
filter
(
item
->
1
==
item
.
getInOutType
())
.
filter
(
item
->
nonCoordDirCodeList
.
contains
(
item
.
getDirType
()))
.
collect
(
Collectors
.
toList
());
// 计算非协调方向指标(排队长度)
double
nonCoordValueDouble
=
(
filteredList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPOExt:
:
getQueueLength
)
.
max
()
.
orElse
(
0.0
));
int
nonCoordValue
=
(
int
)
Math
.
round
(
nonCoordValueDouble
);
mainlineCrossEvaluateVO
.
setNonCoordValue
(
nonCoordValue
);
// 计算非协调停车次数
double
stopTimes
=
(
filteredList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPOExt:
:
getStopTimes
)
.
max
()
.
orElse
(
0.0
));
BigDecimal
bd
=
new
BigDecimal
(
stopTimes
);
bd
=
bd
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
double
formattedDouble
=
bd
.
doubleValue
();
mainlineCrossEvaluateVO
.
setStopTimes
(
formattedDouble
);
// 计算非协调二次停车率
double
twoStopRate
=
(
filteredList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPOExt:
:
getTwoStopRate
)
.
max
()
.
orElse
(
0.0
));
int
intRate
=
(
int
)
(
twoStopRate
*
100
);
mainlineCrossEvaluateVO
.
setTwoStopRate
(
intRate
);
}
private
List
<
String
>
buildCrossEvaluateList
(
String
crossId
,
List
<
BaseCrossDirInfoPO
>
baseCrossDirInfoPOList
,
List
<
CrossDirDataHistPOExt
>
crossDirDataHistPOList
)
{
...
...
@@ -1166,36 +1213,6 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
return
dirValue
;
}
private
Integer
calcNonCoordValue
(
List
<
Integer
>
coordDirCodeList
,
String
crossId
,
List
<
CrossDirDataHistPOExt
>
crossDirDataHistPOList
,
List
<
BaseCrossDirInfoPO
>
baseCrossDirInfoPOList
)
{
// 筛选非协调方向
List
<
BaseCrossDirInfoPO
>
collect
=
baseCrossDirInfoPOList
.
stream
()
.
filter
(
item
->
crossId
.
equals
(
item
.
getCrossId
()))
.
collect
(
Collectors
.
toList
());
List
<
Integer
>
nonCoordDirCodeList
=
collect
.
stream
()
.
map
(
BaseCrossDirInfoPO:
:
getDirType
)
.
collect
(
Collectors
.
toList
());
nonCoordDirCodeList
.
removeAll
(
coordDirCodeList
);
// 查询时段内路口非协调方向数据
List
<
CrossDirDataHistPOExt
>
filteredList
=
crossDirDataHistPOList
.
stream
()
.
filter
(
item
->
crossId
.
equals
(
item
.
getCrossId
()))
.
filter
(
item
->
1
==
item
.
getInOutType
())
.
filter
(
item
->
nonCoordDirCodeList
.
contains
(
item
.
getDirType
()))
.
collect
(
Collectors
.
toList
());
// 计算非协调方向指标(排队长度)
double
nonCoordValueDouble
=
(
filteredList
.
stream
()
.
mapToDouble
(
CrossDirDataHistPOExt:
:
getQueueLength
)
.
max
()
.
orElse
(
0.0
));
int
nonCoordValue
=
(
int
)
Math
.
round
(
nonCoordValueDouble
);
return
nonCoordValue
;
}
private
Integer
calcCoordValue
(
List
<
Integer
>
coordDirCodeList
,
String
crossId
,
List
<
CrossDirDataHistPOExt
>
crossDirDataHistPOList
)
{
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/MainlineCrossEvaluateVO.java
View file @
1bb43043
...
...
@@ -24,6 +24,12 @@ public class MainlineCrossEvaluateVO {
@ApiModelProperty
(
value
=
"非协调方向指标(排队长度)"
)
private
Integer
nonCoordValue
;
@ApiModelProperty
(
value
=
"非协调停车次数(次)"
)
private
Double
stopTimes
;
@ApiModelProperty
(
value
=
"非协调二次停车率(%)"
)
public
Integer
twoStopRate
;
@ApiModelProperty
(
value
=
"方向指标列表"
)
private
List
<
DirElement
>
dirElementList
;
...
...
wj-databus/src/main/java/net/wanji/databus/bo/CrossIdAndStartEndDateBO.java
View file @
1bb43043
...
...
@@ -11,11 +11,11 @@ public class CrossIdAndStartEndDateBO {
@ApiModelProperty
(
value
=
"路口ID"
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"开始日期 yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"开始日期 yyyy-MM-dd HH:mm:ss
或者 yyyy-MM-dd
"
)
@JsonDeserialize
(
using
=
CustomDateDeserializer
.
class
)
private
Date
startDate
;
@ApiModelProperty
(
value
=
"结束日期 yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"结束日期 yyyy-MM-dd HH:mm:ss
或者 yyyy-MM-dd
"
)
@JsonDeserialize
(
using
=
CustomDateDeserializer
.
class
)
private
Date
endDate
;
}
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