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
b43e3d51
Commit
b43e3d51
authored
Apr 16, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
干线周报接口-优化计算
parent
5d5132a7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
16 deletions
+24
-16
OptimizeStatisticTask.java
...c/main/java/net/wanji/opt/task/OptimizeStatisticTask.java
+22
-14
bootstrap-test.yaml
...imize-data-compute/src/test/resources/bootstrap-test.yaml
+1
-1
AnalysisReportCrossOptimizeDetailMapper.xml
...mapper/report/AnalysisReportCrossOptimizeDetailMapper.xml
+1
-1
No files found.
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/OptimizeStatisticTask.java
View file @
b43e3d51
...
...
@@ -207,7 +207,7 @@ public class OptimizeStatisticTask {
while
(
beginOfDay
.
before
(
endOfDay
))
{
String
startDate
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
format
(
beginOfDay
,
"yyyy-MM-dd HH:mm:ss"
);
beginOfDay
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
offsetDay
(
beginOfDay
,
1
);
beginOfDay
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
offsetDay
(
beginOfDay
,
1
);
String
endDate
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
format
(
beginOfDay
,
"yyyy-MM-dd HH:mm:ss"
);
//==========================================================================================================//
...
...
@@ -245,23 +245,29 @@ public class OptimizeStatisticTask {
//==========================================================================================================//
List
<
AnalysisReportCrossOptimizeDetail
>
optimizeList
=
new
ArrayList
<>();
Map
<
String
,
List
<
StrategyCrossResultEntity
>>
groupByCross
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyCrossResultEntity:
:
getCrossId
));
Map
<
String
,
List
<
StrategyCrossResultEntity
>>
groupByCross
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
o
->
o
.
getCrossId
()
+
"_"
+
o
.
getCurrentAlgo
()
));
for
(
Map
.
Entry
<
String
,
List
<
StrategyCrossResultEntity
>>
entry
:
groupByCross
.
entrySet
())
{
String
[]
sps
=
entry
.
getKey
().
split
(
"_"
);
String
crossId
=
sps
[
0
];
String
strategy
=
sps
[
1
];
List
<
StrategyCrossResultEntity
>
value
=
entry
.
getValue
();
StrategyCrossResultEntity
minTime
=
value
.
stream
().
min
(
Comparator
.
comparing
(
o
->
o
.
getIssueTime
())).
orElse
(
new
StrategyCrossResultEntity
());
StrategyCrossResultEntity
maxTime
=
value
.
stream
().
max
(
Comparator
.
comparing
(
o
->
o
.
getIssueTime
())).
orElse
(
new
StrategyCrossResultEntity
());
int
duration
=
value
.
stream
().
mapToInt
(
o
->
o
.
getDuration
()).
sum
();
StrategyCrossResultEntity
minTime
=
value
.
stream
().
min
(
Comparator
.
comparing
(
o
->
o
.
getIssueTime
())).
orElse
(
new
StrategyCrossResultEntity
());
StrategyCrossResultEntity
maxTime
=
value
.
stream
().
max
(
Comparator
.
comparing
(
o
->
o
.
getIssueTime
())).
orElse
(
new
StrategyCrossResultEntity
());
int
duration
=
value
.
stream
().
mapToInt
(
o
->
o
.
getDuration
()).
sum
();
long
count
=
value
.
size
();
//优化控制时段-开始时间
String
controlStartTime
=
DateUtil
.
formatDate
(
minTime
.
getIssueTime
(),
"yyyy-MM-dd HH:mm:ss"
);
//优化控制时段-截止时间
String
controlEndTime
=
new
DateTime
(
maxTime
.
getIssueTime
()).
plusSeconds
(
duration
).
toString
(
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
DateTime
optStartTime
=
DateTime
.
parse
(
controlStartTime
,
DateTimeFormat
.
forPattern
(
EsDateIndexUtil
.
YMD_HM_FORMATTER
))
.
minusMinutes
(
15
)
;
DateTime
optStartTime
=
DateTime
.
parse
(
controlStartTime
,
DateTimeFormat
.
forPattern
(
EsDateIndexUtil
.
YMD_HM_FORMATTER
));
String
optStartTimeStr
=
controlStartTime
.
substring
(
0
,
controlStartTime
.
indexOf
(
" "
)
+
1
)
+
Tools
.
fillZeroFront
(
optStartTime
.
getHourOfDay
()
+
""
,
2
)
+
":"
+
Tools
.
fillZeroFront
((
int
)
Math
.
ceil
(
optStartTime
.
getMinuteOfHour
()
/
5
)
*
5
+
""
,
2
)
+
":00"
;
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
entry
.
getKey
()
);
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
optStartTimeStr
);
params
.
put
(
"endDate"
,
controlEndTime
);
params
.
put
(
"groupType"
,
"0"
);
...
...
@@ -271,12 +277,13 @@ public class OptimizeStatisticTask {
AnalysisReportCrossOptimizeDetail
thisData
=
this
.
getWeedData
(
thisWeekList
);
//上周策略同期-开始时间
DateTime
lastWeekDateStartTime
=
optStartTime
.
minusWeeks
(
1
)
.
minusMinutes
(
15
)
;
;
DateTime
lastWeekDateStartTime
=
optStartTime
.
minusWeeks
(
1
);
DateTime
lastWeekDateEndTime
=
new
DateTime
(
maxTime
.
getIssueTime
()).
plusSeconds
(
duration
).
minusWeeks
(
1
)
;
String
lastWeekStartTime
=
lastWeekDateStartTime
.
toString
(
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
String
lastOptStartTimeStr
=
lastWeekStartTime
.
substring
(
0
,
lastWeekStartTime
.
indexOf
(
" "
)
+
1
)
+
Tools
.
fillZeroFront
(
lastWeekDateStartTime
.
getHourOfDay
()
+
""
,
2
)
+
":"
+
Tools
.
fillZeroFront
((
int
)
Math
.
ceil
(
lastWeekDateStartTime
.
getMinuteOfHour
()
/
5
)
*
5
+
""
,
2
)
+
":00"
;
//上周策略同期-截止时间
String
lastWeekEndTime
=
lastWeekDateStartTime
.
plusSeconds
(
minTime
.
getDuration
()).
toString
(
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
String
lastWeekEndTime
=
lastWeekDateEndTime
.
toString
(
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
params
.
put
(
"startDate"
,
lastOptStartTimeStr
);
params
.
put
(
"endDate"
,
lastWeekEndTime
);
//上周指标数据
...
...
@@ -292,7 +299,7 @@ public class OptimizeStatisticTask {
detail
.
setWeekStartTime
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfWeek
(
minTime
.
getIssueTime
()).
toLocalDateTime
());
;
detail
.
setWeekEndTime
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
endOfWeek
(
minTime
.
getIssueTime
()).
toLocalDateTime
());
detail
.
setOptimizeCount
((
int
)
count
);
detail
.
setOptimizeCount
((
int
)
count
);
detail
.
setOptimizeDuration
(
duration
);
detail
.
setOptimizeStartTime
(
LocalDateTime
.
parse
(
controlStartTime
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
detail
.
setOptimizeEndTime
(
LocalDateTime
.
parse
(
controlEndTime
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
...
...
@@ -305,6 +312,7 @@ public class OptimizeStatisticTask {
detail
.
setLastWeekStopTimes
(
lastData
.
getStopTimes
());
detail
.
setLastWeekDelayTime
(
lastData
.
getDelayTime
());
detail
.
setLastWeekMaxQueueLength
(
lastData
.
getMaxQueueLength
());
detail
.
setInsertTime
(
LocalDateTime
.
now
());
String
eventSerialNumber
=
minTime
.
getEventId
();
Map
<
String
,
Object
>
eventParma
=
new
HashMap
<>();
...
...
@@ -316,10 +324,10 @@ public class OptimizeStatisticTask {
detail
.
setDirs
(
CommonUtils
.
getEventHappenDirName
(
dir
));
}
optimizeList
.
add
(
detail
);
if
(
optimizeList
.
size
()
%
5
00
==
0
)
{
if
(
optimizeList
.
size
()
%
1
00
==
0
)
{
analysisReportCrossOptimizeDetailMapper
.
insertBatch
(
optimizeList
);
optimizeList
.
clear
();
log
.
info
(
"计算路口周报-路口优分批入库耗时:{}ms,size:{} ,starDate:{}"
,
System
.
currentTimeMillis
()
-
et1
,
optimizeList
.
size
(),
startDate
);
log
.
info
(
"计算路口周报-路口优分批入库耗时:{}ms,size:{} ,starDate:{}"
,
System
.
currentTimeMillis
()
-
et1
,
optimizeList
.
size
(),
startDate
);
}
}
//==========================================================================================================//
...
...
signal-optimize-data-compute/src/test/resources/bootstrap-test.yaml
View file @
b43e3d51
...
...
@@ -10,6 +10,6 @@ spring:
password
:
nacos
application
:
# dubbo启动需要程序名称
name
:
signal-optimize-
servic
e
name
:
signal-optimize-
data-comput
e
main
:
allow-circular-references
:
true
signal-optimize-service/src/main/resources/mapper/report/AnalysisReportCrossOptimizeDetailMapper.xml
View file @
b43e3d51
...
...
@@ -304,7 +304,7 @@
,#{entity.yearWeek}
,#{entity.weekStartTime}
,#{entity.weekEndTime}
,
#{entity.insertTime}
,
now()
,#{entity.lastWeekCapacity}
,#{entity.lastWeekStopTimes}
,#{entity.lastWeekDelayTime}
...
...
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