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
3e945aa3
Commit
3e945aa3
authored
Mar 11, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 数据中心编译优化
parent
f5c470c0
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
156 additions
and
79 deletions
+156
-79
pom.xml
signal-datacenter-service/pom.xml
+2
-2
CrossDataRealtimeMapper.java
.../net/wanji/datacenter/mapper/CrossDataRealtimeMapper.java
+0
-20
CrossDirDataHistMapper.java
...a/net/wanji/datacenter/mapper/CrossDirDataHistMapper.java
+0
-20
CrossTurnDataRealtimeMapper.java
.../wanji/datacenter/mapper/CrossTurnDataRealtimeMapper.java
+0
-18
LanePeriodicDataDTO.java
...va/net/wanji/datacenter/pojo/dto/LanePeriodicDataDTO.java
+17
-17
CrossDataRealTimePO.java
...ava/net/wanji/datacenter/pojo/po/CrossDataRealTimePO.java
+1
-1
LanePeriodicDataProcessServiceImpl.java
.../dataconvert/impl/LanePeriodicDataProcessServiceImpl.java
+38
-0
LanePeriodicDataPO.java
.../main/java/net/wanji/opt/po/kafka/LanePeriodicDataPO.java
+84
-0
CrossOptimizeServiceImpl.java
.../net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
+3
-0
CrossMonitorTask.java
...ce/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
+11
-1
No files found.
signal-datacenter-service/pom.xml
View file @
3e945aa3
...
...
@@ -11,9 +11,9 @@
</parent>
<groupId>
net.wanji
</groupId>
<artifactId>
signal-data
c
enter-service
</artifactId>
<artifactId>
signal-data
C
enter-service
</artifactId>
<version>
0.2.1
</version>
<name>
signal-data
c
enter-service
</name>
<name>
signal-data
C
enter-service
</name>
<description>
signal-datacenter-service
</description>
<properties>
...
...
signal-datacenter-service/src/main/java/net/wanji/datacenter/mapper/CrossDataRealtimeMapper.java
deleted
100644 → 0
View file @
f5c470c0
package
net
.
wanji
.
datacenter
.
mapper
;
import
net.wanji.opt.po.trend.CrossDataRealtimePO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 态势监测-问题路口基础信息
*
* @author Kent HAN
* @date 2023/2/8 9:22
*/
@Repository
public
interface
CrossDataRealtimeMapper
{
List
<
AbnormalCrossListVO
>
selectAbnormalCross
(
Integer
status
,
String
name
,
Integer
type
);
CrossDataRealtimePO
selectByCrossId
(
String
crossId
);
}
signal-datacenter-service/src/main/java/net/wanji/datacenter/mapper/CrossDirDataHistMapper.java
deleted
100644 → 0
View file @
f5c470c0
package
net
.
wanji
.
datacenter
.
mapper
;
import
net.wanji.opt.po.trend.CrossDirDataHistPO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 路口方向历史数据
*
* @author Kent HAN
* @date 2023/2/8 9:22
*/
@Repository
public
interface
CrossDirDataHistMapper
{
List
<
CrossDirDataHistPO
>
selectByCrossIdAndTimestamp
(
String
crossId
,
long
preSeconds
);
List
<
CrossDirDataHistPO
>
selectByCrossIdDirAndTimestamp
(
String
crossId
,
Integer
dir
,
long
preSeconds
);
}
signal-datacenter-service/src/main/java/net/wanji/datacenter/mapper/CrossTurnDataRealtimeMapper.java
deleted
100644 → 0
View file @
f5c470c0
package
net
.
wanji
.
datacenter
.
mapper
;
import
net.wanji.opt.po.trend.CrossTurnDataRealtimePO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 路口转向实时数据
*
* @author Kent HAN
* @date 2023/2/8 9:22
*/
@Repository
public
interface
CrossTurnDataRealtimeMapper
{
List
<
CrossTurnDataRealtimePO
>
selectByCrossId
(
String
crossId
);
}
signal-datacenter-service/src/main/java/net/wanji/datacenter/pojo/dto/LanePeriodicDataDTO.java
View file @
3e945aa3
...
...
@@ -18,7 +18,7 @@ public class LanePeriodicDataDTO {
/**
* 车道数量
*/
private
int
laneNum
;
private
Integer
laneNum
;
/**
* 全域编号
*/
...
...
@@ -38,11 +38,11 @@ public class LanePeriodicDataDTO {
/**
* 最小动态排队长度
*/
private
int
dynamicQueueLengthMin
;
private
Integer
dynamicQueueLengthMin
;
/**
* 绿灯有效利用率
*/
private
int
greenLightEfficiency
;
private
Integer
greenLightEfficiency
;
/**
* 车道号(路网数据)
*/
...
...
@@ -50,19 +50,19 @@ public class LanePeriodicDataDTO {
/**
* 车道通行能力
*/
private
int
laneCapacity
;
private
Integer
laneCapacity
;
/**
* 车道流率
*/
private
int
laneFlowRate
;
private
Integer
laneFlowRate
;
/**
* 不停车率
*/
private
int
laneNoStopRate
;
private
Integer
laneNoStopRate
;
/**
* 一次停车率
*/
private
int
laneOneStopRate
;
private
Integer
laneOneStopRate
;
/**
* 车道饱和度
*/
...
...
@@ -70,15 +70,15 @@ public class LanePeriodicDataDTO {
/**
* 车道饱和流率
*/
private
int
laneSaturationFlowRate
;
private
Integer
laneSaturationFlowRate
;
/**
* 三次停车率
*/
private
int
laneThreeStopRate
;
private
Integer
laneThreeStopRate
;
/**
* 二次停车率
*/
private
int
laneTwoStopRate
;
private
Integer
laneTwoStopRate
;
/**
* 绿灯结束排队长度
*/
...
...
@@ -86,15 +86,15 @@ public class LanePeriodicDataDTO {
/**
* 绿灯起亮排队长度
*/
private
int
lightGreenStartQueueLength
;
private
Integer
lightGreenStartQueueLength
;
/**
* 平均延误
*/
private
int
meanDelay
;
private
Integer
meanDelay
;
/**
* 平均停车次数
*/
private
int
meanStopsNumber
;
private
Integer
meanStopsNumber
;
/**
* 平均点速度
*/
...
...
@@ -102,11 +102,11 @@ public class LanePeriodicDataDTO {
/**
* 最大静态排队长度
*/
private
int
staticQueueLengthMax
;
private
Integer
staticQueueLengthMax
;
/**
* 最小静态排队长度
*/
private
int
staticQueueLengthMin
;
private
Integer
staticQueueLengthMin
;
/**
* 时间占有率
*/
...
...
@@ -114,11 +114,11 @@ public class LanePeriodicDataDTO {
/**
* 自然流量
*/
private
int
trafficFlow
;
private
Integer
trafficFlow
;
/**
* 小车当量
*/
private
int
trolleyEquivalent
;
private
Integer
trolleyEquivalent
;
/**
* 平均空间密度(长度占比)
*/
...
...
signal-datacenter-service/src/main/java/net/wanji/datacenter/pojo/po/CrossDataRealTimePO.java
View file @
3e945aa3
...
...
@@ -15,7 +15,7 @@ import java.util.Date;
@TableName
(
"t_cross_data_realtime"
)
@ApiModel
(
value
=
"CrossDataRealTimePO"
,
description
=
"路口实时数据"
)
public
class
CrossDataRealTimePO
{
@ApiModelProperty
(
name
=
"
修改时间
"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"
路口编号
"
,
notes
=
""
)
private
String
crossId
;
@ApiModelProperty
(
name
=
"路口状态:0正常 1失衡 2拥堵 3溢出 4死锁"
,
notes
=
""
)
private
Integer
status
;
...
...
signal-datacenter-service/src/main/java/net/wanji/datacenter/service/dataconvert/impl/LanePeriodicDataProcessServiceImpl.java
View file @
3e945aa3
...
...
@@ -13,6 +13,7 @@ import org.springframework.util.CollectionUtils;
import
org.springframework.util.StringUtils
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -76,21 +77,58 @@ public class LanePeriodicDataProcessServiceImpl implements DataProcessService {
for
(
LanePeriodicDataDTO
.
EventList
laneRealTimeItem
:
eventLists
)
{
String
laneId
=
laneRealTimeItem
.
getLaneId
();
Date
now
=
new
Date
();
for
(
CrossBaseLaneInfoPO
laneInfoPO
:
crossBaseLaneInfoPOS
)
{
String
id
=
laneInfoPO
.
getId
();
String
crossId
=
laneInfoPO
.
getCrossId
();
// todo 路口状态
Double
trafficFlow
=
Double
.
valueOf
(
laneRealTimeItem
.
getTrafficFlow
());
String
dir
=
String
.
valueOf
(
laneInfoPO
.
getDir
());
String
turn
=
String
.
valueOf
(
laneInfoPO
.
getTurn
());
if
(
StringUtils
.
endsWithIgnoreCase
(
laneId
,
id
))
{
CrossDataRealTimePO
crossDataRealTimePO
=
new
CrossDataRealTimePO
();
crossDataRealTimePO
.
setCrossId
(
crossId
);
crossDataRealTimePO
.
setStatus
(
0000
);
crossDataRealTimePO
.
setType
(
1
);
// 1常规 2异常
crossDataRealTimePO
.
setStartTime
(
now
);
crossDataRealTimePO
.
setDuration
(
5
);
// todo 通过第二批次判断
crossDataRealTimePO
.
setUnbalanceStatus
(
0
);
crossDataRealTimePO
.
setUnbalanceIndex
(
1.0
);
crossDataRealTimePO
.
setUnbalanceDirs
(
dir
);
crossDataRealTimePO
.
setCongestionStatus
(
0
);
crossDataRealTimePO
.
setCongestionIndex
(
1.0
);
crossDataRealTimePO
.
setCongestionDirs
(
dir
);
crossDataRealTimePO
.
setSpilloverStatus
(
0
);
crossDataRealTimePO
.
setSpilloverIndex
(
1.0
);
crossDataRealTimePO
.
setSpilloverDirs
(
dir
);
crossDataRealTimePO
.
setTrafficIndex
(
trafficFlow
);
crossDataRealTimePOS
.
add
(
crossDataRealTimePO
);
CrossDirDataRealTimePO
crossDirDataRealTimePO
=
new
CrossDirDataRealTimePO
();
crossDirDataRealTimePO
.
setCrossId
(
crossId
);
crossDirDataRealTimePO
.
setStatus
(
0000
);
crossDirDataRealTimePO
.
setTrafficIndex
(
trafficFlow
);
crossDirDataRealTimePOS
.
add
(
crossDirDataRealTimePO
);
CrossTurnDataRealtimePO
crossTurnDataRealtimePO
=
new
CrossTurnDataRealtimePO
();
crossTurnDataRealtimePO
.
setCrossId
(
crossId
);
crossTurnDataRealtimePO
.
setStatus
(
0000
);
crossTurnDataRealtimePOS
.
add
(
crossTurnDataRealtimePO
);
CrossLaneDataRealTimePO
crossLaneDataRealTimePO
=
new
CrossLaneDataRealTimePO
();
crossLaneDataRealTimePO
.
setCrossId
(
crossId
);
crossLaneDataRealTimePO
.
setId
(
id
);
crossLaneDataRealTimePOS
.
add
(
crossLaneDataRealTimePO
);
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/po/kafka/LanePeriodicDataPO.java
View file @
3e945aa3
...
...
@@ -11,37 +11,121 @@ import java.util.List;
@Data
public
class
LanePeriodicDataPO
{
/**
* 车道事件集合
*/
private
List
<
Eventlist
>
eventList
;
/**
* 车道数量
*/
private
int
laneNum
;
/**
* 全域编号
*/
private
String
orgCode
;
/**
* 数据生成时间: yyyy-MM-dd HH:mm:ss:SSS
*/
private
String
timeStamp
;
@Data
public
class
Eventlist
{
/**
* 最大动态排队长度
*/
private
double
dynamicQueueLengthMax
;
/**
* 最小动态排队长度
*/
private
int
dynamicQueueLengthMin
;
/**
* 绿灯有效利用率
*/
private
int
greenLightEfficiency
;
/**
* 车道号(路网数据)
*/
private
String
laneId
;
/**
* 车道通行能力
*/
private
int
laneCapacity
;
/**
* 车道流率
*/
private
int
laneFlowRate
;
/**
* 不停车率
*/
private
int
laneNoStopRate
;
/**
* 一次停车率
*/
private
int
laneOneStopRate
;
/**
* 车道饱和度
*/
private
double
laneSaturation
;
/**
* 车道饱和流率
*/
private
int
laneSaturationFlowRate
;
/**
* 三次停车率
*/
private
int
laneThreeStopRate
;
/**
* 二次停车率
*/
private
int
laneTwoStopRate
;
/**
* 绿灯结束排队长度
*/
private
double
lightGreenFinishQueueLength
;
/**
* 绿灯起亮排队长度
*/
private
int
lightGreenStartQueueLength
;
/**
* 平均延误
*/
private
int
meanDelay
;
/**
* 平均停车次数
*/
private
int
meanStopsNumber
;
/**
* 平均点速度
*/
private
double
meanV
;
/**
* 最大静态排队长度
*/
private
int
staticQueueLengthMax
;
/**
* 最小静态排队长度
*/
private
int
staticQueueLengthMin
;
/**
* 时间占有率
*/
private
double
timeOccupancy
;
/**
* 自然流量
*/
private
int
trafficFlow
;
/**
* 小车当量
*/
private
int
trolleyEquivalent
;
/**
* 平均空间密度(长度占比)
*/
private
double
vehicleLengthRatioMean
;
/**
* 平均空间密度(车辆负荷比)
*/
private
double
vehicleNumsRatioMean
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
View file @
3e945aa3
...
...
@@ -80,6 +80,9 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
public
String
realtimeOptimize
(
List
<
CrossDataRealtimePO
>
abnormalCrossList
,
List
<
CrossDataRealtimePO
>
crossDataRealtimePOList
)
{
try
{
// todo 当前路口不是信控路口,需要跳过
// todo 系统管理,路口管理,信控标志关闭,优化下发也要关闭
// 相位配时信息,key: 路口编号_方向类型_转向类型,value: 相位配时信息
crossDirTurnPhaseCache
.
refresh
();
Map
<
String
,
CrossPhaseDTO
>
phaseMap
=
crossDirTurnPhaseCache
.
getPhaseDirTurnMap
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
View file @
3e945aa3
...
...
@@ -7,10 +7,13 @@ import net.wanji.common.enums.CrossStatusEnum;
import
net.wanji.common.framework.Constants
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
import
net.wanji.opt.dto.CrossTurnDataRealtimeDTO
;
import
net.wanji.opt.dto.LaneInfoDTO
;
import
net.wanji.opt.kafka.ConsumerHandler
;
import
net.wanji.opt.po.kafka.LanePeriodicDataPO
;
import
net.wanji.opt.po.trend.CrossDataRealtimePO
;
import
net.wanji.opt.query.LaneQuery
;
import
net.wanji.opt.service.CrossOptimizeService
;
import
net.wanji.opt.service.impl.LaneInfoServiceImpl
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
...
...
@@ -32,12 +35,13 @@ public class CrossMonitorTask {
private
final
CrossOptimizeService
crossOptimizeService
;
private
final
ConsumerHandler
consumerHandler
;
private
final
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
private
final
LaneInfoServiceImpl
laneInfoService
;
/**
* 路口实时监测
*
*/
@Scheduled
(
fixedRate
=
1
*
60
*
1000
)
@Scheduled
(
fixedRate
=
1
*
60
*
1000
)
public
void
realtimeMonitor
()
{
log
.
info
(
"路口实时监测任务..."
);
// 获取路口实时监测数据
...
...
@@ -115,6 +119,12 @@ public class CrossMonitorTask {
// todo 对数据进行处理,可能主要是CrossTurnDataRealtimeDTO中的车间距,车时距等配置修改
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
=
new
CrossTurnDataRealtimeDTO
();
// 查询车道信息表
LaneQuery
laneQuery
=
new
LaneQuery
();
List
<
LaneInfoDTO
>
laneInfoDTOS
=
laneInfoService
.
listLaneInfo
(
laneQuery
);
// 将车道信息表转存路口实时数据CrossDataRealtimePO,转向数据CrossTurnDataRealtimeDTO,方向数据CrossDirDataHistPO
// 通过数据进行优化
return
crossDataRealtimePOList
;
}
...
...
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