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
b0526758
Commit
b0526758
authored
Aug 22, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 新信号评价-运行评价-详细指标查询-状态、方案信息
parent
cd882d04
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
298 additions
and
17 deletions
+298
-17
MetricsDetailBO.java
...rvice/src/main/java/net/wanji/opt/bo/MetricsDetailBO.java
+2
-2
RunningEvaluateController.java
...a/net/wanji/opt/controller/RunningEvaluateController.java
+1
-1
RunningEvaluateService.java
...in/java/net/wanji/opt/service/RunningEvaluateService.java
+1
-1
RunningEvaluateServiceImpl.java
...et/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
+155
-3
RunningEvaluateMetricsDetailVO.java
...java/net/wanji/opt/vo/RunningEvaluateMetricsDetailVO.java
+48
-9
CrossDataHistMapper.java
...ava/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
+3
-0
CrossDirDataHistMapper.java
.../net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
+3
-0
CrossLaneDataHistMapper.java
...net/wanji/databus/dao/mapper/CrossLaneDataHistMapper.java
+2
-1
CrossTurnDataHistMapper.java
...net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
+3
-0
MetricHistDTO.java
...us/src/main/java/net/wanji/databus/dto/MetricHistDTO.java
+42
-0
CrossDataHistMapper.xml
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
+10
-0
CrossDirDataHistMapper.xml
...abus/src/main/resources/mapper/CrossDirDataHistMapper.xml
+10
-0
CrossLaneDataHistMapper.xml
...bus/src/main/resources/mapper/CrossLaneDataHistMapper.xml
+9
-0
CrossTurnDataHistMapper.xml
...bus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
+9
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/bo/MetricsDetailBO.java
View file @
b0526758
...
@@ -22,8 +22,8 @@ public class MetricsDetailBO {
...
@@ -22,8 +22,8 @@ public class MetricsDetailBO {
private
String
turn
;
private
String
turn
;
@ApiModelProperty
(
name
=
"车道序号,从左车道开始编号11、12、13..."
)
@ApiModelProperty
(
name
=
"车道序号,从左车道开始编号11、12、13..."
)
private
Integer
laneSort
;
private
Integer
laneSort
;
@ApiModelProperty
(
value
=
"日期
,格式 M/d,如 7/17
"
,
required
=
true
)
@ApiModelProperty
(
value
=
"日期
yyyy-MM-dd
"
,
required
=
true
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"
M/
d"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"
yyyy-MM-d
d"
,
timezone
=
"GMT+8"
)
private
Date
date
;
private
Date
date
;
@ApiModelProperty
(
value
=
"对比时间间隔(分钟)"
,
required
=
true
)
@ApiModelProperty
(
value
=
"对比时间间隔(分钟)"
,
required
=
true
)
private
Integer
minutes
;
private
Integer
minutes
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/RunningEvaluateController.java
View file @
b0526758
...
@@ -128,7 +128,7 @@ public class RunningEvaluateController {
...
@@ -128,7 +128,7 @@ public class RunningEvaluateController {
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RunningEvaluateMetricsDetailVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RunningEvaluateMetricsDetailVO
.
class
),
})
})
public
JsonViewObject
schemeProblems
(
@RequestBody
MetricsDetailBO
bo
)
{
public
JsonViewObject
schemeProblems
(
@RequestBody
MetricsDetailBO
bo
)
{
List
<
RunningEvaluateMetricsDetailVO
>
res
=
runningEvaluateService
.
metricsDetail
(
bo
);
RunningEvaluateMetricsDetailVO
res
=
runningEvaluateService
.
metricsDetail
(
bo
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/RunningEvaluateService.java
View file @
b0526758
...
@@ -22,7 +22,7 @@ public interface RunningEvaluateService {
...
@@ -22,7 +22,7 @@ public interface RunningEvaluateService {
List
<
RunningEvaluateSchemeProblemsVO
>
schemeProblems
(
CrossIdAndStartEndDateBO
bo
);
List
<
RunningEvaluateSchemeProblemsVO
>
schemeProblems
(
CrossIdAndStartEndDateBO
bo
);
List
<
RunningEvaluateMetricsDetailVO
>
metricsDetail
(
MetricsDetailBO
bo
);
RunningEvaluateMetricsDetailVO
metricsDetail
(
MetricsDetailBO
bo
);
RunningEvaluateScopeTreeVO
scopeTree
(
CrossIdBO
bo
);
RunningEvaluateScopeTreeVO
scopeTree
(
CrossIdBO
bo
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
View file @
b0526758
package
net
.
wanji
.
opt
.
service
.
impl
;
package
net
.
wanji
.
opt
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -12,6 +13,7 @@ import net.wanji.databus.bo.CrossIdAndStartEndDateBO;
...
@@ -12,6 +13,7 @@ import net.wanji.databus.bo.CrossIdAndStartEndDateBO;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dto.MetricHistDTO
;
import
net.wanji.databus.dto.RunningPlanDTO
;
import
net.wanji.databus.dto.RunningPlanDTO
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.vo.RunningEvaluateCrossListVO
;
import
net.wanji.databus.vo.RunningEvaluateCrossListVO
;
...
@@ -50,6 +52,9 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
...
@@ -50,6 +52,9 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
private
final
BaseCrossPlanMapper
baseCrossPlanMapper
;
private
final
BaseCrossPlanMapper
baseCrossPlanMapper
;
private
final
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
;
private
final
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
;
private
final
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
;
private
final
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
private
final
CrossTurnDataHistMapper
crossTurnDataHistMapper
;
private
final
CrossLaneDataHistMapper
crossLaneDataHistMapper
;
public
RunningEvaluateServiceImpl
(
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
public
RunningEvaluateServiceImpl
(
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossDataHistMapper
crossDataHistMapper
,
CrossDataHistMapper
crossDataHistMapper
,
...
@@ -61,7 +66,10 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
...
@@ -61,7 +66,10 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
@Qualifier
(
"baseCrossInfoMapper"
)
BaseCrossInfoMapper
baseCrossInfoMapper
,
@Qualifier
(
"baseCrossInfoMapper"
)
BaseCrossInfoMapper
baseCrossInfoMapper
,
@Qualifier
(
"baseCrossPlanMapper"
)
BaseCrossPlanMapper
baseCrossPlanMapper
,
@Qualifier
(
"baseCrossPlanMapper"
)
BaseCrossPlanMapper
baseCrossPlanMapper
,
@Qualifier
(
"baseCrossSchedulesMapper"
)
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
@Qualifier
(
"baseCrossSchedulesMapper"
)
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
@Qualifier
(
"baseCrossSchedulesPlanMapper"
)
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
)
{
@Qualifier
(
"baseCrossSchedulesPlanMapper"
)
BaseCrossSchedulesPlanMapper
baseCrossSchedulesPlanMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
CrossLaneDataHistMapper
crossLaneDataHistMapper
)
{
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDataHistMapper
=
crossDataHistMapper
;
this
.
crossDataHistMapper
=
crossDataHistMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
...
@@ -73,6 +81,9 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
...
@@ -73,6 +81,9 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
this
.
baseCrossPlanMapper
=
baseCrossPlanMapper
;
this
.
baseCrossPlanMapper
=
baseCrossPlanMapper
;
this
.
baseCrossSchedulesMapper
=
baseCrossSchedulesMapper
;
this
.
baseCrossSchedulesMapper
=
baseCrossSchedulesMapper
;
this
.
baseCrossSchedulesPlanMapper
=
baseCrossSchedulesPlanMapper
;
this
.
baseCrossSchedulesPlanMapper
=
baseCrossSchedulesPlanMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
this
.
crossTurnDataHistMapper
=
crossTurnDataHistMapper
;
this
.
crossLaneDataHistMapper
=
crossLaneDataHistMapper
;
}
}
@Override
@Override
...
@@ -209,8 +220,149 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
...
@@ -209,8 +220,149 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
}
}
@Override
@Override
public
List
<
RunningEvaluateMetricsDetailVO
>
metricsDetail
(
MetricsDetailBO
bo
)
{
public
RunningEvaluateMetricsDetailVO
metricsDetail
(
MetricsDetailBO
bo
)
{
return
null
;
String
crossId
=
bo
.
getCrossId
();
Integer
dir
=
bo
.
getDir
();
String
turn
=
bo
.
getTurn
();
Integer
laneSort
=
bo
.
getLaneSort
();
// 构造某一天开始和结束时间戳
Date
date
=
bo
.
getDate
();
Date
startDate
=
date
;
Date
endDate
=
DateUtil
.
offsetDay
(
date
,
1
);
// 包含最后一天
int
startStamp
=
(
int
)
(
startDate
.
getTime
()
/
1000
);
// 10位时间戳
int
endStamp
=
(
int
)
(
endDate
.
getTime
()
/
1000
);
Integer
minutes
=
bo
.
getMinutes
();
List
<
MetricHistDTO
>
metricHistDTOList
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
laneSort
))
{
metricHistDTOList
=
crossLaneDataHistMapper
.
selectMetricHistDTO
(
crossId
,
startStamp
,
endStamp
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
turn
))
{
metricHistDTOList
=
crossTurnDataHistMapper
.
selectMetricHistDTO
(
crossId
,
startStamp
,
endStamp
);
}
else
if
(
ObjectUtil
.
isNotEmpty
(
dir
))
{
metricHistDTOList
=
crossDirDataHistMapper
.
selectMetricHistDTO
(
crossId
,
startStamp
,
endStamp
);
}
else
{
// 路口级别
metricHistDTOList
=
crossDataHistMapper
.
selectMetricHistDTO
(
crossId
,
startStamp
,
endStamp
);
}
RunningEvaluateMetricsDetailVO
res
=
new
RunningEvaluateMetricsDetailVO
();
if
(
CollectionUtil
.
isEmpty
(
metricHistDTOList
))
{
return
res
;
}
res
.
setProblemStatusList
(
buildProblemStatusList
(
metricHistDTOList
));
res
.
setSchemeList
(
buildSchemeList
(
metricHistDTOList
,
crossId
));
// res.setMetricsList(buildMetricsList(metricHistDTOList, minutes));
return
res
;
}
private
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
buildSchemeList
(
List
<
MetricHistDTO
>
metricHistDTOList
,
String
crossId
)
{
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
res
=
new
ArrayList
<>();
// 验证数据是否正确
if
(!
isDataValid
(
metricHistDTOList
))
{
return
res
;
}
// 根据持续时长去重
List
<
MetricHistDTO
>
uniqueList
=
metricHistDTOList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
MetricHistDTO:
:
getStartTime
,
// 按startTime分组
Collectors
.
collectingAndThen
(
// 在每个组中找到duration最大的元素
Collectors
.
maxBy
(
Comparator
.
comparingLong
(
MetricHistDTO:
:
getDuration
)),
Optional:
:
get
// 从Optional中获取元素
)
))
.
values
().
stream
().
collect
(
Collectors
.
toList
());
// 从Map中获取值并收集到新的列表中
for
(
MetricHistDTO
dto
:
uniqueList
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
Date
abnormalEventStartTime
=
dto
.
getStartTime
();
Integer
duration
=
dto
.
getDuration
();
Date
abnormalEventEndTime
=
DateUtil
.
offsetMinute
(
abnormalEventStartTime
,
duration
);
String
eventStartTime
=
sdf
.
format
(
abnormalEventStartTime
);
String
eventEndTime
=
sdf
.
format
(
abnormalEventEndTime
);
SimpleDateFormat
sdf2
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
datetime
=
new
Date
();
String
dateStr
=
sdf2
.
format
(
datetime
);
// 获取当前计划ID
Integer
planId
=
findPlanId
(
datetime
,
dateStr
,
crossId
);
List
<
CrossSectionPO
>
crossSectionPOList
=
baseCrossSectionMapper
.
selectByCrossAndPlan
(
crossId
,
planId
);
for
(
CrossSectionPO
crossSectionPO
:
crossSectionPOList
)
{
String
sectionStartTime
=
crossSectionPO
.
getStartTime
();
String
sectionEndTime
=
crossSectionPO
.
getEndTime
();
// 比较两组时间段是否相交
boolean
isIntersecting
=
isTimeIntersecting
(
eventStartTime
,
eventEndTime
,
sectionStartTime
,
sectionEndTime
);
if
(
isIntersecting
)
{
Integer
schemeId
=
crossSectionPO
.
getSchemeId
();
BaseCrossSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectById
(
schemeId
);
String
schemeName
=
baseCrossSchemePO
.
getName
();
RunningEvaluateMetricsDetailVO
.
ProblemScheme
problemScheme
=
new
RunningEvaluateMetricsDetailVO
.
ProblemScheme
();
problemScheme
.
setSchemeName
(
schemeName
);
problemScheme
.
setStartTime
(
sectionStartTime
);
problemScheme
.
setEndTime
(
sectionEndTime
);
res
.
add
(
problemScheme
);
}
}
}
// 去除相同方案
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
uniqueRes
=
res
.
stream
()
.
distinct
()
.
collect
(
Collectors
.
toList
());
return
uniqueRes
;
}
private
List
<
RunningEvaluateMetricsDetailVO
.
ProblemStatus
>
buildProblemStatusList
(
List
<
MetricHistDTO
>
metricHistDTOList
)
{
List
<
RunningEvaluateMetricsDetailVO
.
ProblemStatus
>
res
=
new
ArrayList
<>();
// 验证数据是否正确
if
(!
isDataValid
(
metricHistDTOList
))
{
return
res
;
}
// 根据持续时长去重
List
<
MetricHistDTO
>
uniqueList
=
metricHistDTOList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
MetricHistDTO:
:
getStartTime
,
// 按startTime分组
Collectors
.
collectingAndThen
(
// 在每个组中找到duration最大的元素
Collectors
.
maxBy
(
Comparator
.
comparingLong
(
MetricHistDTO:
:
getDuration
)),
Optional:
:
get
// 从Optional中获取元素
)
))
.
values
().
stream
().
collect
(
Collectors
.
toList
());
// 从Map中获取值并收集到新的列表中
for
(
MetricHistDTO
metricHistDTO
:
uniqueList
)
{
RunningEvaluateMetricsDetailVO
.
ProblemStatus
problemStatus
=
new
RunningEvaluateMetricsDetailVO
.
ProblemStatus
();
Integer
status1
=
metricHistDTO
.
getStatus
();
problemStatus
.
setStatus
(
status1
);
Date
startTime1
=
metricHistDTO
.
getStartTime
();
problemStatus
.
setStartTime
(
startTime1
);
Integer
duration1
=
metricHistDTO
.
getDuration
();
DateTime
endTime
=
DateUtil
.
offsetMinute
(
startTime1
,
duration1
);
problemStatus
.
setEndTime
(
endTime
);
problemStatus
.
setDurationMinutes
(
duration1
);
res
.
add
(
problemStatus
);
}
return
res
;
}
private
boolean
isDataValid
(
List
<
MetricHistDTO
>
metricHistDTOList
)
{
MetricHistDTO
dto
=
metricHistDTOList
.
get
(
0
);
Integer
status
=
dto
.
getStatus
();
Date
startTime
=
dto
.
getStartTime
();
Integer
duration
=
dto
.
getDuration
();
if
(
ObjectUtil
.
isEmpty
(
startTime
)
||
ObjectUtil
.
isEmpty
(
duration
)
||
ObjectUtil
.
isEmpty
(
status
))
{
return
false
;
}
return
true
;
}
}
@Override
@Override
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/RunningEvaluateMetricsDetailVO.java
View file @
b0526758
...
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
...
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
/**
/**
* @author Kent HAN
* @author Kent HAN
...
@@ -21,14 +22,14 @@ public class RunningEvaluateMetricsDetailVO {
...
@@ -21,14 +22,14 @@ public class RunningEvaluateMetricsDetailVO {
private
List
<
ProblemStatus
>
problemStatusList
;
private
List
<
ProblemStatus
>
problemStatusList
;
@ApiModelProperty
(
value
=
"问题方案列表"
)
@ApiModelProperty
(
value
=
"问题方案列表"
)
private
List
<
ProblemScheme
>
schemeList
;
private
List
<
ProblemScheme
>
schemeList
;
//
@ApiModelProperty(value = "指标列表")
@ApiModelProperty
(
value
=
"指标列表"
)
//
private List<CrossMetrics> metricsList;
private
List
<
CrossMetrics
>
metricsList
;
@NoArgsConstructor
@NoArgsConstructor
@Data
@Data
public
static
class
ProblemStatus
{
public
static
class
ProblemStatus
{
@ApiModelProperty
(
nam
e
=
"路口状态 0正常 1 失衡 2 拥堵 3 溢出"
)
@ApiModelProperty
(
valu
e
=
"路口状态 0正常 1 失衡 2 拥堵 3 溢出"
)
private
String
status
;
private
Integer
status
;
@ApiModelProperty
(
value
=
"开始时间"
)
@ApiModelProperty
(
value
=
"开始时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
...
@@ -46,15 +47,53 @@ public class RunningEvaluateMetricsDetailVO {
...
@@ -46,15 +47,53 @@ public class RunningEvaluateMetricsDetailVO {
@Data
@Data
public
static
class
ProblemScheme
{
public
static
class
ProblemScheme
{
@ApiModelProperty
(
value
=
"方案名称"
)
@ApiModelProperty
(
value
=
"方案名称"
)
private
String
pattern
Name
;
private
String
scheme
Name
;
@ApiModelProperty
(
value
=
"开始时间"
)
@ApiModelProperty
(
value
=
"开始时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
private
String
startTime
;
private
Date
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
@ApiModelProperty
(
value
=
"结束时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
private
String
endTime
;
private
Date
endTime
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
ProblemScheme
that
=
(
ProblemScheme
)
o
;
return
Objects
.
equals
(
schemeName
,
that
.
schemeName
)
&&
Objects
.
equals
(
startTime
,
that
.
startTime
)
&&
Objects
.
equals
(
endTime
,
that
.
endTime
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
schemeName
,
startTime
,
endTime
);
}
}
}
@NoArgsConstructor
@Data
public
static
class
CrossMetrics
{
@ApiModelProperty
(
value
=
"时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
private
Date
metricTime
;
@ApiModelProperty
(
value
=
"流量"
)
private
Integer
flow
;
@ApiModelProperty
(
value
=
"平均速度(km/h)"
)
private
Double
speed
;
@ApiModelProperty
(
value
=
"通行能力"
)
private
Integer
capacity
;
@ApiModelProperty
(
value
=
"饱和度"
)
private
Double
sturation
;
@ApiModelProperty
(
value
=
"平均停车次数"
)
private
Double
stopNumber
;
@ApiModelProperty
(
value
=
"平均延误(秒)"
)
private
Integer
delayTime
;
}
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
View file @
b0526758
...
@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
...
@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.dto.MetricHistDTO
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -21,4 +22,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
...
@@ -21,4 +22,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
List
<
CrossDataHistPO
>
selectByCrossIdAndTimestamp
(
String
crossId
,
long
preSeconds
);
List
<
CrossDataHistPO
>
selectByCrossIdAndTimestamp
(
String
crossId
,
long
preSeconds
);
List
<
CrossDataHistPO
>
selectByCrossIdAndStartEnd
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
CrossDataHistPO
>
selectByCrossIdAndStartEnd
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
View file @
b0526758
...
@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
...
@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.bo.CrossDirDataHistAvgBO
;
import
net.wanji.databus.bo.CrossDirDataHistAvgBO
;
import
net.wanji.databus.dto.MetricHistDTO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -31,4 +32,6 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
...
@@ -31,4 +32,6 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
List
<
CrossDirDataHistPO
>
selectNoParkEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossDirDataHistPO
>
selectNoParkEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossDirDataHistPO
>
selectPhaseQueueEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossDirDataHistPO
>
selectPhaseQueueEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossLaneDataHistMapper.java
View file @
b0526758
package
net
.
wanji
.
databus
.
dao
.
mapper
;
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.dto.MetricHistDTO
;
import
net.wanji.databus.po.CrossLaneDataHistPO
;
import
net.wanji.databus.po.CrossLaneDataHistPO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -16,5 +17,5 @@ import java.util.List;
...
@@ -16,5 +17,5 @@ import java.util.List;
public
interface
CrossLaneDataHistMapper
extends
BaseMapper
<
CrossLaneDataHistPO
>
{
public
interface
CrossLaneDataHistMapper
extends
BaseMapper
<
CrossLaneDataHistPO
>
{
void
insertBatch
(
@Param
(
"list"
)
List
<
CrossLaneDataHistPO
>
list
);
void
insertBatch
(
@Param
(
"list"
)
List
<
CrossLaneDataHistPO
>
list
);
void
deleteBatch
(
@Param
(
"list"
)
Collection
<
String
>
crossIds
);
void
deleteBatch
(
@Param
(
"list"
)
Collection
<
String
>
crossIds
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
}
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
View file @
b0526758
package
net
.
wanji
.
databus
.
dao
.
mapper
;
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.dto.MetricHistDTO
;
import
net.wanji.databus.po.CrossTurnDataHistPO
;
import
net.wanji.databus.po.CrossTurnDataHistPO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -20,4 +21,6 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
...
@@ -20,4 +21,6 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
CrossTurnDataHistPO
selectNoPark
(
String
crossId
,
Integer
dir
,
String
turn
,
long
currentSeconds
,
long
preSeconds
);
CrossTurnDataHistPO
selectNoPark
(
String
crossId
,
Integer
dir
,
String
turn
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossTurnDataHistPO
>
selectByCrossId
(
String
crossId
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossTurnDataHistPO
>
selectByCrossId
(
String
crossId
,
long
currentSeconds
,
long
preSeconds
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
}
}
wj-databus/src/main/java/net/wanji/databus/dto/MetricHistDTO.java
0 → 100644
View file @
b0526758
package
net
.
wanji
.
databus
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
@NoArgsConstructor
@Data
public
class
MetricHistDTO
{
@ApiModelProperty
(
value
=
"状态:0正常;1失衡;2拥堵;3溢出;4死锁"
,
notes
=
""
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"开始时间:yyyy-MM-dd HH:mm:ss"
,
notes
=
""
)
private
Date
startTime
;
@ApiModelProperty
(
value
=
"持续时间(单位:分钟)"
,
notes
=
""
)
private
Integer
duration
;
@ApiModelProperty
(
value
=
"交通流量(辆)"
,
notes
=
""
)
private
Integer
flow
;
@ApiModelProperty
(
value
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
@ApiModelProperty
(
value
=
"通行能力"
)
private
Integer
capacity
;
@ApiModelProperty
(
value
=
"饱和度"
,
notes
=
""
)
private
Double
sturation
;
@ApiModelProperty
(
value
=
"停车次数(次)"
,
notes
=
""
)
private
Double
stopTimes
;
@ApiModelProperty
(
value
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
@ApiModelProperty
(
value
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Integer
batchTime
;
}
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
View file @
b0526758
...
@@ -74,4 +74,14 @@
...
@@ -74,4 +74,14 @@
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
order by batch_time
order by batch_time
</select>
</select>
<select
id=
"selectMetricHistDTO"
resultType=
"net.wanji.databus.dto.MetricHistDTO"
>
select status, start_time, duration, flow, speed, sturation, stop_times, delay_time, batch_time
from t_cross_data_hist
where cross_id = #{crossId} and status != 0
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
order by batch_time
</select>
</mapper>
</mapper>
\ No newline at end of file
wj-databus/src/main/resources/mapper/CrossDirDataHistMapper.xml
View file @
b0526758
...
@@ -106,4 +106,14 @@
...
@@ -106,4 +106,14 @@
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
</select>
<select
id=
"selectMetricHistDTO"
resultType=
"net.wanji.databus.dto.MetricHistDTO"
>
select status, start_time, duration, flow, speed, sturation, capacity, stop_times, delay_time, batch_time
from t_cross_dir_data_hist
where cross_id = #{crossId} and status != 0
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
order by batch_time
</select>
</mapper>
</mapper>
\ No newline at end of file
wj-databus/src/main/resources/mapper/CrossLaneDataHistMapper.xml
View file @
b0526758
...
@@ -44,4 +44,13 @@
...
@@ -44,4 +44,13 @@
(#{crossId})
(#{crossId})
</foreach>
</foreach>
</delete>
</delete>
<select
id=
"selectMetricHistDTO"
resultType=
"net.wanji.databus.dto.MetricHistDTO"
>
select flow, speed, sturation, capacity, stop_times, delay_time, batch_time
from t_lane_data_hist
where cross_id = #{crossId}
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
order by batch_time
</select>
</mapper>
</mapper>
\ No newline at end of file
wj-databus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
View file @
b0526758
...
@@ -66,4 +66,13 @@
...
@@ -66,4 +66,13 @@
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
</select>
<select
id=
"selectMetricHistDTO"
resultType=
"net.wanji.databus.dto.MetricHistDTO"
>
select status, flow, speed, sturation, stop_times, delay_time, batch_time
from t_cross_turn_data_hist
where cross_id = #{crossId} and status != 0
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
order by batch_time
</select>
</mapper>
</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