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
jinan
traffic-signal-platform
Commits
f776304f
Commit
f776304f
authored
Apr 14, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
干线周报接口-运行状态接口定义
parent
551f4cbd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
193 additions
and
16 deletions
+193
-16
CrossRunStateController.java
...anji/opt/controllerv2/report/CrossRunStateController.java
+58
-0
CrossRunStateAnalysisResult.java
...ntrollerv2/report/design/CrossRunStateAnalysisResult.java
+118
-0
AnalysisGreenWavePeakDetailServiceImpl.java
...2/report/impl/AnalysisGreenWavePeakDetailServiceImpl.java
+14
-14
BaseAreaInfoServiceImpl.java
...ji/opt/servicev2/report/impl/BaseAreaInfoServiceImpl.java
+3
-2
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/CrossRunStateController.java
0 → 100644
View file @
f776304f
package
net
.
wanji
.
opt
.
controllerv2
.
report
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.i18n.I18nResourceBundle
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.controllerv2.report.design.CrossRunStateAnalysisResult
;
import
net.wanji.opt.controllerv2.report.design.GreenReportRunStateResult
;
import
net.wanji.opt.servicev2.report.AnalysisGreenWavePeakDetailService
;
import
net.wanji.opt.vo2.report.GreenReportRunStateResponseVO
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* <p>
* 路口运行状态 接口API
* </p>
* @version 1.0
* @author
* @Date 2025-03-18
*/
@RestController
@Slf4j
@RequestMapping
(
"/cross-run-state"
)
@Api
(
value
=
"CrossRunStateController"
,
description
=
""
,
tags
=
"路口分析报告-周报"
)
public
class
CrossRunStateController
{
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"2.1-交通运行总体情况"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"crossIds"
,
value
=
"路口ID,多个id用','分隔【为空时查询所有】"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"1,2"
),
@ApiImplicitParam
(
name
=
"year"
,
value
=
"年份"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025"
),
@ApiImplicitParam
(
name
=
"week"
,
value
=
"一年的第几周"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"14"
),
})
@GetMapping
(
value
=
"/getTotalitySituation"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
CrossRunStateAnalysisResult
.
class
),
})
public
JsonViewObject
getTotalitySituation
(
String
ids
,
Integer
year
,
Integer
week
)
{
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
try
{
}
catch
(
Exception
e
)
{
jsonViewObject
.
fail
(
I18nResourceBundle
.
getConstants
(
"GET_FAILED_MSG"
));
log
.
error
(
"{} getAll error"
,
this
.
getClass
().
getSimpleName
(),
e
);
}
return
jsonViewObject
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/design/CrossRunStateAnalysisResult.java
0 → 100644
View file @
f776304f
package
net
.
wanji
.
opt
.
controllerv2
.
report
.
design
;
import
com.alibaba.fastjson.JSON
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.opt.controllerv2.judgeanalysis.design.response.ParentResult
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
public
class
CrossRunStateAnalysisResult
extends
ParentResult
{
private
CrossRunStateAnalysisResultResponse
content
;
public
CrossRunStateAnalysisResultResponse
getContent
()
{
return
content
;
}
public
CrossRunStateAnalysisResult
setContent
(
CrossRunStateAnalysisResultResponse
content
)
{
this
.
content
=
content
;
return
this
;
}
@Override
public
String
toString
()
{
return
JSON
.
toJSONString
(
this
);
}
}
@Data
class
CrossRunStateAnalysisResultResponse
{
@ApiModelProperty
(
value
=
"区域周最大流量路口名称"
,
example
=
"经十路(舜耕路-山大路)"
)
private
String
maxFlowCrossName
;
@ApiModelProperty
(
value
=
"区域周交通指数最大路口名称"
,
example
=
"经十路(舜耕路-山大路)"
)
private
String
maxTrafficIndexCrossName
;
@ApiModelProperty
(
value
=
"工作日平均流量"
,
example
=
"13459899辆"
)
private
String
workDayAvgFlow
;
@ApiModelProperty
(
value
=
"工作日早高峰最大小时流量"
,
example
=
"300辆"
)
private
String
workDayAmPeakMaxHourFlow
;
@ApiModelProperty
(
value
=
"工作日晚高峰最大小时流量"
,
example
=
"300辆"
)
private
String
workDayPmPeakMaxHourFlow
;
@ApiModelProperty
(
value
=
"工作日平峰最大小时流量"
,
example
=
"300辆"
)
private
String
workDayFmPeakMaxHourFlow
;
@ApiModelProperty
(
value
=
"周末全天平均流量"
,
example
=
"提升10%"
)
private
String
weekEndAvgFlow
;
@ApiModelProperty
(
value
=
"工作日早高峰平均交通指数"
,
example
=
"4.5"
)
private
String
workDayAmPeakAvgTrafficIndex
;
@ApiModelProperty
(
value
=
"工作日晚高峰平均交通指数"
,
example
=
"5.5"
)
private
String
workDayPmPeakAvgTrafficIndex
;
//========================================================================
@ApiModelProperty
(
value
=
"工作日平均流量与上周比较情况"
,
example
=
"13459899辆"
)
private
String
avgFlowLastWeekCompare
;
@ApiModelProperty
(
value
=
"工作日早高峰最大小时流量与上周比较情况"
,
example
=
"300辆"
)
private
String
amPeakMaxHourFlowLastWeekCompare
;
@ApiModelProperty
(
value
=
"工作日晚高峰最大小时流量与上周比较情况"
,
example
=
"300辆"
)
private
String
pmPeakMaxHourFlowLastWeekCompare
;
@ApiModelProperty
(
value
=
"工作日平峰最大小时流量与上周比较情况"
,
example
=
"300辆"
)
private
String
fmPeakMaxHourFlowLastWeekCompare
;
@ApiModelProperty
(
value
=
"周末全天平均流量与上周比较情况"
,
example
=
"提升10%"
)
private
String
endAvgFlowLastWeekCompare
;
@ApiModelProperty
(
value
=
"工作日早高峰平均交通指数与上周比较情况"
,
example
=
"4.5"
)
private
String
amPeakAvgTrafficIndexLastWeekCompare
;
@ApiModelProperty
(
value
=
"工作日晚高峰平均交通指数与上周比较情况"
,
example
=
"5.5"
)
private
String
pmPeakAvgTrafficIndexLastWeekCompare
;
//================================================================================================//
private
List
<
CrossRunStateDetailAnalysisData
>
dataList
=
new
ArrayList
<>();
}
@Data
class
CrossRunStateDetailAnalysisData
{
@ApiModelProperty
(
value
=
"路口名称"
,
example
=
"经十路(舜耕路-山大路)"
)
private
String
crossName
;
@ApiModelProperty
(
value
=
"本周高峰最大小时流量"
,
example
=
"8900"
)
private
Integer
thisWeekPeakMaxFlow
;
@ApiModelProperty
(
value
=
"上周周末最大小时流量"
,
example
=
"8900"
)
private
Integer
lastWeekPeakMaxFlow
;
@ApiModelProperty
(
value
=
"本周周末最大小时流量"
,
example
=
"8900"
)
private
Integer
thisWeekEndMaxFlow
;
@ApiModelProperty
(
value
=
"上周周末最大小时流量"
,
example
=
"8900"
)
private
Integer
lastWeekEndMaxFlow
;
@ApiModelProperty
(
value
=
"本周工作日早高峰交通指数"
,
example
=
"8900"
)
private
Integer
thisWeekWorkDayTrafficIndex
;
@ApiModelProperty
(
value
=
"上周周工作日早高峰交通指数"
,
example
=
"8900"
)
private
Integer
lastWeekWorkDayTrafficIndex
;
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/report/impl/AnalysisGreenWavePeakDetailServiceImpl.java
View file @
f776304f
...
...
@@ -122,21 +122,21 @@ public class AnalysisGreenWavePeakDetailServiceImpl extends BaseDubboInterfaceIm
weekData
.
setThisWeekCongestSpan
(
DateUtil
.
formatDate
(
vo1
.
getCongestStartTime
(),
"HH:mm"
)
+
"~"
+
DateUtil
.
formatDate
(
vo2
.
getCongestEndTime
(),
"HH:mm"
));
}
if
(
Objects
.
nonNull
(
lastWeekDataList
)){
//上周高峰指标数据
Optional
<
AnalysisGreenWavePeakDetail
>
optional
=
lastWeekDataList
.
stream
().
filter
(
o
->
Objects
.
equals
(
o
.
getWeekDay
(),
detail
.
getWeekDay
())
&&
Objects
.
equals
(
o
.
getPeakType
(),
detail
.
getPeakType
())).
findFirst
();
if
(
optional
.
isPresent
())
{
weekData
.
setLastWeekAvgSpeed
(
optional
.
get
().
getSpeed
());
weekData
.
setLastWeekCongestIndex
(
optional
.
get
().
getTrafficIndex
());
weekData
.
setLastWeekTravelTime
(
optional
.
get
().
getTravelTime
()
==
null
?
0
D
:
ArithOfBigDecmial
.
div
(
optional
.
get
().
getTravelTime
().
doubleValue
(),
60
));
//上周峰期内拥堵时段数据获取
List
<
GreenCongestTimeSpanVO
>
congestTimeSpan2
=
analysisGreenWavePeakDetailMapper
.
findCongestTimeSpanInPeakTime
(
lastWeek
,
k
,
optional
.
get
().
getPeakStartTime
(),
optional
.
get
().
getPeakEndTime
());
GreenCongestTimeSpanVO
vo3
=
congestTimeSpan2
.
stream
().
min
(
Comparator
.
comparing
(
GreenCongestTimeSpanVO:
:
getCongestStartTime
)).
orElse
(
new
GreenCongestTimeSpanVO
());
GreenCongestTimeSpanVO
vo4
=
congestTimeSpan2
.
stream
().
max
(
Comparator
.
comparing
(
GreenCongestTimeSpanVO:
:
getCongestEndTime
)).
orElse
(
new
GreenCongestTimeSpanVO
());
if
(
vo3
.
getCongestStartTime
()
!=
null
&&
vo4
.
getCongestEndTime
()
!=
null
)
{
weekData
.
setLastWeekCongestSpan
(
DateUtil
.
formatDate
(
vo3
.
getCongestStartTime
(),
"HH:mm"
)
+
"~"
+
DateUtil
.
formatDate
(
vo4
.
getCongestEndTime
(),
"HH:mm"
));
//上周高峰指标数据
Optional
<
AnalysisGreenWavePeakDetail
>
optional
=
lastWeekDataList
.
stream
().
filter
(
o
->
Objects
.
equals
(
o
.
getWeekDay
(),
detail
.
getWeekDay
())
&&
Objects
.
equals
(
o
.
getPeakType
(),
detail
.
getPeakType
())).
findFirst
();
if
(
optional
.
isPresent
())
{
weekData
.
setLastWeekAvgSpeed
(
optional
.
get
().
getSpeed
());
weekData
.
setLastWeekCongestIndex
(
optional
.
get
().
getTrafficIndex
());
weekData
.
setLastWeekTravelTime
(
optional
.
get
().
getTravelTime
()
==
null
?
0
D
:
ArithOfBigDecmial
.
div
(
optional
.
get
().
getTravelTime
().
doubleValue
(),
60
));
//上周峰期内拥堵时段数据获取
List
<
GreenCongestTimeSpanVO
>
congestTimeSpan2
=
analysisGreenWavePeakDetailMapper
.
findCongestTimeSpanInPeakTime
(
lastWeek
,
k
,
optional
.
get
().
getPeakStartTime
(),
optional
.
get
().
getPeakEndTime
());
GreenCongestTimeSpanVO
vo3
=
congestTimeSpan2
.
stream
().
min
(
Comparator
.
comparing
(
GreenCongestTimeSpanVO:
:
getCongestStartTime
)).
orElse
(
new
GreenCongestTimeSpanVO
());
GreenCongestTimeSpanVO
vo4
=
congestTimeSpan2
.
stream
().
max
(
Comparator
.
comparing
(
GreenCongestTimeSpanVO:
:
getCongestEndTime
)).
orElse
(
new
GreenCongestTimeSpanVO
());
if
(
vo3
.
getCongestStartTime
()
!=
null
&&
vo4
.
getCongestEndTime
()
!=
null
)
{
weekData
.
setLastWeekCongestSpan
(
DateUtil
.
formatDate
(
vo3
.
getCongestStartTime
(),
"HH:mm"
)
+
"~"
+
DateUtil
.
formatDate
(
vo4
.
getCongestEndTime
(),
"HH:mm"
));
}
weekData
.
setLastWeekDayPeakSpan
(
DateUtil
.
formatDate
(
optional
.
get
().
getPeakStartTime
(),
"HH:mm"
)
+
"~"
+
DateUtil
.
formatDate
(
optional
.
get
().
getPeakEndTime
(),
"HH:mm"
));
}
weekData
.
setLastWeekDayPeakSpan
(
DateUtil
.
formatDate
(
optional
.
get
().
getPeakStartTime
(),
"HH:mm"
)
+
"~"
+
DateUtil
.
formatDate
(
optional
.
get
().
getPeakEndTime
(),
"HH:mm"
));
}
}
tableDataList
.
add
(
weekData
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/report/impl/BaseAreaInfoServiceImpl.java
View file @
f776304f
...
...
@@ -48,7 +48,7 @@ public class BaseAreaInfoServiceImpl implements BaseAreaInfoService {
/**
* 根据区划类型查询对应集合(含子集)
* @param type
* @param type
s
* @return
*/
public
List
<
BaseAreaInfoPO
>
selectByType
(
String
types
)
{
...
...
@@ -61,7 +61,8 @@ public class BaseAreaInfoServiceImpl implements BaseAreaInfoService {
for
(
BaseAreaInfoPO
parent
:
parentList
)
{
List
<
BaseAreaInfoPO
>
child
=
baseAreaInfoMapper
.
selectByParentCode
(
parent
.
getId
());
retList
.
add
(
parent
);
retList
.
addAll
(
child
);
//屏蔽子区输出
//retList.addAll(child);
}
}
...
...
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