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
840622ab
Commit
840622ab
authored
Mar 11, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 调优平台v2态势监测-运行监测-绿波优化监测列表
parent
e2f9ead5
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
139 additions
and
60 deletions
+139
-60
TrendControllerV2.java
...in/java/net/wanji/opt/controllerv2/TrendControllerV2.java
+18
-3
GreenWaveRealTimeMapperV2Mapper.java
...wanji/opt/dao/mapper/GreenWaveRealTimeMapperV2Mapper.java
+2
-2
HoloEventMapper.java
...c/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
+6
-0
TrendServiceV2.java
...src/main/java/net/wanji/opt/servicev2/TrendServiceV2.java
+3
-3
TrendServiceV2Impl.java
...va/net/wanji/opt/servicev2/implv2/TrendServiceV2Impl.java
+33
-25
GreenOptInfoDTO.java
...vice/src/main/java/net/wanji/opt/vo2/GreenOptInfoDTO.java
+41
-0
GreenOptInfoVO.java
...rvice/src/main/java/net/wanji/opt/vo2/GreenOptInfoVO.java
+5
-26
GreenOptMonitoringVO.java
...src/main/java/net/wanji/opt/vo2/GreenOptMonitoringVO.java
+20
-0
GreenWaveRealTimeMapperV2.xml
...e/src/main/resources/mapper/GreenWaveRealTimeMapperV2.xml
+1
-1
HoloEventMapper.xml
...ize-service/src/main/resources/mapper/HoloEventMapper.xml
+10
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/TrendControllerV2.java
View file @
840622ab
...
...
@@ -7,9 +7,7 @@ import io.swagger.annotations.ApiResponses;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.servicev2.TrendServiceV2
;
import
net.wanji.opt.vo2.CrossOptInfoVO
;
import
net.wanji.opt.vo2.CrossGreenStatusTimeRateVO
;
import
net.wanji.opt.vo2.GreenOptInfoVO
;
import
net.wanji.opt.vo2.*
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -82,4 +80,21 @@ public class TrendControllerV2 {
}
return
JsonViewObject
.
newInstance
().
success
(
list
);
}
@ApiOperation
(
value
=
"态势监测-运行监测-干线优化监测"
,
notes
=
"态势监测-运行监测-干线优化监测"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenOptMonitoringList"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenOptMonitoringVO
.
class
),
})
public
JsonViewObject
greenOptMonitoringList
()
throws
Exception
{
List
<
GreenOptMonitoringVO
>
list
=
Collections
.
emptyList
();
try
{
list
=
trendServiceV2
.
greenOptMonitoringList
();
}
catch
(
Exception
e
)
{
JsonViewObject
.
newInstance
().
success
(
list
);
}
return
JsonViewObject
.
newInstance
().
success
(
list
);
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/GreenWaveRealTimeMapperV2Mapper.java
View file @
840622ab
...
...
@@ -2,7 +2,7 @@ package net.wanji.opt.dao.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.dao.entity.GreenwaveRealtimePO
;
import
net.wanji.opt.vo2.GreenOptInfo
V
O
;
import
net.wanji.opt.vo2.GreenOptInfo
DT
O
;
import
java.util.List
;
...
...
@@ -12,5 +12,5 @@ import java.util.List;
*/
public
interface
GreenWaveRealTimeMapperV2Mapper
extends
BaseMapper
<
GreenwaveRealtimePO
>
{
List
<
GreenOptInfo
V
O
>
selectGreenOptInfoList
();
List
<
GreenOptInfo
DT
O
>
selectGreenOptInfoList
();
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
View file @
840622ab
...
...
@@ -10,6 +10,7 @@ import net.wanji.opt.po.trend.EventInfoSimplePo;
import
net.wanji.opt.po.trend.HoloEventInfoPO
;
import
net.wanji.opt.vo.CrossEventListPO
;
import
net.wanji.opt.vo2.CrossGreenStatusTimeRateVO
;
import
net.wanji.opt.vo2.GreenOptMonitoringVO
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
...
...
@@ -71,4 +72,9 @@ public interface HoloEventMapper extends BaseMapper<HoloEventInfoPO> {
*/
List
<
CrossGreenStatusTimeRateVO
>
selectCrossGreenStatusTimeRate
();
/**
* 态势监测-运行监测-干线优化监测
* @return
*/
List
<
GreenOptMonitoringVO
>
selectGreenOptMonitoringList
();
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/TrendServiceV2.java
View file @
840622ab
package
net
.
wanji
.
opt
.
servicev2
;
import
net.wanji.opt.vo2.CrossGreenStatusTimeRateVO
;
import
net.wanji.opt.vo2.CrossOptInfoVO
;
import
net.wanji.opt.vo2.GreenOptInfoVO
;
import
net.wanji.opt.vo2.*
;
import
java.util.List
;
...
...
@@ -17,4 +15,6 @@ public interface TrendServiceV2 {
List
<
CrossOptInfoVO
>
crossOptInfoList
()
throws
Exception
;
List
<
GreenOptInfoVO
>
greenOptInfoList
()
throws
Exception
;
List
<
GreenOptMonitoringVO
>
greenOptMonitoringList
()
throws
Exception
;
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/implv2/TrendServiceV2Impl.java
View file @
840622ab
...
...
@@ -7,7 +7,6 @@ import net.wanji.common.utils.tool.DateUtil;
import
net.wanji.databus.dao.entity.GreenwaveHistPO
;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveHistMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveRealtimeMapper
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.opt.common.enums.EventInfoTypeEnum
;
import
net.wanji.opt.common.enums.GreenBeltDirEnum
;
...
...
@@ -15,20 +14,14 @@ import net.wanji.opt.dao.mapper.GreenWaveRealTimeMapperV2Mapper;
import
net.wanji.opt.dao.mapper.HoloEventMapper
;
import
net.wanji.opt.dao.mapper.StrategyCrossResultMapper
;
import
net.wanji.opt.servicev2.TrendServiceV2
;
import
net.wanji.opt.vo2.CrossGreenStatusTimeRateVO
;
import
net.wanji.opt.vo2.CrossOptInfoVO
;
import
net.wanji.opt.vo2.GreenOptInfoVO
;
import
net.wanji.opt.vo2.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* @author duanruiming
...
...
@@ -118,21 +111,22 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
@Override
public
List
<
GreenOptInfoVO
>
greenOptInfoList
()
throws
Exception
{
List
<
GreenOptInfoVO
>
greenOptInfoVOS
=
greenWaveRealTimeMapperV2Mapper
.
selectGreenOptInfoList
();
List
<
GreenOptInfoVO
>
results
=
new
ArrayList
<>();
List
<
GreenOptInfoDTO
>
greenOptInfoDTOS
=
greenWaveRealTimeMapperV2Mapper
.
selectGreenOptInfoList
();
long
start
=
DateUtil
.
getCurrentTimeSecond
();
long
end
=
start
+
5
*
60
;
LambdaQueryWrapper
<
GreenwaveHistPO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
between
(
GreenwaveHistPO:
:
getBatchTime
,
start
,
end
);
List
<
GreenwaveHistPO
>
greenwaveHistPOS
=
greenwaveHistMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
greenOptInfo
V
OS
))
{
for
(
GreenOptInfo
VO
greenOptInfoVO
:
greenOptInfoV
OS
)
{
Integer
greenId
=
greenOptInfo
V
O
.
getGreenId
();
Double
trafficIndex
=
greenOptInfo
V
O
.
getTrafficIndex
();
Integer
speed
=
greenOptInfo
V
O
.
getSpeed
();
Integer
travelTime
=
greenOptInfo
V
O
.
getTravelTime
();
greenOptInfo
V
O
.
setStrategyName
(
"效率提升"
);
String
roadDirection
=
greenOptInfo
V
O
.
getRoadDirection
();
greenOptInfo
V
O
.
setDirectionName
(
GreenBeltDirEnum
.
getDesc
(
roadDirection
));
if
(!
CollectionUtils
.
isEmpty
(
greenOptInfo
DT
OS
))
{
for
(
GreenOptInfo
DTO
greenOptInfoDTO
:
greenOptInfoDT
OS
)
{
Integer
greenId
=
greenOptInfo
DT
O
.
getGreenId
();
Double
trafficIndex
=
greenOptInfo
DT
O
.
getTrafficIndex
();
Integer
speed
=
greenOptInfo
DT
O
.
getSpeed
();
Integer
travelTime
=
greenOptInfo
DT
O
.
getTravelTime
();
greenOptInfo
DT
O
.
setStrategyName
(
"效率提升"
);
String
roadDirection
=
greenOptInfo
DT
O
.
getRoadDirection
();
greenOptInfo
DT
O
.
setDirectionName
(
GreenBeltDirEnum
.
getDesc
(
roadDirection
));
for
(
GreenwaveHistPO
greenwaveHistPO
:
greenwaveHistPOS
)
{
Integer
curGreenId
=
greenwaveHistPO
.
getGreenId
();
String
curDirection
=
greenwaveHistPO
.
getRoadDirection
();
...
...
@@ -142,25 +136,39 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
if
(
Objects
.
equals
(
greenId
,
curGreenId
)
&&
StringUtils
.
equals
(
roadDirection
,
curDirection
))
{
if
(
trafficIndex
>
curTrafficIndex
)
{
greenOptInfo
V
O
.
setTrafficIndexUpDown
(
1
);
greenOptInfo
DT
O
.
setTrafficIndexUpDown
(
1
);
}
else
{
greenOptInfo
V
O
.
setTrafficIndexUpDown
(
0
);
greenOptInfo
DT
O
.
setTrafficIndexUpDown
(
0
);
}
if
(
speed
>
curSpeed
.
intValue
())
{
greenOptInfo
V
O
.
setSpeedUpDown
(
1
);
greenOptInfo
DT
O
.
setSpeedUpDown
(
1
);
}
else
{
greenOptInfo
V
O
.
setSpeedUpDown
(
0
);
greenOptInfo
DT
O
.
setSpeedUpDown
(
0
);
}
if
(
travelTime
>
curTravelTime
)
{
greenOptInfo
V
O
.
setTravelUpDown
(
1
);
greenOptInfo
DT
O
.
setTravelUpDown
(
1
);
}
else
{
greenOptInfo
V
O
.
setTravelUpDown
(
0
);
greenOptInfo
DT
O
.
setTravelUpDown
(
0
);
}
}
}
}
Map
<
Integer
,
List
<
GreenOptInfoDTO
>>
greenIdMap
=
greenOptInfoDTOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
GreenOptInfoDTO:
:
getGreenId
));
for
(
Map
.
Entry
<
Integer
,
List
<
GreenOptInfoDTO
>>
entry
:
greenIdMap
.
entrySet
())
{
GreenOptInfoVO
greenOptInfoVO
=
new
GreenOptInfoVO
();
Integer
greenId
=
entry
.
getKey
();
List
<
GreenOptInfoDTO
>
value
=
entry
.
getValue
();
greenOptInfoVO
.
setGreenId
(
greenId
);
greenOptInfoVO
.
setDetails
(
value
);
results
.
add
(
greenOptInfoVO
);
}
}
return
greenOptInfoVOS
;
return
results
;
}
@Override
public
List
<
GreenOptMonitoringVO
>
greenOptMonitoringList
()
throws
Exception
{
return
holoEventMapper
.
selectGreenOptMonitoringList
();
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/vo2/GreenOptInfoDTO.java
0 → 100644
View file @
840622ab
package
net
.
wanji
.
opt
.
vo2
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.opt.config.Double2TwoDecimalPlacesSerializer
;
/**
* @author duanruiming
* @date 2025/03/10 16:14
*/
@Data
@ApiModel
(
value
=
"GreenOptInfoDTO"
,
description
=
"态势监测-区域体检-绿波优化列表"
)
public
class
GreenOptInfoDTO
{
@ApiModelProperty
(
value
=
"绿波编号"
)
private
Integer
greenId
;
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
greenName
;
@ApiModelProperty
(
value
=
"绿波方向"
)
private
String
roadDirection
;
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
directionName
;
@ApiModelProperty
(
value
=
"经纬度"
)
private
String
wkt
;
@ApiModelProperty
(
value
=
"策略名称"
)
private
String
strategyName
;
@ApiModelProperty
(
value
=
"交通指数"
)
@JsonSerialize
(
using
=
Double2TwoDecimalPlacesSerializer
.
class
)
private
Double
trafficIndex
;
@ApiModelProperty
(
value
=
"运行速度"
)
private
Integer
speed
;
@ApiModelProperty
(
value
=
"行程速度"
)
private
Integer
travelTime
;
@ApiModelProperty
(
value
=
"同比交通指数,0-向下, 1向上"
)
private
Integer
trafficIndexUpDown
;
@ApiModelProperty
(
value
=
"同比运行速度,0-向下, 1向上"
)
private
Integer
speedUpDown
;
@ApiModelProperty
(
value
=
"同比行程时间,0-向下, 1向上"
)
private
Integer
travelUpDown
;
}
signal-optimize-service/src/main/java/net/wanji/opt/vo2/GreenOptInfoVO.java
View file @
840622ab
package
net
.
wanji
.
opt
.
vo2
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.opt.config.Double2TwoDecimalPlacesSerializer
;
import
java.util.List
;
/**
* @author duanruiming
* @date 2025/03/1
0 16:14
* @date 2025/03/1
1 10:18
*/
@Data
@ApiModel
(
value
=
"GreenOptInfoVO"
,
description
=
"态势监测-区域体检-绿波优化列表"
)
public
class
GreenOptInfoVO
{
@ApiModelProperty
(
value
=
"绿波编号"
)
private
Integer
greenId
;
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
greenName
;
@ApiModelProperty
(
value
=
"绿波方向"
)
private
String
roadDirection
;
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
directionName
;
@ApiModelProperty
(
value
=
"经纬度"
)
private
String
wkt
;
@ApiModelProperty
(
value
=
"策略名称"
)
private
String
strategyName
;
@ApiModelProperty
(
value
=
"交通指数"
)
@JsonSerialize
(
using
=
Double2TwoDecimalPlacesSerializer
.
class
)
private
Double
trafficIndex
;
@ApiModelProperty
(
value
=
"运行速度"
)
private
Integer
speed
;
@ApiModelProperty
(
value
=
"行程速度"
)
private
Integer
travelTime
;
@ApiModelProperty
(
value
=
"同比交通指数,0-向下, 1向上"
)
private
Integer
trafficIndexUpDown
;
@ApiModelProperty
(
value
=
"同比运行速度,0-向下, 1向上"
)
private
Integer
speedUpDown
;
@ApiModelProperty
(
value
=
"同比行程时间,0-向下, 1向上"
)
private
Integer
travelUpDown
;
@ApiModelProperty
(
value
=
"绿波详情列表"
)
private
List
<
GreenOptInfoDTO
>
details
;
}
signal-optimize-service/src/main/java/net/wanji/opt/vo2/GreenOptMonitoringVO.java
0 → 100644
View file @
840622ab
package
net
.
wanji
.
opt
.
vo2
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author duanruiming
* @date 2025/03/11 11:03
*/
@Data
@ApiModel
(
value
=
"GreenOptMonitoringVO"
,
description
=
"态势监测-运行监测-干线优化监测"
)
public
class
GreenOptMonitoringVO
{
@ApiModelProperty
(
value
=
"绿波编号"
)
private
Integer
greenId
;
@ApiModelProperty
(
value
=
"绿波事件"
)
private
String
type
;
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
greenName
;
}
signal-optimize-service/src/main/resources/mapper/GreenWaveRealTimeMapperV2.xml
View file @
840622ab
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"net.wanji.opt.dao.mapper.GreenWaveRealTimeMapperV2Mapper"
>
<!-- 态势监测-区域体检-绿波列表 -->
<select
id=
"selectGreenOptInfoList"
resultType=
"net.wanji.opt.vo2.GreenOptInfo
V
O"
>
<select
id=
"selectGreenOptInfoList"
resultType=
"net.wanji.opt.vo2.GreenOptInfo
DT
O"
>
select t2.green_id greenId, t1.name greenName, t2.road_direction roadDirection,
t2.traffic_index trafficIndex, t1.wkt, t2.trval_time as travelTime, t2.speed
from t_greenwave_info t1
...
...
signal-optimize-service/src/main/resources/mapper/HoloEventMapper.xml
View file @
840622ab
...
...
@@ -253,6 +253,16 @@
) t1 group by t1.type
</select>
<!-- 态势监测-运行监测-干线优化监测 -->
<select
id=
"selectGreenOptMonitoringList"
resultType=
"net.wanji.opt.vo2.GreenOptMonitoringVO"
>
select distinct t1.name greenName, t1.id greenId, ifnull(t2.type, '700') type
from t_greenwave_info t1
left join t_event_info t2 on t1.id = t2.green_id
and t2.dt = curdate() and t2.type in ('705', '706')
and t2.start_time
<![CDATA[ < ]]>
now() and ifnull(t2.end_time, now())
<![CDATA[ >= ]]>
now()
order by t2.start_time desc
</select>
</mapper>
\ No newline at end of file
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