Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
ZHHT-IRN-BD-ANALYSIS
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
李凯旋
ZHHT-IRN-BD-ANALYSIS
Commits
50e23ca4
Commit
50e23ca4
authored
Nov 23, 2022
by
吴延飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
旅行信息添加字段
parent
b4d12376
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
19 deletions
+55
-19
Travel.java
...m-streaming/src/main/java/com/zhht/irn/entity/Travel.java
+12
-0
TravelInfoJob.java
...reaming/src/main/java/com/zhht/irn/job/TravelInfoJob.java
+3
-0
TravelMetricSink.java
...ing/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
+25
-16
DateUtils.java
...streaming/src/main/java/com/zhht/irn/utils/DateUtils.java
+15
-3
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/entity/Travel.java
View file @
50e23ca4
...
@@ -32,6 +32,9 @@ public class Travel {
...
@@ -32,6 +32,9 @@ public class Travel {
// 旅行结束时间
// 旅行结束时间
private
String
travelEndTime
;
private
String
travelEndTime
;
// 旅行时长= 旅行结束 - 旅行开始 (毫秒)
private
long
travelDuration
;
// 车辆ID
// 车辆ID
private
Long
carId
;
private
Long
carId
;
...
@@ -421,6 +424,14 @@ public class Travel {
...
@@ -421,6 +424,14 @@ public class Travel {
this
.
maxSpeed
=
maxSpeed
;
this
.
maxSpeed
=
maxSpeed
;
}
}
public
long
getTravelDuration
()
{
return
travelDuration
;
}
public
void
setTravelDuration
(
long
travelDuration
)
{
this
.
travelDuration
=
travelDuration
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"Travel{"
+
return
"Travel{"
+
...
@@ -430,6 +441,7 @@ public class Travel {
...
@@ -430,6 +441,7 @@ public class Travel {
", recordTime='"
+
recordTime
+
'\''
+
", recordTime='"
+
recordTime
+
'\''
+
", travelBeginTime='"
+
travelBeginTime
+
'\''
+
", travelBeginTime='"
+
travelBeginTime
+
'\''
+
", travelEndTime='"
+
travelEndTime
+
'\''
+
", travelEndTime='"
+
travelEndTime
+
'\''
+
", travelDuration='"
+
travelDuration
+
'\''
+
", carId="
+
carId
+
", carId="
+
carId
+
", carColor='"
+
carColor
+
'\''
+
", carColor='"
+
carColor
+
'\''
+
", plate='"
+
plate
+
'\''
+
", plate='"
+
plate
+
'\''
+
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/job/TravelInfoJob.java
View file @
50e23ca4
...
@@ -46,6 +46,7 @@ public class TravelInfoJob {
...
@@ -46,6 +46,7 @@ public class TravelInfoJob {
String
travelStart
=
travel
.
getTravelBeginTime
();
String
travelStart
=
travel
.
getTravelBeginTime
();
String
travelEnd
=
travel
.
getTravelEndTime
();
String
travelEnd
=
travel
.
getTravelEndTime
();
long
duration
=
-
1L
;
// 如果旅行记录没有完整的开始、结束时刻,则无法计算最高、最低、平均速度
// 如果旅行记录没有完整的开始、结束时刻,则无法计算最高、最低、平均速度
if
(
isNotEmpty
(
travelStart
)
&&
isNotEmpty
(
travelEnd
))
{
if
(
isNotEmpty
(
travelStart
)
&&
isNotEmpty
(
travelEnd
))
{
...
@@ -53,6 +54,7 @@ public class TravelInfoJob {
...
@@ -53,6 +54,7 @@ public class TravelInfoJob {
long
longTravelStart
=
Long
.
parseLong
(
travelStart
);
long
longTravelStart
=
Long
.
parseLong
(
travelStart
);
long
longTravelEnd
=
Long
.
parseLong
(
travelEnd
);
long
longTravelEnd
=
Long
.
parseLong
(
travelEnd
);
duration
=
longTravelEnd
-
longTravelStart
;
List
<
Location
>
locations
=
travel
.
getLocations
();
List
<
Location
>
locations
=
travel
.
getLocations
();
for
(
int
i
=
0
;
i
<
locations
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
locations
.
size
();
i
++)
{
...
@@ -119,6 +121,7 @@ public class TravelInfoJob {
...
@@ -119,6 +121,7 @@ public class TravelInfoJob {
}
}
travel
.
setMaxSpeed
(
maxSpeed
);
travel
.
setMaxSpeed
(
maxSpeed
);
travel
.
setMinSpeed
(
minSpeed
);
travel
.
setMinSpeed
(
minSpeed
);
travel
.
setTravelDuration
(
duration
);
logger
.
info
(
"完成旅行信息的指标计算,当前旅行车辆旅行ID{}的实时指标为, 最高速度:{}, 最低速度:{}, 平均速度:{}, 停车次数: {},"
+
logger
.
info
(
"完成旅行信息的指标计算,当前旅行车辆旅行ID{}的实时指标为, 最高速度:{}, 最低速度:{}, 平均速度:{}, 停车次数: {},"
+
"停车总时长:{}"
,
travel
.
getRecordId
(),
maxSpeed
,
minSpeed
,
travel
.
getAvgSpeed
(),
stopCount
,
stopTime
);
"停车总时长:{}"
,
travel
.
getRecordId
(),
maxSpeed
,
minSpeed
,
travel
.
getAvgSpeed
(),
stopCount
,
stopTime
);
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
View file @
50e23ca4
...
@@ -7,8 +7,9 @@ import org.apache.flink.configuration.Configuration;
...
@@ -7,8 +7,9 @@ import org.apache.flink.configuration.Configuration;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
java.sql.Connection
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.PreparedStatement
;
import
java.util.Date
;
import
static
com
.
zhht
.
irn
.
utils
.
DateUtils
.
longToString
;
import
static
com
.
zhht
.
irn
.
utils
.
DateUtils
.
dateFormat
;
/**
/**
* 旅行信息指标计算
* 旅行信息指标计算
*
*
...
@@ -27,8 +28,9 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
...
@@ -27,8 +28,9 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
String
insertSql
=
""
+
String
insertSql
=
""
+
"insert into app_travel_metric"
+
"insert into app_travel_metric"
+
"(incross_line_id, car_id, cross_id, plate, record_id, capture_time, lost_time, arrived_time, incross_time, "
+
"(incross_line_id, car_id, cross_id, plate, record_id, capture_time, lost_time, arrived_time, incross_time, "
+
"outcross_time, away_time, stop_count, stop_time, avg_speed, min_speed, max_speed, update_time)"
+
"outcross_time, away_time, stop_count, stop_time, avg_speed, min_speed, max_speed, update_time, travel_begin_time,"
+
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
" travel_end_time, arrived_line_id, outcross_line_id, away_line_id, duration)"
+
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
insertPstmt
=
connection
.
prepareStatement
(
insertSql
);
insertPstmt
=
connection
.
prepareStatement
(
insertSql
);
}
}
@Override
@Override
...
@@ -44,20 +46,27 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
...
@@ -44,20 +46,27 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
insertPstmt
.
setString
(
1
,
travel
.
getInCrossLineId
());
insertPstmt
.
setString
(
1
,
travel
.
getInCrossLineId
());
insertPstmt
.
setLong
(
2
,
travel
.
getCarId
());
insertPstmt
.
setLong
(
2
,
travel
.
getCarId
());
insertPstmt
.
setString
(
3
,
travel
.
getCrossId
());
insertPstmt
.
setString
(
3
,
travel
.
getCrossId
());
insertPstmt
.
setString
(
4
,
travel
.
getPlate
());
insertPstmt
.
setString
(
4
,
travel
.
getPlate
());
insertPstmt
.
setString
(
5
,
travel
.
getRecordId
());
insertPstmt
.
setString
(
5
,
travel
.
getRecordId
());
insertPstmt
.
setString
(
6
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getFirstTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
6
,
longToString
(
travel
.
getFirstTime
(),
dateFormat
));
insertPstmt
.
setString
(
7
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getLastTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
7
,
longToString
(
travel
.
getLastTime
(),
dateFormat
));
insertPstmt
.
setString
(
8
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getArrivedTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
8
,
longToString
(
travel
.
getArrivedTime
(),
dateFormat
));
insertPstmt
.
setString
(
9
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getInCrossTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
9
,
longToString
(
travel
.
getInCrossTime
(),
dateFormat
));
insertPstmt
.
setString
(
10
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getOutCrossTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
10
,
longToString
(
travel
.
getOutCrossTime
(),
dateFormat
));
insertPstmt
.
setString
(
11
,
DateUtils
.
dateToString
(
new
Date
(
Long
.
parseLong
(
travel
.
getAwayTime
())),
"yyyy-MM-dd HH:mm:ss"
));
insertPstmt
.
setString
(
11
,
longToString
(
travel
.
getAwayTime
(),
dateFormat
));
insertPstmt
.
setInt
(
12
,
travel
.
getStopCount
());
insertPstmt
.
setInt
(
12
,
travel
.
getStopCount
());
insertPstmt
.
setDouble
(
13
,
travel
.
getStopTime
());
insertPstmt
.
setDouble
(
13
,
travel
.
getStopTime
());
insertPstmt
.
setDouble
(
14
,
travel
.
getAvgSpeed
());
insertPstmt
.
setDouble
(
14
,
travel
.
getAvgSpeed
());
insertPstmt
.
setDouble
(
15
,
travel
.
getMinSpeed
());
insertPstmt
.
setDouble
(
15
,
travel
.
getMinSpeed
());
insertPstmt
.
setDouble
(
16
,
travel
.
getMaxSpeed
());
insertPstmt
.
setDouble
(
16
,
travel
.
getMaxSpeed
());
insertPstmt
.
setString
(
17
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
17
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
18
,
longToString
(
travel
.
getTravelBeginTime
(),
dateFormat
));
insertPstmt
.
setString
(
19
,
longToString
(
travel
.
getTravelEndTime
(),
dateFormat
));
insertPstmt
.
setString
(
20
,
travel
.
getArrivedLineId
());
insertPstmt
.
setString
(
21
,
travel
.
getOutCrossLineId
());
insertPstmt
.
setString
(
22
,
travel
.
getAwayLineId
());
insertPstmt
.
setLong
(
23
,
travel
.
getTravelDuration
());
insertPstmt
.
execute
();
insertPstmt
.
execute
();
}
}
}
}
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/DateUtils.java
View file @
50e23ca4
...
@@ -985,12 +985,24 @@ public class DateUtils {
...
@@ -985,12 +985,24 @@ public class DateUtils {
* @return
* @return
*/
*/
public
static
String
dateToString
(
Date
date
,
String
dateformat
)
{
public
static
String
dateToString
(
Date
date
,
String
dateformat
)
{
String
date
str
=
null
;
String
date
Str
;
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
date
s
tr
=
df
.
format
(
date
);
date
S
tr
=
df
.
format
(
date
);
return
date
s
tr
;
return
date
S
tr
;
}
}
public
static
String
longToString
(
Long
timestamp
,
String
dateFormat
)
{
Date
date
=
new
Date
(
timestamp
);
return
dateToString
(
date
,
dateFormat
);
}
public
static
String
longToString
(
String
timestamp
,
String
dateFormat
)
{
long
time
=
0L
;
try
{
time
=
Long
.
parseLong
(
timestamp
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();}
return
longToString
(
time
,
dateFormat
);
}
/**
/**
* 将字符串日期转换为日期格式
* 将字符串日期转换为日期格式
* 自定義格式
* 自定義格式
...
...
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