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
13bd727e
Commit
13bd727e
authored
Apr 10, 2025
by
黄伟铭
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
0f4a62a6
6f935773
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
344 additions
and
54 deletions
+344
-54
TrendControllerV2.java
...in/java/net/wanji/opt/controllerv2/TrendControllerV2.java
+20
-0
GreenChartSchemeHistMapper.java
.../net/wanji/opt/dao/mapper/GreenChartSchemeHistMapper.java
+11
-0
GreenBeltChartDTO.java
...ce/src/main/java/net/wanji/opt/dto/GreenBeltChartDTO.java
+2
-1
GreenChartSchemeHist.java
.../main/java/net/wanji/opt/entity/GreenChartSchemeHist.java
+38
-0
AnalysisGreenWaveOptimizeWeek.java
...anji/opt/entity/report/AnalysisGreenWaveOptimizeWeek.java
+33
-4
TrendServiceV2.java
...src/main/java/net/wanji/opt/servicev2/TrendServiceV2.java
+2
-0
TrendServiceV2Impl.java
...va/net/wanji/opt/servicev2/implv2/TrendServiceV2Impl.java
+27
-0
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+155
-43
OptimizeStatisticTask.java
...c/main/java/net/wanji/opt/task/OptimizeStatisticTask.java
+18
-3
GreenChartSchemeHistMapper.xml
.../src/main/resources/mapper/GreenChartSchemeHistMapper.xml
+5
-0
AnalysisGreenWaveOptimizeWeekMapper.xml
...ces/mapper/report/AnalysisGreenWaveOptimizeWeekMapper.xml
+33
-3
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/TrendControllerV2.java
View file @
13bd727e
...
...
@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.vo.LightsStatusVO2
;
import
net.wanji.opt.dto.GreenBeltChartDTO
;
import
net.wanji.opt.servicev2.TrendServiceV2
;
import
net.wanji.opt.vo2.*
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -288,4 +289,23 @@ public class TrendControllerV2 {
}
return
JsonViewObject
.
newInstance
().
success
(
lightsStatusVO2
);
}
@ApiOperation
(
value
=
"态势监测-绿波时序图"
,
notes
=
"态势监测-绿波时序图"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/green4SchemeChart"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
String
.
class
),
})
public
JsonViewObject
green4SchemeChart
(
Integer
greenId
,
String
date
)
throws
Exception
{
GreenBeltChartDTO
result
=
new
GreenBeltChartDTO
();
try
{
result
=
trendServiceV2
.
green4SchemeChart
(
greenId
,
date
);
}
catch
(
Exception
e
)
{
log
.
error
(
"态势监测-绿波时序图:"
,
e
);
JsonViewObject
.
newInstance
().
success
(
result
,
""
);
}
return
JsonViewObject
.
newInstance
().
success
(
result
,
""
);
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/GreenChartSchemeHistMapper.java
0 → 100644
View file @
13bd727e
package
net
.
wanji
.
opt
.
dao
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.opt.entity.GreenChartSchemeHist
;
/**
* @author duanruiming
* @date 2025/04/10 11:32
*/
public
interface
GreenChartSchemeHistMapper
extends
BaseMapper
<
GreenChartSchemeHist
>
{
}
signal-optimize-service/src/main/java/net/wanji/opt/dto/GreenBeltChartDTO.java
View file @
13bd727e
...
...
@@ -24,5 +24,6 @@ public class GreenBeltChartDTO {
private
Map
<
String
,
List
<
List
<
Double
>>>
backCrossRedTimesMap
;
private
Map
<
String
,
List
<
List
<
Double
>>>
crossGreenTimesMap
;
private
Map
<
String
,
List
<
List
<
Double
>>>
backCrossGreenTimesMap
;
private
List
<
Map
<
String
,
List
<
Double
>>>
greenwaveStartGroup
;
private
List
<
Map
<
String
,
List
<
List
<
Double
>>>>
greenwaveStartGroup
;
private
List
<
Map
<
String
,
List
<
List
<
Double
>>>>
backGreenwaveStartGroup
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/GreenChartSchemeHist.java
0 → 100644
View file @
13bd727e
package
net
.
wanji
.
opt
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author duanruiming
* @date 2025/04/10 11:28
*/
@Data
@TableName
(
"t_green_chart_scheme_hist"
)
public
class
GreenChartSchemeHist
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
@TableField
(
"green_id"
)
private
Integer
greenId
;
@TableField
(
"green_chart"
)
private
String
greenChart
;
@TableField
(
"scheme_detail"
)
private
String
schemeDetail
;
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@TableField
(
"create_time"
)
private
Date
createTime
;
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@TableField
(
"modify_time"
)
private
Date
modifyTime
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/report/AnalysisGreenWaveOptimizeWeek.java
View file @
13bd727e
...
...
@@ -28,10 +28,7 @@ public class AnalysisGreenWaveOptimizeWeek implements Serializable {
* 星期几:1~7代表周一至周日
*/
private
Integer
weekDay
;
/**
* 拥堵指数
*/
private
Double
congestIndex
;
/**
* 优化时段开始时间
...
...
@@ -58,30 +55,62 @@ public class AnalysisGreenWaveOptimizeWeek implements Serializable {
*/
private
Integer
optimizeDuration
;
/**
* 拥堵指数
*/
private
Double
congestIndex
;
/**
* 上周拥堵指数
*/
private
Double
lastWeekCongestIndex
;
/**
* 通行能力(辆)
*/
private
Integer
capacity
;
/**
* 上周通行能力(辆)
*/
private
Integer
lastWeekCapacity
;
/**
* 停车次数
*/
private
Double
stopTimes
;
/**
* 上周停车次数
*/
private
Double
lastWeekStopTimes
;
/**
* 延误时间,单位秒
*/
private
Double
delayTime
;
/**
* 上周延误时间,单位秒
*/
private
Double
lastWeekDelayTime
;
/**
* 行程时间,单位秒
*/
private
Integer
travelTime
;
/**
* 上周行程时间,单位秒
*/
private
Integer
lastWeekTravelTime
;
/**
* 平均速度,单位km/h
*/
private
Double
speed
;
/**
* 上周平均速度,单位km/h
*/
private
Double
lastWeekSpeed
;
/**
* 一年中的第几周
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/TrendServiceV2.java
View file @
13bd727e
...
...
@@ -2,6 +2,7 @@ package net.wanji.opt.servicev2;
import
com.github.pagehelper.PageInfo
;
import
net.wanji.databus.vo.LightsStatusVO2
;
import
net.wanji.opt.dto.GreenBeltChartDTO
;
import
net.wanji.opt.vo2.*
;
import
java.util.List
;
...
...
@@ -36,4 +37,5 @@ public interface TrendServiceV2 {
LightsStatusVO2
selectLightStatusHist
(
String
id
,
String
date
)
throws
Exception
;
GreenBeltChartDTO
green4SchemeChart
(
Integer
id
,
String
date
)
throws
Exception
;
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/implv2/TrendServiceV2Impl.java
View file @
13bd727e
package
net
.
wanji
.
opt
.
servicev2
.
implv2
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.github.pagehelper.PageHelper
;
...
...
@@ -28,6 +29,8 @@ import net.wanji.opt.common.RedisUtils;
import
net.wanji.opt.common.enums.EventInfoTypeEnum
;
import
net.wanji.opt.common.enums.GreenBeltDirEnum
;
import
net.wanji.opt.dao.mapper.*
;
import
net.wanji.opt.dto.GreenBeltChartDTO
;
import
net.wanji.opt.entity.GreenChartSchemeHist
;
import
net.wanji.opt.po.StrategyGreenOptHistEntity
;
import
net.wanji.opt.servicev2.TrendServiceV2
;
import
net.wanji.opt.synthesis.pojo.StrategyCrossResultEntity
;
...
...
@@ -81,6 +84,8 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
private
UtcFeignClients
utcFeignClients
;
@Resource
private
StrategyFactoryMapper
strategyFactoryMapper
;
@Resource
private
GreenChartSchemeHistMapper
greenChartSchemeHistMapper
;
private
static
List
<
OptMonitoringVO
>
greenListCache
=
new
ArrayList
<>(
10
);
private
static
List
<
OptMonitoringVO
>
crossListCache
=
new
ArrayList
<>(
80
);
...
...
@@ -616,4 +621,26 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
return
null
;
}
@Override
public
GreenBeltChartDTO
green4SchemeChart
(
Integer
id
,
String
date
)
throws
Exception
{
try
{
GreenBeltChartDTO
greenBeltChartDTO
=
new
GreenBeltChartDTO
();
LambdaQueryWrapper
<
GreenChartSchemeHist
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
GreenChartSchemeHist:
:
getGreenId
,
id
);
queryWrapper
.
le
(
GreenChartSchemeHist:
:
getCreateTime
,
date
);
queryWrapper
.
orderByDesc
(
GreenChartSchemeHist:
:
getCreateTime
);
queryWrapper
.
last
(
"limit 1"
);
List
<
GreenChartSchemeHist
>
greenChartSchemeHists
=
greenChartSchemeHistMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
greenChartSchemeHists
))
{
for
(
GreenChartSchemeHist
greenChartSchemeHist
:
greenChartSchemeHists
)
{
greenBeltChartDTO
=
JacksonUtils
.
getInstance
().
readValue
(
greenChartSchemeHist
.
getGreenChart
(),
GreenBeltChartDTO
.
class
);
}
}
return
greenBeltChartDTO
;
}
catch
(
Exception
e
)
{
log
.
error
(
"态势监测-绿波时序图查询异常:{}"
,
e
);
throw
new
RuntimeException
(
e
);
}
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
13bd727e
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/task/OptimizeStatisticTask.java
View file @
13bd727e
...
...
@@ -63,7 +63,7 @@ public class OptimizeStatisticTask {
* 干线策略优化时长计算
*/
@Scheduled
(
cron
=
"0 40 1 * * ?"
)
//
@PostConstruct
@PostConstruct
public
void
optimizeGreenWaveDurationCal
()
{
long
st
=
System
.
currentTimeMillis
();
try
{
...
...
@@ -137,6 +137,14 @@ public class OptimizeStatisticTask {
// }
GreenHistIndexDTO
dto
=
greenwaveHistProvider
.
findGreenIndexByDateScope
(
result
.
getGreenId
(),
controlStartTime
,
controlEndTime
);
//上周策略同期-开始时间
DateTime
lastWeekDateTime
=
new
DateTime
(
result
.
getControlTime
()).
minusWeeks
(
1
);
String
lastWeekStartTime
=
DateUtil
.
formatDate
(
lastWeekDateTime
.
toDate
(),
"yyyy-MM-dd HH:mm:ss"
);
//上周策略同期-截止时间
String
lastWeekEndTime
=
lastWeekDateTime
.
plusSeconds
(
seconds
).
toString
(
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
GreenHistIndexDTO
lastWeekDto
=
greenwaveHistProvider
.
findGreenIndexByDateScope
(
result
.
getGreenId
(),
lastWeekStartTime
,
lastWeekEndTime
);
AnalysisGreenWaveOptimizeWeek
data
=
new
AnalysisGreenWaveOptimizeWeek
();
data
.
setGreenId
(
result
.
getGreenId
());
data
.
setStragetyId
(
result
.
getStragetyId
());
...
...
@@ -149,6 +157,14 @@ public class OptimizeStatisticTask {
data
.
setStopTimes
(
dto
.
getStopTimes
());
data
.
setCongestIndex
(
dto
.
getTrafficIndex
());
}
if
(
lastWeekDto
!=
null
)
{
data
.
setLastWeekCapacity
(
lastWeekDto
.
getCapacity
());
data
.
setLastWeekDelayTime
(
lastWeekDto
.
getDelayTime
());
data
.
setLastWeekSpeed
(
lastWeekDto
.
getSpeed
());
data
.
setLastWeekTravelTime
(
lastWeekDto
.
getTravelTime
());
data
.
setLastWeekStopTimes
(
lastWeekDto
.
getStopTimes
());
data
.
setLastWeekCongestIndex
(
lastWeekDto
.
getTrafficIndex
());
}
data
.
setWeekDay
(
result
.
getWeekDay
());
data
.
setOptimizeStartTime
(
LocalDateTime
.
parse
(
controlStartTime
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
data
.
setOptimizeEndTime
(
LocalDateTime
.
parse
(
controlEndTime
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
...
...
@@ -165,8 +181,7 @@ public class OptimizeStatisticTask {
if
(!
durationList
.
isEmpty
())
{
analysisGreenWaveOptimizeWeekMapper
.
insertBatch
(
durationList
);
}
long
et
=
System
.
currentTimeMillis
();
log
.
info
(
"批量保存干线优化数据据耗时:{}ms,size:{}"
,
et
-
st
,
durationList
.
size
());
long
et
=
System
.
currentTimeMillis
();
log
.
info
(
"批量保存干线优化数据据耗时:{}ms,size:{}"
,
et
-
st
,
durationList
.
size
());
}
catch
(
Exception
e
)
{
log
.
error
(
""
,
e
);
...
...
signal-optimize-service/src/main/resources/mapper/GreenChartSchemeHistMapper.xml
0 → 100644
View file @
13bd727e
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.opt.dao.mapper.GreenChartSchemeHistMapper"
>
</mapper>
signal-optimize-service/src/main/resources/mapper/report/AnalysisGreenWaveOptimizeWeekMapper.xml
View file @
13bd727e
...
...
@@ -6,6 +6,7 @@
<!-- 通用查询列 -->
<sql
id=
"Base_Column_List"
>
green_id, road_direction, week_day, optimize_start_time, optimize_end_time, stragety_id, optimize_count, optimize_duration, capacity,congest_index, stop_times, delay_time, travel_time, speed, year_week, week_start_time, week_end_time, insert_time
,last_week_congest_index,last_week_capacity,last_week_stop_times,last_week_delay_time,last_week_travel_time,last_week_speed
</sql>
<!-- 通用条件列 -->
...
...
@@ -123,14 +124,23 @@
<result
column=
"optimize_start_time"
property=
"optimizeStartTime"
/>
<result
column=
"optimize_end_time"
property=
"optimizeEndTime"
/>
<result
column=
"stragety_id"
property=
"stragetyId"
/>
<result
column=
"congest_index"
property=
"congestIndex"
/>
<result
column=
"optimize_count"
property=
"optimizeCount"
/>
<result
column=
"optimize_duration"
property=
"optimizeDuration"
/>
<result
column=
"congest_index"
property=
"congestIndex"
/>
<result
column=
"capacity"
property=
"capacity"
/>
<result
column=
"stop_times"
property=
"stopTimes"
/>
<result
column=
"delay_time"
property=
"delayTime"
/>
<result
column=
"travel_time"
property=
"travelTime"
/>
<result
column=
"speed"
property=
"speed"
/>
<result
column=
"last_week_congest_index"
property=
"lastWeekCongestIndex"
/>
<result
column=
"last_week_capacity"
property=
"lastWeekCapacity"
/>
<result
column=
"last_week_stop_times"
property=
"lastWeekStopTimes"
/>
<result
column=
"last_week_delay_time"
property=
"lastWeekDelayTime"
/>
<result
column=
"last_week_travel_time"
property=
"lastWeekTravelTime"
/>
<result
column=
"last_week_speed"
property=
"lastWeekSpeed"
/>
<result
column=
"year_week"
property=
"yearWeek"
/>
<result
column=
"week_start_time"
property=
"weekStartTime"
/>
<result
column=
"week_end_time"
property=
"weekEndTime"
/>
...
...
@@ -199,6 +209,7 @@
,week_end_time
,insert_time
,congest_index
,last_week_congest_index,last_week_capacity,last_week_stop_times,last_week_delay_time,last_week_travel_time,last_week_speed
) VALUES (
#{greenId}
,#{roadDirection}
...
...
@@ -218,13 +229,14 @@
,#{weekEndTime}
,#{insertTime}
,#{congestIndex}
,#{lastWeekCongestIndex},#{lastWeekCapacity},#{lastWeekStopTimes},#{lastWeekDelayTime},#{lastWeekTravelTime},#{lastWeekSpeed}
)
</insert>
<insert
id=
"insertBatch"
parameterType=
"net.wanji.opt.entity.report.AnalysisGreenWaveOptimizeWeek"
>
INSERT INTO t_analysis_green_wave_optimize_week (
green_id
green_id
,road_direction
,week_day
,optimize_start_time
...
...
@@ -242,6 +254,12 @@
,week_end_time
,insert_time
,congest_index
,last_week_congest_index
,last_week_capacity
,last_week_stop_times
,last_week_delay_time
,last_week_travel_time
,last_week_speed
) VALUES
<foreach
collection=
"list"
item=
"entity"
separator=
","
>
(
...
...
@@ -263,6 +281,12 @@
,#{entity.weekEndTime}
,#{entity.insertTime}
,#{entity.congestIndex}
,#{entity.lastWeekCongestIndex}
,#{entity.lastWeekCapacity}
,#{entity.lastWeekStopTimes}
,#{entity.lastWeekDelayTime}
,#{entity.lastWeekTravelTime}
,#{entity.lastWeekSpeed}
)
</foreach>
ON DUPLICATE KEY UPDATE
...
...
@@ -284,7 +308,13 @@
week_start_time = VALUES(week_start_time),
week_end_time = VALUES(week_end_time),
insert_time = VALUES(insert_time),
congest_index = VALUES(congest_index)
congest_index = VALUES(congest_index),
last_week_congest_index = VALUES(last_week_congest_index),
last_week_capacity = VALUES(last_week_capacity),
last_week_stop_times = VALUES(last_week_stop_times),
last_week_delay_time = VALUES(last_week_delay_time),
last_week_travel_time = VALUES(last_week_travel_time),
last_week_speed = VALUES(last_week_speed)
</insert>
...
...
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