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
565e1ce7
Commit
565e1ce7
authored
Feb 07, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 态势检测-路口列表手动控制优化
parent
cf32f8d8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
70 additions
and
17 deletions
+70
-17
SituationDetectionController.java
...et/wanji/web/controller/SituationDetectionController.java
+3
-3
SignalOperationModeDTO.java
...c/main/java/net/wanji/web/dto/SignalOperationModeDTO.java
+28
-0
SituationDetectionService.java
...java/net/wanji/web/service/SituationDetectionService.java
+2
-2
SituationDetectionServiceImpl.java
...wanji/web/service/impl/SituationDetectionServiceImpl.java
+37
-12
No files found.
signal-control-service/src/main/java/net/wanji/web/controller/SituationDetectionController.java
View file @
565e1ce7
...
@@ -3,7 +3,7 @@ package net.wanji.web.controller;
...
@@ -3,7 +3,7 @@ package net.wanji.web.controller;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.feign.pojo.result.JsonViewObject
;
import
net.wanji.web.
entity.TCrossControlHist
;
import
net.wanji.web.
dto.SignalOperationModeDTO
;
import
net.wanji.web.entity.TDeviceStatusLog
;
import
net.wanji.web.entity.TDeviceStatusLog
;
import
net.wanji.web.po.AreaTreePO
;
import
net.wanji.web.po.AreaTreePO
;
import
net.wanji.web.service.SituationDetectionService
;
import
net.wanji.web.service.SituationDetectionService
;
...
@@ -205,8 +205,8 @@ public class SituationDetectionController extends BaseController {
...
@@ -205,8 +205,8 @@ public class SituationDetectionController extends BaseController {
@ApiOperation
(
value
=
"路口列表-手动控制"
,
notes
=
"路口列表-手动控制"
)
@ApiOperation
(
value
=
"路口列表-手动控制"
,
notes
=
"路口列表-手动控制"
)
@GetMapping
(
"/listSignalControlInfos"
)
@GetMapping
(
"/listSignalControlInfos"
)
public
JsonViewObject
listSignalControlInfos
()
{
public
JsonViewObject
listSignalControlInfos
(
Integer
operationMode
)
{
Map
<
String
,
List
<
TCrossControlHist
>>
result
=
situationDetectionService
.
listSignalControlList
(
);
List
<
SignalOperationModeDTO
>
result
=
situationDetectionService
.
listSignalControlList
(
operationMode
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
result
);
return
jsonViewObject
.
success
(
result
);
}
}
...
...
signal-control-service/src/main/java/net/wanji/web/dto/SignalOperationModeDTO.java
0 → 100644
View file @
565e1ce7
package
net
.
wanji
.
web
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author duanruiming
* @date 2023/02/07 13:56
*/
@Data
@ApiModel
(
value
=
"信号机运行模式返回实体"
)
public
class
SignalOperationModeDTO
{
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
""
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"路口名称"
,
notes
=
""
)
private
String
crossName
;
@ApiModelProperty
(
value
=
"控制人"
,
notes
=
""
)
private
String
operationUser
;
@ApiModelProperty
(
value
=
"开始时间"
,
notes
=
""
)
private
String
operationTime
;
@ApiModelProperty
(
value
=
"控制类型"
,
notes
=
""
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"开始日期"
,
notes
=
""
)
private
Date
startTime
;
}
signal-control-service/src/main/java/net/wanji/web/service/SituationDetectionService.java
View file @
565e1ce7
package
net
.
wanji
.
web
.
service
;
package
net
.
wanji
.
web
.
service
;
import
net.wanji.web.dto.SignalOperationModeDTO
;
import
net.wanji.web.entity.TBaseCrossInfo
;
import
net.wanji.web.entity.TBaseCrossInfo
;
import
net.wanji.web.entity.TCrossControlHist
;
import
net.wanji.web.entity.TDeviceStatusLog
;
import
net.wanji.web.entity.TDeviceStatusLog
;
import
net.wanji.web.po.AreaTreePO
;
import
net.wanji.web.po.AreaTreePO
;
import
net.wanji.web.vo.situationDetection.*
;
import
net.wanji.web.vo.situationDetection.*
;
...
@@ -46,5 +46,5 @@ public interface SituationDetectionService {
...
@@ -46,5 +46,5 @@ public interface SituationDetectionService {
DeviceFaultCountVO
countSignalFaultInfos
();
DeviceFaultCountVO
countSignalFaultInfos
();
Map
<
String
,
List
<
TCrossControlHist
>>
listSignalControlList
(
);
List
<
SignalOperationModeDTO
>
listSignalControlList
(
Integer
operationMode
);
}
}
signal-control-service/src/main/java/net/wanji/web/service/impl/SituationDetectionServiceImpl.java
View file @
565e1ce7
...
@@ -5,8 +5,11 @@ import cn.hutool.core.date.DateUnit;
...
@@ -5,8 +5,11 @@ import cn.hutool.core.date.DateUnit;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.web.common.enums.*
;
import
net.wanji.web.common.enums.*
;
import
net.wanji.web.common.util.CrossUtil
;
import
net.wanji.web.common.util.CrossUtil
;
import
net.wanji.web.common.util.StringUtils
;
import
net.wanji.web.dto.SignalOperationModeDTO
;
import
net.wanji.web.entity.*
;
import
net.wanji.web.entity.*
;
import
net.wanji.web.mapper.*
;
import
net.wanji.web.mapper.*
;
import
net.wanji.web.po.*
;
import
net.wanji.web.po.*
;
...
@@ -15,6 +18,7 @@ import net.wanji.web.service.TBaseCrossInfoService;
...
@@ -15,6 +18,7 @@ import net.wanji.web.service.TBaseCrossInfoService;
import
net.wanji.web.vo.situationDetection.*
;
import
net.wanji.web.vo.situationDetection.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
...
@@ -482,22 +486,43 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
...
@@ -482,22 +486,43 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
}
}
@Override
@Override
public
Map
<
String
,
List
<
TCrossControlHist
>>
listSignalControlList
(
)
{
public
List
<
SignalOperationModeDTO
>
listSignalControlList
(
Integer
operationMode
)
{
Map
<
String
,
List
<
TCrossControlHist
>>
resultMap
=
new
HashMap
<>();
List
<
SignalOperationModeDTO
>
signalOperationModeDTOS
=
new
ArrayList
<>();
List
<
TCrossControlHist
>
tCrossControlHists
=
controlHistMapper
.
selectRecentList
();
List
<
TCrossControlHist
>
tCrossControlHists
=
controlHistMapper
.
selectRecentList
();
List
<
TCrossControlHist
>
centerOptList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
5
).
collect
(
Collectors
.
toList
());
LambdaQueryWrapper
<
TBaseCrossInfo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
resultMap
.
put
(
"1"
,
centerOptList
);
// 中心优化
List
<
TBaseCrossInfo
>
tBaseCrossInfos
=
tBaseCrossInfoMapper
.
selectList
(
queryWrapper
);
List
<
TCrossControlHist
>
manualControlList
=
tCrossControlHists
.
stream
().
filter
(
item
->
item
.
getType
()
<
5
&&
item
.
getType
()
>
1
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
tCrossControlHists
))
{
resultMap
.
put
(
"2"
,
manualControlList
);
// 手动控制
if
(
operationMode
==
1
)
{
//中心优化
List
<
TCrossControlHist
>
edgeOptList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
6
).
collect
(
Collectors
.
toList
());
List
<
TCrossControlHist
>
centerOptList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
5
).
collect
(
Collectors
.
toList
());
resultMap
.
put
(
"3"
,
edgeOptList
);
// 边缘优化
BeanListUtils
.
populateList
(
centerOptList
,
signalOperationModeDTOS
,
SignalOperationModeDTO
.
class
);
List
<
TCrossControlHist
>
specialServiceList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
7
).
collect
(
Collectors
.
toList
());
}
resultMap
.
put
(
"4"
,
specialServiceList
);
// 特勤控制
if
(
operationMode
==
2
)
{
// 手动控制
List
<
TCrossControlHist
>
manualControlList
=
tCrossControlHists
.
stream
().
filter
(
item
->
item
.
getType
()
<
5
&&
item
.
getType
()
>
1
).
collect
(
Collectors
.
toList
());
return
resultMap
;
BeanListUtils
.
populateList
(
manualControlList
,
signalOperationModeDTOS
,
SignalOperationModeDTO
.
class
);
}
if
(
operationMode
==
3
)
{
// 边缘优化
List
<
TCrossControlHist
>
edgeOptList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
6
).
collect
(
Collectors
.
toList
());
BeanListUtils
.
populateList
(
edgeOptList
,
signalOperationModeDTOS
,
SignalOperationModeDTO
.
class
);
}
if
(
operationMode
==
4
)
{
// 特勤控制
List
<
TCrossControlHist
>
specialServiceList
=
tCrossControlHists
.
stream
().
filter
(
tCrossControlHist
->
tCrossControlHist
.
getType
()
==
7
).
collect
(
Collectors
.
toList
());
BeanListUtils
.
populateList
(
specialServiceList
,
signalOperationModeDTOS
,
SignalOperationModeDTO
.
class
);
}
}
for
(
SignalOperationModeDTO
signalOperationModeDTO
:
signalOperationModeDTOS
)
{
for
(
TBaseCrossInfo
tBaseCrossInfo
:
tBaseCrossInfos
)
{
if
(
StringUtils
.
equals
(
signalOperationModeDTO
.
getCrossId
(),
tBaseCrossInfo
.
getId
()))
{
signalOperationModeDTO
.
setCrossName
(
tBaseCrossInfo
.
getName
());
signalOperationModeDTO
.
setOperationTime
(
signalOperationModeDTO
.
getStartTime
().
toString
().
substring
(
11
,
19
));
}
}
}
return
signalOperationModeDTOS
;
}
}
}
}
class
CrossAlarmComparator
implements
Comparator
<
CrossAlarmOutVO
>
{
class
CrossAlarmComparator
implements
Comparator
<
CrossAlarmOutVO
>
{
@Override
@Override
...
...
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