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
7fee30dd
Commit
7fee30dd
authored
Apr 21, 2025
by
黄伟铭
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://106.120.201.126:14725/jinan/traffic-signal-platform
parents
6f2677da
59431af8
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
252 additions
and
73 deletions
+252
-73
TEventOptimizeInfoController.java
...trollerv2/eventoptimize/TEventOptimizeInfoController.java
+7
-7
CrossProblemTotalityAnalysisResult.java
...rv2/report/design/CrossProblemTotalityAnalysisResult.java
+0
-4
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+37
-37
HisenseSchemeRingPhaseInfoTask.java
...va/net/wanji/opt/task/HisenseSchemeRingPhaseInfoTask.java
+1
-1
TEventOptimizeInfoController.java
...trollerv2/eventoptimize/TEventOptimizeInfoController.java
+7
-7
GreenHighFrequencyProblemReasonResult.java
...e/greenproblem/GreenHighFrequencyProblemReasonResult.java
+4
-5
CrossProblemTotalityAnalysisResult.java
...rv2/report/design/CrossProblemTotalityAnalysisResult.java
+0
-4
SchedulingParamPush.java
...va/net/wanji/opt/entity/strategy/SchedulingParamPush.java
+18
-0
StrategyParamDetailsPush.java
...t/wanji/opt/entity/strategy/StrategyParamDetailsPush.java
+24
-0
StrategyParameterPush.java
.../net/wanji/opt/entity/strategy/StrategyParameterPush.java
+32
-0
StrategyPriorityGroup.java
.../wanji/opt/entity/strategy/dto/StrategyPriorityGroup.java
+6
-0
StrategyPriorityService.java
...wanji/opt/servicev2/strategy/StrategyPriorityService.java
+1
-1
StrategyPriorityServiceImpl.java
.../servicev2/strategy/impl/StrategyPriorityServiceImpl.java
+70
-1
PushStrategyControlService.java
...nji/opt/synthesis/service/PushStrategyControlService.java
+9
-0
PushStrategyControlServiceImpl.java
...ynthesis/service/impl/PushStrategyControlServiceImpl.java
+30
-1
logback-spring.xml
...al-optimize-service/src/main/resources/logback-spring.xml
+2
-1
StrategyPriorityMapper.xml
...main/resources/mapper/strategy/StrategyPriorityMapper.xml
+4
-4
No files found.
signal-optimize-data-compute/src/main/java/net/wanji/opt/controllerv2/eventoptimize/TEventOptimizeInfoController.java
View file @
7fee30dd
...
...
@@ -32,12 +32,12 @@ public class TEventOptimizeInfoController {
// 新增接口用于调用带有条件的分页查询
@ApiOperation
(
value
=
"报警优化信息-事件优化记录查询-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口id"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
""
,
example
=
"13NAF0B5PH0"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"干线id"
,
required
=
false
,
dataType
=
"
int
"
,
defaultValue
=
""
,
example
=
"4"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"干线id"
,
required
=
false
,
dataType
=
"
Integer
"
,
defaultValue
=
""
,
example
=
"4"
),
})
@GetMapping
(
"/selectPageWithCrossIdAndGreenId"
)
public
JsonViewObject
selectPageWithCrossIdAndGreenId
(
...
...
@@ -62,8 +62,8 @@ public class TEventOptimizeInfoController {
@ApiOperation
(
value
=
"报警优化信息-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口id"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
""
,
example
=
"13MOD0B5SI0"
),
...
...
@@ -134,8 +134,8 @@ public class TEventOptimizeInfoController {
// 新增绿波干线接口用于调用带有条件的分页查询
@ApiOperation
(
value
=
"报警优化干线信息-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"绿波干线"
,
required
=
true
,
dataType
=
"integer"
,
defaultValue
=
"1"
),
...
...
signal-optimize-data-compute/src/main/java/net/wanji/opt/controllerv2/report/design/CrossProblemTotalityAnalysisResult.java
View file @
7fee30dd
...
...
@@ -32,10 +32,6 @@ public class CrossProblemTotalityAnalysisResult extends ParentResult {
@Data
class
CrossProblemTotalityResultResponse
{
@ApiModelProperty
(
value
=
"路口名称"
,
example
=
"经十路(舜耕路-山大路)"
,
position
=
0
)
private
String
crossName
;
@ApiModelProperty
(
value
=
"本周溢出总次数"
,
example
=
"20次"
,
position
=
1
)
private
String
weekOverFlowCount
;
@ApiModelProperty
(
value
=
"本周溢出总次数与上周比较情况"
,
example
=
"增加【减少】10%"
,
position
=
2
)
...
...
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
7fee30dd
...
...
@@ -48,7 +48,6 @@ public class HisenseGreenChartTask {
@Scheduled
(
fixedRate
=
1
*
60
*
1000
,
initialDelay
=
1
*
60
*
1000
)
//@Scheduled(fixedRate = 10 * 60 * 1000, initialDelay = 30 * 1000)
public
void
getGreenChart
()
{
try
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
...
...
@@ -84,9 +83,7 @@ public class HisenseGreenChartTask {
// 1.根据绿波带长度和速度计算行程时间
// 2.根据相位差,行程时间,海信环图计算绿灯红灯点位 正向 crossRedTimesMap 反向backCrossRedTimesMap
//Map<Integer, List<GreenCrossDirDTO>> greenMap = greenCrossDirCache.stream().collect(Collectors.groupingBy(GreenCrossDirDTO::getGreenId));
// todo 测试只需要绿波编号1
Map
<
Integer
,
List
<
GreenCrossDirDTO
>>
greenMap
=
greenCrossDirCache
.
stream
().
filter
(
po
->
Objects
.
equals
(
1
,
po
.
getGreenId
())).
collect
(
Collectors
.
groupingBy
(
GreenCrossDirDTO:
:
getGreenId
));
Map
<
Integer
,
List
<
GreenCrossDirDTO
>>
greenMap
=
greenCrossDirCache
.
stream
().
collect
(
Collectors
.
groupingBy
(
GreenCrossDirDTO:
:
getGreenId
));
List
<
GreenBeltChartDTO
>
greenBeltChartDTOS
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
Integer
,
List
<
GreenCrossDirDTO
>>
entry
:
greenMap
.
entrySet
())
{
GreenBeltChartDTO
greenBeltChartDTO
=
new
GreenBeltChartDTO
();
...
...
@@ -185,8 +182,8 @@ public class HisenseGreenChartTask {
greenChartSchemeHist
.
setQueryDate
(
date
);
greenChartSchemeHistMapper
.
insert
(
greenChartSchemeHist
);
}
log
.
info
(
"绿波图实体参数:{}"
,
mapper
.
writeValueAsString
(
results
));
log
.
info
(
"绿波路口方案环图信息:{}"
,
mapper
.
writeValueAsString
(
greenSchemeRingPhaseMap
));
log
.
debug
(
"绿波图实体参数:{}"
,
mapper
.
writeValueAsString
(
results
));
log
.
debug
(
"绿波路口方案环图信息:{}"
,
mapper
.
writeValueAsString
(
greenSchemeRingPhaseMap
));
}
}
catch
(
Exception
e
)
{
log
.
error
(
"通过海信方案处理绿波波定时任务失败:{}"
,
e
);
...
...
@@ -235,40 +232,42 @@ public class HisenseGreenChartTask {
List
<
List
<
Double
>>
firstList
=
crossGreenTimesMap
.
get
(
firstCrossId
);
List
<
List
<
Double
>>
secondList
=
crossGreenTimesMap
.
get
(
secondCrossId
);
// 第一个路口循环绿灯开始时间
for
(
int
i1
=
0
;
i1
<
firstList
.
size
();
i1
++)
{
List
<
Double
>
greenStartEnd
=
firstList
.
get
(
i1
);
Double
greenStart
=
greenStartEnd
.
get
(
0
);
Double
greenEnd
=
greenStartEnd
.
get
(
1
);
int
index
=
0
;
Double
start
=
0.0
;
Double
end
=
0.0
;
Double
start2
=
0.0
;
Double
end2
=
0.0
;
for
(
int
j
=
greenStart
.
intValue
();
j
<=
greenEnd
.
intValue
();
j
++)
{
int
firstStartPoint
=
j
+
travelTime
.
intValue
();
for
(
int
i3
=
0
;
i3
<
secondList
.
size
();
i3
++)
{
List
<
Double
>
greenStartEnd2
=
secondList
.
get
(
i3
);
Double
greenStart2
=
greenStartEnd2
.
get
(
0
);
Double
greenEnd2
=
greenStartEnd2
.
get
(
1
);
if
(!
CollectionUtils
.
isEmpty
(
firstList
)
&&
!
CollectionUtils
.
isEmpty
(
secondList
))
{
for
(
int
i1
=
0
;
i1
<
firstList
.
size
();
i1
++)
{
List
<
Double
>
greenStartEnd
=
firstList
.
get
(
i1
);
Double
greenStart
=
greenStartEnd
.
get
(
0
);
Double
greenEnd
=
greenStartEnd
.
get
(
1
);
int
index
=
0
;
Double
start
=
0.0
;
Double
end
=
0.0
;
Double
start2
=
0.0
;
Double
end2
=
0.0
;
for
(
int
j
=
greenStart
.
intValue
();
j
<=
greenEnd
.
intValue
();
j
++)
{
int
firstStartPoint
=
j
+
travelTime
.
intValue
();
for
(
int
i3
=
0
;
i3
<
secondList
.
size
();
i3
++)
{
List
<
Double
>
greenStartEnd2
=
secondList
.
get
(
i3
);
Double
greenStart2
=
greenStartEnd2
.
get
(
0
);
Double
greenEnd2
=
greenStartEnd2
.
get
(
1
);
if
(
greenStart
<=
j
&&
j
<=
greenEnd
&&
greenStart2
<=
firstStartPoint
&&
firstStartPoint
<=
greenEnd2
)
{
if
(
greenStart
<=
j
&&
j
<=
greenEnd
&&
greenStart2
<=
firstStartPoint
&&
firstStartPoint
<=
greenEnd2
)
{
if
(
index
==
0
)
{
start
=
j
*
1.0
;
start2
=
firstStartPoint
*
1.0
;
}
else
{
Double
tempEnd
=
j
*
1.0
;
end
=
end
>
tempEnd
?
end
:
tempEnd
;
Double
tempEnd2
=
firstStartPoint
*
1.0
;
end2
=
end2
>
tempEnd2
?
end2
:
tempEnd2
;
if
(
index
==
0
)
{
start
=
j
*
1.0
;
start2
=
firstStartPoint
*
1.0
;
}
else
{
Double
tempEnd
=
j
*
1.0
;
end
=
end
>
tempEnd
?
end
:
tempEnd
;
Double
tempEnd2
=
firstStartPoint
*
1.0
;
end2
=
end2
>
tempEnd2
?
end2
:
tempEnd2
;
}
++
index
;
}
++
index
;
}
}
firstGreenStartList
.
add
(
Arrays
.
asList
(
start
,
end
));
secondGreenStartList
.
add
(
Arrays
.
asList
(
start2
,
end2
));
}
firstGreenStartList
.
add
(
Arrays
.
asList
(
start
,
end
));
secondGreenStartList
.
add
(
Arrays
.
asList
(
start2
,
end2
));
}
}
greenStartMap
.
put
(
firstCrossId
,
firstGreenStartList
);
...
...
@@ -309,10 +308,13 @@ public class HisenseGreenChartTask {
String
crossId
=
greenCrossDirDTO
.
getCrossId
();
Integer
distance
=
greenCrossDirDTO
.
getDistance
();
distances
.
add
(
distance
*
1.0
);
//String crossId = "13MQJ0B5SI0";
String
crossKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
crossId
),
String
.
valueOf
(
indexDir
));
// 获取海信环相位信息
SchemeGreenDirGreenTimeDTO
firstGreenTimeDTO
=
greenDirGreenTimeMap
.
get
(
crossKey
);
if
(
Objects
.
isNull
(
firstGreenTimeDTO
))
{
log
.
error
(
"当前路口:{}, 没有环相位信息异常"
,
crossKey
);
continue
;
}
Integer
cycleLen
=
firstGreenTimeDTO
.
getCycleLen
();
// * 1.0转Double
Double
offset
=
firstGreenTimeDTO
.
getOffset
()
*
1.0
;
...
...
@@ -377,8 +379,6 @@ public class HisenseGreenChartTask {
private
Map
<
String
,
GreenwaveRealtimePO
>
getGreenRealTimeMap
()
{
Map
<
String
,
GreenwaveRealtimePO
>
realTimeMap
=
new
HashMap
<>();
LambdaQueryWrapper
<
GreenwaveRealtimePO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
// todo 测试绿波1
queryWrapper
.
eq
(
GreenwaveRealtimePO:
:
getGreenId
,
1
);
List
<
GreenwaveRealtimePO
>
greenwaveRealtimePOList
=
greenwaveRealtimeMapper
.
selectList
(
queryWrapper
);
for
(
GreenwaveRealtimePO
greenwaveRealtimePO
:
greenwaveRealtimePOList
)
{
Integer
greenId
=
greenwaveRealtimePO
.
getGreenId
();
...
...
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseSchemeRingPhaseInfoTask.java
View file @
7fee30dd
...
...
@@ -34,7 +34,7 @@ public class HisenseSchemeRingPhaseInfoTask {
@Resource
private
GreenChartSchemeRingPhaseMapper
greenChartSchemeRingPhaseMapper
;
@Scheduled
(
fixedRate
=
1
*
60
*
1000
,
initialDelay
=
1
*
60
*
1000
)
@Scheduled
(
fixedRate
=
1
0
*
60
*
1000
,
initialDelay
=
1
*
60
*
1000
)
public
void
getSchemeRingPhase
()
{
List
<
SchemeGreenDirGreenTimeDTO
>
schemeGreenDirGreenTimeDTOS
=
new
ArrayList
<>();
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/eventoptimize/TEventOptimizeInfoController.java
View file @
7fee30dd
...
...
@@ -32,12 +32,12 @@ public class TEventOptimizeInfoController {
// 新增接口用于调用带有条件的分页查询
@ApiOperation
(
value
=
"报警优化信息-事件优化记录查询-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
int
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"
Integer
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口id"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
""
,
example
=
"13NAF0B5PH0"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"干线id"
,
required
=
false
,
dataType
=
"
int
"
,
defaultValue
=
""
,
example
=
"4"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"干线id"
,
required
=
false
,
dataType
=
"
Integer
"
,
defaultValue
=
""
,
example
=
"4"
),
})
@GetMapping
(
"/selectPageWithCrossIdAndGreenId"
)
public
JsonViewObject
selectPageWithCrossIdAndGreenId
(
...
...
@@ -62,8 +62,8 @@ public class TEventOptimizeInfoController {
@ApiOperation
(
value
=
"报警优化信息-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"int"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"int"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"int
eger
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"int
eger
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"crossId"
,
value
=
"路口id"
,
required
=
true
,
dataType
=
"String"
,
defaultValue
=
""
,
example
=
"13MOD0B5SI0"
),
...
...
@@ -134,8 +134,8 @@ public class TEventOptimizeInfoController {
// 新增绿波干线接口用于调用带有条件的分页查询
@ApiOperation
(
value
=
"报警优化干线信息-根据条件分页查询记录"
,
notes
=
"根据条件分页查询记录"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
,
hidden
=
false
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"int"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"int"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"页数"
,
required
=
true
,
dataType
=
"int
eger
"
,
defaultValue
=
"1"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"int
eger
"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"开始时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"结束时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2025-03-21 23:00:00"
),
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"绿波干线"
,
required
=
true
,
dataType
=
"integer"
,
defaultValue
=
"1"
),
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/judgeanalysis/design/response/greenproblem/GreenHighFrequencyProblemReasonResult.java
View file @
7fee30dd
...
...
@@ -4,20 +4,19 @@ import com.alibaba.fastjson.JSON;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.opt.controllerv2.judgeanalysis.design.response.ParentResult
;
import
net.wanji.opt.vo2.TrunkLineCrossProblemVO
;
import
java.util.List
;
@Data
public
class
GreenHighFrequencyProblemReasonResult
extends
ParentResult
{
private
List
<
TrunkLineCrossProblemEntity
>
content
;
private
List
<
Jud
TrunkLineCrossProblemEntity
>
content
;
public
List
<
TrunkLineCrossProblemEntity
>
getContent
()
{
public
List
<
Jud
TrunkLineCrossProblemEntity
>
getContent
()
{
return
content
;
}
public
GreenHighFrequencyProblemReasonResult
setContent
(
List
<
TrunkLineCrossProblemEntity
>
content
)
{
public
GreenHighFrequencyProblemReasonResult
setContent
(
List
<
Jud
TrunkLineCrossProblemEntity
>
content
)
{
this
.
content
=
content
;
return
this
;
}
...
...
@@ -31,7 +30,7 @@ public class GreenHighFrequencyProblemReasonResult extends ParentResult {
@Data
class
TrunkLineCrossProblemEntity
{
class
Jud
TrunkLineCrossProblemEntity
{
@ApiModelProperty
(
value
=
"干线ID"
,
example
=
""
)
private
String
greenId
;
@ApiModelProperty
(
value
=
"路口ID"
,
example
=
""
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controllerv2/report/design/CrossProblemTotalityAnalysisResult.java
View file @
7fee30dd
...
...
@@ -32,10 +32,6 @@ public class CrossProblemTotalityAnalysisResult extends ParentResult {
@Data
class
CrossProblemTotalityResultResponse
{
@ApiModelProperty
(
value
=
"路口名称"
,
example
=
"经十路(舜耕路-山大路)"
,
position
=
0
)
private
String
crossName
;
@ApiModelProperty
(
value
=
"本周溢出总次数"
,
example
=
"20次"
,
position
=
1
)
private
String
weekOverFlowCount
;
@ApiModelProperty
(
value
=
"本周溢出总次数与上周比较情况"
,
example
=
"增加【减少】10%"
,
position
=
2
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/SchedulingParamPush.java
0 → 100644
View file @
7fee30dd
package
net
.
wanji
.
opt
.
entity
.
strategy
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/*
* 调度参数配置推送神思
* */
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SchedulingParamPush
{
//开始参数
private
List
<
StrategySchedulingItem
>
start
;
//停止参数
private
List
<
StrategySchedulingItem
>
end
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/StrategyParamDetailsPush.java
0 → 100644
View file @
7fee30dd
package
net
.
wanji
.
opt
.
entity
.
strategy
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/*
* 参数配置详情推送神思
* */
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
StrategyParamDetailsPush
{
//参数中文名称
private
String
paramCN
;
//参数英文名称
private
String
paramEN
;
//参数数据类型
private
String
dataType
;
//参数描述
private
String
description
;
//参数阈值[1,3]
private
String
threshold
;
//参数值
private
String
value
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/StrategyParameterPush.java
0 → 100644
View file @
7fee30dd
package
net
.
wanji
.
opt
.
entity
.
strategy
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/*
* 参数配置推送神思最外层
* */
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
StrategyParameterPush
{
//1-路口;2干线
private
int
type
;
//干线编号
private
List
<
Integer
>
greenId
;
//路口编号
private
List
<
String
>
crossId
;
//策略唯一编号
private
String
strategyNo
;
//策略名称
private
String
strategyName
;
//场景 编号
private
Integer
scene
;
//场景名称
private
String
method
;
//参数配置
private
List
<
StrategyParamDetailsPush
>
paramDetails
;
//策略调度参数启停
private
SchedulingParamPush
schedulingParam
;
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/strategy/dto/StrategyPriorityGroup.java
View file @
7fee30dd
...
...
@@ -45,6 +45,12 @@ public class StrategyPriorityGroup {
//干线 IDs
private
List
<
Integer
>
greenIds
;
//策略名称 参数配置神思用
private
String
strategyName
;
//场景 参数配置神思用
private
String
method
;
//场景code 参数配置神思用
private
Integer
scene
;
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/strategy/StrategyPriorityService.java
View file @
7fee30dd
...
...
@@ -42,7 +42,7 @@ public interface StrategyPriorityService extends IService<StrategyPriorityDailyI
List
<
StrategyPriorityDailyInfo
>
getPlanConfigData
(
String
crossId
,
Integer
greenId
,
Integer
type
);
void
saveParamterConfig
(
StrategyPriorityGroup
strategyPriorityGroup
)
throws
JsonProcessing
Exception
;
void
saveParamterConfig
(
StrategyPriorityGroup
strategyPriorityGroup
)
throws
Exception
;
List
<
StrategyParameterConfig
>
getParamConfigData
(
String
crossId
,
Integer
greenId
,
Integer
type
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/strategy/impl/StrategyPriorityServiceImpl.java
View file @
7fee30dd
...
...
@@ -333,7 +333,7 @@ import java.util.stream.Collectors;
* */
@Override
@Transactional
public
void
saveParamterConfig
(
StrategyPriorityGroup
group
)
throws
JsonProcessing
Exception
{
public
void
saveParamterConfig
(
StrategyPriorityGroup
group
)
throws
Exception
{
try
{
List
<
StrategyParameterConfig
>
savePlanList
=
new
ArrayList
<>();
...
...
@@ -402,6 +402,10 @@ import java.util.stream.Collectors;
}
strategyPriorityMapper
.
saveParamConfig
(
savePlanList
);
//组装神思需要的参数配置接口
StrategyParameterPush
strategyParameterPush
=
pushStrategyPriorityParam
(
group
);
//推送神思
//Result result = pushStrategyControlService.StartegyPriorityParameterPush(strategyParameterPush);
}
catch
(
Exception
e
){
log
.
error
(
"{} saveParamterConfig"
,
this
.
getClass
().
getSimpleName
(),
e
);
throw
e
;
...
...
@@ -652,4 +656,69 @@ import java.util.stream.Collectors;
return
strategyPriorityPlanPush
;
}
/*参数配置神思推送*/
private
StrategyParameterPush
pushStrategyPriorityParam
(
StrategyPriorityGroup
group
)
{
//推送神思接口
StrategyParameterPush
strategyParameterPush
=
new
StrategyParameterPush
();
//类型:1路口 2 干线
Integer
type
=
group
.
getType
();
//路口id
List
<
String
>
crossIds
=
group
.
getCrossIds
();
//干线id
List
<
Integer
>
greenIds
=
group
.
getGreenIds
();
//策略编号
String
strategyNo
=
group
.
getStrategyNo
();
//策略名称
String
strategyName
=
group
.
getStrategyName
();
//场景编号
Integer
scene
=
group
.
getScene
();
//场景名称
String
method
=
group
.
getMethod
();
//1 路口 2干线
if
(
type
==
1
){
strategyParameterPush
.
setType
(
1
);
strategyParameterPush
.
setGreenId
(
null
);
strategyParameterPush
.
setCrossId
(
crossIds
);
}
else
{
strategyParameterPush
.
setType
(
2
);
strategyParameterPush
.
setGreenId
(
greenIds
);
strategyParameterPush
.
setCrossId
(
null
);
}
strategyParameterPush
.
setStrategyNo
(
strategyNo
);
strategyParameterPush
.
setStrategyName
(
strategyName
);
strategyParameterPush
.
setScene
(
scene
);
strategyParameterPush
.
setMethod
(
method
);
//参数详情
List
<
StrategyParamDetailsPush
>
strategyParamDetailsList
=
new
ArrayList
<>();
//参数详情
List
<
StrategyPriorityParamter
>
parameterConfigList
=
group
.
getParameterConfigList
();
for
(
StrategyPriorityParamter
item:
parameterConfigList
){
StrategyParamDetailsPush
strategyParamDetailsPush
=
new
StrategyParamDetailsPush
();
strategyParamDetailsPush
.
setParamEN
(
item
.
getParamEN
());
strategyParamDetailsPush
.
setParamCN
(
item
.
getParamCN
());
strategyParamDetailsPush
.
setDescription
(
item
.
getDescription
());
strategyParamDetailsPush
.
setDataType
(
item
.
getDataType
());
strategyParamDetailsPush
.
setThreshold
(
item
.
getThreshold
());
strategyParamDetailsPush
.
setValue
(
item
.
getValue
());
strategyParamDetailsList
.
add
(
strategyParamDetailsPush
);
}
strategyParameterPush
.
setParamDetails
(
strategyParamDetailsList
);
if
(
type
==
1
){
//取出调度详情
StrategySchedulingParam
schedulingParamters
=
group
.
getSchedulingParamters
();
List
<
StrategySchedulingItem
>
start
=
schedulingParamters
.
getStart
();
List
<
StrategySchedulingItem
>
end
=
schedulingParamters
.
getEnd
();
//组装调度详情
SchedulingParamPush
schedulingParamPush
=
new
SchedulingParamPush
();
schedulingParamPush
.
setStart
(
start
);
schedulingParamPush
.
setEnd
(
end
);
strategyParameterPush
.
setSchedulingParam
(
schedulingParamPush
);
}
else
{
strategyParameterPush
.
setSchedulingParam
(
null
);
}
return
strategyParameterPush
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/PushStrategyControlService.java
View file @
7fee30dd
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.synthesis.pojo.Result
;
...
...
@@ -44,5 +45,13 @@ public interface PushStrategyControlService {
* @throws Exception
*/
Result
StartegyPriorityPlanPush
(
StrategyPriorityPlanPush
req
)
throws
Exception
;
/**
* 策略管理参数配置推送
* @param req
* @return
* @throws Exception
*/
Result
StartegyPriorityParameterPush
(
StrategyParameterPush
req
)
throws
Exception
;
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/PushStrategyControlServiceImpl.java
View file @
7fee30dd
...
...
@@ -5,6 +5,7 @@ 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.synthesis.pojo.Result
;
...
...
@@ -106,7 +107,6 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
System
.
out
.
println
(
"req~~"
+
req
);
// 序列化请求参数
String
jsonReq
=
mapper
.
writeValueAsString
(
req
);
System
.
out
.
println
(
"请求参数: "
+
jsonReq
);
String
resultStr
=
RestTemplateTool
.
post
(
switchUrl
,
jsonReq
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理日计划配置推送成功,内容: {}"
,
req
);
...
...
@@ -121,4 +121,33 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
throw
new
Exception
(
e
);
}
}
/**
* 策略管理参数配置推送
* @param req
* @return
* @throws Exception
*/
@Override
public
Result
StartegyPriorityParameterPush
(
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
);
if
(
StringUtils
.
isNotBlank
(
resultStr
))
{
log
.
info
(
"下发神思策略管理参数配置推送成功,内容: {}"
,
req
);
Result
result
=
mapper
.
readValue
(
resultStr
,
Result
.
class
);
return
result
;
}
else
{
log
.
error
(
"策略管理参数配置推送url:{}失败:返回数据异常"
,
switchUrl
);
return
new
Result
(
"500"
,
"服务调用失败"
,
null
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"策略理参数配置推送url:{},失败:{}"
,
switchUrl
,
e
);
throw
new
Exception
(
e
);
}
}
}
signal-optimize-service/src/main/resources/logback-spring.xml
View file @
7fee30dd
...
...
@@ -53,6 +53,7 @@
<file>
${LOG_PATH}/opt/error.log
</file>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
ERROR
</level>
<level>
WARN
</level>
</filter>
>
<encoder>
<pattern>
${normal-pattern}
</pattern>
...
...
@@ -68,7 +69,7 @@
</rollingPolicy>
</appender>
<root
level=
"
INFO
"
>
<root
level=
"
DEBUG
"
>
<appender-ref
ref=
"consoleLog"
/>
<appender-ref
ref=
"fileInfoLog"
/>
<appender-ref
ref=
"fileErrorLog"
/>
...
...
signal-optimize-service/src/main/resources/mapper/strategy/StrategyPriorityMapper.xml
View file @
7fee30dd
...
...
@@ -392,10 +392,10 @@
SELECT t1.green_id as greenId, t4.name as waveName, t1.cross_id as crossId,
t3.name as crossName,t1.sort,
t2.daily_plan_details as dailyPlanDetails
FROM
t_greenwave_cross t1
LEFT JOIN t_strategy_priority_daily_info t2 on t1.cross_id = t2.cross_id and t2.type=2
LEFT JOIN t_base_cross_info t3 on t1.cross_id = t3.id
LEFT JOIN t_greenwave_info t4 on t1.green_id = t4
.id
FROM
t_greenwave_info t4
LEFT JOIN t_greenwave_cross t1 on t1.green_id = t4.id
LEFT JOIN t_strategy_priority_daily_info t2 on t1.cross_id = t2.cross_id and t2.type=2
LEFT JOIN t_base_cross_info t3 on t1.cross_id = t3
.id
</select>
<select
id=
"selectGreenPriorityTable"
parameterType=
"map"
resultType=
"net.wanji.opt.entity.strategy.StrategyPriorityConfig"
>
select
...
...
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