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
f2673388
Commit
f2673388
authored
Apr 17, 2025
by
fengyasheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
路口周报4.1.路口优化总体分析
parent
c99c2857
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
435 additions
and
14 deletions
+435
-14
StrategyEnum.java
...rc/main/java/net/wanji/opt/common/enums/StrategyEnum.java
+83
-0
CrossOptimizeAnalysisController.java
.../controllerv2/report/CrossOptimizeAnalysisController.java
+8
-3
AnalysisReportCrossOptimizeDetailVO.java
...llerv2/report/vo/AnalysisReportCrossOptimizeDetailVO.java
+122
-0
CrossOptimizeAnalysisDataVO.java
...t/controllerv2/report/vo/CrossOptimizeAnalysisDataVO.java
+22
-0
CrossOptimizeResultResponseVO.java
...controllerv2/report/vo/CrossOptimizeResultResponseVO.java
+49
-0
CrossRidLaneMapper.java
...a/net/wanji/opt/dao/mapper/report/CrossRidLaneMapper.java
+4
-0
CrossRidLaneService.java
...a/net/wanji/opt/servicev2/report/CrossRidLaneService.java
+3
-0
CrossRidLaneServiceImpl.java
...ji/opt/servicev2/report/impl/CrossRidLaneServiceImpl.java
+130
-11
CrossRidLaneMapper.xml
...e/src/main/resources/mapper/report/CrossRidLaneMapper.xml
+14
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/common/enums/StrategyEnum.java
0 → 100644
View file @
f2673388
package
net
.
wanji
.
opt
.
common
.
enums
;
public
enum
StrategyEnum
{
NO_STRATEGY
(
0
,
"无策略"
),
GREEN_LIGHT_IDLE
(
1
,
"绿灯空放"
),
IMBALANCE
(
2
,
"失衡"
),
OVERFLOW
(
3
,
"溢出"
),
CONGESTION
(
4
,
"拥堵"
);
// 策略编号
private
final
int
code
;
// 策略名称
private
final
String
name
;
/**
* 构造函数
*
* @param code 策略编号
* @param name 策略名称
*/
StrategyEnum
(
int
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
/**
* 获取策略编号
*
* @return 策略编号
*/
public
int
getCode
()
{
return
code
;
}
/**
* 获取策略名称
*
* @return 策略名称
*/
public
String
getName
()
{
return
name
;
}
/**
* 根据编号获取对应的枚举实例
*
* @param code 策略编号
* @return 对应的枚举实例,如果未找到则返回 null
*/
public
static
StrategyEnum
fromCode
(
int
code
)
{
for
(
StrategyEnum
strategy
:
values
())
{
if
(
strategy
.
getCode
()
==
code
)
{
return
strategy
;
}
}
return
null
;
// 或者抛出异常:throw new IllegalArgumentException("未知的策略编号: " + code);
}
/**
* 根据名称获取对应的枚举实例
*
* @param name 策略名称
* @return 对应的枚举实例,如果未找到则返回 null
*/
public
static
StrategyEnum
fromName
(
String
name
)
{
for
(
StrategyEnum
strategy
:
values
())
{
if
(
strategy
.
getName
().
equals
(
name
))
{
return
strategy
;
}
}
return
null
;
// 或者抛出异常:throw new IllegalArgumentException("未知的策略名称: " + name);
}
/**
* 覆盖 toString 方法,方便打印枚举信息
*
* @return 枚举的字符串表示
*/
@Override
public
String
toString
()
{
return
String
.
format
(
"StrategyEnum[code=%d, name=%s]"
,
code
,
name
);
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/CrossOptimizeAnalysisController.java
View file @
f2673388
...
...
@@ -13,9 +13,11 @@ import net.wanji.opt.controllerv2.report.design.CrossOptimizeAnalysisResult;
import
net.wanji.opt.controllerv2.report.design.GreenWaveOptimizeAnalysisResult
;
import
net.wanji.opt.controllerv2.report.design.ImportCrossReportAnalysis
;
import
net.wanji.opt.controllerv2.report.design.ImportGreenReportAnalysis
;
import
net.wanji.opt.controllerv2.report.vo.CrossOptimizeResultResponseVO
;
import
net.wanji.opt.controllerv2.report.vo.GreenWaveOptimizeAnalysisResultResponseDTO
;
import
net.wanji.opt.controllerv2.report.vo.ImportGreenReportAnalysisResponseVO
;
import
net.wanji.opt.servicev2.report.AnalysisGreenWaveOptimizeWeekService
;
import
net.wanji.opt.servicev2.report.CrossRidLaneService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -38,12 +40,14 @@ import java.util.List;
@Api
(
value
=
"CrossOptimizeAnalysisController"
,
description
=
"路口分析报告"
,
tags
=
"路口分析报告-周报"
)
public
class
CrossOptimizeAnalysisController
{
@Autowired
private
CrossRidLaneService
crossRidLaneService
;
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"4.1-路口优化-总体分析"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"crossIds"
,
value
=
"干线ID,多个id用','分隔【为空时查询所有干线】"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"13
NEJ0B5R8
0,13N650B5P30"
),
@ApiImplicitParam
(
name
=
"crossIds"
,
value
=
"干线ID,多个id用','分隔【为空时查询所有干线】"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"13
MNM0B5OR
0,13N650B5P30"
),
@ApiImplicitParam
(
name
=
"year"
,
value
=
"年份"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025"
),
@ApiImplicitParam
(
name
=
"week"
,
value
=
"一年的第几周"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"1
4
"
),
@ApiImplicitParam
(
name
=
"week"
,
value
=
"一年的第几周"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"1
5
"
),
})
@GetMapping
(
value
=
"/getTotalityData"
)
@ApiResponses
({
...
...
@@ -52,7 +56,8 @@ public class CrossOptimizeAnalysisController {
public
JsonViewObject
getTotalityData
(
Integer
year
,
Integer
week
,
@RequestParam
(
required
=
false
)
String
crossIds
)
{
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
try
{
List
<
CrossOptimizeResultResponseVO
>
resultResponseVOS
=
crossRidLaneService
.
getTotalityData
(
year
,
week
,
crossIds
);
jsonViewObject
.
success
(
resultResponseVOS
);
}
catch
(
Exception
e
)
{
jsonViewObject
.
fail
(
I18nResourceBundle
.
getConstants
(
"GET_FAILED_MSG"
));
log
.
error
(
"{} getAll error"
,
this
.
getClass
().
getSimpleName
(),
e
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/vo/AnalysisReportCrossOptimizeDetailVO.java
0 → 100644
View file @
f2673388
package
net
.
wanji
.
opt
.
controllerv2
.
report
.
vo
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
AnalysisReportCrossOptimizeDetailVO
{
/**
* 路口ID
*/
private
String
crossId
;
/**
* 星期几:1~7代表周一至周日
*/
private
Integer
weekDay
;
/**
* 优化时段开始时间
*/
private
Date
optimizeStartTime
;
/**
* 优化时段截止时间
*/
private
Date
optimizeEndTime
;
/**
* 策略类型 干线当前策略:1单条 2垂直 3平行
*/
private
Integer
stragetyId
;
/**
* 策略时段内优化次数
*/
private
Integer
optimizeCount
;
/**
* 策略时段内优化总时长,单位秒
*/
private
Integer
optimizeDuration
;
/**
* 通行能力(辆)
*/
private
Integer
capacity
;
/**
* 停车次数
*/
private
Double
stopTimes
;
/**
* 延误时间,单位秒
*/
private
Double
delayTime
;
/**
* 最大排队长度
*/
private
Integer
maxQueueLength
;
/**
* 一年中的第几周
*/
private
Integer
yearWeek
;
/**
* 一一年中的第几周,格式yyyyw,如20251
*/
private
Date
weekStartTime
;
/**
* 一周的第二天
*/
private
Date
weekEndTime
;
/**
* 数据插入时间
*/
private
Date
insertTime
;
/**
* 上周通行能力(辆)
*/
private
Integer
lastWeekCapacity
;
/**
* 上周停车次数
*/
private
Double
lastWeekStopTimes
;
/**
* 上周延误时间,单位秒
*/
private
Double
lastWeekDelayTime
;
/**
* 上周最大排队长度
*/
private
Integer
lastWeekMaxQueueLength
;
/**
* 上周平均速度,单位km/h
*/
private
Double
lastWeekSpeed
;
/**
* 上周拥堵指数
*/
private
Double
lastWeekCongestIndex
;
/**
* 事件问题方向[]
*/
private
String
dirs
;
}
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/vo/CrossOptimizeAnalysisDataVO.java
0 → 100644
View file @
f2673388
package
net
.
wanji
.
opt
.
controllerv2
.
report
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
CrossOptimizeAnalysisDataVO
{
@ApiModelProperty
(
value
=
"通行能力"
,
example
=
"8900"
)
private
Integer
capacity
;
@ApiModelProperty
(
value
=
"停车次数"
,
example
=
"5"
)
private
Double
stopTimes
;
@ApiModelProperty
(
value
=
"延误时间,单位秒"
,
example
=
"40"
)
private
Double
delayTime
;
@ApiModelProperty
(
value
=
"最大排队长度"
,
example
=
"6.9"
)
private
Double
maxQueueLength
;
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/vo/CrossOptimizeResultResponseVO.java
0 → 100644
View file @
f2673388
package
net
.
wanji
.
opt
.
controllerv2
.
report
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
public
class
CrossOptimizeResultResponseVO
{
@ApiModelProperty
(
value
=
"路口名称"
,
example
=
"经十路(舜耕路-山大路)"
,
position
=
0
)
private
String
crossName
;
@ApiModelProperty
(
value
=
"本周优化次数"
,
example
=
"300"
,
position
=
1
)
private
String
weekOptimizeCount
;
@ApiModelProperty
(
value
=
"本周优化时长"
,
example
=
"98"
,
position
=
2
)
private
String
weekOptimizeDuration
;
@ApiModelProperty
(
value
=
"本周溢出次数"
,
example
=
"98"
,
position
=
3
)
private
String
weekOptimizeOverflowCount
;
@ApiModelProperty
(
value
=
"本周拥堵次数"
,
example
=
"98"
,
position
=
4
)
private
String
weekOptimizeCongestCount
;
@ApiModelProperty
(
value
=
"本周空放优化次数"
,
example
=
"98"
,
position
=
5
)
private
String
weekOptimizeEmptyCount
;
@ApiModelProperty
(
value
=
"本周失衡优化次数"
,
example
=
"98"
,
position
=
6
)
private
String
weekOptimizeUnbalanceCount
;
@ApiModelProperty
(
value
=
"本周通行能力同比情况"
,
example
=
"提升10%"
,
position
=
7
)
private
String
weekCapacitySituation
;
@ApiModelProperty
(
value
=
"本周通停车次数同比情况"
,
example
=
"减少10%"
,
position
=
8
)
private
String
weekStopTimesSituation
;
@ApiModelProperty
(
value
=
"本周通延误时间同比情况"
,
example
=
"增加10%"
,
position
=
9
)
private
String
weekDelayTimeSituation
;
@ApiModelProperty
(
value
=
"本周通最大排队同比情况"
,
example
=
"降低10%"
,
position
=
10
)
private
String
weekMaxQueueLengthSituation
;
@ApiModelProperty
(
value
=
"本周总体情况"
,
example
=
"明显提升"
,
position
=
11
)
private
String
weekTotalitySituation
;
//================================================================================================//
@ApiModelProperty
(
value
=
"时段列表"
,
example
=
"[\"本周\",\"上周\"]"
)
private
List
<
String
>
timeList
=
new
ArrayList
<>();
private
List
<
CrossOptimizeAnalysisDataVO
>
dataList
=
new
ArrayList
<>();
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/report/CrossRidLaneMapper.java
View file @
f2673388
package
net
.
wanji
.
opt
.
dao
.
mapper
.
report
;
import
net.wanji.opt.controllerv2.report.vo.AnalysisReportCrossOptimizeDetailVO
;
import
net.wanji.opt.controllerv2.report.vo.CrossPeakAnalysis
;
import
net.wanji.opt.entity.report.AnalysisReportCrossOptimizeDetail
;
import
net.wanji.opt.entity.report.AnalysisReportCrossPeakDetail
;
import
net.wanji.opt.entity.report.CrossRidLaneDTO
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -13,4 +15,6 @@ public interface CrossRidLaneMapper {
List
<
CrossPeakAnalysis
>
getTotalitySituation
(
@Param
(
"crossIdList"
)
List
<
String
>
crossIdList
,
@Param
(
"yearWeek"
)
Integer
yearWeek
,
@Param
(
"dayType"
)
String
dayType
,
@Param
(
"peakType"
)
String
peakType
);
List
<
AnalysisReportCrossPeakDetail
>
getPeakData
(
@Param
(
"crossIdList"
)
List
<
String
>
crossIdList
,
@Param
(
"yearWeek"
)
Integer
yearWeek
);
List
<
AnalysisReportCrossOptimizeDetailVO
>
getTotalityData
(
@Param
(
"yearWeek"
)
Integer
yearWeek
,
@Param
(
"crossIdList"
)
List
<
String
>
crossIdList
);
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/report/CrossRidLaneService.java
View file @
f2673388
package
net
.
wanji
.
opt
.
servicev2
.
report
;
import
com.alibaba.fastjson.JSONObject
;
import
net.wanji.opt.controllerv2.report.vo.CrossOptimizeResultResponseVO
;
import
net.wanji.opt.controllerv2.report.vo.CrossRunStateAnalysisResultResponseDTO
;
import
net.wanji.opt.controllerv2.report.vo.CrossRunStatePeakResultResponseVO
;
import
net.wanji.opt.vo2.report.CrossRidLaneResult
;
...
...
@@ -13,4 +14,6 @@ public interface CrossRidLaneService {
CrossRunStateAnalysisResultResponseDTO
getTotalitySituation
(
String
crossIds
,
Integer
year
,
Integer
week
);
List
<
CrossRunStatePeakResultResponseVO
>
getPeakData
(
String
crossIds
,
Integer
year
,
Integer
week
);
List
<
CrossOptimizeResultResponseVO
>
getTotalityData
(
Integer
year
,
Integer
week
,
String
crossIds
);
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/report/impl/CrossRidLaneServiceImpl.java
View file @
f2673388
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/resources/mapper/report/CrossRidLaneMapper.xml
View file @
f2673388
...
...
@@ -68,5 +68,19 @@
</foreach>
</if>
</select>
<select
id=
"getTotalityData"
resultType=
"net.wanji.opt.controllerv2.report.vo.AnalysisReportCrossOptimizeDetailVO"
>
SELECT
*
FROM
t_analysis_report_cross_optimize_detail
WHERE
year_week = #{yearWeek}
<if
test=
"crossIdList != null"
>
AND cross_id IN
<foreach
collection=
"crossIdList"
open=
"("
separator=
","
close=
")"
item=
"crossId"
>
#{crossId}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
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