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
7450b246
Commit
7450b246
authored
Apr 24, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
7030a8b5
8f251b83
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
760 additions
and
709 deletions
+760
-709
GreenReportProblemDetailVO.java
...pt/controllerv2/report/vo/GreenReportProblemDetailVO.java
+2
-0
DailyPlanDetails.java
.../java/net/wanji/opt/entity/strategy/DailyPlanDetails.java
+1
-1
StrategyPriorityGroupPushReq.java
...nji/opt/entity/strategy/StrategyPriorityGroupPushReq.java
+14
-0
StrategyPriorityPlanPushReq.java
...anji/opt/entity/strategy/StrategyPriorityPlanPushReq.java
+14
-0
AnalysisGreenCongestionPeriodServiceImpl.java
...alysis/impl/AnalysisGreenCongestionPeriodServiceImpl.java
+6
-1
AnalysisGreenWaveOptimizeWeekServiceImpl.java
...report/impl/AnalysisGreenWaveOptimizeWeekServiceImpl.java
+33
-26
StrategyPriorityServiceImpl.java
.../servicev2/strategy/impl/StrategyPriorityServiceImpl.java
+677
-661
PushStrategyControlService.java
...nji/opt/synthesis/service/PushStrategyControlService.java
+3
-5
PushStrategyControlServiceImpl.java
...ynthesis/service/impl/PushStrategyControlServiceImpl.java
+10
-15
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/vo/GreenReportProblemDetailVO.java
View file @
7450b246
...
...
@@ -8,6 +8,8 @@ public class GreenReportProblemDetailVO {
@ApiModelProperty
(
value
=
"星期"
,
example
=
"周一"
)
private
String
week
;
@ApiModelProperty
(
value
=
"方向"
,
example
=
"东向西"
)
private
String
dir
;
@ApiModelProperty
(
value
=
"问题时段"
,
example
=
"7:35~8:40"
)
private
String
problemSpan
;
@ApiModelProperty
(
value
=
"状态:缓行/拥堵"
,
example
=
"拥堵"
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/DailyPlanDetails.java
View file @
7450b246
...
...
@@ -14,7 +14,7 @@ public class DailyPlanDetails {
//日计划编号
private
int
dailyPlanId
;
//执行时间
private
List
<
String
>
weekExecute
;
private
List
<
Integer
>
weekExecute
;
//时间详情
private
List
<
TimePlanDetails
>
timeDetails
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/StrategyPriorityGroupPushReq.java
0 → 100644
View file @
7450b246
package
net
.
wanji
.
opt
.
entity
.
strategy
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author duanruiming
* @date 2025/04/24 10:27
*/
@Data
public
class
StrategyPriorityGroupPushReq
{
List
<
StrategyPriorityConfigPush
>
data
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/StrategyPriorityPlanPushReq.java
0 → 100644
View file @
7450b246
package
net
.
wanji
.
opt
.
entity
.
strategy
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author duanruiming
* @date 2025/04/24 10:34
*/
@Data
public
class
StrategyPriorityPlanPushReq
{
List
<
StrategyPriorityPlanPush
>
data
;
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/impl/AnalysisGreenCongestionPeriodServiceImpl.java
View file @
7450b246
...
...
@@ -388,7 +388,11 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
}
}
}
greenReportProblemDetailAnalysisResponse
.
setDataList
(
greenReportProblemDetailList
);
List
<
String
>
weekOrder
=
Arrays
.
asList
(
"周一"
,
"周二"
,
"周三"
,
"周四"
,
"周五"
,
"周六"
,
"周日"
);
List
<
GreenReportProblemDetailVO
>
problemDetailVOS
=
greenReportProblemDetailList
.
stream
().
sorted
(
Comparator
.
comparing
(
vo
->
weekOrder
.
indexOf
(
vo
.
getWeek
())
)).
collect
(
Collectors
.
toList
());
greenReportProblemDetailAnalysisResponse
.
setDataList
(
problemDetailVOS
);
List
<
GreenWaveCrossRidInfo
>
greenInfoList
=
greenWaveCrossRidMapper
.
getGreenInfoList
(
String
.
valueOf
(
greenId
));
greenReportProblemDetailAnalysisResponse
.
setGreenId
(
String
.
valueOf
(
greenId
));
...
...
@@ -469,6 +473,7 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
private
GreenReportProblemDetailVO
getGreenReportProblemDetail
(
AnalysisGreenCongestionPeriodVO
periodVO
)
{
GreenReportProblemDetailVO
greenReportProblemDetail
=
new
GreenReportProblemDetailVO
();
greenReportProblemDetail
.
setWeek
(
WeekEnum
.
getDesc
(
periodVO
.
getWeekDay
()));
greenReportProblemDetail
.
setDir
(
GreenBeltDirEnum
.
getDesc
(
periodVO
.
getRoadDirection
()));
greenReportProblemDetail
.
setProblemSpan
(
getTimeString
(
periodVO
));
greenReportProblemDetail
.
setStatus
(
ConsgestionStatusEnum
.
getDesc
(
periodVO
.
getStatus
()));
greenReportProblemDetail
.
setAvgSpeed
(
Math
.
round
(
periodVO
.
getSpeed
()
*
100
)
/
100.0
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/report/impl/AnalysisGreenWaveOptimizeWeekServiceImpl.java
View file @
7450b246
...
...
@@ -245,7 +245,6 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
@Override
public
List
<
ImportGreenReportAnalysisResponseVO
>
getProblemDetail
(
Integer
year
,
Integer
week
,
String
ids
)
{
Integer
yearWeek
=
Integer
.
valueOf
(
year
+
""
+
week
);
Integer
yearWeekLast
=
Integer
.
valueOf
(
year
+
""
+
(
week
-
1
));
List
<
Integer
>
greenIdList
=
new
ArrayList
<>();
if
(
ObjectUtils
.
isEmpty
(
ids
))
{
List
<
GreenwaveInfoPO
>
greenwaveInfoPOList
=
greenwaveInfoMapper
.
selectAll
();
...
...
@@ -315,38 +314,46 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
analysisResponseVO
.
setDataList
(
analysisDataVOS
);
analysisResponseVO
.
setOptimizeSpan
(
TimeIntervalMerger
.
timeString
(
timeList
));
analysisResponseVO
.
setAvgCapacity
(
String
.
valueOf
(
allCapacity
/
waveOptimizeWeeks
.
size
()));
analysisResponseVO
.
setAvgCapacity
(
String
.
valueOf
(
allCapacity
/
waveOptimizeWeeks
.
size
())
+
"辆/小时"
);
analysisResponseVO
.
setAvgCongestIndex
(
String
.
valueOf
(
Math
.
round
(
allCongestIndex
/
waveOptimizeWeeks
.
size
()
*
100
)
/
100.0
));
analysisResponseVO
.
setAvgSpeed
(
String
.
valueOf
(
Math
.
round
(
allSpeed
/
waveOptimizeWeeks
.
size
()
*
100
)
/
100.0
));
analysisResponseVO
.
setAvgTravelTime
(
String
.
valueOf
(
allTravelTime
/
waveOptimizeWeeks
.
size
()));
analysisResponseVO
.
setAvgCapacityCompareSituation
(
allCapacity
>
allCapacityLast
?
"提升"
:
"下降"
);
double
avgCongestIndex
=
allCongestIndex
/
waveOptimizeWeeks
.
size
()
-
allCongestIndexLast
/
waveOptimizeWeeks
.
size
();
analysisResponseVO
.
setAvgCongestIndexCompare
(
avgCongestIndex
>=
0
?
"增加"
+
String
.
valueOf
(
Math
.
round
(
avgCongestIndex
*
100
)
/
100.0
)
+
"%"
:
"减少"
+
String
.
valueOf
(
Math
.
round
(
Math
.
abs
(
avgCongestIndex
)
*
100
)
/
100.0
)
+
"%"
);
double
avgSpeed
=
allSpeed
/
waveOptimizeWeeks
.
size
()
-
allSpeedLast
/
waveOptimizeWeeks
.
size
();
analysisResponseVO
.
setAvgSpeedCompare
(
avgSpeed
>
0
?
"提升"
+
String
.
valueOf
(
Math
.
round
(
avgSpeed
*
100
)
/
100.0
)
+
"%"
:
"降低"
+
String
.
valueOf
(
Math
.
round
(
Math
.
abs
(
avgSpeed
)
*
100
)
/
100.0
)
+
"%"
);
int
avgTravelTime
=
allTravelTime
/
waveOptimizeWeeks
.
size
()
-
allTravelTimeLast
/
waveOptimizeWeeks
.
size
();
analysisResponseVO
.
setAvgTravelTimeCompare
(
String
.
valueOf
(
avgTravelTime
>
0
?
"增加"
+
String
.
valueOf
(
Math
.
round
(
avgTravelTime
*
100
)
/
100.0
)
+
"%"
:
"减少"
+
String
.
valueOf
(
Math
.
round
(
Math
.
abs
(
avgTravelTime
)
*
100
)
/
100.0
)
+
"%"
));
analysisResponseVO
.
setAvgTravelTime
(
String
.
valueOf
(
allTravelTime
/
waveOptimizeWeeks
.
size
()/
60
));
int
allCapacityCha
=
allCapacity
-
allCapacityLast
;
double
allCapacityCompare
=
0
;
if
(
allCapacityLast
!=
0
){
allCapacityCompare
=
Math
.
round
(
allCapacityCha
*
10000
/
allCapacityLast
)
/
100.0
;
}
else
{
allCapacityCompare
=
100
;
}
analysisResponseVO
.
setAvgCapacityCompareSituation
(
allCapacity
>
allCapacityLast
?
"提升"
+
Math
.
abs
(
allCapacityCompare
)
+
"%"
:
"下降"
+
Math
.
abs
(
allCapacityCompare
)
+
"%"
);
double
avgCongestIndexCompare
=
0
;
if
(
allCongestIndexLast
!=
0
){
avgCongestIndexCompare
=
Math
.
round
((
allCongestIndex
/
waveOptimizeWeeks
.
size
()
-
allCongestIndexLast
/
waveOptimizeWeeks
.
size
())*
10000
/(
allCongestIndexLast
/
waveOptimizeWeeks
.
size
()))/
100.0
;
}
else
{
avgCongestIndexCompare
=
100
;
}
analysisResponseVO
.
setAvgCongestIndexCompare
(
avgCongestIndexCompare
>=
0
?
"增加"
+
String
.
valueOf
(
avgCongestIndexCompare
)
+
"%"
:
"减少"
+
String
.
valueOf
(
Math
.
abs
(
avgCongestIndexCompare
))
+
"%"
);
double
avgSpeedCompare
=
0
;
if
(
allSpeedLast
!=
0
){
avgSpeedCompare
=
Math
.
round
((
allSpeed
/
waveOptimizeWeeks
.
size
()
-
allSpeedLast
/
waveOptimizeWeeks
.
size
())
*
10000
/(
allSpeedLast
/
waveOptimizeWeeks
.
size
()))
/
100.0
;
}
else
{
avgSpeedCompare
=
100
;
}
analysisResponseVO
.
setAvgSpeedCompare
(
avgSpeedCompare
>
0
?
"提升"
+
String
.
valueOf
(
avgSpeedCompare
)
+
"%"
:
"降低"
+
String
.
valueOf
(
Math
.
abs
(
avgSpeedCompare
))
+
"%"
);
double
avgTravelTimeCompare
=
0
;
if
(
allTravelTimeLast
!=
0
){
avgTravelTimeCompare
=
Math
.
round
((
allTravelTime
/
waveOptimizeWeeks
.
size
()
-
allTravelTimeLast
/
waveOptimizeWeeks
.
size
())
*
10000
/(
allTravelTimeLast
/
waveOptimizeWeeks
.
size
()))
/
100.0
;
}
analysisResponseVO
.
setAvgTravelTimeCompare
(
avgTravelTimeCompare
>
0
?
"增加"
+
String
.
valueOf
(
avgTravelTimeCompare
)
+
"%"
:
"减少"
+
String
.
valueOf
(
Math
.
abs
(
avgTravelTimeCompare
)
+
"%"
));
//本周总体情况
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
>=
0
&&
avgTravelTime
<
=
0
)
{
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
>=
5
)
{
if
(
allCapacity
Compare
>
=
0
)
{
if
(
allCapacity
Compare
*
100
>=
5
)
{
analysisResponseVO
.
setWeekTotalitySituation
(
"明显提升"
);
}
else
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有提升"
);
}
}
else
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
>=
0
&&
avgTravelTime
>
0
)
{
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
-
avgTravelTime
>
0
)
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有提升"
);
}
else
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有下降"
);
}
}
else
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
<
0
&&
avgTravelTime
<=
0
)
{
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
-
avgTravelTime
>
0
)
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有提升"
);
}
else
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有下降"
);
}
}
else
if
(
allCapacity
/
waveOptimizeWeeks
.
size
()
<
0
&&
avgTravelTime
>
0
)
{
if
(
Math
.
abs
(
allCapacity
/
waveOptimizeWeeks
.
size
())
>=
5
)
{
}
else
if
(
allCapacityCompare
<
0
)
{
if
(
Math
.
abs
(
allCapacityCompare
*
100
)
>=
5
)
{
analysisResponseVO
.
setWeekTotalitySituation
(
"明显下降"
);
}
else
{
analysisResponseVO
.
setWeekTotalitySituation
(
"略有下降"
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/strategy/impl/StrategyPriorityServiceImpl.java
View file @
7450b246
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/PushStrategyControlService.java
View file @
7450b246
package
net
.
wanji
.
opt
.
synthesis
.
service
;
import
net.wanji.opt.entity.strategy.StrategyParameterPush
;
import
net.wanji.opt.entity.strategy.StrategyPriorityConfigPush
;
import
net.wanji.opt.entity.strategy.StrategyPriorityPlanPush
;
import
net.wanji.opt.entity.strategy.*
;
import
net.wanji.opt.synthesis.pojo.Result
;
import
net.wanji.opt.synthesis.pojo.StrategyControlReq
;
import
net.wanji.opt.synthesis.pojo.StrategyControlSwitchReq
;
...
...
@@ -36,7 +34,7 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result
StartegyPriorityPush
(
List
<
StrategyPriorityConfigPush
>
req
)
throws
Exception
;
Result
StartegyPriorityPush
(
StrategyPriorityGroupPushReq
req
)
throws
Exception
;
/**
* 策略管理日计划配置推送
...
...
@@ -44,7 +42,7 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result
StartegyPriorityPlanPush
(
List
<
StrategyPriorityPlanPush
>
req
)
throws
Exception
;
Result
StartegyPriorityPlanPush
(
StrategyPriorityPlanPushReq
req
)
throws
Exception
;
/**
* 策略管理参数配置推送
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/PushStrategyControlServiceImpl.java
View file @
7450b246
package
net
.
wanji
.
opt
.
synthesis
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.tool.resttool.RestTemplateTool
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.opt.entity.strategy.StrategyParameterPush
;
import
net.wanji.opt.entity.strategy.StrategyPriorityConfigPush
;
import
net.wanji.opt.entity.strategy.StrategyPriorityPlanPush
;
import
net.wanji.opt.entity.strategy.*
;
import
net.wanji.opt.synthesis.pojo.Result
;
import
net.wanji.opt.synthesis.pojo.StrategyControlReq
;
import
net.wanji.opt.synthesis.pojo.StrategyControlSwitchReq
;
...
...
@@ -75,21 +72,19 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* 优先级配置推送
* */
@Override
public
Result
StartegyPriorityPush
(
List
<
StrategyPriorityConfigPush
>
req
)
throws
Exception
{
public
Result
StartegyPriorityPush
(
StrategyPriorityGroupPushReq
req
)
throws
Exception
{
try
{
String
priorityUrl
=
"http://37.12.182.50:8082/api/traffic/strategy/priority/info"
;
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
System
.
out
.
println
(
"req~~"
+
req
);
// 序列化请求参数
String
jsonReq
=
mapper
.
writeValueAsString
(
req
);
//String jsonString = JSON.toJSONString(req);
// System.out.println("请求参数: " + jsonReq);
String
resultStr
=
RestTemplateTool
.
postList
(
switchUrl
,
jsonReq
);
String
resultStr
=
RestTemplateTool
.
post
(
priorityUrl
,
jsonReq
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理优先级推送成功,内容: {}"
,
req
);
log
.
info
(
"下发神思策略管理优先级推送成功,内容: {}"
,
req
);
Result
result
=
mapper
.
readValue
(
resultStr
,
Result
.
class
);
return
result
;
}
else
{
log
.
error
(
"策略管理优先级推送url:{}失败:返回数据异常"
,
switch
Url
);
log
.
error
(
"策略管理优先级推送url:{}失败:返回数据异常"
,
priority
Url
);
return
new
Result
(
"500"
,
"服务调用失败"
,
null
);
}
}
catch
(
Exception
e
)
{
...
...
@@ -101,19 +96,19 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* 日计划配置推送
* */
@Override
public
Result
StartegyPriorityPlanPush
(
List
<
StrategyPriorityPlanPush
>
req
)
throws
Exception
{
public
Result
StartegyPriorityPlanPush
(
StrategyPriorityPlanPushReq
req
)
throws
Exception
{
try
{
String
planUrl
=
"http://37.12.182.50:8082/api/traffic/strategy/priority/schedule"
;
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
// 序列化请求参数
String
jsonReq
=
mapper
.
writeValueAsString
(
req
);
System
.
out
.
println
(
"req~~"
+
jsonReq
);
String
resultStr
=
RestTemplateTool
.
postList
(
switchUrl
,
jsonReq
);
String
resultStr
=
RestTemplateTool
.
post
(
planUrl
,
jsonReq
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理日计划配置推送成功,内容: {}"
,
req
);
Result
result
=
mapper
.
readValue
(
resultStr
,
Result
.
class
);
return
result
;
}
else
{
log
.
error
(
"策略管理日计划配置推送url:{}失败:返回数据异常"
,
switch
Url
);
log
.
error
(
"策略管理日计划配置推送url:{}失败:返回数据异常"
,
plan
Url
);
return
new
Result
(
"500"
,
"服务调用失败"
,
null
);
}
}
catch
(
Exception
e
)
{
...
...
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