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
b46c1dce
Commit
b46c1dce
authored
Feb 09, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信控优化-时间告警
parent
b96c1be1
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
247 additions
and
6 deletions
+247
-6
SituationDetectionServiceImpl.java
...wanji/web/service/impl/SituationDetectionServiceImpl.java
+2
-0
TrendController.java
...c/main/java/net/wanji/opt/controller/TrendController.java
+20
-0
EventAlarmMapper.java
...java/net/wanji/opt/dao/mapper/trend/EventAlarmMapper.java
+13
-0
EventAlarmDTO.java
.../src/main/java/net/wanji/opt/dto/trend/EventAlarmDTO.java
+12
-0
EventAlarmPO.java
...ce/src/main/java/net/wanji/opt/po/trend/EventAlarmPO.java
+55
-0
TrendService.java
...ice/src/main/java/net/wanji/opt/service/TrendService.java
+5
-0
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+70
-1
AbnormalCrossDetailVO.java
...src/main/java/net/wanji/opt/vo/AbnormalCrossDetailVO.java
+2
-2
EventAlarmVO.java
...-service/src/main/java/net/wanji/opt/vo/EventAlarmVO.java
+36
-0
GreenwaveListVO.java
...rvice/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
+1
-1
EventAlarmMapper.xml
...vice/src/main/resources/mapper/trend/EventAlarmMapper.xml
+29
-0
EventAlarmEnum.java
.../src/main/java/net/wanji/common/enums/EventAlarmEnum.java
+1
-1
EventAlarmSourceEnum.java
...ain/java/net/wanji/common/enums/EventAlarmSourceEnum.java
+1
-1
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/SituationDetectionServiceImpl.java
View file @
b46c1dce
...
...
@@ -6,6 +6,8 @@ import cn.hutool.core.date.DateUtil;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.github.pagehelper.PageInfo
;
import
lombok.RequiredArgsConstructor
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.common.utils.tool.BeanMapUtils
;
import
net.wanji.common.utils.tool.CrossUtil
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/TrendController.java
View file @
b46c1dce
...
...
@@ -7,10 +7,12 @@ import io.swagger.annotations.ApiResponses;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.EventAlarmDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.service.impl.TrendServiceImpl
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.EventAlarmVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
net.wanji.opt.vo.GreenwaveVO
;
...
...
@@ -20,6 +22,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.ws.rs.core.MediaType
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -33,6 +38,8 @@ import java.util.List;
public
class
TrendController
{
private
final
TrendServiceImpl
trendService
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
TrendController
(
TrendServiceImpl
trendService
)
{
this
.
trendService
=
trendService
;
}
...
...
@@ -85,4 +92,17 @@ public class TrendController {
return
jsonViewObject
.
success
(
abnormalCrossDetailVO
);
}
@ApiOperation
(
value
=
"事件告警"
,
notes
=
"事件告警"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/eventAlarm"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
public
JsonViewObject
eventAlarm
(
@RequestBody
EventAlarmDTO
eventAlarmDTO
)
throws
ParseException
{
String
currentTimeStr
=
eventAlarmDTO
.
getCurrentTime
();
Date
todayTime
=
sdf
.
parse
(
currentTimeStr
);
List
<
EventAlarmVO
>
eventAlarmVOList
=
trendService
.
eventAlarm
(
todayTime
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
eventAlarmVOList
);
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/trend/EventAlarmMapper.java
0 → 100644
View file @
b46c1dce
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
import
net.wanji.opt.po.trend.EventAlarmPO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.List
;
@Repository
public
interface
EventAlarmMapper
{
List
<
EventAlarmPO
>
selectByTodayTime
(
@Param
(
"todayTime"
)
Date
todayTime
);
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dto/trend/EventAlarmDTO.java
0 → 100644
View file @
b46c1dce
package
net
.
wanji
.
opt
.
dto
.
trend
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"EventAlarmDTO"
,
description
=
"查询事件报警输入参数"
)
public
class
EventAlarmDTO
{
@ApiModelProperty
(
value
=
"当天时间,格式:yyyy-MM-dd HH:mm:ss,如:2022-10-27 17:21:23"
)
String
currentTime
;
}
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/EventAlarmPO.java
0 → 100644
View file @
b46c1dce
package
net
.
wanji
.
opt
.
po
.
trend
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.data.annotation.Id
;
import
java.util.Date
;
@Data
public
class
EventAlarmPO
{
/** 主键 */
@Id
@ApiModelProperty
(
name
=
"主键"
,
notes
=
""
)
private
Integer
id
;
/** 事件ID */
@ApiModelProperty
(
name
=
"事件ID"
,
notes
=
""
)
private
String
eventId
;
/** 事件描述 */
@ApiModelProperty
(
name
=
"事件描述"
,
notes
=
""
)
private
String
eventDesc
;
/** 事件类型:1事故;2拥堵;3管制;4施工 */
@ApiModelProperty
(
name
=
"事件类型:1事故;2拥堵;3管制;4施工"
,
notes
=
""
)
private
Integer
type
;
/** 开始时间 */
@ApiModelProperty
(
name
=
"开始时间"
,
notes
=
""
)
private
Date
startTime
;
/** 结束时间 */
@ApiModelProperty
(
name
=
"结束时间"
,
notes
=
""
)
private
Date
endTime
;
/** 事件来源:1接处警;2交管部门;3互联网 */
@ApiModelProperty
(
name
=
"事件来源:1接处警;2交管部门;3互联网"
,
notes
=
""
)
private
Integer
source
;
/** 事件坐标:精度;维度;精度,维度... */
@ApiModelProperty
(
name
=
"事件坐标:精度"
,
notes
=
"维度;精度,维度..."
)
private
String
wkt
;
/** 图片链接 */
@ApiModelProperty
(
name
=
"图片链接"
,
notes
=
""
)
private
String
imageUrl
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/TrendService.java
View file @
b46c1dce
...
...
@@ -5,9 +5,12 @@ import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.EventAlarmVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -23,4 +26,6 @@ public interface TrendService {
AbnormalCrossVO
abnormalCrossList
(
AbnormalCrossListDTO
abnormalCrossListDTO
);
AbnormalCrossDetailVO
abnormalCrossDetail
(
CrossIdDTO
crossIdDTO
);
List
<
EventAlarmVO
>
eventAlarm
(
Date
todayTime
)
throws
ParseException
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
b46c1dce
...
...
@@ -4,11 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDirDataHistMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossTurnDataRealtimeMapper
;
import
net.wanji.opt.dao.mapper.trend.EventAlarmMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
...
...
@@ -16,15 +19,19 @@ import net.wanji.opt.po.base.CrossInfoPO;
import
net.wanji.opt.po.trend.CrossDataRealtimePO
;
import
net.wanji.opt.po.trend.CrossDirDataHistPO
;
import
net.wanji.opt.po.trend.CrossTurnDataRealtimePO
;
import
net.wanji.opt.po.trend.EventAlarmPO
;
import
net.wanji.opt.service.TrendService
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
net.wanji.opt.vo.AbnormalCrossStats
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.EventAlarmVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
org.springframework.stereotype.Service
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -42,13 +49,18 @@ public class TrendServiceImpl implements TrendService {
private
final
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
private
final
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
private
final
EventAlarmMapper
eventAlarmMapper
;
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossTurnDataRealtimeMapper
=
crossTurnDataRealtimeMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
this
.
eventAlarmMapper
=
eventAlarmMapper
;
}
@Override
...
...
@@ -144,6 +156,63 @@ public class TrendServiceImpl implements TrendService {
return
abnormalCrossDetailVO
;
}
@Override
public
List
<
EventAlarmVO
>
eventAlarm
(
Date
todayTime
)
throws
ParseException
{
List
<
EventAlarmPO
>
eventAlarmPOList
=
eventAlarmMapper
.
selectByTodayTime
(
todayTime
);
List
<
EventAlarmVO
>
eventAlarmOutVOList
=
new
ArrayList
<>();
for
(
EventAlarmPO
eventAlarmPO
:
eventAlarmPOList
)
{
EventAlarmVO
eventAlarmOutVO
=
new
EventAlarmVO
();
eventAlarmOutVO
.
setEventDesc
(
eventAlarmPO
.
getEventDesc
());
// 事件类型
Integer
typeCode
=
eventAlarmPO
.
getType
();
String
msgByCode
=
EventAlarmEnum
.
getMsgByCode
(
typeCode
);
eventAlarmOutVO
.
setType
(
msgByCode
);
Date
endTime
=
eventAlarmPO
.
getEndTime
();
if
(
typeCode
==
1
||
typeCode
==
2
)
{
// 发生时间
Date
startTime
=
eventAlarmPO
.
getStartTime
();
String
startTimeStr
=
sdf
.
format
(
startTime
);
String
substring
=
startTimeStr
.
substring
(
11
,
16
);
eventAlarmOutVO
.
setStartTime
(
substring
);
// 时长
if
(
endTime
==
null
)
{
Date
nowTime
=
DateUtil
.
date
();
// todo 时间为演示用,待删除
Date
parse
=
sdf
.
parse
(
"2022-10-27 09:56:23"
);
nowTime
=
parse
;
long
between
=
DateUtil
.
between
(
startTime
,
nowTime
,
DateUnit
.
MINUTE
);
int
betweenInt
=
(
int
)
between
;
eventAlarmOutVO
.
setDuration
(
betweenInt
);
}
else
{
long
between
=
DateUtil
.
between
(
startTime
,
endTime
,
DateUnit
.
MINUTE
);
int
betweenInt
=
(
int
)
between
;
eventAlarmOutVO
.
setDuration
(
betweenInt
);
}
}
if
(
typeCode
==
3
||
typeCode
==
4
)
{
// 时间范围
Date
startTime
=
eventAlarmPO
.
getStartTime
();
String
startTimeStr
=
sdf
.
format
(
startTime
);
String
startTimeSubStr
=
startTimeStr
.
substring
(
0
,
16
);
// 截取到分钟
String
endTimeStr
=
sdf
.
format
(
endTime
);
String
endTimeSubStr
=
endTimeStr
.
substring
(
0
,
16
);
// 截取到分钟
eventAlarmOutVO
.
setTimeSpan
(
startTimeSubStr
+
"~"
+
endTimeSubStr
);
}
Integer
sourceCode
=
eventAlarmPO
.
getSource
();
String
sourceStr
=
EventAlarmSourceEnum
.
getMsgByCode
(
sourceCode
);
eventAlarmOutVO
.
setSource
(
sourceStr
);
eventAlarmOutVO
.
setCoordinate
(
eventAlarmPO
.
getWkt
());
eventAlarmOutVOList
.
add
(
eventAlarmOutVO
);
}
return
eventAlarmOutVOList
;
}
private
List
<
AbnormalCrossDetailVO
.
DirDataElement
>
buildDirData
(
String
crossId
)
{
List
<
AbnormalCrossDetailVO
.
DirDataElement
>
dirData
=
new
ArrayList
<>();
// 获取当前时间前后20分钟的10位时间戳
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/AbnormalCrossDetailVO.java
View file @
b46c1dce
...
...
@@ -57,8 +57,8 @@ public class AbnormalCrossDetailVO {
public
static
class
DirDataElement
{
@ApiModelProperty
(
value
=
"方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
)
private
Integer
dir
;
@ApiModelProperty
(
value
=
"时间 格式08:12
:25
"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm
:ss
"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
value
=
"时间 格式08:12"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm"
,
timezone
=
"GMT+8"
)
private
Date
time
;
@ApiModelProperty
(
value
=
"交通状态:1畅通;2缓行;3拥堵;5未知"
)
private
Integer
status
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/EventAlarmVO.java
0 → 100644
View file @
b46c1dce
package
net
.
wanji
.
opt
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"EventAlarmVO"
,
description
=
"查询事件报警返回值"
)
public
class
EventAlarmVO
{
@ApiModelProperty
(
value
=
"事件描述"
)
String
eventDesc
;
@ApiModelProperty
(
value
=
"事件类型:1事故;2拥堵;3管制;4施工"
)
String
type
;
@ApiModelProperty
(
value
=
"发生时间"
)
String
startTime
;
@ApiModelProperty
(
value
=
"时长(单位:分钟)"
)
Integer
duration
;
@ApiModelProperty
(
value
=
"时间范围"
)
String
timeSpan
;
@ApiModelProperty
(
value
=
"事件来源:事件来源:1接处警;2交管部门;3互联网"
)
String
source
;
@ApiModelProperty
(
value
=
"事件坐标:经度,纬度;经度,纬度..."
)
String
coordinate
;
}
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
View file @
b46c1dce
...
...
@@ -17,7 +17,7 @@ public class GreenwaveListVO {
private
String
id
;
@ApiModelProperty
(
value
=
"子区名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"协调方式"
)
@ApiModelProperty
(
value
=
"协调方式
:0未开启;1相位差优化;2选择方案
"
)
private
Integer
infoStatus
;
@ApiModelProperty
(
value
=
"路口状态:1畅通;2缓行;3拥堵;5未知"
)
private
Integer
realtimeStatus
;
...
...
signal-optimize-service/src/main/resources/mapper/trend/EventAlarmMapper.xml
0 → 100644
View file @
b46c1dce
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.opt.dao.mapper.trend.EventAlarmMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
type=
"net.wanji.opt.po.trend.EventAlarmPO"
id=
"BaseResultMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"eventId"
column=
"event_id"
/>
<result
property=
"eventDesc"
column=
"event_desc"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"startTime"
column=
"start_time"
/>
<result
property=
"endTime"
column=
"end_time"
/>
<result
property=
"source"
column=
"source"
/>
<result
property=
"wkt"
column=
"wkt"
/>
<result
property=
"imageUrl"
column=
"image_url"
/>
<result
property=
"gmtCreate"
column=
"gmt_create"
/>
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<select
id=
"selectByTodayTime"
resultMap=
"BaseResultMap"
>
select
id,event_id,event_desc,type,start_time,end_time,source,wkt,image_url,gmt_create,gmt_modified
from t_event_data
where to_days(#{todayTime}) = to_days(start_time)
order by start_time desc;
</select>
</mapper>
signal-control-service/src/main/java/net/wanji/web
/common/enums/EventAlarmEnum.java
→
wj-common/src/main/java/net/wanji
/common/enums/EventAlarmEnum.java
View file @
b46c1dce
package
net
.
wanji
.
web
.
common
.
enums
;
package
net
.
wanji
.
common
.
enums
;
/**
* @author Kent HAN
...
...
signal-control-service/src/main/java/net/wanji/web
/common/enums/EventAlarmSourceEnum.java
→
wj-common/src/main/java/net/wanji
/common/enums/EventAlarmSourceEnum.java
View file @
b46c1dce
package
net
.
wanji
.
web
.
common
.
enums
;
package
net
.
wanji
.
common
.
enums
;
/**
* @author Kent HAN
...
...
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