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
c29ea989
Commit
c29ea989
authored
Oct 08, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 绿波评价-干线方案分析,评价结果
parent
4ae96a01
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
238 additions
and
16 deletions
+238
-16
SceneStrategyPO.java
.../main/java/net/wanji/opt/po/strategy/SceneStrategyPO.java
+1
-0
MainlineEvaluateServiceImpl.java
...t/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
+188
-9
StrategyAndMetricsEnum.java
...n/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
+3
-1
GreenwaveHistPO.java
...in/java/net/wanji/databus/dao/entity/GreenwaveHistPO.java
+6
-2
CrossDataHistMapper.java
...ava/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
+2
-0
GreenwaveCrossMapper.java
...va/net/wanji/databus/dao/mapper/GreenwaveCrossMapper.java
+2
-0
GreenwaveSceneMapper.java
...va/net/wanji/databus/dao/mapper/GreenwaveSceneMapper.java
+2
-0
CrossDataHistMapper.xml
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
+12
-0
GreenwaveCrossMapper.xml
...atabus/src/main/resources/mapper/GreenwaveCrossMapper.xml
+11
-2
GreenwaveHistMapper.xml
wj-databus/src/main/resources/mapper/GreenwaveHistMapper.xml
+1
-1
GreenwaveSceneMapper.xml
...atabus/src/main/resources/mapper/GreenwaveSceneMapper.xml
+10
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/po/strategy/SceneStrategyPO.java
View file @
c29ea989
...
@@ -20,6 +20,7 @@ public class SceneStrategyPO {
...
@@ -20,6 +20,7 @@ public class SceneStrategyPO {
/** 策略ID */
/** 策略ID */
@ApiModelProperty
(
name
=
"策略ID"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"策略ID"
,
notes
=
""
)
private
Integer
strategyId
;
private
Integer
strategyId
;
@ApiModelProperty
(
name
=
"优先级"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"优先级"
,
notes
=
""
)
private
Integer
sceneStrategyPriority
;
private
Integer
sceneStrategyPriority
;
/** 创建时间 */
/** 创建时间 */
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/MainlineEvaluateServiceImpl.java
View file @
c29ea989
...
@@ -4,15 +4,17 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -4,15 +4,17 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.enums.BaseEnum
;
import
net.wanji.common.enums.BaseEnum
;
import
net.wanji.common.enums.StrategyAndMetricsEnum
;
import
net.wanji.common.enums.StrategyAndMetricsEnum
;
import
net.wanji.common.enums.TurnConvertEnum
;
import
net.wanji.common.enums.TurnConvertEnum
;
import
net.wanji.databus.dao.entity.BaseCrossDirInfoPO
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.GreenwaveHistPO
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.po.*
;
import
net.wanji.opt.bo.BottomCurveBO
;
import
net.wanji.opt.bo.BottomCurveBO
;
import
net.wanji.opt.bo.BottomMenuBO
;
import
net.wanji.opt.bo.BottomMenuBO
;
import
net.wanji.opt.bo.MainlineSchemeAnalysisBO
;
import
net.wanji.opt.bo.MainlineSchemeAnalysisBO
;
import
net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper
;
import
net.wanji.opt.dao.mapper.strategy.StrategyMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.po.strategy.SceneStrategyPO
;
import
net.wanji.opt.po.strategy.StrategyPO
;
import
net.wanji.opt.service.MainlineEvaluateService
;
import
net.wanji.opt.service.MainlineEvaluateService
;
import
net.wanji.opt.vo.MainlineEvaluateBottomCurveVO
;
import
net.wanji.opt.vo.MainlineEvaluateBottomCurveVO
;
import
net.wanji.opt.vo.MainlineSchemeAnalysisVO
;
import
net.wanji.opt.vo.MainlineSchemeAnalysisVO
;
...
@@ -40,15 +42,22 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
...
@@ -40,15 +42,22 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
private
final
CrossLaneDataHistMapper
crossLaneDataHistMapper
;
private
final
CrossLaneDataHistMapper
crossLaneDataHistMapper
;
private
final
GreenwaveInfoMapper
greenwaveInfoMapper
;
private
final
GreenwaveInfoMapper
greenwaveInfoMapper
;
private
final
GreenwaveHistMapper
greenwaveHistMapper
;
private
final
GreenwaveHistMapper
greenwaveHistMapper
;
private
final
GreenwaveCrossMapper
greenwaveCrossMapper
;
private
final
BaseCrossInfoMapper
baseCrossInfoMapper
;
private
final
GreenwaveSceneMapper
greenwaveSceneMapper
;
private
final
SceneStrategyMapper
sceneStrategyMapper
;
private
final
StrategyMapper
strategyMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
SimpleDateFormat
hourMinuteFormat
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
hourMinuteFormat
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
dateHourMinuteFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
SimpleDateFormat
dateHourMinuteFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
MainlineEvaluateServiceImpl
(
@Qualifier
(
"baseCrossDirInfoMapper"
)
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
public
MainlineEvaluateServiceImpl
(
@Qualifier
(
"baseCrossDirInfoMapper"
)
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
@Qualifier
(
"baseCrossTurnInfoMapper"
)
BaseCrossTurnInfoMapper
baseCrossTurnInfoMapper
,
@Qualifier
(
"baseCrossTurnInfoMapper"
)
BaseCrossTurnInfoMapper
baseCrossTurnInfoMapper
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
@Qualifier
(
"laneInfoMapper"
)
LaneInfoMapper
laneInfoMapper
,
@Qualifier
(
"laneInfoMapper"
)
LaneInfoMapper
laneInfoMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
CrossDataHistMapper
crossDataHistMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
CrossLaneDataHistMapper
crossLaneDataHistMapper
,
@Qualifier
(
"greenwaveInfoMapper"
)
GreenwaveInfoMapper
greenwaveInfoMapper
,
@Qualifier
(
"greenwaveHistMapper"
)
GreenwaveHistMapper
greenwaveHistMapper
)
{
CrossDirDataHistMapper
crossDirDataHistMapper
,
CrossDataHistMapper
crossDataHistMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
CrossLaneDataHistMapper
crossLaneDataHistMapper
,
@Qualifier
(
"greenwaveInfoMapper"
)
GreenwaveInfoMapper
greenwaveInfoMapper
,
@Qualifier
(
"greenwaveHistMapper"
)
GreenwaveHistMapper
greenwaveHistMapper
,
@Qualifier
(
"greenwaveCrossMapper"
)
GreenwaveCrossMapper
greenwaveCrossMapper
,
@Qualifier
(
"baseCrossInfoMapper"
)
BaseCrossInfoMapper
baseCrossInfoMapper
,
@Qualifier
(
"greenwaveSceneMapper"
)
GreenwaveSceneMapper
greenwaveSceneMapper
,
@Qualifier
(
"sceneStrategyMapper"
)
SceneStrategyMapper
sceneStrategyMapper
,
@Qualifier
(
"strategyMapper"
)
StrategyMapper
strategyMapper
,
@Qualifier
(
"baseCrossSectionMapper"
)
BaseCrossSectionMapper
baseCrossSectionMapper
)
{
this
.
baseCrossDirInfoMapper
=
baseCrossDirInfoMapper
;
this
.
baseCrossDirInfoMapper
=
baseCrossDirInfoMapper
;
this
.
baseCrossTurnInfoMapper
=
baseCrossTurnInfoMapper
;
this
.
baseCrossTurnInfoMapper
=
baseCrossTurnInfoMapper
;
this
.
laneInfoMapper
=
laneInfoMapper
;
this
.
laneInfoMapper
=
laneInfoMapper
;
...
@@ -58,6 +67,12 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
...
@@ -58,6 +67,12 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
this
.
crossLaneDataHistMapper
=
crossLaneDataHistMapper
;
this
.
crossLaneDataHistMapper
=
crossLaneDataHistMapper
;
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
greenwaveHistMapper
=
greenwaveHistMapper
;
this
.
greenwaveHistMapper
=
greenwaveHistMapper
;
this
.
greenwaveCrossMapper
=
greenwaveCrossMapper
;
this
.
baseCrossInfoMapper
=
baseCrossInfoMapper
;
this
.
greenwaveSceneMapper
=
greenwaveSceneMapper
;
this
.
sceneStrategyMapper
=
sceneStrategyMapper
;
this
.
strategyMapper
=
strategyMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
}
}
@Override
@Override
...
@@ -496,7 +511,6 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
...
@@ -496,7 +511,6 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
String
mainlineName
=
bo
.
getName
();
String
mainlineName
=
bo
.
getName
();
Date
poStartTime
=
bo
.
getStartTime
();
Date
poStartTime
=
bo
.
getStartTime
();
Date
poEndTime
=
bo
.
getEndTime
();
Date
poEndTime
=
bo
.
getEndTime
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
poStartTimeStr
=
sdf
.
format
(
poStartTime
);
String
poStartTimeStr
=
sdf
.
format
(
poStartTime
);
String
poEndTimeStr
=
sdf
.
format
(
poEndTime
);
String
poEndTimeStr
=
sdf
.
format
(
poEndTime
);
// 根据时段查询所有发生的绿波
// 根据时段查询所有发生的绿波
...
@@ -517,16 +531,181 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
...
@@ -517,16 +531,181 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
MainlineSchemeAnalysisVO
res
=
new
MainlineSchemeAnalysisVO
();
MainlineSchemeAnalysisVO
res
=
new
MainlineSchemeAnalysisVO
();
res
.
setSceneData
(
calcSceneData
(
filteredList
));
res
.
setSceneData
(
calcSceneData
(
filteredList
));
res
.
setCrossData
(
calcCrossData
(
filteredList
));
res
.
setEvaluateData
(
calcEvaluateData
(
filteredList
));
res
.
setCrossData
(
new
ArrayList
<>());
res
.
setEvaluateData
(
new
ArrayList
<>());
res
.
setGreenwaveData
(
new
ArrayList
<>());
res
.
setGreenwaveData
(
new
ArrayList
<>());
return
null
;
return
null
;
}
}
private
List
<
String
>
calcEvaluateData
(
List
<
GreenwaveHistPO
>
filteredList
)
{
int
qualified
=
0
;
int
notQualified
=
0
;
for
(
GreenwaveHistPO
greenwaveHistPO
:
filteredList
)
{
Double
noparkPassRate
=
greenwaveHistPO
.
getNoparkPassRate
();
Double
cordReliability
=
greenwaveHistPO
.
getCordReliability
();
Double
uncoordinatePhaseQueue
=
greenwaveHistPO
.
getUncoordinatePhaseQueue
();
Double
cordQueueRatio
=
greenwaveHistPO
.
getCordQueueRatio
();
Integer
greenwaveId
=
greenwaveHistPO
.
getId
();
// 确定控制策略
GreenwaveScenePO
greenwaveScenePO
=
greenwaveSceneMapper
.
selectByGreenwaveId
(
greenwaveId
);
Integer
sceneId
=
greenwaveScenePO
.
getSceneId
();
List
<
SceneStrategyPO
>
sceneStrategyPOList
=
sceneStrategyMapper
.
selectBySceneId
(
sceneId
);
Optional
<
SceneStrategyPO
>
maxPriorityPO
=
sceneStrategyPOList
.
stream
()
.
max
(
Comparator
.
comparingInt
(
SceneStrategyPO:
:
getSceneStrategyPriority
));
SceneStrategyPO
sceneStrategyPO
=
maxPriorityPO
.
get
();
Integer
strategyId
=
sceneStrategyPO
.
getStrategyId
();
StrategyPO
strategyPO
=
strategyMapper
.
selectById
(
strategyId
);
String
strategyCode
=
strategyPO
.
getStrategyCode
();
// 确定评价
// 获取时段
Integer
sectionId
=
greenwaveHistPO
.
getSectionId
();
CrossSectionPO
crossSectionPO
=
baseCrossSectionMapper
.
selectById
(
sectionId
);
String
startHourMinuteStr
=
crossSectionPO
.
getStartTime
();
String
endHourMinuteStr
=
crossSectionPO
.
getEndTime
();
Date
day
=
greenwaveHistPO
.
getGmtModified
();
Date
startDate
=
combineDateAndTime
(
day
,
startHourMinuteStr
);
Date
endDate
=
combineDateAndTime
(
day
,
endHourMinuteStr
);
// 获取路口
List
<
BaseCrossInfoPO
>
crossInfoPOList
=
getGreenwaveCross
(
greenwaveId
);
// 获取路口历史数据
List
<
String
>
crossIdList
=
crossInfoPOList
.
stream
()
.
map
(
BaseCrossInfoPO:
:
getId
)
.
collect
(
Collectors
.
toList
());
int
startTimeStamp
=
(
int
)
(
startDate
.
getTime
()
/
1000
);
int
endTimeStamp
=
(
int
)
(
endDate
.
getTime
()
/
1000
);
List
<
CrossDataHistPO
>
crossDataHistPOList
=
crossDataHistMapper
.
selectByCrossIdsAndTimestamp
(
crossIdList
,
startTimeStamp
,
endTimeStamp
);
// 判断时段内的饱和度
double
saturation
=
crossDataHistPOList
.
stream
()
.
mapToDouble
(
CrossDataHistPO:
:
getSturation
)
.
average
()
.
orElse
(
0.0
);
Integer
dir
=
greenwaveHistPO
.
getDir
();
if
(
dir
==
0
||
dir
==
1
)
{
// 单向绿波
if
(
Objects
.
equals
(
strategyCode
,
StrategyAndMetricsEnum
.
Strategy
.
LINE_EFFICIENCY
.
getCode
()))
{
if
(
saturation
<
0.8
)
{
if
(
noparkPassRate
>
0.8
&&
cordReliability
>
0.7
)
{
// 协调不停车通过率需大于80%,并且协调方案可靠性需大于70%
qualified
++;
}
else
if
(
uncoordinatePhaseQueue
<
0.5
)
{
// 如果以上不满足,则非协调相位二次排队需小于50%
qualified
++;
}
else
{
notQualified
++;
}
}
else
{
// 协调方案可靠性需大于70%
if
(
cordReliability
>
0.7
)
{
qualified
++;
}
else
{
notQualified
++;
}
}
}
else
if
(
Objects
.
equals
(
strategyCode
,
StrategyAndMetricsEnum
.
Strategy
.
LINE_BALANCE
.
getCode
()))
{
if
(
cordQueueRatio
<
0.6
)
{
// 协调路段排队空间占比需小于60%
qualified
++;
}
else
if
(
uncoordinatePhaseQueue
<
1.0
)
{
// 如果以上不满足,则非协调相位二次排队需小于100%
qualified
++;
}
else
{
notQualified
++;
}
}
}
else
{
// 双向绿波
if
(
Objects
.
equals
(
strategyCode
,
StrategyAndMetricsEnum
.
Strategy
.
LINE_EFFICIENCY
.
getCode
()))
{
// 协调不停车通过率需大于50%,并且协调方案可靠性需大于70%
if
(
noparkPassRate
>
0.5
&&
cordReliability
>
0.7
)
{
qualified
++;
}
else
{
notQualified
++;
}
}
else
if
(
Objects
.
equals
(
strategyCode
,
StrategyAndMetricsEnum
.
Strategy
.
LINE_BALANCE
.
getCode
()))
{
if
(
cordQueueRatio
<
0.6
)
{
// 协调路段排队空间占比需小于60%
qualified
++;
}
else
if
(
uncoordinatePhaseQueue
<
1.0
)
{
// 如果以上不满足,则非协调相位二次排队需小于100%
qualified
++;
}
else
{
notQualified
++;
}
}
}
}
List
<
String
>
res
=
new
ArrayList
<>();
res
.
add
(
"符合控制策略方案数 "
+
qualified
+
"个"
);
res
.
add
(
"不符合控制策略方案数 "
+
notQualified
+
"个"
);
return
res
;
}
private
List
<
BaseCrossInfoPO
>
getGreenwaveCross
(
Integer
greenwaveId
)
{
List
<
BaseCrossInfoPO
>
res
=
new
ArrayList
<>();
List
<
GreenwaveCrossPO
>
greenwaveCrosses
=
greenwaveCrossMapper
.
selectByGreenwaveId
(
greenwaveId
);
for
(
GreenwaveCrossPO
greenwaveCross
:
greenwaveCrosses
)
{
String
crossId
=
greenwaveCross
.
getCrossId
();
BaseCrossInfoPO
baseCrossInfoPO
=
baseCrossInfoMapper
.
selectById
(
crossId
);
res
.
add
(
baseCrossInfoPO
);
}
return
res
;
}
private
Date
combineDateAndTime
(
Date
day
,
String
hourMinuteStr
)
{
String
[]
hourMinute
=
hourMinuteStr
.
split
(
":"
);
int
hour
=
Integer
.
parseInt
(
hourMinute
[
0
]);
int
minute
=
Integer
.
parseInt
(
hourMinute
[
1
]);
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
day
);
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
hour
);
calendar
.
set
(
Calendar
.
MINUTE
,
minute
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
0
);
return
calendar
.
getTime
();
}
private
List
<
MainlineSchemeAnalysisVO
.
CrossData
>
calcCrossData
(
List
<
GreenwaveHistPO
>
filteredList
)
{
List
<
MainlineSchemeAnalysisVO
.
CrossData
>
res
=
new
ArrayList
<>();
// 找出绿波对应的关键路口
Map
<
Integer
,
String
>
greenwaveCrossMap
=
new
HashMap
<>();
for
(
GreenwaveHistPO
greenwaveHistPO
:
filteredList
)
{
Integer
greenwaveId
=
greenwaveHistPO
.
getId
();
GreenwaveCrossPO
greenwaveCrossPO
=
greenwaveCrossMapper
.
selectByGreenwaveIdAndKeyRoute
(
greenwaveId
);
Integer
greenId
=
greenwaveCrossPO
.
getGreenId
();
String
crossId
=
greenwaveCrossPO
.
getCrossId
();
greenwaveCrossMap
.
put
(
greenId
,
crossId
);
}
// 统计关键路口次数
Map
<
String
,
Integer
>
crossTimesMap
=
new
HashMap
<>();
for
(
GreenwaveHistPO
greenwaveHistPO
:
filteredList
)
{
Integer
greenwaveHistPOId
=
greenwaveHistPO
.
getId
();
String
crossId
=
greenwaveCrossMap
.
get
(
greenwaveHistPOId
);
crossTimesMap
.
put
(
crossId
,
crossTimesMap
.
getOrDefault
(
crossId
,
0
)
+
1
);
}
for
(
Map
.
Entry
<
String
,
Integer
>
entry
:
crossTimesMap
.
entrySet
())
{
MainlineSchemeAnalysisVO
.
CrossData
crossData
=
new
MainlineSchemeAnalysisVO
.
CrossData
();
String
crossId
=
entry
.
getKey
();
BaseCrossInfoPO
baseCrossInfoPO
=
baseCrossInfoMapper
.
selectById
(
crossId
);
String
crossName
=
baseCrossInfoPO
.
getName
();
crossData
.
setName
(
crossName
);
crossData
.
setTimes
(
entry
.
getValue
());
res
.
add
(
crossData
);
}
return
res
;
}
private
List
<
MainlineSchemeAnalysisVO
.
DirectionData
>
calcSceneData
(
List
<
GreenwaveHistPO
>
filteredList
)
{
private
List
<
MainlineSchemeAnalysisVO
.
DirectionData
>
calcSceneData
(
List
<
GreenwaveHistPO
>
filteredList
)
{
List
<
MainlineSchemeAnalysisVO
.
DirectionData
>
res
=
new
ArrayList
<>();
List
<
MainlineSchemeAnalysisVO
.
DirectionData
>
res
=
new
ArrayList
<>();
...
...
wj-common/src/main/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
View file @
c29ea989
...
@@ -9,7 +9,9 @@ public class StrategyAndMetricsEnum {
...
@@ -9,7 +9,9 @@ public class StrategyAndMetricsEnum {
public
enum
Strategy
{
public
enum
Strategy
{
BALANCE
(
"100030"
,
"均衡调控"
),
BALANCE
(
"100030"
,
"均衡调控"
),
EFFICIENCY
(
"100152"
,
"效率提升"
),
EFFICIENCY
(
"100152"
,
"效率提升"
),
SECURITY
(
"100010"
,
"安全保障"
);
SECURITY
(
"100010"
,
"安全保障"
),
LINE_EFFICIENCY
(
"200001"
,
"干线效率提升"
),
LINE_BALANCE
(
"200002"
,
"干线均衡调控"
);
private
final
String
code
;
private
final
String
code
;
private
final
String
msg
;
private
final
String
msg
;
...
...
wj-databus/src/main/java/net/wanji/databus/dao/entity/GreenwaveHistPO.java
View file @
c29ea989
...
@@ -10,8 +10,12 @@ import lombok.Data;
...
@@ -10,8 +10,12 @@ import lombok.Data;
@Data
@Data
public
class
GreenwaveHistPO
extends
GreenwaveRealtimePO
{
public
class
GreenwaveHistPO
extends
GreenwaveRealtimePO
{
@ApiModelProperty
(
value
=
"绿波名称"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"绿波名称"
)
private
String
greenwaveName
;
private
String
greenwaveName
;
@ApiModelProperty
(
name
=
"协调方向:0正向;1反向;2双向"
)
@ApiModelProperty
(
value
=
"协调方向:0正向;1反向;2双向"
)
private
Integer
dir
;
private
Integer
dir
;
@ApiModelProperty
(
value
=
"时段ID"
)
private
Integer
sectionId
;
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
View file @
c29ea989
...
@@ -28,4 +28,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
...
@@ -28,4 +28,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
Double
selectMaxSaturation
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Double
selectMaxSaturation
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Integer
selectCrossEmergencyCount
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Integer
selectCrossEmergencyCount
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
CrossDataHistPO
>
selectByCrossIdsAndTimestamp
(
List
<
String
>
crossIdList
,
int
startTimeStamp
,
int
endTimeStamp
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/GreenwaveCrossMapper.java
View file @
c29ea989
...
@@ -12,4 +12,6 @@ import java.util.List;
...
@@ -12,4 +12,6 @@ import java.util.List;
@Repository
@Repository
public
interface
GreenwaveCrossMapper
{
public
interface
GreenwaveCrossMapper
{
List
<
GreenwaveCrossPO
>
selectByGreenwaveId
(
Integer
id
);
List
<
GreenwaveCrossPO
>
selectByGreenwaveId
(
Integer
id
);
GreenwaveCrossPO
selectByGreenwaveIdAndKeyRoute
(
Integer
greenwaveId
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/GreenwaveSceneMapper.java
View file @
c29ea989
...
@@ -12,4 +12,6 @@ public interface GreenwaveSceneMapper {
...
@@ -12,4 +12,6 @@ public interface GreenwaveSceneMapper {
void
deleteByGreenwaveId
(
Integer
greenwaveId
);
void
deleteByGreenwaveId
(
Integer
greenwaveId
);
void
insertOne
(
GreenwaveScenePO
greenwaveScenePO
);
void
insertOne
(
GreenwaveScenePO
greenwaveScenePO
);
GreenwaveScenePO
selectByGreenwaveId
(
Integer
greenwaveId
);
}
}
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
View file @
c29ea989
...
@@ -111,4 +111,16 @@
...
@@ -111,4 +111,16 @@
AND cross_id = #{crossId}
AND cross_id = #{crossId}
</select>
</select>
<select
id=
"selectByCrossIdsAndTimestamp"
resultType=
"net.wanji.databus.po.CrossDataHistPO"
>
select
<include
refid=
"Base_Column_List"
></include>
from t_cross_data_hist
where cross_id in
<foreach
collection=
"crossIdList"
item=
"crossId"
separator=
","
open=
"("
close=
")"
>
#{crossId}
</foreach>
and batch_time
<![CDATA[ >= ]]>
#{startTimeStamp}
and batch_time
<![CDATA[ <= ]]>
#{endTimeStamp}
order by batch_time
</select>
</mapper>
</mapper>
\ No newline at end of file
wj-databus/src/main/resources/mapper/GreenwaveCrossMapper.xml
View file @
c29ea989
...
@@ -2,13 +2,22 @@
...
@@ -2,13 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.databus.dao.mapper.GreenwaveCrossMapper"
>
<mapper
namespace=
"net.wanji.databus.dao.mapper.GreenwaveCrossMapper"
>
<sql
id=
"Base_Column_List"
>
id,green_id,cross_id,in_dir,out_dir,offset,sort,section_id,next_cross_len,is_key_route,gmt_create,gmt_modified
</sql>
<select
id=
"selectByGreenwaveId"
resultType=
"net.wanji.databus.dao.entity.GreenwaveCrossPO"
>
<select
id=
"selectByGreenwaveId"
resultType=
"net.wanji.databus.dao.entity.GreenwaveCrossPO"
>
select
select
<include
refid=
"Base_Column_List"
/>
id,green_id,cross_id,in_dir,out_dir,offset,sort,section_id,next_cross_len,is_key_route,gmt_create,gmt_modified
from t_greenwave_cross
from t_greenwave_cross
where green_id = #{id}
where green_id = #{id}
order by sort
order by sort
</select>
</select>
<select
id=
"selectByGreenwaveIdAndKeyRoute"
resultType=
"net.wanji.databus.dao.entity.GreenwaveCrossPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_greenwave_cross
where green_id = #{id} and is_key_route = 1
</select>
</mapper>
</mapper>
wj-databus/src/main/resources/mapper/GreenwaveHistMapper.xml
View file @
c29ea989
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<select
id=
"selectByTimeSection"
resultType=
"net.wanji.databus.dao.entity.GreenwaveHistPO"
>
<select
id=
"selectByTimeSection"
resultType=
"net.wanji.databus.dao.entity.GreenwaveHistPO"
>
select t1.id,t1.status,t1.type,t1.traffic_index,t1.speed,t1.trval_time,t1.stop_times,t1.queue_length,
select t1.id,t1.status,t1.type,t1.traffic_index,t1.speed,t1.trval_time,t1.stop_times,t1.queue_length,
t1.cong_rate,t1.delay_time,t1.nopark_pass_rate,t1.cord_reliability,t1.cord_queue_ratio,
t1.cong_rate,t1.delay_time,t1.nopark_pass_rate,t1.cord_reliability,t1.cord_queue_ratio,
t1.uncoordinate_phase_queue,t1.gmt_create,t1.gmt_modified, t2.name as greenwaveName, t2.dir
t1.uncoordinate_phase_queue,t1.gmt_create,t1.gmt_modified, t2.name as greenwaveName, t2.dir
, t2.section_id
from t_greenwave_hist t1 join t_greenwave_info t2 on t1.id = t2.id
from t_greenwave_hist t1 join t_greenwave_info t2 on t1.id = t2.id
where t1.gmt_modified
<![CDATA[ <= ]]>
#{endTimeStr}
where t1.gmt_modified
<![CDATA[ <= ]]>
#{endTimeStr}
and t1.gmt_modified
<![CDATA[ >= ]]>
#{startTimeStr}
and t1.gmt_modified
<![CDATA[ >= ]]>
#{startTimeStr}
...
...
wj-databus/src/main/resources/mapper/GreenwaveSceneMapper.xml
View file @
c29ea989
...
@@ -2,6 +2,9 @@
...
@@ -2,6 +2,9 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.databus.dao.mapper.GreenwaveSceneMapper"
>
<mapper
namespace=
"net.wanji.databus.dao.mapper.GreenwaveSceneMapper"
>
<sql
id=
"Base_Column_List"
>
id,greenwave_id,scene_id,gmt_create,gmt_modified
</sql>
<insert
id=
"insertOne"
>
<insert
id=
"insertOne"
>
insert into t_greenwave_scene(greenwave_id,scene_id)
insert into t_greenwave_scene(greenwave_id,scene_id)
...
@@ -10,7 +13,13 @@
...
@@ -10,7 +13,13 @@
<delete
id=
"deleteByGreenwaveId"
>
<delete
id=
"deleteByGreenwaveId"
>
delete from t_greenwave_scene
delete from t_greenwave_scene
where greenwave_id =
$
{greenwaveId}
where greenwave_id =
#
{greenwaveId}
</delete>
</delete>
<select
id=
"selectByGreenwaveId"
resultType=
"net.wanji.databus.po.GreenwaveScenePO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_greenwave_scene
where greenwave_id = #{greenwaveId}
</select>
</mapper>
</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