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
5a6e9700
Commit
5a6e9700
authored
Mar 22, 2025
by
zhoushiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
事件接口调整、评介接口bug修改
parent
d1ee8ada
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
17 deletions
+60
-17
EsDateIndexUtil.java
...e/src/main/java/net/wanji/opt/common/EsDateIndexUtil.java
+30
-0
EventInfo.java
.../main/java/net/wanji/opt/entity/evaluation/EventInfo.java
+3
-1
GreenwaveHistProviderImpl.java
...net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
+24
-13
EventInfoMapper.xml
.../src/main/resources/mapper/evaluation/EventInfoMapper.xml
+3
-3
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/common/EsDateIndexUtil.java
View file @
5a6e9700
...
...
@@ -57,6 +57,36 @@ public class EsDateIndexUtil {
return
sortedSet
;
}
/**
* 获取时段范围内不同时间粒度的时间轴
* @param groupType 0:5分钟 1:15分钟 2:30分钟 3:1小时 4:天粒度 5:10分钟
* @param startTime 开始时间
* @param endTime 截止时间
* @return
*/
public
static
List
<
String
>
getTimeGranularityAxisAll
(
String
groupType
,
String
startTime
,
String
endTime
)
{
//存放时段
List
<
String
>
sortedSet
=
new
ArrayList
<>();
//===========================根据开始、结束时间输出完整时刻点=================================================//
DateTime
start
=
DateTime
.
parse
(
startTime
,
DateTimeFormat
.
forPattern
(
EsDateIndexUtil
.
YMD_HM_FORMATTER
));
DateTime
end
=
DateTime
.
parse
(
endTime
,
DateTimeFormat
.
forPattern
(
EsDateIndexUtil
.
YMD_HM_FORMATTER
));
if
(
Objects
.
equals
(
"0"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
FIVE_MINUTE
,
"yyyy-MM-dd HH:mm:00"
));
}
else
if
(
Objects
.
equals
(
"1"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
FIFTEEN_MINUTE
,
"yyyy-MM-dd HH:mm:00"
));
}
else
if
(
Objects
.
equals
(
"2"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
THIRTY_MINUTE
,
"yyyy-MM-dd HH:mm:00"
));
}
else
if
(
Objects
.
equals
(
"3"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
ONE_HOUR
,
"yyyy-MM-dd HH:00:00"
));
}
else
if
(
Objects
.
equals
(
"4"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
ONE_DAY
,
EsDateIndexUtil
.
YMD_FORMATTER
));
}
else
if
(
Objects
.
equals
(
"5"
,
groupType
))
{
sortedSet
.
addAll
(
EsDateIndexUtil
.
getTimeScopeList
(
start
,
end
,
TimeGranularityEnum
.
TEN_MINUTE
,
"yyyy-MM-dd HH:mm:00"
));
}
return
sortedSet
;
}
/**
* 根据开始结束时间获取不同时间粒度的时刻点
*
...
...
signal-optimize-service/src/main/java/net/wanji/opt/entity/evaluation/EventInfo.java
View file @
5a6e9700
...
...
@@ -9,6 +9,9 @@ import lombok.experimental.Accessors;
import
net.wanji.common.framework.domain.TrackableEntity
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
/**
* <p>
...
...
@@ -21,7 +24,6 @@ import java.math.BigDecimal;
@Data
@ApiModel
(
value
=
"EventInfo对象"
,
description
=
"交通事件信息"
)
public
class
EventInfo
extends
TrackableEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
View file @
5a6e9700
...
...
@@ -6,6 +6,7 @@ import io.swagger.models.auth.In;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.BaseEnum
;
import
net.wanji.common.enums.TurnConvertEnum
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.common.framework.mapper.BaseInterfaceMapper
;
...
...
@@ -44,6 +45,7 @@ import java.math.BigDecimal;
import
java.text.ParseException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
...
...
@@ -417,7 +419,7 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
params
.
put
(
"dir"
,
BaseEnum
.
SignalDirectionEnum
.
getCodeByName
(
directionName
.
substring
(
0
,
directionName
.
indexOf
(
"进口"
))));
}
//存放时段
Set
<
String
>
sortedSet
=
EsDateIndexUtil
.
getTimeGranularityAxis
(
groupType
,
startTime
,
endTime
);
List
<
String
>
sortedSet
=
EsDateIndexUtil
.
getTimeGranularityAxisAll
(
groupType
,
startTime
,
endTime
);
//======================================================================================================//
//存放所有数据
List
<
Map
<
String
,
Object
>>
allList
=
new
ArrayList
<>();
...
...
@@ -534,19 +536,17 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
if
(
params
.
get
(
"dir"
)
!=
null
)
{
allList
=
allList
.
stream
().
filter
(
o
->
Objects
.
equals
(
params
.
get
(
"dir"
).
toString
(),
o
.
get
(
"dirType"
).
toString
())).
collect
(
Collectors
.
toList
());
}
List
<
String
>
timeList
=
this
.
getTimeAxisList
(
groupType
,
sortedSet
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"timeList"
,
sortedSet
);
jsonObject
.
put
(
"timeList"
,
timeList
);
jsonObject
.
put
(
"dateTimeList"
,
sortedSet
);
jsonObject
.
put
(
"dataList"
,
allList
);
jsonObject
.
put
(
"scopeList"
,
scopeList
);
return
jsonObject
;
}
public
static
void
main
(
String
[]
args
)
{
DateTime
dateTime
=
new
DateTime
(
new
Date
());
System
.
out
.
println
(
dateTime
.
hourOfDay
().
get
());
}
private
void
mockData
(
List
<
CrossLaneDataHistPoExtend
>
list
)
{
if
(
mockFlag
)
{
int
maxFlow
=
list
.
stream
().
filter
(
o
->
Objects
.
nonNull
(
o
.
getFlow
())).
mapToInt
(
CrossLaneDataHistPoExtend:
:
getFlow
).
max
().
orElse
(
0
);
...
...
@@ -893,7 +893,7 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
* @param sortedSet
* @param startTime
*/
private
List
<
CrossLaneDataHistPoExtend
>
processData
(
Map
.
Entry
<
String
,
List
<
CrossLaneDataHistPoExtend
>>
entry
,
String
groupType
,
Set
<
String
>
sortedSet
,
String
startTime
)
{
private
List
<
CrossLaneDataHistPoExtend
>
processData
(
Map
.
Entry
<
String
,
List
<
CrossLaneDataHistPoExtend
>>
entry
,
String
groupType
,
Collection
<
String
>
sortedSet
,
String
startTime
)
{
//按方向排序
List
<
CrossLaneDataHistPoExtend
>
value
=
entry
.
getValue
().
stream
().
sorted
(
Comparator
.
comparing
(
o
->
o
.
getStartTime
())).
collect
(
Collectors
.
toList
());
...
...
@@ -904,10 +904,10 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
timeList
.
addAll
(
value
.
stream
().
map
(
po
->
DateUtil
.
formatDate
(
po
.
getStartTime
(),
EsDateIndexUtil
.
YMD_FORMATTER
)).
collect
(
Collectors
.
toSet
()));
}
else
if
(
Objects
.
equals
(
"3"
,
groupType
))
{
//小时粒度
timeList
.
addAll
(
value
.
stream
().
map
(
po
->
DateUtil
.
formatDate
(
po
.
getStartTime
(),
EsDateIndexUtil
.
H_FORMATTER
)).
collect
(
Collectors
.
toSet
()));
timeList
.
addAll
(
value
.
stream
().
map
(
po
->
DateUtil
.
formatDate
(
po
.
getStartTime
(),
"yyyy-MM-dd HH:00:00"
)).
collect
(
Collectors
.
toSet
()));
}
else
{
//小时分钟粒度
timeList
.
addAll
(
value
.
stream
().
map
(
po
->
DateUtil
.
formatDate
(
po
.
getStartTime
(),
EsDateIndexUtil
.
HM_FORMATTER
)).
collect
(
Collectors
.
toSet
()));
timeList
.
addAll
(
value
.
stream
().
map
(
po
->
DateUtil
.
formatDate
(
po
.
getStartTime
(),
"yyyy-MM-dd HH:mm:00"
)).
collect
(
Collectors
.
toSet
()));
}
//补充缺少时段数据,保留时段字段默认值
for
(
String
timeSec
:
sortedSet
)
{
...
...
@@ -917,11 +917,11 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
tmp
.
setTurnType
(
value
.
get
(
0
).
getTurnType
());
tmp
.
setDirType
(
value
.
get
(
0
).
getDirType
());
tmp
.
setTimeAxis
(
timeSec
);
String
parseTime
=
startTime
.
substring
(
0
,
startTime
.
lastIndexOf
(
" "
)
+
1
)
+
timeSec
;
//
String parseTime = startTime.substring(0, startTime.lastIndexOf(" ") + 1) + timeSec;
if
(
Objects
.
equals
(
"4"
,
groupType
))
{
tmp
.
setStartTime
(
DateTime
.
parse
(
timeSec
,
DateTimeFormat
.
forPattern
(
EsDateIndexUtil
.
YMD_FORMATTER
)).
toDate
());
}
else
{
tmp
.
setStartTime
(
DateTime
.
parse
(
parseTime
,
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm
"
)).
toDate
());
tmp
.
setStartTime
(
DateTime
.
parse
(
startTime
,
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:00
"
)).
toDate
());
}
value
.
add
(
tmp
);
}
...
...
@@ -943,5 +943,16 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
return
value
;
}
private
List
<
String
>
getTimeAxisList
(
String
groupType
,
List
<
String
>
timeList
)
{
//存放时段
List
<
String
>
formatTimeList
=
new
ArrayList
<>();
if
(
Objects
.
equals
(
"4"
,
groupType
))
{
//天粒度
formatTimeList
.
addAll
(
timeList
);
}
else
{
//小时分钟粒度
formatTimeList
.
addAll
(
timeList
.
stream
().
map
(
dt
->
dt
.
substring
(
dt
.
indexOf
(
" "
),
dt
.
lastIndexOf
(
":"
))).
collect
(
Collectors
.
toList
()));
}
return
formatTimeList
;
}
}
signal-optimize-service/src/main/resources/mapper/evaluation/EventInfoMapper.xml
View file @
5a6e9700
...
...
@@ -434,9 +434,9 @@
</set>
</sql>
<select
id=
"getListByStartAndEnd"
parameterType=
"java.util.Map"
resultType=
"
m
ap"
>
SELECT
start_time
startTime,
end_time
endTime,
<select
id=
"getListByStartAndEnd"
parameterType=
"java.util.Map"
resultType=
"
java.util.M
ap"
>
SELECT
DATE_FORMAT(start_time,'%Y-%m-%d %H:%i:%s')
startTime,
DATE_FORMAT(end_time,'%Y-%m-%d %H:%i:%s')
endTime,
ABS(TIMESTAMPDIFF( SECOND, start_time, end_time )) AS duration,
info.type,
c.label as typeName
...
...
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