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
f99357b9
Commit
f99357b9
authored
Feb 09, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信控优化-态势监测,问题路口详情
parent
80012ddb
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
446 additions
and
49 deletions
+446
-49
PlanSendController.java
...ain/java/net/wanji/web/controller/PlanSendController.java
+1
-1
CrossConfigController.java
...et/wanji/web/controller/scheme/CrossConfigController.java
+1
-1
LightsConfigController.java
...t/wanji/web/controller/scheme/LightsConfigController.java
+1
-1
RunningPlanController.java
...et/wanji/web/controller/scheme/RunningPlanController.java
+1
-1
SchemeConfigController.java
...t/wanji/web/controller/scheme/SchemeConfigController.java
+1
-1
CrossIdAndTimeDTO.java
...ce/src/main/java/net/wanji/web/dto/CrossIdAndTimeDTO.java
+1
-1
PlanSendService.java
.../src/main/java/net/wanji/web/service/PlanSendService.java
+1
-1
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+1
-1
CrossConfigService.java
...java/net/wanji/web/service/scheme/CrossConfigService.java
+1
-1
LightsConfigService.java
...ava/net/wanji/web/service/scheme/LightsConfigService.java
+1
-1
RunningPlanService.java
...java/net/wanji/web/service/scheme/RunningPlanService.java
+1
-1
SchemeConfigService.java
...ava/net/wanji/web/service/scheme/SchemeConfigService.java
+1
-1
CrossConfigServiceImpl.java
...wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
+1
-1
LightsConfigServiceImpl.java
...anji/web/service/scheme/impl/LightsConfigServiceImpl.java
+1
-1
RunningPlanServiceImpl.java
...wanji/web/service/scheme/impl/RunningPlanServiceImpl.java
+1
-1
SchemeConfigServiceImpl.java
...anji/web/service/scheme/impl/SchemeConfigServiceImpl.java
+1
-1
TrendController.java
...c/main/java/net/wanji/opt/controller/TrendController.java
+17
-1
CrossDataRealtimeMapper.java
...t/wanji/opt/dao/mapper/trend/CrossDataRealtimeMapper.java
+3
-0
CrossDirDataHistMapper.java
...et/wanji/opt/dao/mapper/trend/CrossDirDataHistMapper.java
+18
-0
CrossTurnDataRealtimeMapper.java
...nji/opt/dao/mapper/trend/CrossTurnDataRealtimeMapper.java
+18
-0
CrossDataRealtimePO.java
...main/java/net/wanji/opt/po/trend/CrossDataRealtimePO.java
+25
-25
CrossDirDataHistPO.java
.../main/java/net/wanji/opt/po/trend/CrossDirDataHistPO.java
+63
-0
CrossTurnDataRealtimePO.java
.../java/net/wanji/opt/po/trend/CrossTurnDataRealtimePO.java
+72
-0
TrendService.java
...ice/src/main/java/net/wanji/opt/service/TrendService.java
+4
-0
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+101
-1
AbnormalCrossDetailVO.java
...src/main/java/net/wanji/opt/vo/AbnormalCrossDetailVO.java
+66
-0
AbnormalCrossListVO.java
...e/src/main/java/net/wanji/opt/vo/AbnormalCrossListVO.java
+1
-1
GreenwaveListVO.java
...rvice/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
+3
-3
CrossDataRealtimeMapper.xml
...c/main/resources/mapper/trend/CrossDataRealtimeMapper.xml
+10
-0
CrossDirDataHist.xml
...vice/src/main/resources/mapper/trend/CrossDirDataHist.xml
+15
-0
CrossTurnDataRealtimeMapper.xml
...in/resources/mapper/trend/CrossTurnDataRealtimeMapper.xml
+12
-0
CrossIdDTO.java
wj-common/src/main/java/net/wanji/common/dto/CrossIdDTO.java
+1
-1
User.java
...java/net/wanji/databus/entity/identity/identity/User.java
+1
-1
No files found.
signal-control-service/src/main/java/net/wanji/web/controller/PlanSendController.java
View file @
f99357b9
...
@@ -7,7 +7,7 @@ import io.swagger.annotations.ApiResponses;
...
@@ -7,7 +7,7 @@ import io.swagger.annotations.ApiResponses;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
import
net.wanji.web.dto.SchemeIdDTO
;
import
net.wanji.web.dto.SchemeIdDTO
;
...
...
signal-control-service/src/main/java/net/wanji/web/controller/scheme/CrossConfigController.java
View file @
f99357b9
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveLaneInfoDTO
;
import
net.wanji.web.dto.SaveLaneInfoDTO
;
import
net.wanji.web.service.scheme.impl.CrossConfigServiceImpl
;
import
net.wanji.web.service.scheme.impl.CrossConfigServiceImpl
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
signal-control-service/src/main/java/net/wanji/web/controller/scheme/LightsConfigController.java
View file @
f99357b9
...
@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
import
net.wanji.web.service.scheme.impl.LightsConfigServiceImpl
;
import
net.wanji.web.service.scheme.impl.LightsConfigServiceImpl
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
signal-control-service/src/main/java/net/wanji/web/controller/scheme/RunningPlanController.java
View file @
f99357b9
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.service.scheme.impl.RunningPlanServiceImpl
;
import
net.wanji.web.service.scheme.impl.RunningPlanServiceImpl
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
signal-control-service/src/main/java/net/wanji/web/controller/scheme/SchemeConfigController.java
View file @
f99357b9
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
...
signal-control-service/src/main/java/net/wanji/web/dto/CrossIdAndTimeDTO.java
View file @
f99357b9
...
@@ -16,6 +16,6 @@ public class CrossIdAndTimeDTO {
...
@@ -16,6 +16,6 @@ public class CrossIdAndTimeDTO {
@ApiModelProperty
(
value
=
"路口ID,如:c7e7b1f352dd4acab4a60088eb391cca"
,
required
=
true
)
@ApiModelProperty
(
value
=
"路口ID,如:c7e7b1f352dd4acab4a60088eb391cca"
,
required
=
true
)
private
String
crossId
;
private
String
crossId
;
@ApiModelProperty
(
value
=
"当前日期时间 yyyy-MM-dd HH:mm:ss"
,
required
=
true
)
@ApiModelProperty
(
value
=
"当前日期时间 yyyy-MM-dd HH:mm:ss"
,
required
=
true
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
datetime
;
private
Date
datetime
;
}
}
signal-control-service/src/main/java/net/wanji/web/service/PlanSendService.java
View file @
f99357b9
...
@@ -2,7 +2,7 @@ package net.wanji.web.service;
...
@@ -2,7 +2,7 @@ package net.wanji.web.service;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
f99357b9
...
@@ -14,7 +14,7 @@ import net.wanji.feign.pojo.vo.SchemeSendVO;
...
@@ -14,7 +14,7 @@ import net.wanji.feign.pojo.vo.SchemeSendVO;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.CrossIdAndPhaseIdsDTO
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.web.dto.CrossIdAndTimeDTO
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
import
net.wanji.web.dto.ScheduleIdDTO
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/CrossConfigService.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
;
package
net
.
wanji
.
web
.
service
.
scheme
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveLaneInfoDTO
;
import
net.wanji.web.dto.SaveLaneInfoDTO
;
/**
/**
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/LightsConfigService.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
;
package
net
.
wanji
.
web
.
service
.
scheme
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
/**
/**
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/RunningPlanService.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
;
package
net
.
wanji
.
web
.
service
.
scheme
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
java.text.ParseException
;
import
java.text.ParseException
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/SchemeConfigService.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
;
package
net
.
wanji
.
web
.
service
.
scheme
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
View file @
f99357b9
...
@@ -3,7 +3,7 @@ package net.wanji.web.service.scheme.impl;
...
@@ -3,7 +3,7 @@ package net.wanji.web.service.scheme.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
net.wanji.web.common.enums.LightsAddressEnum
;
import
net.wanji.web.common.enums.LightsAddressEnum
;
import
net.wanji.web.common.exception.LightLaneConflictException
;
import
net.wanji.web.common.exception.LightLaneConflictException
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.DirListElement
;
import
net.wanji.web.dto.DirListElement
;
import
net.wanji.web.dto.LaneListElement
;
import
net.wanji.web.dto.LaneListElement
;
import
net.wanji.web.dto.LedConfigListElement
;
import
net.wanji.web.dto.LedConfigListElement
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/LightsConfigServiceImpl.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
import
net.wanji.web.dto.SaveLightsInfoDTO
;
import
net.wanji.web.service.scheme.LightsConfigService
;
import
net.wanji.web.service.scheme.LightsConfigService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/RunningPlanServiceImpl.java
View file @
f99357b9
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.dto.RunningPlanDTO
;
import
net.wanji.web.mapper.scheme.CrossPlanMapper
;
import
net.wanji.web.mapper.scheme.CrossPlanMapper
;
import
net.wanji.web.mapper.scheme.CrossSchedulesMapper
;
import
net.wanji.web.mapper.scheme.CrossSchedulesMapper
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/SchemeConfigServiceImpl.java
View file @
f99357b9
...
@@ -3,7 +3,7 @@ package net.wanji.web.service.scheme.impl;
...
@@ -3,7 +3,7 @@ package net.wanji.web.service.scheme.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.
web
.dto.CrossIdDTO
;
import
net.wanji.
common
.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/TrendController.java
View file @
f99357b9
...
@@ -4,10 +4,12 @@ import io.swagger.annotations.Api;
...
@@ -4,10 +4,12 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.service.impl.TrendServiceImpl
;
import
net.wanji.opt.service.impl.TrendServiceImpl
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
net.wanji.opt.vo.GreenwaveStats
;
...
@@ -61,7 +63,7 @@ public class TrendController {
...
@@ -61,7 +63,7 @@ public class TrendController {
@PostMapping
(
value
=
"/abnormalCrossList"
,
@PostMapping
(
value
=
"/abnormalCrossList"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
Greenwave
VO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AbnormalCross
VO
.
class
),
})
})
public
JsonViewObject
abnormalCrossList
(
@RequestBody
AbnormalCrossListDTO
abnormalCrossListDTO
)
{
public
JsonViewObject
abnormalCrossList
(
@RequestBody
AbnormalCrossListDTO
abnormalCrossListDTO
)
{
AbnormalCrossVO
abnormalCrossVO
=
trendService
.
abnormalCrossList
(
abnormalCrossListDTO
);
AbnormalCrossVO
abnormalCrossVO
=
trendService
.
abnormalCrossList
(
abnormalCrossListDTO
);
...
@@ -69,4 +71,18 @@ public class TrendController {
...
@@ -69,4 +71,18 @@ public class TrendController {
return
jsonViewObject
.
success
(
abnormalCrossVO
);
return
jsonViewObject
.
success
(
abnormalCrossVO
);
}
}
@ApiOperation
(
value
=
"问题路口详情"
,
notes
=
"问题路口详情"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/abnormalCrossDetail"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AbnormalCrossDetailVO
.
class
),
})
public
JsonViewObject
abnormalCrossDetail
(
@RequestBody
CrossIdDTO
crossIdDTO
)
{
AbnormalCrossDetailVO
abnormalCrossDetailVO
=
trendService
.
abnormalCrossDetail
(
crossIdDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
abnormalCrossDetailVO
);
}
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/trend/CrossDataRealtimeMapper.java
View file @
f99357b9
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
import
net.wanji.opt.po.trend.CrossDataRealtimePO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -14,4 +15,6 @@ import java.util.List;
...
@@ -14,4 +15,6 @@ import java.util.List;
@Repository
@Repository
public
interface
CrossDataRealtimeMapper
{
public
interface
CrossDataRealtimeMapper
{
List
<
AbnormalCrossListVO
>
selectAbnormalCross
(
Integer
status
,
String
name
,
Integer
type
);
List
<
AbnormalCrossListVO
>
selectAbnormalCross
(
Integer
status
,
String
name
,
Integer
type
);
CrossDataRealtimePO
selectById
(
String
crossId
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/trend/CrossDirDataHistMapper.java
0 → 100644
View file @
f99357b9
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
import
net.wanji.opt.po.trend.CrossDirDataHistPO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 路口方向历史数据
*
* @author Kent HAN
* @date 2023/2/8 9:22
*/
@Repository
public
interface
CrossDirDataHistMapper
{
List
<
CrossDirDataHistPO
>
selectByCrossIdAndTimestamp
(
String
crossId
,
long
preSeconds
,
long
afterSeconds
);
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/trend/CrossTurnDataRealtimeMapper.java
0 → 100644
View file @
f99357b9
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
import
net.wanji.opt.po.trend.CrossTurnDataRealtimePO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 路口转向实时数据
*
* @author Kent HAN
* @date 2023/2/8 9:22
*/
@Repository
public
interface
CrossTurnDataRealtimeMapper
{
List
<
CrossTurnDataRealtimePO
>
selectByCrossId
(
String
crossId
);
}
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/CrossDataRealtimePO.java
View file @
f99357b9
...
@@ -13,78 +13,78 @@ import java.util.Date;
...
@@ -13,78 +13,78 @@ import java.util.Date;
@Data
@Data
public
class
CrossDataRealtimePO
{
public
class
CrossDataRealtimePO
{
/** 路口编号 */
/** 路口编号 */
@ApiModelProperty
(
nam
e
=
"路口编号"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"路口编号"
,
notes
=
""
)
private
String
crossId
;
private
String
crossId
;
/** 路口状态:0正常;1失衡;2拥堵;3溢出;4死锁 */
/** 路口状态:0正常;1失衡;2拥堵;3溢出;4死锁 */
@ApiModelProperty
(
nam
e
=
"路口状态:0正常;1失衡;2拥堵;3溢出;4死锁"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"路口状态:0正常;1失衡;2拥堵;3溢出;4死锁"
,
notes
=
""
)
private
Integer
status
;
private
Integer
status
;
/** 拥堵类型:1常规;2异常 */
/** 拥堵类型:1常规;2异常 */
@ApiModelProperty
(
nam
e
=
"拥堵类型:1常规;2异常"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"拥堵类型:1常规;2异常"
,
notes
=
""
)
private
Integer
type
;
private
Integer
type
;
/** 交通指数(1~10) */
/** 交通指数(1~10) */
@ApiModelProperty
(
nam
e
=
"交通指数(1~10)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"交通指数(1~10)"
,
notes
=
""
)
private
Double
trafficIndex
;
private
Double
trafficIndex
;
/** 开始时间:yyyy-MM-dd HH;mm:ss */
/** 开始时间:yyyy-MM-dd HH;mm:ss */
@ApiModelProperty
(
nam
e
=
"开始时间:yyyy-MM-dd HH"
,
notes
=
"mm:ss"
)
@ApiModelProperty
(
valu
e
=
"开始时间:yyyy-MM-dd HH"
,
notes
=
"mm:ss"
)
private
Date
startTime
;
private
Date
startTime
;
/** 持续时间(单位:分钟) */
/** 持续时间(单位:分钟) */
@ApiModelProperty
(
nam
e
=
"持续时间(单位:分钟)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"持续时间(单位:分钟)"
,
notes
=
""
)
private
Integer
duration
;
private
Integer
duration
;
/** 是否失衡:0否;1是 */
/** 是否失衡:0否;1是 */
@ApiModelProperty
(
nam
e
=
"是否失衡:0否;1是"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"是否失衡:0否;1是"
,
notes
=
""
)
private
Integer
isUnbalance
;
private
Integer
isUnbalance
;
/** 是否溢出:0否;1是 */
/** 是否溢出:0否;1是 */
@ApiModelProperty
(
nam
e
=
"是否溢出:0否;1是"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"是否溢出:0否;1是"
,
notes
=
""
)
private
Integer
isSpillover
;
private
Integer
isSpillover
;
/** 是否拥堵:0否;1是 */
/** 是否拥堵:0否;1是 */
@ApiModelProperty
(
nam
e
=
"是否拥堵:0否;1是"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"是否拥堵:0否;1是"
,
notes
=
""
)
private
Integer
isCongestion
;
private
Integer
isCongestion
;
/** 失衡指数 */
/** 失衡指数 */
@ApiModelProperty
(
nam
e
=
"失衡指数"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"失衡指数"
,
notes
=
""
)
private
Double
unbalanceIndex
;
private
Double
unbalanceIndex
;
/** 溢出指数 */
/** 溢出指数 */
@ApiModelProperty
(
nam
e
=
"溢出指数"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"溢出指数"
,
notes
=
""
)
private
Double
spilloverIndex
;
private
Double
spilloverIndex
;
/** 拥堵指数 */
/** 拥堵指数 */
@ApiModelProperty
(
nam
e
=
"拥堵指数"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"拥堵指数"
,
notes
=
""
)
private
Double
congestionIndex
;
private
Double
congestionIndex
;
/** 路口失衡方向:1,2,3... */
/** 路口失衡方向:1,2,3... */
@ApiModelProperty
(
nam
e
=
"路口失衡方向:1,2,3..."
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"路口失衡方向:1,2,3..."
,
notes
=
""
)
private
String
unbalanceDirs
;
private
String
unbalanceDirs
;
/** 路口溢出方向:1,2,3... */
/** 路口溢出方向:1,2,3... */
@ApiModelProperty
(
nam
e
=
"路口溢出方向:1,2,3..."
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"路口溢出方向:1,2,3..."
,
notes
=
""
)
private
String
spilloverDirs
;
private
String
spilloverDirs
;
/** 路口拥堵方向:1,2,3... */
/** 路口拥堵方向:1,2,3... */
@ApiModelProperty
(
nam
e
=
"路口拥堵方向:1,2,3..."
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"路口拥堵方向:1,2,3..."
,
notes
=
""
)
private
String
congestionDirs
;
private
String
congestionDirs
;
/** 交通流量(辆) */
/** 交通流量(辆) */
@ApiModelProperty
(
nam
e
=
"交通流量(辆)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"交通流量(辆)"
,
notes
=
""
)
private
Integer
flow
;
private
Integer
flow
;
/** 交通流率/h */
/** 交通流率/h */
@ApiModelProperty
(
nam
e
=
"交通流率/h"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"交通流率/h"
,
notes
=
""
)
private
Double
flowRate
;
private
Double
flowRate
;
/** 平均速度(km/h) */
/** 平均速度(km/h) */
@ApiModelProperty
(
nam
e
=
"平均速度(km/h)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
private
Double
speed
;
/** 最大排队(米) */
/** 最大排队(米) */
@ApiModelProperty
(
nam
e
=
"最大排队(米)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"最大排队(米)"
,
notes
=
""
)
private
Double
queueLength
;
private
Double
queueLength
;
/** 停车次数(次) */
/** 停车次数(次) */
@ApiModelProperty
(
nam
e
=
"停车次数(次)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"停车次数(次)"
,
notes
=
""
)
private
Double
stopTimes
;
private
Double
stopTimes
;
/** 延误时间(秒) */
/** 延误时间(秒) */
@ApiModelProperty
(
nam
e
=
"延误时间(秒)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
private
Integer
delayTime
;
/** 饱和度 */
/** 饱和度 */
@ApiModelProperty
(
nam
e
=
"饱和度"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"饱和度"
,
notes
=
""
)
private
Double
sturation
;
private
Double
sturation
;
/** 采集时间(10位时间戳) */
/** 采集时间(10位时间戳) */
@ApiModelProperty
(
nam
e
=
"采集时间(10位时间戳)"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Integer
batchTime
;
private
Integer
batchTime
;
/** 创建时间 */
/** 创建时间 */
@ApiModelProperty
(
nam
e
=
"创建时间"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
private
Date
gmtCreate
;
/** 修改时间 */
/** 修改时间 */
@ApiModelProperty
(
nam
e
=
"修改时间"
,
notes
=
""
)
@ApiModelProperty
(
valu
e
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
private
Date
gmtModified
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/CrossDirDataHistPO.java
0 → 100644
View file @
f99357b9
package
net
.
wanji
.
opt
.
po
.
trend
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author hfx
* @date 2023/1/10 16:36
* @desc CrossDataRealtimePO
*/
@Data
public
class
CrossDirDataHistPO
{
/** 路口方向ID(路口ID_方向_进出口_主辅路序号) */
@ApiModelProperty
(
name
=
"路口方向ID(路口ID_方向_进出口_主辅路序号)"
,
notes
=
""
)
private
String
id
;
/** 路口方向类型:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty
(
name
=
"路口方向类型:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
private
Integer
dirType
;
/** 进出口类型:1进口;2出口 */
@ApiModelProperty
(
name
=
"进出口类型:1进口;2出口"
,
notes
=
""
)
private
Integer
inOutType
;
/** 路口ID */
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
/** 路段长度 */
@ApiModelProperty
(
name
=
"路段长度"
,
notes
=
""
)
private
Double
length
;
/** 交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知 */
@ApiModelProperty
(
name
=
"交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知"
,
notes
=
""
)
private
Integer
status
;
/** 交通指数 */
@ApiModelProperty
(
name
=
"交通指数"
,
notes
=
""
)
private
Double
trafficIndex
;
/** 交通流量(辆) */
@ApiModelProperty
(
name
=
"交通流量(辆)"
,
notes
=
""
)
private
Integer
flow
;
/** 平均速度(km/h) */
@ApiModelProperty
(
name
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
/** 排队长度(米) */
@ApiModelProperty
(
name
=
"排队长度(米)"
,
notes
=
""
)
private
Double
queueLength
;
/** 停车次数(次) */
@ApiModelProperty
(
name
=
"停车次数(次)"
,
notes
=
""
)
private
Double
stopTimes
;
/** 延误时间(秒) */
@ApiModelProperty
(
name
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
/** 饱和度 */
@ApiModelProperty
(
name
=
"饱和度"
,
notes
=
""
)
private
Double
sturation
;
/** 采集时间(10位时间戳) */
@ApiModelProperty
(
name
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Long
batchTime
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
signal-optimize-service/src/main/java/net/wanji/opt/po/trend/CrossTurnDataRealtimePO.java
0 → 100644
View file @
f99357b9
package
net
.
wanji
.
opt
.
po
.
trend
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author hfx
* @date 2023/1/10 16:36
* @desc CrossDataRealtimePO
*/
@Data
public
class
CrossTurnDataRealtimePO
{
/** 转向ID(路口ID_驶入方向_转向类型) */
@ApiModelProperty
(
name
=
"转向ID(路口ID_驶入方向_转向类型)"
,
notes
=
""
)
private
String
id
;
/** 转向类型:u掉头;l左转;s直行;r右转; */
@ApiModelProperty
(
name
=
"转向类型:u掉头;l左转;s直行;r右转;"
,
notes
=
""
)
private
String
turnType
;
/** 驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty
(
name
=
"驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
private
Integer
inDir
;
/** 驶出方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty
(
name
=
"驶出方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
private
Integer
outDir
;
/** 路口ID */
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
/** 交通流量(辆) */
@ApiModelProperty
(
name
=
"交通流量(辆)"
,
notes
=
""
)
private
Integer
flow
;
/** 平均速度(km/h) */
@ApiModelProperty
(
name
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
/** 驶入速度(km/h) */
@ApiModelProperty
(
name
=
"驶入速度(km/h)"
,
notes
=
""
)
private
Double
inSpeed
;
/** 驶出速度(km/h) */
@ApiModelProperty
(
name
=
"驶出速度(km/h)"
,
notes
=
""
)
private
Double
outSpeed
;
/** 排队长度(米) */
@ApiModelProperty
(
name
=
"排队长度(米)"
,
notes
=
""
)
private
Double
queueLength
;
/** 停车次数(次) */
@ApiModelProperty
(
name
=
"停车次数(次)"
,
notes
=
""
)
private
Double
stopTimes
;
/** 延误时间(秒) */
@ApiModelProperty
(
name
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
/** 饱和度 */
@ApiModelProperty
(
name
=
"饱和度"
,
notes
=
""
)
private
Double
sturation
;
/** 车头间距(米) */
@ApiModelProperty
(
name
=
"车头间距(米)"
,
notes
=
""
)
private
Double
vehheadDist
;
/** 车头时距(秒) */
@ApiModelProperty
(
name
=
"车头时距(秒)"
,
notes
=
""
)
private
Double
vehheadTime
;
/** 可信度:0~1 */
@ApiModelProperty
(
name
=
"可信度:0~1"
,
notes
=
""
)
private
Double
quality
;
/** 采集时间(10位时间戳) */
@ApiModelProperty
(
name
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Integer
batchTime
;
/** 创建时间 */
@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 @
f99357b9
package
net
.
wanji
.
opt
.
service
;
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
net.wanji.opt.vo.GreenwaveStats
;
...
@@ -19,4 +21,6 @@ public interface TrendService {
...
@@ -19,4 +21,6 @@ public interface TrendService {
GreenwaveStats
buildGreenwaveStats
(
List
<
GreenwaveListVO
>
greenwaveListVOList
);
GreenwaveStats
buildGreenwaveStats
(
List
<
GreenwaveListVO
>
greenwaveListVOList
);
AbnormalCrossVO
abnormalCrossList
(
AbnormalCrossListDTO
abnormalCrossListDTO
);
AbnormalCrossVO
abnormalCrossList
(
AbnormalCrossListDTO
abnormalCrossListDTO
);
AbnormalCrossDetailVO
abnormalCrossDetail
(
CrossIdDTO
crossIdDTO
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
f99357b9
...
@@ -3,14 +3,21 @@ package net.wanji.opt.service.impl;
...
@@ -3,14 +3,21 @@ package net.wanji.opt.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
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.GreenwaveInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.po.base.CrossInfoPO
;
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.service.TrendService
;
import
net.wanji.opt.service.TrendService
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
net.wanji.opt.vo.AbnormalCrossListVO
;
import
net.wanji.opt.vo.AbnormalCrossStats
;
import
net.wanji.opt.vo.AbnormalCrossStats
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
...
@@ -21,6 +28,8 @@ import org.springframework.stereotype.Service;
...
@@ -21,6 +28,8 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* @author Kent HAN
* @author Kent HAN
...
@@ -31,11 +40,15 @@ public class TrendServiceImpl implements TrendService {
...
@@ -31,11 +40,15 @@ public class TrendServiceImpl implements TrendService {
private
final
GreenwaveInfoMapper
greenwaveInfoMapper
;
private
final
GreenwaveInfoMapper
greenwaveInfoMapper
;
private
final
CrossInfoMapper
crossInfoMapper
;
private
final
CrossInfoMapper
crossInfoMapper
;
private
final
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
private
final
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
private
final
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
)
{
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossTurnDataRealtimeMapper
=
crossTurnDataRealtimeMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
}
}
@Override
@Override
...
@@ -110,6 +123,93 @@ public class TrendServiceImpl implements TrendService {
...
@@ -110,6 +123,93 @@ public class TrendServiceImpl implements TrendService {
return
abnormalCrossVO
;
return
abnormalCrossVO
;
}
}
@Override
public
AbnormalCrossDetailVO
abnormalCrossDetail
(
CrossIdDTO
crossIdDTO
)
{
String
crossId
=
crossIdDTO
.
getCrossId
();
AbnormalCrossDetailVO
abnormalCrossDetailVO
=
new
AbnormalCrossDetailVO
();
// 构造路口实时数据
CrossDataRealtimePO
crossDataRealtimePO
=
crossDataRealtimeMapper
.
selectById
(
crossId
);
abnormalCrossDetailVO
.
setCrossStatus
(
crossDataRealtimePO
.
getStatus
());
abnormalCrossDetailVO
.
setCrossQueueLength
(
crossDataRealtimePO
.
getQueueLength
());
abnormalCrossDetailVO
.
setCrossFlowRate
(
crossDataRealtimePO
.
getFlowRate
());
abnormalCrossDetailVO
.
setCrossStopTimes
(
crossDataRealtimePO
.
getStopTimes
());
// 构造转向实时数据
List
<
AbnormalCrossDetailVO
.
TurnDataElement
>
turnData
=
buildTurnData
(
crossId
);
abnormalCrossDetailVO
.
setTurnData
(
turnData
);
// 构造方向历史数据
List
<
AbnormalCrossDetailVO
.
DirDataElement
>
dirData
=
buildDirData
(
crossId
);
abnormalCrossDetailVO
.
setDirData
(
dirData
);
return
abnormalCrossDetailVO
;
}
private
List
<
AbnormalCrossDetailVO
.
DirDataElement
>
buildDirData
(
String
crossId
)
{
List
<
AbnormalCrossDetailVO
.
DirDataElement
>
dirData
=
new
ArrayList
<>();
// 获取当前时间前后20分钟的10位时间戳
long
currentSeconds
=
DateUtil
.
currentSeconds
();
long
preSeconds
=
currentSeconds
-
20
*
60
;
long
afterSeconds
=
currentSeconds
+
20
*
60
;
List
<
CrossDirDataHistPO
>
crossDirDataHistPOList
=
crossDirDataHistMapper
.
selectByCrossIdAndTimestamp
(
crossId
,
preSeconds
,
afterSeconds
);
for
(
CrossDirDataHistPO
crossDirDataHistPO
:
crossDirDataHistPOList
)
{
AbnormalCrossDetailVO
.
DirDataElement
dirDataElement
=
new
AbnormalCrossDetailVO
.
DirDataElement
();
dirDataElement
.
setDir
(
crossDirDataHistPO
.
getDirType
());
// 获取采集时间
Long
batchTime
=
crossDirDataHistPO
.
getBatchTime
();
Date
date
=
DateUtil
.
date
(
batchTime
*
1000
);
dirDataElement
.
setTime
(
date
);
// 转换状态,3、4都算拥堵
Integer
status
=
crossDirDataHistPO
.
getStatus
();
if
(
status
==
4
)
{
status
=
3
;
}
dirDataElement
.
setStatus
(
status
);
dirData
.
add
(
dirDataElement
);
}
return
dirData
;
}
private
List
<
AbnormalCrossDetailVO
.
TurnDataElement
>
buildTurnData
(
String
crossId
)
{
List
<
AbnormalCrossDetailVO
.
TurnDataElement
>
turnData
=
new
ArrayList
<>();
List
<
CrossTurnDataRealtimePO
>
crossTurnDataRealtimePOList
=
crossTurnDataRealtimeMapper
.
selectByCrossId
(
crossId
);
Map
<
Integer
,
List
<
CrossTurnDataRealtimePO
>>
collect
=
crossTurnDataRealtimePOList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
CrossTurnDataRealtimePO:
:
getInDir
));
for
(
Map
.
Entry
<
Integer
,
List
<
CrossTurnDataRealtimePO
>>
entry
:
collect
.
entrySet
())
{
AbnormalCrossDetailVO
.
TurnDataElement
turnDataElement
=
new
AbnormalCrossDetailVO
.
TurnDataElement
();
Integer
dir
=
entry
.
getKey
();
turnDataElement
.
setDir
(
dir
);
// 构造转向列表
List
<
CrossTurnDataRealtimePO
>
subList
=
entry
.
getValue
();
List
<
AbnormalCrossDetailVO
.
TurnDataElement
.
TurnListElement
>
turnList
=
buildTurnList
(
subList
);
turnDataElement
.
setTurnList
(
turnList
);
turnData
.
add
(
turnDataElement
);
}
return
turnData
;
}
private
List
<
AbnormalCrossDetailVO
.
TurnDataElement
.
TurnListElement
>
buildTurnList
(
List
<
CrossTurnDataRealtimePO
>
subList
)
{
List
<
AbnormalCrossDetailVO
.
TurnDataElement
.
TurnListElement
>
turnList
=
new
ArrayList
<>();
for
(
CrossTurnDataRealtimePO
crossTurnDataRealtimePO
:
subList
)
{
AbnormalCrossDetailVO
.
TurnDataElement
.
TurnListElement
turnListElement
=
new
AbnormalCrossDetailVO
.
TurnDataElement
.
TurnListElement
();
turnListElement
.
setTurn
(
crossTurnDataRealtimePO
.
getTurnType
());
turnListElement
.
setTurnQueueLength
(
crossTurnDataRealtimePO
.
getQueueLength
());
turnListElement
.
setTurnStopTimes
(
crossTurnDataRealtimePO
.
getStopTimes
());
turnListElement
.
setFlow
(
crossTurnDataRealtimePO
.
getFlow
());
turnList
.
add
(
turnListElement
);
}
return
turnList
;
}
private
static
void
buildAbnormalCrossStats
(
AbnormalCrossVO
abnormalCrossVO
,
private
static
void
buildAbnormalCrossStats
(
AbnormalCrossVO
abnormalCrossVO
,
List
<
AbnormalCrossListVO
>
abnormalCrossListVOList
)
{
List
<
AbnormalCrossListVO
>
abnormalCrossListVOList
)
{
AbnormalCrossStats
abnormalCrossStats
=
new
AbnormalCrossStats
();
AbnormalCrossStats
abnormalCrossStats
=
new
AbnormalCrossStats
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/AbnormalCrossDetailVO.java
0 → 100644
View file @
f99357b9
package
net
.
wanji
.
opt
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"AbnormalCrossListVO"
,
description
=
"问题路口详情"
)
public
class
AbnormalCrossDetailVO
{
@ApiModelProperty
(
value
=
"路口状态:1失衡;2拥堵;3溢出"
)
private
Integer
crossStatus
;
@ApiModelProperty
(
value
=
"最大排队"
)
private
Double
crossQueueLength
;
@ApiModelProperty
(
value
=
"流率"
)
private
Double
crossFlowRate
;
@ApiModelProperty
(
value
=
"平均停车次数"
)
private
Double
crossStopTimes
;
@ApiModelProperty
(
value
=
"转向实时数据"
)
private
List
<
TurnDataElement
>
turnData
;
@ApiModelProperty
(
value
=
"方向实时数据"
)
private
List
<
DirDataElement
>
dirData
;
@NoArgsConstructor
@Data
public
static
class
TurnDataElement
{
@ApiModelProperty
(
value
=
"方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
)
private
Integer
dir
;
@ApiModelProperty
(
value
=
"转向列表"
)
private
List
<
TurnListElement
>
turnList
;
@NoArgsConstructor
@Data
public
static
class
TurnListElement
{
@ApiModelProperty
(
value
=
"转向:u掉头;l左转;s直行;r右转"
)
private
String
turn
;
@ApiModelProperty
(
value
=
"转向排队长度"
)
private
Double
turnQueueLength
;
@ApiModelProperty
(
value
=
"转向平均停车次数"
)
private
Double
turnStopTimes
;
@ApiModelProperty
(
value
=
"转向流率 /5min"
)
private
Integer
flow
;
}
}
@NoArgsConstructor
@Data
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"
)
private
Date
time
;
@ApiModelProperty
(
value
=
"交通状态:1畅通;2缓行;3拥堵;5未知"
)
private
Integer
status
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/vo/AbnormalCrossListVO.java
View file @
f99357b9
...
@@ -27,7 +27,7 @@ public class AbnormalCrossListVO {
...
@@ -27,7 +27,7 @@ public class AbnormalCrossListVO {
@ApiModelProperty
(
value
=
"路口状态 1失衡 2拥堵 3溢出"
)
@ApiModelProperty
(
value
=
"路口状态 1失衡 2拥堵 3溢出"
)
private
Integer
realtimeStatus
;
private
Integer
realtimeStatus
;
@ApiModelProperty
(
value
=
"开始时间 格式 08:20:23"
)
@ApiModelProperty
(
value
=
"开始时间 格式 08:20:23"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
private
Date
startTime
;
@ApiModelProperty
(
value
=
"持续时长 分钟"
)
@ApiModelProperty
(
value
=
"持续时长 分钟"
)
private
Long
duration
;
private
Long
duration
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
View file @
f99357b9
...
@@ -19,15 +19,15 @@ public class GreenwaveListVO {
...
@@ -19,15 +19,15 @@ public class GreenwaveListVO {
private
String
name
;
private
String
name
;
@ApiModelProperty
(
value
=
"协调方式"
)
@ApiModelProperty
(
value
=
"协调方式"
)
private
Integer
infoStatus
;
private
Integer
infoStatus
;
@ApiModelProperty
(
value
=
"路口状态:1畅通;2缓行;3拥堵"
)
@ApiModelProperty
(
value
=
"路口状态:1畅通;2缓行;3拥堵
;5未知
"
)
private
Integer
realtimeStatus
;
private
Integer
realtimeStatus
;
@ApiModelProperty
(
value
=
"拥堵指数"
)
@ApiModelProperty
(
value
=
"拥堵指数"
)
private
Double
trafficIndex
;
private
Double
trafficIndex
;
@ApiModelProperty
(
value
=
"开始时间 格式 08:20:23"
)
@ApiModelProperty
(
value
=
"开始时间 格式 08:20:23"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
private
Date
startTime
;
@ApiModelProperty
(
value
=
"结束时间 格式 08:20:23"
)
@ApiModelProperty
(
value
=
"结束时间 格式 08:20:23"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
private
Date
endTime
;
@ApiModelProperty
(
value
=
"持续时长 分钟"
)
@ApiModelProperty
(
value
=
"持续时长 分钟"
)
private
Long
duration
;
private
Long
duration
;
...
...
signal-optimize-service/src/main/resources/mapper/trend/CrossDataRealtimeMapper.xml
View file @
f99357b9
...
@@ -21,7 +21,17 @@
...
@@ -21,7 +21,17 @@
<if
test=
"type != null"
>
<if
test=
"type != null"
>
and t1.type = #{type}
and t1.type = #{type}
</if>
</if>
<if
test=
"status == null"
>
and t1.status in (1, 2, 3)
</if>
</where>
</where>
</select>
</select>
<select
id=
"selectById"
resultType=
"net.wanji.opt.po.trend.CrossDataRealtimePO"
>
select
cross_id,status,type,traffic_index,start_time,duration,is_unbalance,is_spillover,is_congestion,unbalance_index,spillover_index,congestion_index,unbalance_dirs,spillover_dirs,congestion_dirs,flow,flow_rate,speed,queue_length,stop_times,delay_time,sturation,batch_time,gmt_create,gmt_modified
from t_cross_data_realtime
where cross_id = #{crossId}
</select>
</mapper>
</mapper>
signal-optimize-service/src/main/resources/mapper/trend/CrossDirDataHist.xml
0 → 100644
View file @
f99357b9
<?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.CrossDirDataHistMapper"
>
<select
id=
"selectByCrossIdAndTimestamp"
resultType=
"net.wanji.opt.po.trend.CrossDirDataHistPO"
>
select
id,dir_type,in_out_type,cross_id,length,status,traffic_index,flow,speed,queue_length,stop_times,delay_time,sturation,batch_time,gmt_create,gmt_modified
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type = 1
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
and batch_time
<![CDATA[ <= ]]>
#{afterSeconds}
order by batch_time
</select>
</mapper>
signal-optimize-service/src/main/resources/mapper/trend/CrossTurnDataRealtimeMapper.xml
0 → 100644
View file @
f99357b9
<?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.CrossTurnDataRealtimeMapper"
>
<select
id=
"selectByCrossId"
resultType=
"net.wanji.opt.po.trend.CrossTurnDataRealtimePO"
>
select
id,turn_type,in_dir,out_dir,cross_id,flow,speed,in_speed,out_speed,queue_length,stop_times,delay_time,sturation,vehhead_dist,vehhead_time,quality,batch_time,gmt_create,gmt_modified
from t_cross_turn_data_realtime
where cross_id = #{crossId}
</select>
</mapper>
signal-control-service/src/main/java/net/wanji/web
/dto/CrossIdDTO.java
→
wj-common/src/main/java/net/wanji/common
/dto/CrossIdDTO.java
View file @
f99357b9
package
net
.
wanji
.
web
.
dto
;
package
net
.
wanji
.
common
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
...
wj-databus/src/main/java/net/wanji/databus/entity/identity/identity/User.java
View file @
f99357b9
...
@@ -48,7 +48,7 @@ public class User extends TrackableEntity {
...
@@ -48,7 +48,7 @@ public class User extends TrackableEntity {
private
String
phone
;
private
String
phone
;
@ApiModelProperty
(
value
=
"用户生日"
)
@ApiModelProperty
(
value
=
"用户生日"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
birthday
;
private
Date
birthday
;
@ApiModelProperty
(
value
=
"邮箱"
)
@ApiModelProperty
(
value
=
"邮箱"
)
...
...
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