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
bda4b1c0
Commit
bda4b1c0
authored
Dec 07, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 干线详情接口
parent
ef86feb1
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
132 additions
and
8 deletions
+132
-8
Double2TwoDecimalPlacesSerializer.java
...t/wanji/opt/config/Double2TwoDecimalPlacesSerializer.java
+26
-0
GreenBeltController.java
...t/wanji/opt/controller/signalopt/GreenBeltController.java
+17
-1
GreenBeltInfoService.java
...net/wanji/opt/service/signalopt/GreenBeltInfoService.java
+2
-0
GreenBeltServiceImpl.java
...anji/opt/service/signalopt/impl/GreenBeltServiceImpl.java
+51
-7
GreenBeltCrossDetailVO.java
...rc/main/java/net/wanji/opt/vo/GreenBeltCrossDetailVO.java
+33
-0
AbnormalCrossListVO.java
...c/main/java/net/wanji/databus/vo/AbnormalCrossListVO.java
+3
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/config/Double2TwoDecimalPlacesSerializer.java
0 → 100644
View file @
bda4b1c0
package
net
.
wanji
.
opt
.
config
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
import
java.io.IOException
;
import
java.text.DecimalFormat
;
/**
* @author duanruiming
* @date 2024/12/01 16:17
*/
public
class
Double2TwoDecimalPlacesSerializer
extends
JsonSerializer
<
Double
>
{
private
static
final
DecimalFormat
df
=
new
DecimalFormat
(
"#.00"
);
@Override
public
void
serialize
(
Double
value
,
JsonGenerator
gen
,
SerializerProvider
serializers
)
throws
IOException
{
if
(
value
!=
null
)
{
String
formattedValue
=
df
.
format
(
value
);
gen
.
writeString
(
formattedValue
);
}
else
{
gen
.
writeNull
();
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/controller/signalopt/GreenBeltController.java
View file @
bda4b1c0
...
...
@@ -5,8 +5,8 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.service.signalopt.GreenBeltInfoService
;
import
net.wanji.opt.vo.GreenBeltCrossDetailVO
;
import
net.wanji.opt.vo.GreenBeltFlowStopTimeVO
;
import
net.wanji.opt.vo.GreenBeltKeyCrossFlowTimeVO
;
import
net.wanji.opt.vo.GreenBeltSpeedWidthVO
;
...
...
@@ -79,4 +79,20 @@ public class GreenBeltController {
}
return
JsonViewObject
.
newInstance
().
success
(
map
);
}
@ApiOperation
(
value
=
"干线详情"
,
notes
=
"优化监测-干线详情"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenBeltCrossDetailList"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltKeyCrossFlowTimeVO
.
class
),
})
public
JsonViewObject
greenBeltCrossDetailList
(
Integer
greenId
)
{
GreenBeltCrossDetailVO
greenBeltCrossDetailVO
=
new
GreenBeltCrossDetailVO
();
try
{
greenBeltCrossDetailVO
=
greenBeltInfoService
.
greenBeltCrossDetailList
(
greenId
);
}
catch
(
Exception
e
)
{
JsonViewObject
.
newInstance
().
fail
(
"优化监测-干线详情"
);
}
return
JsonViewObject
.
newInstance
().
success
(
greenBeltCrossDetailVO
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/signalopt/GreenBeltInfoService.java
View file @
bda4b1c0
package
net
.
wanji
.
opt
.
service
.
signalopt
;
import
net.wanji.opt.vo.GreenBeltCrossDetailVO
;
import
net.wanji.opt.vo.GreenBeltFlowStopTimeVO
;
import
net.wanji.opt.vo.GreenBeltKeyCrossFlowTimeVO
;
import
net.wanji.opt.vo.GreenBeltSpeedWidthVO
;
...
...
@@ -15,4 +16,5 @@ public interface GreenBeltInfoService {
List
<
GreenBeltFlowStopTimeVO
>
greenBeltCrossDetailHist
(
Integer
greenId
)
throws
Exception
;
Map
<
String
,
List
<
GreenBeltSpeedWidthVO
>>
greenBeltSpeedWidth
(
Integer
greenId
)
throws
Exception
;
Map
<
String
,
List
<
GreenBeltKeyCrossFlowTimeVO
>>
greenBeltKeyCrossFlowTime
(
Integer
greenId
)
throws
Exception
;
GreenBeltCrossDetailVO
greenBeltCrossDetailList
(
Integer
greenId
)
throws
Exception
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/signalopt/impl/GreenBeltServiceImpl.java
View file @
bda4b1c0
...
...
@@ -8,19 +8,20 @@ import net.wanji.common.framework.Constants;
import
net.wanji.common.utils.tool.DateUtil
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dao.entity.GreenwaveCrossPO
;
import
net.wanji.databus.dao.entity.GreenwaveHistPO
;
import
net.wanji.databus.dao.
mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.
mapper.GreenwaveHistMapper
;
import
net.wanji.databus.dao.mapper.
GreenwaveInfoMapper
;
import
net.wanji.databus.dao.
entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.
entity.GreenwaveRealtimePO
;
import
net.wanji.databus.dao.mapper.
*
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.opt.cache.BaseCrossInfoCache
;
import
net.wanji.opt.cache.GreenWaveInfoCache
;
import
net.wanji.opt.common.enums.GreenBeltDirEnum
;
import
net.wanji.opt.dao.mapper.StrategyGreenOptHistMapper
;
import
net.wanji.opt.po.StrategyGreenOptHistEntity
;
import
net.wanji.opt.service.signalopt.GreenBeltInfoService
;
import
net.wanji.opt.vo.GreenBeltFlowStopTimeVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
net.wanji.opt.vo.GreenBeltKeyCrossFlowTimeVO
;
import
net.wanji.opt.vo.GreenBeltSpeedWidthVO
;
import
net.wanji.opt.vo.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -49,9 +50,52 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
@Resource
private
StrategyGreenOptHistMapper
strategyGreenOptHistMapper
;
@Resource
private
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
;
@Resource
private
GreenwaveHistMapper
greenwaveHistMapper
;
@Resource
private
GreenwaveCrossMapper
greenwaveCrossMapper
;
@Resource
private
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
@Resource
private
BaseCrossInfoCache
baseCrossInfoCache
;
@Override
public
GreenBeltCrossDetailVO
greenBeltCrossDetailList
(
Integer
greenId
)
throws
Exception
{
List
<
GreenwaveCrossPO
>
crossPOS
=
greenwaveCrossMapper
.
selectByGreenwaveId
(
greenId
);
List
<
CrossDataRealtimePO
>
realtimePOS
=
crossDataRealtimeMapper
.
selectAll
();
GreenBeltCrossDetailVO
greenBeltCrossDetailVO
=
new
GreenBeltCrossDetailVO
();
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
GreenwaveRealtimePO:
:
getGreenId
,
greenId
);
if
(!
CollectionUtils
.
isEmpty
(
crossPOS
)
&&
!
CollectionUtils
.
isEmpty
(
realtimePOS
))
{
List
<
GreenBeltCrossDetailVO
.
CrossDetail
>
detailList
=
new
ArrayList
<>();
for
(
GreenwaveCrossPO
crossPO
:
crossPOS
)
{
String
crossId
=
crossPO
.
getCrossId
();
GreenBeltCrossDetailVO
.
CrossDetail
crossDetail
=
new
GreenBeltCrossDetailVO
.
CrossDetail
();
for
(
CrossDataRealtimePO
realtimePO
:
realtimePOS
)
{
if
(
StringUtils
.
equalsIgnoreCase
(
crossPO
.
getCrossId
(),
realtimePO
.
getCrossId
()))
{
String
crossName
=
baseCrossInfoCache
.
getCrossName
(
crossId
);
crossDetail
.
setCrossName
(
crossName
);
crossDetail
.
setCrossIndex
(
realtimePO
.
getTrafficIndex
());
detailList
.
add
(
crossDetail
);
}
}
}
List
<
GreenwaveRealtimePO
>
greenRealTimes
=
greenwaveRealtimeMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
greenRealTimes
))
{
double
asDouble
=
greenRealTimes
.
stream
().
mapToDouble
(
GreenwaveRealtimePO:
:
getTrafficIndex
).
average
().
getAsDouble
();
greenBeltCrossDetailVO
.
setGreenIndex
(
asDouble
);
}
greenBeltCrossDetailVO
.
setDetailList
(
detailList
);
Map
<
Integer
,
GreenwaveInfoPO
>
greenWaveMap
=
GreenWaveInfoCache
.
greenWaveMap
;
GreenwaveInfoPO
greenwaveInfoPO
=
greenWaveMap
.
get
(
greenId
);
greenBeltCrossDetailVO
.
setGreenName
(
greenwaveInfoPO
.
getName
());
}
return
greenBeltCrossDetailVO
;
}
@Override
public
Map
<
String
,
List
<
GreenBeltKeyCrossFlowTimeVO
>>
greenBeltKeyCrossFlowTime
(
Integer
greenId
)
throws
Exception
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenBeltCrossDetailVO.java
0 → 100644
View file @
bda4b1c0
package
net
.
wanji
.
opt
.
vo
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.opt.config.Double2TwoDecimalPlacesSerializer
;
import
java.util.List
;
/**
* @author duanruiming
* @date 2024/12/07 11:34
*/
@Data
@ApiModel
(
value
=
"优化监测干线详情返回实体"
)
public
class
GreenBeltCrossDetailVO
{
@ApiModelProperty
(
"干线名称"
)
private
String
greenName
;
@JsonSerialize
(
using
=
Double2TwoDecimalPlacesSerializer
.
class
)
@ApiModelProperty
(
"干线指数"
)
private
Double
greenIndex
;
private
List
<
CrossDetail
>
detailList
;
@Data
public
static
class
CrossDetail
{
@ApiModelProperty
(
"路口名称"
)
private
String
crossName
;
@JsonSerialize
(
using
=
Double2TwoDecimalPlacesSerializer
.
class
)
@ApiModelProperty
(
"路口指数"
)
private
Double
crossIndex
;
}
}
wj-databus/src/main/java/net/wanji/databus/vo/AbnormalCrossListVO.java
View file @
bda4b1c0
...
...
@@ -2,10 +2,12 @@ package net.wanji.databus.vo;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
net.wanji.databus.config.DoubleToTwoDecimalPlacesSerializer
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -51,6 +53,7 @@ public class AbnormalCrossListVO {
@ApiModelProperty
(
value
=
"是否拥堵:0否;1是"
)
private
Integer
isCongestion
;
@ApiModelProperty
(
value
=
"交通指数"
)
@JsonSerialize
(
using
=
DoubleToTwoDecimalPlacesSerializer
.
class
)
private
Double
trafficIndex
;
@ApiModelProperty
(
value
=
"拥堵指数"
)
private
Double
congestionIndex
;
...
...
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