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
9aba4f89
Commit
9aba4f89
authored
Apr 10, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
93d8273b
b073e72b
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
276 additions
and
14 deletions
+276
-14
GreenChartSchemeHistMapper.java
.../net/wanji/opt/dao/mapper/GreenChartSchemeHistMapper.java
+11
-0
GreenBeltChartDTO.java
...ce/src/main/java/net/wanji/opt/dto/GreenBeltChartDTO.java
+1
-1
GreenChartSchemeHist.java
.../main/java/net/wanji/opt/entity/GreenChartSchemeHist.java
+38
-0
AnalysisGreenCongestionPeriodService.java
...2/judgeanalysis/AnalysisGreenCongestionPeriodService.java
+1
-0
AnalysisGreenCongestionPeriodServiceImpl.java
...alysis/impl/AnalysisGreenCongestionPeriodServiceImpl.java
+136
-0
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+84
-13
GreenChartSchemeHistMapper.xml
.../src/main/resources/mapper/GreenChartSchemeHistMapper.xml
+5
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/GreenChartSchemeHistMapper.java
0 → 100644
View file @
9aba4f89
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 @
9aba4f89
...
...
@@ -24,5 +24,5 @@ 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
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/GreenChartSchemeHist.java
0 → 100644
View file @
9aba4f89
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
(
"gmt_create"
)
private
Date
gmtCreate
;
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@TableField
(
"gmt_modified"
)
private
Date
gmtModified
;
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/AnalysisGreenCongestionPeriodService.java
View file @
9aba4f89
...
...
@@ -8,6 +8,7 @@ import java.util.List;
public
interface
AnalysisGreenCongestionPeriodService
{
public
void
selectCountByCongestionPeriod
()
throws
ParseException
;
public
void
selectCountByLandData
()
throws
ParseException
;
GreenReportProblemOverallAnalysisResult
selectListByWeek
(
Integer
year
,
Integer
week
,
String
ids
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/impl/AnalysisGreenCongestionPeriodServiceImpl.java
View file @
9aba4f89
package
net
.
wanji
.
opt
.
servicev2
.
judgeanalysis
.
impl
;
import
com.alibaba.cloud.commons.lang.StringUtils
;
import
com.github.pagehelper.util.StringUtil
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.mapper.GreenwaveInfoMapper
;
import
net.wanji.opt.common.enums.*
;
...
...
@@ -8,6 +10,7 @@ import net.wanji.opt.controllerv2.report.vo.*;
import
net.wanji.opt.dao.mapper.judgeanalysis.AnalysisGreenCongestionPeriodMapper
;
import
net.wanji.opt.dao.mapper.report.GreenWaveCrossRidMapper
;
import
net.wanji.opt.entity.judgeanalysis.AnalysisGreenCongestionPeriod
;
import
net.wanji.opt.entity.judgeanalysis.laneDataHist
;
import
net.wanji.opt.entity.report.GreenWaveCrossRidInfo
;
import
net.wanji.opt.servicev2.judgeanalysis.AnalysisGreenCongestionPeriodService
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -487,6 +490,13 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
queue
.
offer
(
temp
);
}
public
void
enqueue
(
LinkedList
<
laneDataHist
>
queue
,
laneDataHist
temp
)
{
if
(
queue
.
size
()
>=
2
)
{
queue
.
poll
();
}
queue
.
offer
(
temp
);
}
public
Integer
isMoning
(
String
date
)
throws
ParseException
{
DateFormat
fmt
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
temp
=
fmt
.
parse
(
date
);
...
...
@@ -497,4 +507,130 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
return
2
;
}
}
public
void
selectCountByLandData
()
throws
ParseException
{
LocalDate
currentDate
=
LocalDate
.
now
();
// 获取本周一的日期
LocalDate
mondayOfThisWeek
=
currentDate
.
with
(
TemporalAdjusters
.
previousOrSame
(
DayOfWeek
.
MONDAY
));
// 获取上周一的日期
LocalDate
todayOfWeek
=
mondayOfThisWeek
.
plusDays
(-
7
);
//获取上周日的日期
LocalDate
endOfWeek
=
mondayOfThisWeek
.
plusDays
(-
1
);
WeekFields
weekFields
=
WeekFields
.
of
(
Locale
.
getDefault
());
//获取上周的周数
int
Number
=
todayOfWeek
.
get
(
weekFields
.
weekOfYear
());
int
year
=
currentDate
.
getYear
();
String
weekNumber
=
String
.
valueOf
(
year
)
+
String
.
valueOf
(
Number
);
//循环7天处理数据
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
LocalDate
date
=
todayOfWeek
.
plusDays
(
i
);
//获取干线数据
List
<
laneDataHist
>
laneList
=
analysisGreenCongestionPeriodMapper
.
selectGreenTrafficHist
(
date
.
toString
().
replaceAll
(
"-"
,
""
));
LinkedList
<
laneDataHist
>
queue
=
new
LinkedList
<>();
LinkedList
<
laneDataHist
>
queueCorss
=
new
LinkedList
<>();
List
<
laneDataHist
>
list
=
new
ArrayList
<>();
String
greenId
=
""
;
String
roadDirection
=
""
;
String
startTime
=
""
;
String
endTime
=
""
;
Double
trafficThreshold
=
0.0
;
for
(
laneDataHist
temp
:
laneList
){
if
(
temp
.
getGreenId
().
equals
(
greenId
)){
if
(
queue
.
size
()
==
2
){
//判断流量是否大于阀值
if
(
trafficThreshold
<
temp
.
getTrafficIndex
()
&&
com
.
github
.
pagehelper
.
util
.
StringUtil
.
isEmpty
(
startTime
)){
startTime
=
temp
.
getStartTime
();
list
.
add
(
temp
);
}
else
if
(
temp
.
getTrafficIndex
()
<
trafficThreshold
&&
queue
.
getFirst
().
getTrafficIndex
()
<
trafficThreshold
&&
queue
.
getLast
().
getTrafficIndex
()
<
trafficThreshold
&&
!
com
.
github
.
pagehelper
.
util
.
StringUtil
.
isEmpty
(
startTime
)
){
if
(
list
.
size
()
<
10
){
startTime
=
""
;
list
.
clear
();
enqueue
(
queue
,
temp
);
continue
;
}
endTime
=
queue
.
getFirst
().
getStartTime
();
//查询流量数据,循环处理list中的数据找出最大值,并算出平均值
List
<
laneDataHist
>
crossFlowList
=
analysisGreenCongestionPeriodMapper
.
selectCrossFlow
(
date
.
toString
().
replaceAll
(
"-"
,
""
),
temp
.
getCrossId
(),
startTime
,
endTime
);
List
<
laneDataHist
>
list1
=
new
ArrayList
<>();
Integer
maxFlow
=
0
;
Integer
sumFlow
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
crossFlowList
))
{
for
(
laneDataHist
temp1
:
crossFlowList
)
{
if
(
queueCorss
.
size
()
<
2
)
{
enqueue
(
queueCorss
,
temp1
);
}
else
{
Integer
flow
=
(
temp1
.
getFlow
()
+
queueCorss
.
getFirst
().
getFlow
()
+
queueCorss
.
getLast
().
getFlow
())
*
4
;
temp1
.
setFlowHour
(
flow
);
list1
.
add
(
temp1
);
enqueue
(
queueCorss
,
temp1
);
}
}
maxFlow
=
list1
.
get
(
0
).
getFlowHour
();
sumFlow
=
list1
.
get
(
0
).
getFlowHour
();
}
Integer
avgFlow
=
0
;
for
(
int
a
=
0
;
a
<
list1
.
size
();
a
++){
if
(
a
==
list1
.
size
()
-
1
){
Double
avg
=
Math
.
ceil
((
double
)
sumFlow
/
list1
.
size
());
avgFlow
=
Integer
.
valueOf
(
avg
.
intValue
())
;
continue
;
}
if
(
list1
.
get
(
a
+
1
).
getFlowHour
()
>
maxFlow
){
maxFlow
=
list1
.
get
(
a
+
1
).
getFlowHour
();
}
sumFlow
=
sumFlow
+
list1
.
get
(
a
+
1
).
getFlowHour
();
}
//写入数据
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"startTime"
,
startTime
);
map
.
put
(
"endTime"
,
endTime
);
map
.
put
(
"weekNumber"
,
weekNumber
);
map
.
put
(
"weekDay"
,
i
+
1
);
map
.
put
(
"roadDirection"
,
roadDirection
);
map
.
put
(
"peakType"
,
isMoning
(
startTime
));
map
.
put
(
"weekStartTime"
,
todayOfWeek
);
map
.
put
(
"weekEndTime"
,
endOfWeek
);
map
.
put
(
"maxFlow"
,
maxFlow
);
map
.
put
(
"avgFlow"
,
avgFlow
);
map
.
put
(
"greenId"
,
temp
.
getGreenId
());
map
.
put
(
"trafficThreshold"
,
trafficThreshold
);
analysisGreenCongestionPeriodMapper
.
insertLaneDataHist
(
map
);
//清空数据
startTime
=
""
;
endTime
=
""
;
list
.
clear
();
}
else
{
if
(!
StringUtil
.
isEmpty
(
startTime
))
{
list
.
add
(
temp
);
}
}
}
enqueue
(
queue
,
temp
);
}
else
{
queue
.
clear
();
list
.
clear
();
greenId
=
temp
.
getGreenId
();
roadDirection
=
temp
.
getRoadDirection
();
//计算该干线交通指数阈值,取一天的9点至16点30之间交通指数倒序的90%的数值为动态阈值
List
<
laneDataHist
>
greenTrafficList
=
analysisGreenCongestionPeriodMapper
.
selectGreenTrafficThreshold
(
date
.
toString
().
replaceAll
(
"-"
,
""
),
greenId
,
roadDirection
);
if
(
greenTrafficList
.
get
(
9
).
getTrafficIndex
()
<=
1.5
)
{
trafficThreshold
=
1.5
;
}
else
{
trafficThreshold
=
greenTrafficList
.
get
(
9
).
getTrafficIndex
();
}
startTime
=
""
;
endTime
=
""
;
enqueue
(
queue
,
temp
);
}
}
//计算平峰
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
9aba4f89
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/resources/mapper/GreenChartSchemeHistMapper.xml
0 → 100644
View file @
9aba4f89
<?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>
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