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
ffaaa9be
Commit
ffaaa9be
authored
Dec 13, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 优化绿波时序图历史查询;历史时间查询
parent
ff25ca82
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
13 deletions
+72
-13
StrategyGreenBeltController.java
...opt/synthesis/controller/StrategyGreenBeltController.java
+13
-2
StrategyGreenBeltService.java
...wanji/opt/synthesis/service/StrategyGreenBeltService.java
+2
-2
StrategyGreenBeltServiceImpl.java
.../synthesis/service/impl/StrategyGreenBeltServiceImpl.java
+57
-9
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/controller/StrategyGreenBeltController.java
View file @
ffaaa9be
...
@@ -38,11 +38,22 @@ public class StrategyGreenBeltController {
...
@@ -38,11 +38,22 @@ public class StrategyGreenBeltController {
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
})
public
JsonViewObject
greenBeltChart
(
Integer
greenId
)
throws
Exception
{
public
JsonViewObject
greenBeltChart
(
Integer
greenId
,
String
dateStr
)
throws
Exception
{
GreenBeltChartVO
greenBeltChartVO
=
strategyGreenBeltService
.
selectChart
(
greenId
,
null
);
GreenBeltChartVO
greenBeltChartVO
=
strategyGreenBeltService
.
selectChart
(
greenId
,
dateStr
);
return
JsonViewObject
.
newInstance
().
success
(
greenBeltChartVO
);
return
JsonViewObject
.
newInstance
().
success
(
greenBeltChartVO
);
}
}
@ApiOperation
(
value
=
"绿波时序图当天下发时间"
,
notes
=
"绿波时序图当天下发时间"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenBeltChartControlTime"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
),
})
public
JsonViewObject
greenBeltChartControlTime
(
Integer
greenId
)
throws
Exception
{
List
<
String
>
dates
=
strategyGreenBeltService
.
greenBeltChartControlTime
(
greenId
);
return
JsonViewObject
.
newInstance
().
success
(
dates
);
}
@ApiOperation
(
value
=
"绿波停车次数排队长度"
,
notes
=
"绿波停车次数排队长度"
,
response
=
JsonViewObject
.
class
,
@ApiOperation
(
value
=
"绿波停车次数排队长度"
,
notes
=
"绿波停车次数排队长度"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/StrategyGreenBeltService.java
View file @
ffaaa9be
...
@@ -4,7 +4,6 @@ import net.wanji.opt.synthesis.pojo.vo.GreenBeltAreaIndexVO;
...
@@ -4,7 +4,6 @@ import net.wanji.opt.synthesis.pojo.vo.GreenBeltAreaIndexVO;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltStopTimesQueueLengthVO
;
import
net.wanji.opt.vo.GreenBeltStopTimesQueueLengthVO
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -13,7 +12,8 @@ import java.util.List;
...
@@ -13,7 +12,8 @@ import java.util.List;
*/
*/
public
interface
StrategyGreenBeltService
{
public
interface
StrategyGreenBeltService
{
GreenBeltChartVO
selectChart
(
Integer
greenId
,
Date
queryDate
);
GreenBeltChartVO
selectChart
(
Integer
greenId
,
String
dateStr
);
List
<
GreenBeltStopTimesQueueLengthVO
>
greenBeltStopTimeQueueLength
(
Integer
greenId
);
List
<
GreenBeltStopTimesQueueLengthVO
>
greenBeltStopTimeQueueLength
(
Integer
greenId
);
GreenBeltAreaIndexVO
greenBeltAreaIndex
(
Integer
greenId
);
GreenBeltAreaIndexVO
greenBeltAreaIndex
(
Integer
greenId
);
List
<
String
>
greenBeltChartControlTime
(
Integer
greenId
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/StrategyGreenBeltServiceImpl.java
View file @
ffaaa9be
...
@@ -2,12 +2,12 @@ package net.wanji.opt.synthesis.service.impl;
...
@@ -2,12 +2,12 @@ package net.wanji.opt.synthesis.service.impl;
import
com.alibaba.excel.util.DateUtils
;
import
com.alibaba.excel.util.DateUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dao.entity.GreenwaveHistPO
;
import
net.wanji.databus.dao.entity.GreenwaveHistPO
;
import
net.wanji.databus.dao.entity.GreenwaveRealtimePO
;
import
net.wanji.databus.dao.entity.GreenwaveRealtimePO
;
import
net.wanji.databus.dao.mapper.GreenwaveHistMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveHistMapper
;
...
@@ -20,10 +20,16 @@ import net.wanji.opt.synthesis.service.StrategyGreenBeltService;
...
@@ -20,10 +20,16 @@ import net.wanji.opt.synthesis.service.StrategyGreenBeltService;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
net.wanji.opt.vo.GreenBeltStopTimesQueueLengthVO
;
import
net.wanji.opt.vo.GreenBeltStopTimesQueueLengthVO
;
import
org.apache.logging.log4j.util.PropertySource
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.text.ParseException
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -42,6 +48,33 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
...
@@ -42,6 +48,33 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
@Resource
@Resource
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
;
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
;
@Override
public
List
<
String
>
greenBeltChartControlTime
(
Integer
greenId
)
{
try
{
LocalDate
currentDate
=
LocalDate
.
now
();
LocalTime
startTime
=
LocalTime
.
MIDNIGHT
;
LocalDateTime
startOfDay
=
LocalDateTime
.
of
(
currentDate
,
startTime
);
LambdaQueryWrapper
<
StrategyGreenOptHistEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getGreenId
,
greenId
);
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getControlMethod
,
1
);
queryWrapper
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
startOfDay
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
Set
<
String
>
dateSet
=
entities
.
stream
().
map
(
StrategyGreenOptHistEntity:
:
getControlTime
).
collect
(
Collectors
.
toSet
());
List
<
String
>
dates
=
new
ArrayList
<>(
dateSet
.
size
());
for
(
String
dateStr
:
dateSet
)
{
dates
.
add
(
dateStr
.
substring
(
11
,
16
));
}
Collections
.
sort
(
dates
);
return
dates
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"查询绿波时序图时间异常:"
,
e
);
throw
new
RuntimeException
(
e
);
}
return
Collections
.
emptyList
();
}
@Override
@Override
public
GreenBeltAreaIndexVO
greenBeltAreaIndex
(
Integer
greenId
)
{
public
GreenBeltAreaIndexVO
greenBeltAreaIndex
(
Integer
greenId
)
{
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
...
@@ -96,16 +129,31 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
...
@@ -96,16 +129,31 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
@Override
@Override
public
GreenBeltChartVO
selectChart
(
Integer
greenId
,
Date
queryDate
)
{
public
GreenBeltChartVO
selectChart
(
Integer
greenId
,
String
dateStr
)
{
try
{
try
{
if
(
Objects
.
isNull
(
queryDate
))
{
queryDate
=
new
Date
();
}
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
QueryWrapper
<
StrategyGreenOptHistEntity
>
queryWrapper
=
new
QueryWrapper
<>();
LambdaQueryWrapper
<
StrategyGreenOptHistEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
"green_id"
,
greenId
);
// 查询历史时序图
queryWrapper
.
orderByDesc
(
"control_time"
);
if
(
StringUtils
.
isNotBlank
(
dateStr
))
{
queryWrapper
.
last
(
"LIMIT 2"
);
LocalTime
time
=
LocalTime
.
parse
(
dateStr
);
LocalDate
currentDate
=
LocalDate
.
now
();
LocalDateTime
dateTime
=
LocalDateTime
.
of
(
currentDate
,
time
);
// 格式化输出为指定格式
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
);
String
formattedDateTime
=
dateTime
.
format
(
formatter
);
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getGreenId
,
greenId
);
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getControlMethod
,
1
);
queryWrapper
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
dateTime
);
queryWrapper
.
orderByAsc
(
StrategyGreenOptHistEntity:
:
getControlTime
);
queryWrapper
.
last
(
"limit 2"
);
}
else
{
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getGreenId
,
greenId
);
queryWrapper
.
eq
(
StrategyGreenOptHistEntity:
:
getControlMethod
,
1
);
queryWrapper
.
orderByDesc
(
StrategyGreenOptHistEntity:
:
getControlTime
);
//queryWrapper.last("LIMIT 2");
queryWrapper
.
last
(
"limit 2"
);
}
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
Map
<
String
,
List
<
StrategyGreenOptHistEntity
>>
controlTimeMap
=
entities
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyGreenOptHistEntity:
:
getControlTime
));
Map
<
String
,
List
<
StrategyGreenOptHistEntity
>>
controlTimeMap
=
entities
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyGreenOptHistEntity:
:
getControlTime
));
...
...
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