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
f3732b5c
Commit
f3732b5c
authored
Apr 21, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
afc6ff71
fd841aec
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
163 additions
and
91 deletions
+163
-91
StrategyPriorityServiceImpl.java
.../servicev2/strategy/impl/StrategyPriorityServiceImpl.java
+152
-82
PushStrategyControlService.java
...nji/opt/synthesis/service/PushStrategyControlService.java
+2
-2
PushStrategyControlServiceImpl.java
...ynthesis/service/impl/PushStrategyControlServiceImpl.java
+6
-6
AnalysisProblemGreenHourMapper.xml
...s/mapper/judgeanalysis/AnalysisProblemGreenHourMapper.xml
+2
-0
CrossProblemMapper.xml
...e/src/main/resources/mapper/report/CrossProblemMapper.xml
+1
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/strategy/impl/StrategyPriorityServiceImpl.java
View file @
f3732b5c
...
...
@@ -298,7 +298,7 @@ import java.util.stream.Collectors;
StrategyPriorityPlanPush
strategyPriorityPlanPush
=
pushStrategyPriorityPlan
(
dailyPlanDetails
);
List
<
StrategyPriorityPlanPush
>
strategyPriorityPlanPush
=
pushStrategyPriorityPlan
(
dailyPlanDetails
);
//推送日计划配置到神思
//Result result = pushStrategyControlService.StartegyPriorityPlanPush(strategyPriorityPlanPush);
}
catch
(
Exception
e
){
...
...
@@ -403,7 +403,7 @@ import java.util.stream.Collectors;
strategyPriorityMapper
.
saveParamConfig
(
savePlanList
);
//组装神思需要的参数配置接口
StrategyParameterPush
strategyParameterPush
=
pushStrategyPriorityParam
(
group
);
List
<
StrategyParameterPush
>
strategyParameterPush
=
pushStrategyPriorityParam
(
group
);
//推送神思
//Result result = pushStrategyControlService.StartegyPriorityParameterPush(strategyParameterPush);
}
catch
(
Exception
e
){
...
...
@@ -497,84 +497,147 @@ import java.util.stream.Collectors;
}
/*优先级配置神思推送*/
// private List<StrategyPriorityConfigPush> pushStrategyPriorityConfig(List<StrategyPriorityGroup> dataList) {
// //最终优先级配置推送神思
// List<StrategyPriorityConfigPush> pushStrategyPriorityList = new ArrayList<>();
//
// for (StrategyPriorityGroup group : dataList) {
// // 创建顶层对象
// StrategyPriorityConfigPush strategyPriorityConfigPush = new StrategyPriorityConfigPush();
// //1:路口 2:干线
// Integer type = group.getType();
// if (type==1){
// //路口ID
// List<String> crossIds = group.getCrossIds();
// strategyPriorityConfigPush.setCrossId(crossIds);
// //干线ID
// List<Integer> greenIds = group.getGreenIds();
// strategyPriorityConfigPush.setGreenId(null);
// //type
// strategyPriorityConfigPush.setType(type);
//
// // 组装分组详情
// List<GroupIdDetails> groupIdDetailsList = new ArrayList<>();
// GroupIdDetails groupIdDetails = new GroupIdDetails();
// //分组名称
// String label = group.getLabel();
// //分组编号
// Integer labelCode = group.getLabelCode();
// groupIdDetails.setGroupId(labelCode);
// groupIdDetails.setGroupName(label);
// // 创建一个临时列表,用于存储所有详情数据
// List<StrategyPriorityDetailsPush> detailsList = new ArrayList<>();
// //组装详情数据
// for (StrategyPriorityConfig item : group.getData()) {
// StrategyPriorityDetailsPush strategyPriorityDetailsPush=new StrategyPriorityDetailsPush();
// //策略编号
// strategyPriorityDetailsPush.setStrategyNo(item.getStrategyNo());
// //策略名称
// strategyPriorityDetailsPush.setStrategyName(item.getStrategyName());
// //优先级
// strategyPriorityDetailsPush.setPriority(item.getPriority());
// //场景名称
// strategyPriorityDetailsPush.setMethod(item.getMethod());
// //场景编码
// strategyPriorityDetailsPush.setScene(item.getScene());
// //公司名称
// strategyPriorityDetailsPush.setCompany(item.getCompany());
// // 将详情数据添加到临时列表中
// detailsList.add(strategyPriorityDetailsPush);
// }
// //设置详情数据
// groupIdDetails.setStrategyDetails(detailsList);
//
// groupIdDetailsList.add(groupIdDetails);
// strategyPriorityConfigPush.setGroupIdDetails(groupIdDetailsList);
// // 将组装好的 StrategyPriorityConfigPush 对象添加到最终列表中
// pushStrategyPriorityList.add(strategyPriorityConfigPush);
//
// }else if (type==2){
// //干线ID
// List<Integer> greenIds = group.getGreenIds();
// strategyPriorityConfigPush.setGreenId(greenIds);
// strategyPriorityConfigPush.setType(type);
// //路口ID
// List<String> crossIds = group.getCrossIds();
// strategyPriorityConfigPush.setCrossId(null);
// // 组装分组详情
// List<GroupIdDetails> groupIdDetailsList = new ArrayList<>();
// GroupIdDetails groupIdDetails = new GroupIdDetails();
// //分组名称
// String label = group.getLabel();
// //分组编号
// Integer labelCode = group.getLabelCode();
// groupIdDetails.setGroupId(labelCode);
// groupIdDetails.setGroupName(label);
// // 创建一个临时列表,用于存储所有详情数据
// List<StrategyPriorityDetailsPush> detailsList = new ArrayList<>();
// //组装详情数据
// for (StrategyPriorityConfig item : group.getData()) {
// StrategyPriorityDetailsPush strategyPriorityDetailsPush=new StrategyPriorityDetailsPush();
// //策略编号
// strategyPriorityDetailsPush.setStrategyNo(item.getStrategyNo());
// //策略名称
// strategyPriorityDetailsPush.setStrategyName(item.getStrategyName());
// //优先级
// strategyPriorityDetailsPush.setPriority(item.getPriority());
// //场景名称
// strategyPriorityDetailsPush.setMethod(item.getMethod());
// //场景编码
// strategyPriorityDetailsPush.setScene(item.getScene());
// //公司名称
// strategyPriorityDetailsPush.setCompany(item.getCompany());
// // 将详情数据添加到临时列表中
// detailsList.add(strategyPriorityDetailsPush);
// }
// //设置详情数据
// groupIdDetails.setStrategyDetails(detailsList);
//
// groupIdDetailsList.add(groupIdDetails);
// strategyPriorityConfigPush.setGroupIdDetails(groupIdDetailsList);
// // 将组装好的 StrategyPriorityConfigPush 对象添加到最终列表中
// pushStrategyPriorityList.add(strategyPriorityConfigPush);
// }
// }
// return pushStrategyPriorityList;
// }
/*优先级配置神思推送*/
private
List
<
StrategyPriorityConfigPush
>
pushStrategyPriorityConfig
(
List
<
StrategyPriorityGroup
>
dataList
)
{
//最终优先级配置推送神思
// 最终优先级配置推送神思
List
<
StrategyPriorityConfigPush
>
pushStrategyPriorityList
=
new
ArrayList
<>();
// 创建顶层对象
StrategyPriorityConfigPush
strategyPriorityConfigPush
=
new
StrategyPriorityConfigPush
();
// 分组详情列表
List
<
GroupIdDetails
>
groupIdDetailsList
=
new
ArrayList
<>();
for
(
StrategyPriorityGroup
group
:
dataList
)
{
for
(
StrategyPriorityGroup
group
:
dataList
)
{
// 创建顶层对象
StrategyPriorityConfigPush
strategyPriorityConfigPush
=
new
StrategyPriorityConfigPush
();
//1:路口 2:干线
// 设置基本信息
Integer
type
=
group
.
getType
();
if
(
type
==
1
){
//路口ID
List
<
String
>
crossIds
=
group
.
getCrossIds
();
strategyPriorityConfigPush
.
setCrossId
(
crossIds
);
//干线ID
List
<
Integer
>
greenIds
=
group
.
getGreenIds
();
strategyPriorityConfigPush
.
setType
(
type
);
if
(
type
==
1
)
{
// 路口类型
strategyPriorityConfigPush
.
setCrossId
(
group
.
getCrossIds
());
strategyPriorityConfigPush
.
setGreenId
(
null
);
//type
strategyPriorityConfigPush
.
setType
(
type
);
}
else
if
(
type
==
2
)
{
// 干线类型
strategyPriorityConfigPush
.
setGreenId
(
group
.
getGreenIds
());
strategyPriorityConfigPush
.
setCrossId
(
null
);
}
// 组装分组详情
List
<
GroupIdDetails
>
groupIdDetailsList
=
new
ArrayList
<>();
GroupIdDetails
groupIdDetails
=
new
GroupIdDetails
();
//分组名称
String
label
=
group
.
getLabel
();
//分组编号
Integer
labelCode
=
group
.
getLabelCode
();
groupIdDetails
.
setGroupId
(
labelCode
);
groupIdDetails
.
setGroupName
(
label
);
// 创建一个临时列表,用于存储所有详情数据
List
<
StrategyPriorityDetailsPush
>
detailsList
=
new
ArrayList
<>();
//组装详情数据
for
(
StrategyPriorityConfig
item
:
group
.
getData
())
{
StrategyPriorityDetailsPush
strategyPriorityDetailsPush
=
new
StrategyPriorityDetailsPush
();
//策略编号
strategyPriorityDetailsPush
.
setStrategyNo
(
item
.
getStrategyNo
());
//策略名称
strategyPriorityDetailsPush
.
setStrategyName
(
item
.
getStrategyName
());
//优先级
strategyPriorityDetailsPush
.
setPriority
(
item
.
getPriority
());
//场景名称
strategyPriorityDetailsPush
.
setMethod
(
item
.
getMethod
());
//场景编码
strategyPriorityDetailsPush
.
setScene
(
item
.
getScene
());
//公司名称
strategyPriorityDetailsPush
.
setCompany
(
item
.
getCompany
());
// 将详情数据添加到临时列表中
detailsList
.
add
(
strategyPriorityDetailsPush
);
}
//设置详情数据
groupIdDetails
.
setStrategyDetails
(
detailsList
);
groupIdDetailsList
.
add
(
groupIdDetails
);
strategyPriorityConfigPush
.
setGroupIdDetails
(
groupIdDetailsList
);
// 将组装好的 StrategyPriorityConfigPush 对象添加到最终列表中
pushStrategyPriorityList
.
add
(
strategyPriorityConfigPush
);
// 设置分组名称和编号
groupIdDetails
.
setGroupName
(
group
.
getLabel
());
groupIdDetails
.
setGroupId
(
group
.
getLabelCode
());
}
else
if
(
type
==
2
){
//干线ID
List
<
Integer
>
greenIds
=
group
.
getGreenIds
();
strategyPriorityConfigPush
.
setGreenId
(
greenIds
);
strategyPriorityConfigPush
.
setType
(
type
);
//路口ID
List
<
String
>
crossIds
=
group
.
getCrossIds
();
strategyPriorityConfigPush
.
setCrossId
(
null
);
// 组装分组详情
List
<
GroupIdDetails
>
groupIdDetailsList
=
new
ArrayList
<>();
GroupIdDetails
groupIdDetails
=
new
GroupIdDetails
();
//分组名称
String
label
=
group
.
getLabel
();
//分组编号
Integer
labelCode
=
group
.
getLabelCode
();
groupIdDetails
.
setGroupId
(
labelCode
);
groupIdDetails
.
setGroupName
(
label
);
// 创建一个临时列表,用于存储所有详情数据
// 创建一个临时列表,用于存储所有策略详情数据
List
<
StrategyPriorityDetailsPush
>
detailsList
=
new
ArrayList
<>();
//组装详情数据
// 组装策略详情数据
for
(
StrategyPriorityConfig
item
:
group
.
getData
())
{
StrategyPriorityDetailsPush
strategyPriorityDetailsPush
=
new
StrategyPriorityDetailsPush
();
StrategyPriorityDetailsPush
strategyPriorityDetailsPush
=
new
StrategyPriorityDetailsPush
();
// 填充策略详情字段
//策略编号
strategyPriorityDetailsPush
.
setStrategyNo
(
item
.
getStrategyNo
());
//策略名称
...
...
@@ -587,25 +650,30 @@ import java.util.stream.Collectors;
strategyPriorityDetailsPush
.
setScene
(
item
.
getScene
());
//公司名称
strategyPriorityDetailsPush
.
setCompany
(
item
.
getCompany
());
// 将详情数据添加到临时列表中
// 将策略详情添加到临时列表中
detailsList
.
add
(
strategyPriorityDetailsPush
);
}
//
设置详情数据
//
设置策略详情列表
groupIdDetails
.
setStrategyDetails
(
detailsList
);
// 添加分组详情到分组详情列表
groupIdDetailsList
.
add
(
groupIdDetails
);
strategyPriorityConfigPush
.
setGroupIdDetails
(
groupIdDetailsList
);
// 将组装好的 StrategyPriorityConfigPush 对象添加到最终列表中
pushStrategyPriorityList
.
add
(
strategyPriorityConfigPush
);
}
}
// 设置分组详情列表到顶层对象
strategyPriorityConfigPush
.
setGroupIdDetails
(
groupIdDetailsList
);
// 将组装好的 StrategyPriorityConfigPush 对象添加到最终列表中
pushStrategyPriorityList
.
add
(
strategyPriorityConfigPush
);
return
pushStrategyPriorityList
;
}
/*日计划配置神思推送*/
private
StrategyPriorityPlanPush
pushStrategyPriorityPlan
(
List
<
StrategyPriorityGroup
>
dailyPlanDetails
)
{
private
List
<
StrategyPriorityPlanPush
>
pushStrategyPriorityPlan
(
List
<
StrategyPriorityGroup
>
dailyPlanDetails
)
{
//日计划推送到神思
List
<
StrategyPriorityPlanPush
>
strategyPriorityPlanPushList
=
new
ArrayList
<>();
StrategyPriorityPlanPush
strategyPriorityPlanPush
=
new
StrategyPriorityPlanPush
();
//
List
<
DailyPlanDetails
>
dailyPlanDetailsList
=
new
ArrayList
<>();
...
...
@@ -654,10 +722,12 @@ import java.util.stream.Collectors;
// 设置每日计划详情列表到推送对象
strategyPriorityPlanPush
.
setDailyPlanDetails
(
dailyPlanDetailsList
);
return
strategyPriorityPlanPush
;
strategyPriorityPlanPushList
.
add
(
strategyPriorityPlanPush
);
return
strategyPriorityPlanPushList
;
}
/*参数配置神思推送*/
private
StrategyParameterPush
pushStrategyPriorityParam
(
StrategyPriorityGroup
group
)
{
private
List
<
StrategyParameterPush
>
pushStrategyPriorityParam
(
StrategyPriorityGroup
group
)
{
List
<
StrategyParameterPush
>
StrategyParameterPushList
=
new
ArrayList
<>();
//推送神思接口
StrategyParameterPush
strategyParameterPush
=
new
StrategyParameterPush
();
//类型:1路口 2 干线
...
...
@@ -717,8 +787,8 @@ import java.util.stream.Collectors;
}
else
{
strategyParameterPush
.
setSchedulingParam
(
null
);
}
return
strategyParameterPush
;
StrategyParameterPushList
.
add
(
strategyParameterPush
);
return
StrategyParameterPushList
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/PushStrategyControlService.java
View file @
f3732b5c
...
...
@@ -44,7 +44,7 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result
StartegyPriorityPlanPush
(
StrategyPriorityPlanPush
req
)
throws
Exception
;
Result
StartegyPriorityPlanPush
(
List
<
StrategyPriorityPlanPush
>
req
)
throws
Exception
;
/**
* 策略管理参数配置推送
...
...
@@ -52,6 +52,6 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result
StartegyPriorityParameterPush
(
StrategyParameterPush
req
)
throws
Exception
;
Result
StartegyPriorityParameterPush
(
List
<
StrategyParameterPush
>
req
)
throws
Exception
;
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/PushStrategyControlServiceImpl.java
View file @
f3732b5c
...
...
@@ -101,13 +101,13 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* 日计划配置推送
* */
@Override
public
Result
StartegyPriorityPlanPush
(
StrategyPriorityPlanPush
req
)
throws
Exception
{
public
Result
StartegyPriorityPlanPush
(
List
<
StrategyPriorityPlanPush
>
req
)
throws
Exception
{
try
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
System
.
out
.
println
(
"req~~"
+
req
);
// 序列化请求参数
String
jsonReq
=
mapper
.
writeValueAsString
(
req
);
String
resultStr
=
RestTemplateTool
.
post
(
switchUrl
,
jsonReq
);
System
.
out
.
println
(
"req~~"
+
jsonReq
);
String
resultStr
=
RestTemplateTool
.
postList
(
switchUrl
,
jsonReq
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理日计划配置推送成功,内容: {}"
,
req
);
Result
result
=
mapper
.
readValue
(
resultStr
,
Result
.
class
);
...
...
@@ -129,13 +129,13 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* @throws Exception
*/
@Override
public
Result
StartegyPriorityParameterPush
(
StrategyParameterPush
req
)
throws
Exception
{
public
Result
StartegyPriorityParameterPush
(
List
<
StrategyParameterPush
>
req
)
throws
Exception
{
try
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
System
.
out
.
println
(
"req~~"
+
req
);
// 序列化请求参数
String
jsonReq
=
mapper
.
writeValueAsString
(
req
);
String
resultStr
=
RestTemplateTool
.
post
(
switchUrl
,
jsonReq
);
System
.
out
.
println
(
"req~~"
+
jsonReq
);
String
resultStr
=
RestTemplateTool
.
postList
(
switchUrl
,
jsonReq
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理参数配置推送成功,内容: {}"
,
req
);
Result
result
=
mapper
.
readValue
(
resultStr
,
Result
.
class
);
...
...
signal-optimize-service/src/main/resources/mapper/judgeanalysis/AnalysisProblemGreenHourMapper.xml
View file @
f3732b5c
...
...
@@ -285,11 +285,13 @@
JOIN t_base_rid_info t3
ON sub_t2.cross_id=t3.end_cross_id
AND sub_t2.dir_type=t3.in_dir
AND t1.in_dir=t3.in_dir
WHERE
1=1
<if
test=
"greenId!=null and greenId!=''"
>
AND t1.green_id=#{greenId}
</if>
and t1.sort!=1
ORDER BY
sub_t2.traffic_index DESC
limit 1
...
...
signal-optimize-service/src/main/resources/mapper/report/CrossProblemMapper.xml
View file @
f3732b5c
...
...
@@ -52,7 +52,7 @@
and year_week = #{yearWeek}
</if>
<if
test=
"crossIdList != null"
>
and
t4.
cross_id in
and cross_id in
<foreach
collection=
"crossIdList"
item=
"crossId"
open=
"("
close=
")"
separator=
","
>
#{crossId}
</foreach>
...
...
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