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
f7baaa67
Commit
f7baaa67
authored
Jan 06, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
事件场景评价接口
parent
acb62a59
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1065 additions
and
7 deletions
+1065
-7
EventController.java
...c/main/java/net/wanji/opt/controller/EventController.java
+92
-0
HoloEventMapper.java
...c/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
+8
-0
BaseRidInfoMapper.java
...java/net/wanji/opt/dao/mapper/base/BaseRidInfoMapper.java
+20
-0
BaseRidInfo.java
...vice/src/main/java/net/wanji/opt/po/base/BaseRidInfo.java
+107
-0
EventStatisticPo.java
...src/main/java/net/wanji/opt/po/base/EventStatisticPo.java
+43
-0
EventInfoSimplePo.java
...c/main/java/net/wanji/opt/po/trend/EventInfoSimplePo.java
+57
-0
HoloEventInfoPO.java
...src/main/java/net/wanji/opt/po/trend/HoloEventInfoPO.java
+5
-1
EventService.java
...ice/src/main/java/net/wanji/opt/service/EventService.java
+72
-0
BaseRidInfoProvider.java
.../java/net/wanji/opt/service/base/BaseRidInfoProvider.java
+18
-0
BaseRidInfoProviderImpl.java
.../wanji/opt/service/base/impl/BaseRidInfoProviderImpl.java
+34
-0
EventServiceImpl.java
...ain/java/net/wanji/opt/service/impl/EventServiceImpl.java
+233
-0
SceneEvaluateServiceImpl.java
.../net/wanji/opt/service/impl/SceneEvaluateServiceImpl.java
+5
-0
GreenwaveHistMapper.xml
...service/src/main/resources/mapper/GreenwaveHistMapper.xml
+7
-6
HoloEventMapper.xml
...ize-service/src/main/resources/mapper/HoloEventMapper.xml
+31
-0
BaseRidInfoMapper.xml
...vice/src/main/resources/mapper/base/BaseRidInfoMapper.xml
+333
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/EventController.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
controller
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ResponseHeader
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.po.base.EventStatisticPo
;
import
net.wanji.opt.service.EvaluateService
;
import
net.wanji.opt.service.EventService
;
import
net.wanji.opt.vo.EvaluateCrossDetailVO
;
import
net.wanji.opt.vo.EvaluateMetricsVO
;
import
net.wanji.opt.vo.GreenWaveRunStateVO
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.ws.rs.core.MediaType
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@Slf4j
@RequestMapping
(
"/event"
)
@Api
(
value
=
"EventController"
,
description
=
"事件相关"
,
tags
=
"事件相关"
)
public
class
EventController
{
@Resource
EventService
eventService
;
@GetMapping
(
"/count"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"事件总次数统计"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口ID"
,
required
=
true
,
dataType
=
"Integer"
,
defaultValue
=
"13N8J0B5P10"
),
@ApiImplicitParam
(
name
=
"eventType"
,
value
=
"事件类型 701:空放 702:失衡 703:溢出"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"701"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-01-05 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-01-05 23:59:59"
),
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
EventStatisticPo
.
class
,
responseHeaders
=
{
@ResponseHeader
(
name
=
"Content-Type"
,
description
=
"application/json"
)})
})
public
JsonViewObject
evaluateCrossDetail
(
String
crossId
,
String
eventType
,
String
startTime
,
String
endTime
)
{
EventStatisticPo
result
=
null
;
try
{
result
=
eventService
.
findCrossEventCount
(
crossId
,
eventType
,
startTime
,
endTime
);
return
JsonViewObject
.
newInstance
().
success
(
result
);
}
catch
(
DubboProviderException
e
)
{
e
.
printStackTrace
();
return
JsonViewObject
.
newInstance
().
fail
(
e
);
}
}
@GetMapping
(
"/distribute"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"空放、失衡、溢出事件分布情况"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口ID"
,
required
=
true
,
dataType
=
"Integer"
,
defaultValue
=
"13N8J0B5P10"
),
// @ApiImplicitParam(name = "eventType", value = "事件类型 701:空放 702:失衡 703:溢出", required = false, dataType = "String",defaultValue = "701"),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-01-05 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-01-05 23:59:59"
),
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
EventStatisticPo
.
class
,
responseHeaders
=
{
@ResponseHeader
(
name
=
"Content-Type"
,
description
=
"application/json"
)})
})
public
JsonViewObject
distribute
(
String
crossId
,
String
startTime
,
String
endTime
)
{
try
{
List
<
Map
<
String
,
Object
>>
result
=
eventService
.
findEventDistribute
(
crossId
,
startTime
,
endTime
);
return
JsonViewObject
.
newInstance
().
success
(
result
);
}
catch
(
DubboProviderException
e
)
{
e
.
printStackTrace
();
return
JsonViewObject
.
newInstance
().
fail
(
e
);
}
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
View file @
f7baaa67
...
@@ -2,11 +2,14 @@ package net.wanji.opt.dao.mapper;
...
@@ -2,11 +2,14 @@ package net.wanji.opt.dao.mapper;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.opt.po.base.EventStatisticPo
;
import
net.wanji.opt.po.trend.EventInfoSimplePo
;
import
net.wanji.opt.po.trend.HoloEventInfoPO
;
import
net.wanji.opt.po.trend.HoloEventInfoPO
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author duanruiming
* @author duanruiming
...
@@ -19,5 +22,10 @@ public interface HoloEventMapper extends BaseMapper<HoloEventInfoPO> {
...
@@ -19,5 +22,10 @@ public interface HoloEventMapper extends BaseMapper<HoloEventInfoPO> {
Integer
selectEmergencyCountWithLaneIds
(
String
crossId
,
int
startStamp
,
int
endStamp
,
List
<
String
>
laneIds
);
Integer
selectEmergencyCountWithLaneIds
(
String
crossId
,
int
startStamp
,
int
endStamp
,
List
<
String
>
laneIds
);
List
<
HoloEventInfoPO
>
selectAIList
(
Date
startTime
);
List
<
HoloEventInfoPO
>
selectAIList
(
Date
startTime
);
List
<
HoloEventInfoPO
>
selectAIGreenList
(
Date
startTime
);
List
<
HoloEventInfoPO
>
selectAIGreenList
(
Date
startTime
);
EventStatisticPo
findCrossEventCount
(
Map
<
String
,
Object
>
params
);
List
<
EventInfoSimplePo
>
findEventDistribute
(
Map
<
String
,
Object
>
params
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/base/BaseRidInfoMapper.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
dao
.
mapper
.
base
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.common.framework.mapper.BaseInterfaceMapper
;
import
net.wanji.opt.po.base.BaseRidInfo
;
/**
* <p>
* 路段基础信息
* </p>
*
* @Author fengyi
* @Date 2024-11-14
*/
public
interface
BaseRidInfoMapper
extends
BaseMapper
<
BaseRidInfo
>
{
}
signal-optimize-service/src/main/java/net/wanji/opt/po/base/BaseRidInfo.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
po
.
base
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* <p>
* 路段基础信息
* </p>
*
* @Author fengyi
* @Date 2024-11-14
*/
@Data
@ApiModel
(
value
=
"BaseRidInfo对象"
,
description
=
"路段基础信息"
)
@TableName
(
"t_base_rid_info"
)
public
class
BaseRidInfo
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"路段名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"道路编号"
)
private
String
roadId
;
@ApiModelProperty
(
value
=
"道路名称"
)
private
String
roadName
;
@ApiModelProperty
(
value
=
"道路方向编号"
)
private
String
roadDirId
;
@ApiModelProperty
(
value
=
"开始路口编号"
)
private
String
startCrossId
;
@ApiModelProperty
(
value
=
"结束路口编号"
)
private
String
endCrossId
;
@ApiModelProperty
(
value
=
"驶出方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
)
private
Integer
outDir
;
@ApiModelProperty
(
value
=
"驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
)
private
Integer
inDir
;
@ApiModelProperty
(
value
=
"驶出角度,正北顺时针0~359"
)
private
Double
startAngle
;
@ApiModelProperty
(
value
=
"驶入角度,正北顺时针0~359"
)
private
Double
endAngle
;
@ApiModelProperty
(
value
=
"行驶方向:0上行;1下行"
)
private
Integer
direction
;
@ApiModelProperty
(
value
=
"顺序号:路段在道路方向的顺序号"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"路段走向:1 南向北;2 西向东;3 北向南;4 东向西;5 内环;6 外环;99 其他(参见路段走向字典)"
)
private
Integer
trend
;
@ApiModelProperty
(
value
=
"道路等级: 41000 高速公路; 42000 国道; 43000 城市快速路; 44000 城市主干道; 45000 城市次干道; 47000 城市普通道路; 51000 省道; 52000 县道; 53000 乡道; 54000 县乡村内部道路; 49 小路(参见道路等级字典)"
)
private
Integer
level
;
@ApiModelProperty
(
value
=
"行政区划代码,跨区数据会以逗号分开"
)
private
String
areaCode
;
@ApiModelProperty
(
value
=
"路段长度(米)"
)
private
Double
length
;
@ApiModelProperty
(
value
=
"路段宽度(米)"
)
private
Double
width
;
@ApiModelProperty
(
value
=
"是否单行线:0否;1是;99其他"
)
private
Integer
isOneway
;
@ApiModelProperty
(
value
=
"路段类型:1路段;3匝道;4隧道;5桥梁;6高架;99其他"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"主辅标志:1主路;2辅路;99其他 (参见主辅标志字典)"
)
private
Integer
mainFlag
;
@ApiModelProperty
(
value
=
"空间对象"
)
private
String
wkt
;
@ApiModelProperty
(
value
=
"信控路段编号"
)
private
String
scId
;
@ApiModelProperty
(
value
=
"信控路段名称"
)
private
String
scName
;
@ApiModelProperty
(
value
=
"信控路段序号"
)
private
Integer
scSort
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
gmtCreate
;
@ApiModelProperty
(
value
=
"修改时间"
)
private
Date
gmtModified
;
}
signal-optimize-service/src/main/java/net/wanji/opt/po/base/EventStatisticPo.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
po
.
base
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author fengyi
* @date 2024/12/24
* @description
*/
@Data
public
class
EventStatisticPo
{
@ApiModelProperty
(
name
=
"路口编号"
,
notes
=
""
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"事件类型"
,
notes
=
""
)
private
String
eventType
;
@ApiModelProperty
(
value
=
"事件类型描述"
,
notes
=
""
)
private
String
eventTypeDesc
;
@ApiModelProperty
(
value
=
"事件次数"
,
notes
=
""
)
private
Integer
eventCount
;
@ApiModelProperty
(
value
=
"时间轴"
,
notes
=
""
)
private
String
timeAxis
;
@ApiModelProperty
(
value
=
"事件方向集合"
,
notes
=
""
,
hidden
=
true
)
private
String
dirs
;
@ApiModelProperty
(
value
=
"每个方向发生的次数"
,
notes
=
""
)
private
Map
<
String
,
Long
>
dirEventCount
;
@ApiModelProperty
(
value
=
"进口道方向"
,
notes
=
""
)
private
Map
<
String
,
String
>
dirWkt
;
}
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/EventInfoSimplePo.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
po
.
trend
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.utils.tool.DateUtil
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.util.Date
;
/**
* @author duanruiming
* @date 2024/05/17 9:45
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_event_info"
)
@ApiModel
(
value
=
"HoloEventInfoPO"
,
description
=
"交通事件信息"
)
public
class
EventInfoSimplePo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"二级类别"
)
@JsonProperty
(
"eventType"
)
//@JSONField(name = "eventType")
private
String
eventType
;
@ApiModelProperty
(
value
=
"事件发生时间"
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@ApiModelProperty
(
value
=
"事件结束时间"
)
//@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
@ApiModelProperty
(
value
=
"事件持续时长,单位秒"
)
private
Integer
duration
;
@ApiModelProperty
(
value
=
"横轴时间轴"
,
notes
=
""
)
private
String
timeAxis
;
@ApiModelProperty
(
value
=
"纵轴日期 格式:(dd/MM)"
,
notes
=
""
)
private
String
date
;
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/HoloEventInfoPO.java
View file @
f7baaa67
...
@@ -73,7 +73,7 @@ public class HoloEventInfoPO implements Serializable {
...
@@ -73,7 +73,7 @@ public class HoloEventInfoPO implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
private
Date
endTime
;
@ApiModelProperty
(
value
=
"事件持续时长,单位
分钟
"
)
@ApiModelProperty
(
value
=
"事件持续时长,单位
秒
"
)
private
Integer
duration
;
private
Integer
duration
;
@ApiModelProperty
(
value
=
"事件来源"
,
notes
=
"1-系统检测;2-接处警;3-互联网;4-交管部门;5-济南城市大脑;"
)
@ApiModelProperty
(
value
=
"事件来源"
,
notes
=
"1-系统检测;2-接处警;3-互联网;4-交管部门;5-济南城市大脑;"
)
...
@@ -106,4 +106,8 @@ public class HoloEventInfoPO implements Serializable {
...
@@ -106,4 +106,8 @@ public class HoloEventInfoPO implements Serializable {
private
String
extend
;
private
String
extend
;
@ApiModelProperty
(
value
=
"拓展字段"
)
@ApiModelProperty
(
value
=
"拓展字段"
)
private
Integer
alarmStatus
;
private
Integer
alarmStatus
;
@ApiModelProperty
(
value
=
"时间轴"
,
notes
=
""
)
private
String
timeAxis
;
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/service/EventService.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
service
;
import
com.alibaba.fastjson.JSONObject
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.vo.GreenwaveListVO
;
import
net.wanji.opt.bo.CrossIdAndIsFirstBO
;
import
net.wanji.opt.bo.CrossIdAndTimeSpanBO
;
import
net.wanji.opt.bo.GreenwaveDetailBO
;
import
net.wanji.opt.bo.GreenwaveIdAndTimeStampBO
;
import
net.wanji.opt.bo.GreenwaveIdBO
;
import
net.wanji.opt.bo.SaveGreenwaveStrategyBO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.po.base.EventStatisticPo
;
import
net.wanji.opt.po.trend.AnalysisRidTurnIndicators
;
import
net.wanji.opt.po.trend.HoloEventInfoPO
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.CommonCrossIdDateTimeVO
;
import
net.wanji.opt.vo.CommonCrossIdVO
;
import
net.wanji.opt.vo.CountRealTimeVO
;
import
net.wanji.opt.vo.CrossStatusTimeRateVO
;
import
net.wanji.opt.vo.EventAlarmVO
;
import
net.wanji.opt.vo.GreenStatusTimeRateVO
;
import
net.wanji.opt.vo.GreenWaveCrossMonitorVO
;
import
net.wanji.opt.vo.GreenwaveCrossMetricsVO
;
import
net.wanji.opt.vo.GreenwaveDetailVO
;
import
net.wanji.opt.vo.GreenwaveRunMonitorVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
net.wanji.opt.vo.HoloEventVO
;
import
net.wanji.opt.vo.HotspotCrossLaneVO
;
import
net.wanji.opt.vo.HotspotCrossTurnVO
;
import
net.wanji.opt.vo.HotspotCrossVO
;
import
net.wanji.opt.vo.LaneIdAliasNameVO
;
import
net.wanji.opt.vo.LanePeriodTurnVO
;
import
net.wanji.opt.vo.LaneSnapshotIndexVO
;
import
net.wanji.opt.vo.OptTypeVO
;
import
net.wanji.opt.vo.OverflowEvent
;
import
net.wanji.opt.vo.TableQueryVO
;
import
net.wanji.opt.vo.Top5IndexVO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 事件接口
*/
public
interface
EventService
{
/**
* 查询路口事件统计数
* @param crossId
* @param type
* @param startTime
* @param endTime
* @return
*/
EventStatisticPo
findCrossEventCount
(
String
crossId
,
String
type
,
String
startTime
,
String
endTime
)
throws
DubboProviderException
;
/**
* 场景分布
* @param crossId
* @param startTime
* @param endTime
* @return
*/
List
<
Map
<
String
,
Object
>>
findEventDistribute
(
String
crossId
,
String
startTime
,
String
endTime
)
throws
DubboProviderException
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/base/BaseRidInfoProvider.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
service
.
base
;
import
net.wanji.common.framework.dubbointerface.BaseDubboInterface
;
import
net.wanji.opt.po.base.BaseRidInfo
;
/**
* <p>
* 路段基础信息
* </p>
*
* @Author fengyi
* @Date 2024-11-14
*/
public
interface
BaseRidInfoProvider
{
}
signal-optimize-service/src/main/java/net/wanji/opt/service/base/impl/BaseRidInfoProviderImpl.java
0 → 100644
View file @
f7baaa67
package
net
.
wanji
.
opt
.
service
.
base
.
impl
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl
;
import
net.wanji.common.framework.mapper.BaseInterfaceMapper
;
import
net.wanji.opt.dao.mapper.base.BaseRidInfoMapper
;
import
net.wanji.opt.po.base.BaseRidInfo
;
import
net.wanji.opt.service.base.BaseRidInfoProvider
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
/**
* <p>
* 路段基础信息
* </p>
*
* @Author fengyi
* @Date 2024-11-14
*/
@Slf4j
@Component
@Service
public
class
BaseRidInfoProviderImpl
implements
BaseRidInfoProvider
{
@Resource
private
BaseRidInfoMapper
baseRidInfoMapper
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/EventServiceImpl.java
0 → 100644
View file @
f7baaa67
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SceneEvaluateServiceImpl.java
View file @
f7baaa67
...
@@ -75,8 +75,10 @@ public class SceneEvaluateServiceImpl implements SceneEvaluateService {
...
@@ -75,8 +75,10 @@ public class SceneEvaluateServiceImpl implements SceneEvaluateService {
Date
endDate
=
bo
.
getEndDate
();
Date
endDate
=
bo
.
getEndDate
();
SceneEvaluateAbnormalDistributeVO
vo
=
new
SceneEvaluateAbnormalDistributeVO
();
SceneEvaluateAbnormalDistributeVO
vo
=
new
SceneEvaluateAbnormalDistributeVO
();
List
<
SceneEvaluateAbnormalDistributeVO
.
TimeDistribution
>
timeDistributionList
=
List
<
SceneEvaluateAbnormalDistributeVO
.
TimeDistribution
>
timeDistributionList
=
buildTimeDistributionList
(
crossId
,
startDate
,
endDate
);
buildTimeDistributionList
(
crossId
,
startDate
,
endDate
);
vo
.
setTimeDateDistributionList
(
buildTimeDateDistributionList
(
timeDistributionList
));
vo
.
setTimeDateDistributionList
(
buildTimeDateDistributionList
(
timeDistributionList
));
setCounts
(
timeDistributionList
,
vo
);
setCounts
(
timeDistributionList
,
vo
);
...
@@ -1345,13 +1347,16 @@ public class SceneEvaluateServiceImpl implements SceneEvaluateService {
...
@@ -1345,13 +1347,16 @@ public class SceneEvaluateServiceImpl implements SceneEvaluateService {
partEnd
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
partEnd
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
int
startStamp
=
(
int
)(
start
.
getTimeInMillis
()
/
1000
);
int
startStamp
=
(
int
)(
start
.
getTimeInMillis
()
/
1000
);
int
endStamp
=
(
int
)(
partEnd
.
getTimeInMillis
()
/
1000
);
int
endStamp
=
(
int
)(
partEnd
.
getTimeInMillis
()
/
1000
);
//按开始、截止时间查询事件列表
List
<
MetricHistDTO
>
crossDTOList
=
crossDataHistMapper
.
selectMetricHistDTO
(
List
<
MetricHistDTO
>
crossDTOList
=
crossDataHistMapper
.
selectMetricHistDTO
(
crossId
,
startStamp
,
endStamp
);
crossId
,
startStamp
,
endStamp
);
// 过滤有问题的记录
// 过滤有问题的记录
List
<
MetricHistDTO
>
filteredList
=
crossDTOList
.
stream
()
List
<
MetricHistDTO
>
filteredList
=
crossDTOList
.
stream
()
.
filter
(
metricHistDTO
->
metricHistDTO
.
getStatus
()
!=
null
&&
!
metricHistDTO
.
getStatus
().
equals
(
0
))
.
filter
(
metricHistDTO
->
metricHistDTO
.
getStatus
()
!=
null
&&
!
metricHistDTO
.
getStatus
().
equals
(
0
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
timeDistribution
.
setProblemStatusList
(
runningEvaluateService
.
buildProblemStatusList
(
filteredList
));
timeDistribution
.
setProblemStatusList
(
runningEvaluateService
.
buildProblemStatusList
(
filteredList
));
res
.
add
(
timeDistribution
);
res
.
add
(
timeDistribution
);
}
}
return
res
;
return
res
;
...
...
signal-optimize-service/src/main/resources/mapper/GreenwaveHistMapper.xml
View file @
f7baaa67
...
@@ -249,11 +249,12 @@
...
@@ -249,11 +249,12 @@
(
(
SELECT start_time,
SELECT start_time,
(case
(case
when #{groupType}=0 then
start_time
when #{groupType}=0 then
DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 5 ) * 5 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
when #{groupType}=4 then DATE_FORMAT(start_time,'%Y-%m-%d 00:00:00' )
when #{groupType}=4 then DATE_FORMAT(start_time,'%Y-%m-%d 00:00:00' )
else DATE_FORMAT(start_time,'%Y-01-01 00:00:00')
<!-- 按查询时间范围不分粒度进行聚合处理 -->
end
end
) unit_time,
) unit_time,
t.cross_id,
t.cross_id,
...
@@ -335,7 +336,7 @@
...
@@ -335,7 +336,7 @@
SUM(TIMESTAMPDIFF(SECOND,start_time, end_time)) duration,
SUM(TIMESTAMPDIFF(SECOND,start_time, end_time)) duration,
TIMESTAMPDIFF(SECOND,#{startDate}, #{endDate}) total_time
TIMESTAMPDIFF(SECOND,#{startDate}, #{endDate}) total_time
from t_event_info t
from t_event_info t
where start_time > #{startDate} and start_time
<
#{endDate}
where start_time >
=
#{startDate} and start_time
<
#{endDate}
<if
test=
"eventTypeList!=null and eventTypeList.size>0"
>
<if
test=
"eventTypeList!=null and eventTypeList.size>0"
>
and t.type in
and t.type in
<foreach
collection=
"eventTypeList"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
<foreach
collection=
"eventTypeList"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
...
@@ -398,7 +399,7 @@
...
@@ -398,7 +399,7 @@
left join (
left join (
SELECT cross_id,dir_type,start_time,flow,speed,queue_length,stop_times,delay_time,sturation ,traffic_index,
SELECT cross_id,dir_type,start_time,flow,speed,queue_length,stop_times,delay_time,sturation ,traffic_index,
(case
(case
when #{groupType}=0 then
start_time
when #{groupType}=0 then
DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 5 ) * 5 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
...
@@ -406,7 +407,7 @@
...
@@ -406,7 +407,7 @@
end
end
) unit_time
) unit_time
from t_cross_dir_data_hist
from t_cross_dir_data_hist
WHERE start_time > #{startDate} and start_time
<
#{endDate}
WHERE start_time >
=
#{startDate} and start_time
<
#{endDate}
) t2
) t2
on t2.cross_id=t1.end_cross_id and t2.dir_type=t1.dir
on t2.cross_id=t1.end_cross_id and t2.dir_type=t1.dir
GROUP BY t1.start_cross_id,t1.dir,t2.unit_time
GROUP BY t1.start_cross_id,t1.dir,t2.unit_time
...
@@ -446,7 +447,7 @@
...
@@ -446,7 +447,7 @@
left join (
left join (
SELECT id as lane_id,cross_id,start_time,flow,speed,queue_length,stop_times,delay_time,sturation ,
SELECT id as lane_id,cross_id,start_time,flow,speed,queue_length,stop_times,delay_time,sturation ,
(case
(case
when #{groupType}=0 then
start_time
when #{groupType}=0 then
DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 5 ) * 5 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=1 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 15 ) * 15 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=2 then DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 30 ) * 30 ),'%Y-%m-%d %H:%i:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
when #{groupType}=3 then DATE_FORMAT(start_time,'%Y-%m-%d %H:00:00' )
...
@@ -454,7 +455,7 @@
...
@@ -454,7 +455,7 @@
end
end
) unit_time
) unit_time
from t_lane_data_hist
from t_lane_data_hist
WHERE start_time > #{startDate} and start_time
<
#{endDate}
WHERE start_time >
=
#{startDate} and start_time
<
#{endDate}
) t2
) t2
on t2.lane_id=t1.lane_id
on t2.lane_id=t1.lane_id
GROUP BY t1.end_cross_id,t1.dir,t1.lane_id,t1.turn,t2.unit_time
GROUP BY t1.end_cross_id,t1.dir,t1.lane_id,t1.turn,t2.unit_time
...
...
signal-optimize-service/src/main/resources/mapper/HoloEventMapper.xml
View file @
f7baaa67
...
@@ -56,4 +56,35 @@
...
@@ -56,4 +56,35 @@
order by t2.alarm_status desc
order by t2.alarm_status desc
</select>
</select>
<!-- 空放、失衡、溢出事件分布查询 -->
<select
id=
"findEventDistribute"
resultType=
"net.wanji.opt.po.trend.EventInfoSimplePo"
>
select cross_id,type as event_type,start_time,end_time,
TIMESTAMPDIFF(SECOND,start_time, ifnull(end_time,now())) duration,
DATE_FORMAT(concat( date( start_time ), ' ', HOUR ( start_time ), ':', floor( MINUTE ( start_time ) / 5 ) * 5 ),'%Y-%m-%d %H:%i:00' ) time_axis
from t_event_info
where type in ('701', '702','703')
and cross_id=#{crossId}
and start_time > #{startDate} and start_time
<
#{endDate}
</select>
<!-- 查看路口事件数量 -->
<select
id=
"findCrossEventCount"
resultType=
"net.wanji.opt.po.base.EventStatisticPo"
>
select type as event_type,count(*) event_count,group_concat(distinct dir) dirs,b.label as event_type_desc
from t_event_info a left join t_config_event_category b on a.type=b.event_type
where 1=1
<if
test=
"crossId !=null and crossId !=''"
>
and cross_id = #{crossId}
</if>
<if
test=
"eventType!=null and eventType !=''"
>
and a.type = #{eventType}
</if>
<if
test=
"startDate!=null and endDate !=''"
>
and start_time > #{startDate} and start_time
<
#{endDate}
</if>
GROUP BY type
</select>
</mapper>
</mapper>
\ No newline at end of file
signal-optimize-service/src/main/resources/mapper/base/BaseRidInfoMapper.xml
0 → 100644
View file @
f7baaa67
This diff is collapsed.
Click to expand it.
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