Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
operating-vehicle
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杜发飞
operating-vehicle
Commits
34f0acb4
Commit
34f0acb4
authored
Nov 05, 2019
by
王建成
Browse files
Options
Browse Files
Download
Plain Diff
update
parents
da710836
30f220c7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
690 additions
and
243 deletions
+690
-243
pom.xml
+11
-7
src/main/java/com/hikcreate/ignite/domain/vehicles/DailyTravel.java
+0
-65
src/main/java/com/hikcreate/ignite/domain1/ErrorMsg.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/PrimaryKey.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/alarm/AttachmentInfo.java
+3
-6
src/main/java/com/hikcreate/ignite/domain1/alarm/DailyAlarm.java
+56
-11
src/main/java/com/hikcreate/ignite/domain1/alarm/DailyAlarmDeal.java
+4
-7
src/main/java/com/hikcreate/ignite/domain1/alarm/DailyAlarmDetail.java
+45
-25
src/main/java/com/hikcreate/ignite/domain1/alarm/IdentificationInfo.java
+38
-0
src/main/java/com/hikcreate/ignite/domain1/alarm/processor/DailyAlarmDealUpdate.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/alarm/processor/DailyAlarmUpdate.java
+5
-5
src/main/java/com/hikcreate/ignite/domain1/basic/AlarmTypeInfo.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/basic/EnterpriseInfo.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/basic/PlatformInfo.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/basic/VehicleInfo.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/vehicles/AlarmNumber.java
+45
-5
src/main/java/com/hikcreate/ignite/domain1/vehicles/DailyTravel.java
+191
-0
src/main/java/com/hikcreate/ignite/domain1/vehicles/DriverNumber.java
+6
-6
src/main/java/com/hikcreate/ignite/domain1/vehicles/VehicleNumber.java
+11
-6
src/main/java/com/hikcreate/ignite/domain1/vehicles/processor/AlarmNumberUpdate.java
+1
-1
src/main/java/com/hikcreate/ignite/domain1/vehicles/processor/DailyTravelUpdate.java
+33
-34
src/main/resources/META-INF/app.properties
+3
-0
src/main/resources/conf.properties
+8
-4
src/main/resources/ignite.xml
+2
-2
src/main/scala/com/hikcreate/data/client/EmailClient.scala
+45
-0
src/main/scala/com/hikcreate/data/client/IgniteClient.scala
+45
-37
src/main/scala/com/hikcreate/data/common/Sparking.scala
+2
-0
src/main/scala/com/hikcreate/data/constant/ApolloConst.scala
+61
-0
src/main/scala/com/hikcreate/data/listener/BatchProcessListener.scala
+25
-0
src/main/scala/com/hikcreate/data/listener/LifecycleListener.scala
+28
-0
src/main/scala/com/hikcreate/data/offline/FullSync.scala
+5
-4
src/main/scala/com/hikcreate/data/sync/SyncBasic.scala
+1
-1
src/main/scala/com/hikcreate/data/sync/SyncIgnite.scala
+0
-0
src/main/scala/com/hikcreate/data/util/Tools.scala
+9
-10
No files found.
pom.xml
View file @
34f0acb4
...
@@ -97,11 +97,6 @@
...
@@ -97,11 +97,6 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.ignite
</groupId>
<groupId>
org.apache.ignite
</groupId>
<artifactId>
ignite-log4j2
</artifactId>
<version>
${ignite.version}
</version>
</dependency>
<dependency>
<groupId>
org.apache.ignite
</groupId>
<artifactId>
ignite-spring
</artifactId>
<artifactId>
ignite-spring
</artifactId>
<version>
${ignite.version}
</version>
<version>
${ignite.version}
</version>
</dependency>
</dependency>
...
@@ -116,7 +111,6 @@
...
@@ -116,7 +111,6 @@
<version>2.4.0</version>
<version>2.4.0</version>
</dependency>-->
</dependency>-->
<dependency>
<dependency>
<groupId>
org.apache.curator
</groupId>
<groupId>
org.apache.curator
</groupId>
<artifactId>
curator-framework
</artifactId>
<artifactId>
curator-framework
</artifactId>
...
@@ -127,12 +121,17 @@
...
@@ -127,12 +121,17 @@
<artifactId>
curator-recipes
</artifactId>
<artifactId>
curator-recipes
</artifactId>
<version>
${curator.version}
</version>
<version>
${curator.version}
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo-client
</artifactId>
<version>
1.1.0
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.54
</version>
<version>
1.2.54
</version>
</dependency>
</dependency>
<!--<dependency>
<!--<dependency>
<groupId>org.scala-lang.modules</groupId>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-xml_${scala.binary.version}</artifactId>
<artifactId>scala-xml_${scala.binary.version}</artifactId>
...
@@ -143,6 +142,11 @@
...
@@ -143,6 +142,11 @@
<artifactId>
scalaj-http_${scala.binary.version}
</artifactId>
<artifactId>
scalaj-http_${scala.binary.version}
</artifactId>
<version>
2.4.1
</version>
<version>
2.4.1
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.typesafe.play
</groupId>
<artifactId>
play-mailer_${scala.binary.version}
</artifactId>
<version>
7.0.0
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/com/hikcreate/ignite/domain/vehicles/DailyTravel.java
deleted
100644 → 0
View file @
da710836
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
public
class
DailyTravel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
private
String
province
;
//省 浙江省
@QuerySqlField
private
String
city
;
//市 杭州市
@QuerySqlField
private
String
area
;
//区 萧山区
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
date
;
//统计日期 - 当天
@QuerySqlField
private
Double
lat
;
//最新一条记录的纬度
@QuerySqlField
private
Double
lng
;
//最新一条记录的经度
@QuerySqlField
private
String
time
;
//最新一条记录的时间
@QuerySqlField
private
Double
travelMileage
;
//当日累计里程,单位
@QuerySqlField
private
Long
travelTime
;
//当日累计行驶时间,单位秒
@QuerySqlField
private
String
gpsProvince
;
//车牌当前所处省
@QuerySqlField
private
String
gpsCity
;
//车牌当前所处市
@QuerySqlField
private
String
gpsArea
;
//车牌当前所处区
public
DailyTravel
(
String
province
,
String
city
,
String
area
,
String
useNature
,
String
date
,
Double
lat
,
Double
lng
,
String
time
,
Double
travelMileage
,
Long
travelTime
,
String
gpsProvince
,
String
gpsCity
,
String
gpsArea
)
{
this
.
province
=
province
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
useNature
=
useNature
;
this
.
date
=
date
;
this
.
lat
=
lat
;
this
.
lng
=
lng
;
this
.
time
=
time
;
this
.
travelMileage
=
travelMileage
;
this
.
travelTime
=
travelTime
;
this
.
gpsProvince
=
gpsProvince
;
this
.
gpsCity
=
gpsCity
;
this
.
gpsArea
=
gpsArea
;
}
}
src/main/java/com/hikcreate/ignite/domain/ErrorMsg.java
→
src/main/java/com/hikcreate/ignite/domain
1
/ErrorMsg.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
;
package
com
.
hikcreate
.
ignite
.
domain
1
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
...
src/main/java/com/hikcreate/ignite/domain/PrimaryKey.java
→
src/main/java/com/hikcreate/ignite/domain
1
/PrimaryKey.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
;
package
com
.
hikcreate
.
ignite
.
domain
1
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
...
src/main/java/com/hikcreate/ignite/domain/alarm/AttachmentInfo.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/AttachmentInfo.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
public
class
AttachmentInfo
implements
Serializable
{
public
class
AttachmentInfo
implements
Serializable
{
...
@@ -17,9 +18,6 @@ public class AttachmentInfo implements Serializable {
...
@@ -17,9 +18,6 @@ public class AttachmentInfo implements Serializable {
private
String
vehicleColor
;
//车牌颜色
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
@QuerySqlField
private
String
vehicleType
;
//车辆类型
@QuerySqlField
private
String
deviceId
;
//终端ID
private
String
deviceId
;
//终端ID
@QuerySqlField
@QuerySqlField
...
@@ -40,12 +38,11 @@ public class AttachmentInfo implements Serializable {
...
@@ -40,12 +38,11 @@ public class AttachmentInfo implements Serializable {
@QuerySqlField
@QuerySqlField
private
String
businessTime
;
//业务发生时间,格式 yyyy-MM-dd HH:mm:ss
private
String
businessTime
;
//业务发生时间,格式 yyyy-MM-dd HH:mm:ss
public
AttachmentInfo
(
String
appId
,
String
vehicleNo
,
String
vehicleColor
,
String
vehicleType
,
String
deviceId
,
String
warnTime
,
String
warnSeq
,
public
AttachmentInfo
(
String
appId
,
String
vehicleNo
,
String
vehicleColor
,
String
deviceId
,
String
warnTime
,
String
warnSeq
,
String
fileCount
,
String
fileIndex
,
String
filePath
,
String
businessTime
)
{
String
fileCount
,
String
fileIndex
,
String
filePath
,
String
businessTime
)
{
this
.
appId
=
appId
;
this
.
appId
=
appId
;
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleColor
=
vehicleColor
;
this
.
vehicleColor
=
vehicleColor
;
this
.
vehicleType
=
vehicleType
;
this
.
deviceId
=
deviceId
;
this
.
deviceId
=
deviceId
;
this
.
warnTime
=
warnTime
;
this
.
warnTime
=
warnTime
;
this
.
warnSeq
=
warnSeq
;
this
.
warnSeq
=
warnSeq
;
...
...
src/main/java/com/hikcreate/ignite/domain/alarm/DailyAlarm.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/DailyAlarm.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 每日报警数
* 每日报警数
*/
*/
...
@@ -10,29 +12,72 @@ public class DailyAlarm implements Serializable {
...
@@ -10,29 +12,72 @@ public class DailyAlarm implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
province
;
//省 浙江省
private
String
province
;
//省 浙江省
@QuerySqlField
@QuerySqlField
private
String
city
;
//市 杭州市
private
String
city
;
//市 杭州市
@QuerySqlField
@QuerySqlField
private
String
area
;
//区 萧山区
private
String
area
;
//区 萧山区
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
@QuerySqlField
private
String
date
;
//统计日期 - 当天
private
String
date
;
//统计日期 - 当天
@QuerySqlField
@QuerySqlField
private
Long
alarmNumber
;
//对应报警数
private
Long
number
;
//对应报警数
public
DailyAlarm
(
String
useNature
,
String
province
,
String
city
,
String
area
,
String
date
,
Long
number
)
{
this
.
useNature
=
useNature
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
date
=
date
;
this
.
number
=
number
;
}
public
String
getProvince
()
{
return
province
;
}
public
DailyAlarm
(
String
province
,
String
city
,
String
area
,
String
useNature
,
String
date
,
Long
alarmNumber
)
{
public
void
setProvince
(
String
province
)
{
this
.
province
=
province
;
this
.
province
=
province
;
}
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
this
.
city
=
city
;
}
public
String
getArea
()
{
return
area
;
}
public
void
setArea
(
String
area
)
{
this
.
area
=
area
;
this
.
area
=
area
;
}
public
String
getUseNature
()
{
return
useNature
;
}
public
void
setUseNature
(
String
useNature
)
{
this
.
useNature
=
useNature
;
this
.
useNature
=
useNature
;
}
public
String
getDate
()
{
return
date
;
}
public
void
setDate
(
String
date
)
{
this
.
date
=
date
;
this
.
date
=
date
;
this
.
alarmNumber
=
alarmNumber
;
}
public
Long
getAlarmNumber
()
{
return
number
;
}
public
void
setAlarmNumber
(
Long
alarmNumber
)
{
this
.
number
=
alarmNumber
;
}
}
}
}
src/main/java/com/hikcreate/ignite/domain/alarm/DailyAlarmDeal.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/DailyAlarmDeal.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 每日报警处理
* 每日报警处理
处
*/
*/
public
class
DailyAlarmDeal
implements
Serializable
{
public
class
DailyAlarmDeal
implements
Serializable
{
...
@@ -12,18 +13,14 @@ public class DailyAlarmDeal implements Serializable {
...
@@ -12,18 +13,14 @@ public class DailyAlarmDeal implements Serializable {
@QuerySqlField
@QuerySqlField
private
String
vehicleNo
;
//车牌号
private
String
vehicleNo
;
//车牌号
@QuerySqlField
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
@QuerySqlField
private
String
supervisionId
;
//报警督办 ID
private
String
supervisionId
;
//报警督办 ID
@QuerySqlField
@QuerySqlField
private
String
warnTime
;
//报警时间
private
String
warnTime
;
//报警时间
@QuerySqlField
@QuerySqlField
private
Boolean
isDeal
;
//是否处理
private
Boolean
isDeal
=
false
;
//是否处理
public
DailyAlarmDeal
(
String
vehicleNo
,
String
vehicleColor
,
String
supervisionId
,
String
warnTime
,
Boolean
isDeal
)
{
public
DailyAlarmDeal
(
String
vehicleNo
,
String
vehicleColor
,
String
supervisionId
,
String
warnTime
,
Boolean
isDeal
)
{
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleNo
=
vehicleNo
;
...
...
src/main/java/com/hikcreate/ignite/domain/alarm/DailyAlarmDetail.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/DailyAlarmDetail.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 每日报警详情
* 每日报警详情
*/
*/
...
@@ -9,54 +11,72 @@ public class DailyAlarmDetail implements Serializable {
...
@@ -9,54 +11,72 @@ public class DailyAlarmDetail implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
//车辆信息
@QuerySqlField
private
String
vehicleNo
;
//车牌号
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
private
String
enterpriseCode
;
//车辆归属
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
drivingPermitNo
;
//行驶证号
@QuerySqlField
private
String
operatingCertificateNo
;
// 营运证号
@QuerySqlField
private
String
indentifier
;
// 车架号
@QuerySqlField
private
String
classLine
;
// 班线
@QuerySqlField
@QuerySqlField
private
String
province
;
//省 浙江省
private
String
province
;
//省 浙江省
@QuerySqlField
@QuerySqlField
private
String
city
;
//市 杭州市
private
String
city
;
//市 杭州市
@QuerySqlField
@QuerySqlField
private
String
area
;
//区 萧山区
private
String
area
;
//区 萧山区
//报警信息
@QuerySqlField
@QuerySqlField
private
String
vehicleNo
;
//车牌号
private
String
appId
;
//智能视频企业监控平台的唯一标识号
@QuerySqlField
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
private
String
infoId
;
//信息 ID
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
@QuerySqlField
private
String
deviceId
;
//终端ID
private
String
deviceId
;
//终端ID
@QuerySqlField
@QuerySqlField
private
Double
lon
;
//经度
private
Double
lon
;
//经度
@QuerySqlField
@QuerySqlField
private
Double
lat
;
//纬度
private
Double
lat
;
//纬度
@QuerySqlField
@QuerySqlField
private
String
warnTime
;
//报警时间
private
String
warnTime
;
//报警时间
@QuerySqlField
@QuerySqlField
private
Long
warnType
;
//报警类型
private
String
warnAddress
;
//报警地址
@QuerySqlField
@QuerySqlField
private
String
warnInfo
;
//风险因素
private
Long
warnLevelId
;
//报警程度
@QuerySqlField
private
String
warnTypeName
;
//报警类型
public
DailyAlarmDetail
(
String
province
,
String
city
,
String
area
,
String
vehicleNo
,
String
vehicleColor
,
String
useNature
,
String
deviceId
,
String
warnTime
,
Double
lon
,
Double
lat
,
Long
warnType
,
String
warnInfo
)
{
public
DailyAlarmDetail
(
String
vehicleNo
,
String
vehicleColor
,
String
enterpriseCode
,
String
useNature
,
String
drivingPermitNo
,
this
.
province
=
province
;
String
operatingCertificateNo
,
String
indentifier
,
String
classLine
,
String
province
,
String
city
,
this
.
city
=
city
;
String
area
,
String
appId
,
String
infoId
,
String
deviceId
,
Double
lon
,
Double
lat
,
String
warnTime
,
this
.
area
=
area
;
String
warnAddress
,
Long
warnLevelId
,
String
warnTypeName
)
{
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleColor
=
vehicleColor
;
this
.
vehicleColor
=
vehicleColor
;
this
.
enterpriseCode
=
enterpriseCode
;
this
.
useNature
=
useNature
;
this
.
useNature
=
useNature
;
this
.
drivingPermitNo
=
drivingPermitNo
;
this
.
operatingCertificateNo
=
operatingCertificateNo
;
this
.
indentifier
=
indentifier
;
this
.
classLine
=
classLine
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
appId
=
appId
;
this
.
infoId
=
infoId
;
this
.
deviceId
=
deviceId
;
this
.
deviceId
=
deviceId
;
this
.
warnTime
=
warnTime
;
this
.
lon
=
lon
;
this
.
lon
=
lon
;
this
.
lat
=
lat
;
this
.
lat
=
lat
;
this
.
warnType
=
warnType
;
this
.
warnTime
=
warnTime
;
this
.
warnInfo
=
warnInfo
;
this
.
warnAddress
=
warnAddress
;
this
.
warnLevelId
=
warnLevelId
;
this
.
warnTypeName
=
warnTypeName
;
}
}
}
}
src/main/java/com/hikcreate/ignite/domain1/alarm/IdentificationInfo.java
0 → 100644
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain1
.
alarm
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
public
class
IdentificationInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
private
String
appId
;
//智能视频企业监控平台的唯一标识号
@QuerySqlField
private
String
vehicleNo
;
//车牌号
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
private
String
driverName
;
//驾驶员姓名
@QuerySqlField
private
String
driverId
;
//身份证编号
@QuerySqlField
private
String
licence
;
//从业资格证号
@QuerySqlField
private
String
orgName
;
//发证机构名称
@QuerySqlField
private
String
businessTime
;
//业务发生时间,格式 yyyy-MM-dd HH:mm:ss
public
IdentificationInfo
(
String
appId
,
String
vehicleNo
,
String
vehicleColor
,
String
driverName
,
String
driverId
,
String
licence
,
String
orgName
,
String
businessTime
)
{
this
.
appId
=
appId
;
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleColor
=
vehicleColor
;
this
.
driverName
=
driverName
;
this
.
driverId
=
driverId
;
this
.
licence
=
licence
;
this
.
orgName
=
orgName
;
this
.
businessTime
=
businessTime
;
}
}
src/main/java/com/hikcreate/ignite/domain/alarm/processor/DailyAlarmDealUpdate.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/processor/DailyAlarmDealUpdate.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
.
processor
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
.
processor
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
...
...
src/main/java/com/hikcreate/ignite/domain/alarm/processor/DailyAlarmUpdate.java
→
src/main/java/com/hikcreate/ignite/domain
1
/alarm/processor/DailyAlarmUpdate.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
alarm
.
processor
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
alarm
.
processor
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
...
@@ -27,16 +27,16 @@ public class DailyAlarmUpdate implements CacheEntryProcessor<BinaryObject,Binary
...
@@ -27,16 +27,16 @@ public class DailyAlarmUpdate implements CacheEntryProcessor<BinaryObject,Binary
if
(
statisticalDate
.
isBefore
(
today
)){
//统计时间不是当前日,需要重置
if
(
statisticalDate
.
isBefore
(
today
)){
//统计时间不是当前日,需要重置
builder
.
setField
(
"date"
,
today
.
toString
(
"yyyy-MM-dd"
));
builder
.
setField
(
"date"
,
today
.
toString
(
"yyyy-MM-dd"
));
if
(
eventDate
.
equals
(
today
)){
if
(
eventDate
.
equals
(
today
)){
builder
.
setField
(
"
alarmN
umber"
,
1L
);
builder
.
setField
(
"
n
umber"
,
1L
);
mutableEntry
.
setValue
(
builder
.
build
());
mutableEntry
.
setValue
(
builder
.
build
());
}
else
{
}
else
{
builder
.
setField
(
"
alarmN
umber"
,
0L
);
builder
.
setField
(
"
n
umber"
,
0L
);
mutableEntry
.
setValue
(
builder
.
build
());
mutableEntry
.
setValue
(
builder
.
build
());
}
}
}
else
{
}
else
{
if
(
eventDate
.
equals
(
today
)){
if
(
eventDate
.
equals
(
today
)){
Long
old
=
value
.<
Long
>
field
(
"
alarmN
umber"
);
Long
old
=
value
.<
Long
>
field
(
"
n
umber"
);
builder
.
setField
(
"
alarmN
umber"
,
old
+
1
);
builder
.
setField
(
"
n
umber"
,
old
+
1
);
mutableEntry
.
setValue
(
builder
.
build
());
mutableEntry
.
setValue
(
builder
.
build
());
}
}
}
}
...
...
src/main/java/com/hikcreate/ignite/domain/basic/AlarmTypeInfo.java
→
src/main/java/com/hikcreate/ignite/domain
1
/basic/AlarmTypeInfo.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
basic
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
basic
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
...
...
src/main/java/com/hikcreate/ignite/domain/basic/EnterpriseInfo.java
→
src/main/java/com/hikcreate/ignite/domain
1
/basic/EnterpriseInfo.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
basic
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
basic
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
...
src/main/java/com/hikcreate/ignite/domain/basic/PlatformInfo.java
→
src/main/java/com/hikcreate/ignite/domain
1
/basic/PlatformInfo.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
basic
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
basic
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
...
src/main/java/com/hikcreate/ignite/domain/basic/VehicleInfo.java
→
src/main/java/com/hikcreate/ignite/domain
1
/basic/VehicleInfo.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
basic
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
basic
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
...
src/main/java/com/hikcreate/ignite/domain/vehicles/AlarmNumber.java
→
src/main/java/com/hikcreate/ignite/domain
1
/vehicles/AlarmNumber.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
vehicles
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
...
@@ -9,21 +9,61 @@ public class AlarmNumber implements Serializable {
...
@@ -9,21 +9,61 @@ public class AlarmNumber implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
province
;
//省 浙江省
private
String
province
;
//省 浙江省
@QuerySqlField
@QuerySqlField
private
String
city
;
//市 杭州市
private
String
city
;
//市 杭州市
@QuerySqlField
@QuerySqlField
private
String
area
;
//区 萧山区
private
String
area
;
//区 萧山区
@QuerySqlField
@QuerySqlField
private
String
useNature
;
//使用性质 公交
private
Long
number
;
//报警总数
@QuerySqlField
private
Long
number
;
//使用性质 公交
public
AlarmNumber
(
String
province
,
String
city
,
String
area
,
String
useNature
,
Long
number
)
{
public
AlarmNumber
(
String
useNature
,
String
province
,
String
city
,
String
area
,
Long
number
)
{
this
.
useNature
=
useNature
;
this
.
province
=
province
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
area
=
area
;
this
.
number
=
number
;
}
public
String
getProvince
()
{
return
province
;
}
public
void
setProvince
(
String
province
)
{
this
.
province
=
province
;
}
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
}
public
String
getArea
()
{
return
area
;
}
public
void
setArea
(
String
area
)
{
this
.
area
=
area
;
}
public
String
getUseNature
()
{
return
useNature
;
}
public
void
setUseNature
(
String
useNature
)
{
this
.
useNature
=
useNature
;
this
.
useNature
=
useNature
;
}
public
Long
getNumber
()
{
return
number
;
}
public
void
setNumber
(
Long
number
)
{
this
.
number
=
number
;
this
.
number
=
number
;
}
}
}
}
src/main/java/com/hikcreate/ignite/domain1/vehicles/DailyTravel.java
0 → 100644
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain1
.
vehicles
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
public
class
DailyTravel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
private
String
vehicleNo
;
//车牌号
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
province
;
//车辆归属地省
@QuerySqlField
private
String
city
;
//车辆归属地市
@QuerySqlField
private
String
area
;
//车辆归属地区
@QuerySqlField
private
String
gpsProvince
;
//车辆当前所处省
@QuerySqlField
private
String
gpsCity
;
//车辆当前所处市
@QuerySqlField
private
String
gpsArea
;
//车辆当前所处区
@QuerySqlField
private
String
date
;
//统计日期 - 当天
@QuerySqlField
private
Double
lat
;
//最新一条记录的纬度
@QuerySqlField
private
Double
lng
;
//最新一条记录的经度
@QuerySqlField
private
String
time
;
//最新一条记录的时间
@QuerySqlField
private
Double
travelMileage
=
0
D
;
//当日累计里程,单位
@QuerySqlField
private
Long
travelTime
=
0L
;
//当日累计行驶时间,单位秒
public
DailyTravel
(
String
vehicleNo
,
String
vehicleColor
,
String
useNature
,
String
province
,
String
city
,
String
area
,
String
gpsProvince
,
String
gpsCity
,
String
gpsArea
,
String
date
,
Double
lat
,
Double
lng
,
String
time
)
{
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleColor
=
vehicleColor
;
this
.
useNature
=
useNature
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
gpsProvince
=
gpsProvince
;
this
.
gpsCity
=
gpsCity
;
this
.
gpsArea
=
gpsArea
;
this
.
date
=
date
;
this
.
lat
=
lat
;
this
.
lng
=
lng
;
this
.
time
=
time
;
}
public
String
getProvince
()
{
return
province
;
}
public
void
setProvince
(
String
province
)
{
this
.
province
=
province
;
}
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
}
public
String
getArea
()
{
return
area
;
}
public
void
setArea
(
String
area
)
{
this
.
area
=
area
;
}
public
String
getVehicleNo
()
{
return
vehicleNo
;
}
public
void
setVehicleNo
(
String
vehicleNo
)
{
this
.
vehicleNo
=
vehicleNo
;
}
public
String
getVehicleColor
()
{
return
vehicleColor
;
}
public
void
setVehicleColor
(
String
vehicleColor
)
{
this
.
vehicleColor
=
vehicleColor
;
}
public
String
getGpsProvince
()
{
return
gpsProvince
;
}
public
void
setGpsProvince
(
String
gpsProvince
)
{
this
.
gpsProvince
=
gpsProvince
;
}
public
String
getGpsCity
()
{
return
gpsCity
;
}
public
void
setGpsCity
(
String
gpsCity
)
{
this
.
gpsCity
=
gpsCity
;
}
public
String
getGpsArea
()
{
return
gpsArea
;
}
public
void
setGpsArea
(
String
gpsArea
)
{
this
.
gpsArea
=
gpsArea
;
}
public
String
getUseNature
()
{
return
useNature
;
}
public
void
setUseNature
(
String
useNature
)
{
this
.
useNature
=
useNature
;
}
public
String
getDate
()
{
return
date
;
}
public
void
setDate
(
String
date
)
{
this
.
date
=
date
;
}
public
Double
getLat
()
{
return
lat
;
}
public
void
setLat
(
Double
lat
)
{
this
.
lat
=
lat
;
}
public
Double
getLng
()
{
return
lng
;
}
public
void
setLng
(
Double
lng
)
{
this
.
lng
=
lng
;
}
public
String
getTime
()
{
return
time
;
}
public
void
setTime
(
String
time
)
{
this
.
time
=
time
;
}
public
Double
getTravelMileage
()
{
return
travelMileage
;
}
public
void
setTravelMileage
(
Double
travelMileage
)
{
this
.
travelMileage
=
travelMileage
;
}
public
Long
getTravelTime
()
{
return
travelTime
;
}
public
void
setTravelTime
(
Long
travelTime
)
{
this
.
travelTime
=
travelTime
;
}
}
src/main/java/com/hikcreate/ignite/domain/vehicles/DriverNumber.java
→
src/main/java/com/hikcreate/ignite/domain
1
/vehicles/DriverNumber.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
vehicles
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
...
@@ -9,6 +9,9 @@ public class DriverNumber implements Serializable {
...
@@ -9,6 +9,9 @@ public class DriverNumber implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
province
;
//省
private
String
province
;
//省
@QuerySqlField
@QuerySqlField
...
@@ -17,13 +20,10 @@ public class DriverNumber implements Serializable {
...
@@ -17,13 +20,10 @@ public class DriverNumber implements Serializable {
@QuerySqlField
@QuerySqlField
private
String
area
;
//区
private
String
area
;
//区
@QuerySqlField
public
DriverNumber
(
String
useNature
,
String
province
,
String
city
,
String
area
)
{
private
String
useNature
;
//使用性质 公交
this
.
useNature
=
useNature
;
public
DriverNumber
(
String
province
,
String
city
,
String
area
,
String
useNature
)
{
this
.
province
=
province
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
area
=
area
;
this
.
useNature
=
useNature
;
}
}
}
}
src/main/java/com/hikcreate/ignite/domain/vehicles/VehicleNumber.java
→
src/main/java/com/hikcreate/ignite/domain
1
/vehicles/VehicleNumber.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
vehicles
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
org.apache.ignite.cache.query.annotations.QuerySqlField
;
import
java.io.Serializable
;
import
java.io.Serializable
;
public
class
VehicleNumber
implements
Serializable
{
public
class
VehicleNumber
implements
Serializable
{
...
@@ -9,18 +8,24 @@ public class VehicleNumber implements Serializable {
...
@@ -9,18 +8,24 @@ public class VehicleNumber implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@QuerySqlField
@QuerySqlField
private
String
vehicleNo
;
//车牌号
@QuerySqlField
private
String
vehicleColor
;
//车牌颜色
@QuerySqlField
private
String
useNature
;
//使用性质 公交
@QuerySqlField
private
String
province
;
//省 浙江省
private
String
province
;
//省 浙江省
@QuerySqlField
@QuerySqlField
private
String
city
;
//市 杭州市
private
String
city
;
//市 杭州市
@QuerySqlField
@QuerySqlField
private
String
area
;
//区 萧山区
private
String
area
;
//区 萧山区
@QuerySqlField
private
String
useNature
;
//使用性质 公交
public
VehicleNumber
(
String
province
,
String
city
,
String
area
,
String
useNature
)
{
public
VehicleNumber
(
String
vehicleNo
,
String
vehicleColor
,
String
useNature
,
String
province
,
String
city
,
String
area
)
{
this
.
vehicleNo
=
vehicleNo
;
this
.
vehicleColor
=
vehicleColor
;
this
.
useNature
=
useNature
;
this
.
province
=
province
;
this
.
province
=
province
;
this
.
city
=
city
;
this
.
city
=
city
;
this
.
area
=
area
;
this
.
area
=
area
;
this
.
useNature
=
useNature
;
}
}
}
}
src/main/java/com/hikcreate/ignite/domain/vehicles/processor/AlarmNumberUpdate.java
→
src/main/java/com/hikcreate/ignite/domain
1
/vehicles/processor/AlarmNumberUpdate.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
.
processor
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
vehicles
.
processor
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
...
...
src/main/java/com/hikcreate/ignite/domain/vehicles/processor/DailyTravelUpdate.java
→
src/main/java/com/hikcreate/ignite/domain
1
/vehicles/processor/DailyTravelUpdate.java
View file @
34f0acb4
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
.
processor
;
package
com
.
hikcreate
.
ignite
.
domain
1
.
vehicles
.
processor
;
import
com.hikcreate.ignite.domain1.vehicles.DailyTravel
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.cache.CacheEntryProcessor
;
import
org.apache.ignite.cache.CacheEntryProcessor
;
...
@@ -7,17 +8,14 @@ import org.joda.time.*;
...
@@ -7,17 +8,14 @@ import org.joda.time.*;
import
org.joda.time.format.DateTimeFormat
;
import
org.joda.time.format.DateTimeFormat
;
import
javax.cache.processor.EntryProcessorException
;
import
javax.cache.processor.EntryProcessorException
;
import
javax.cache.processor.MutableEntry
;
import
javax.cache.processor.MutableEntry
;
import
java.lang.reflect.Field
;
public
class
DailyTravelUpdate
implements
CacheEntryProcessor
<
BinaryObject
,
BinaryObject
,
Void
>
{
public
class
DailyTravelUpdate
implements
CacheEntryProcessor
<
BinaryObject
,
BinaryObject
,
Void
>
{
private
double
lat
;
private
DailyTravel
dailyTravel
;
private
double
lng
;
private
String
time
;
public
DailyTravelUpdate
(
double
lat
,
double
lng
,
String
time
){
public
DailyTravelUpdate
(
DailyTravel
dailyTravel
){
this
.
lat
=
lat
;
this
.
dailyTravel
=
dailyTravel
;
this
.
lng
=
lng
;
this
.
time
=
time
;
}
}
@Override
@Override
...
@@ -26,51 +24,52 @@ public class DailyTravelUpdate implements CacheEntryProcessor<BinaryObject,Binar
...
@@ -26,51 +24,52 @@ public class DailyTravelUpdate implements CacheEntryProcessor<BinaryObject,Binar
BinaryObjectBuilder
builder
=
value
.
toBuilder
();
BinaryObjectBuilder
builder
=
value
.
toBuilder
();
LocalDate
today
=
LocalDate
.
now
();
//今日日期
LocalDate
today
=
LocalDate
.
now
();
//今日日期
LocalDate
statisticalDate
=
LocalDate
.
parse
(
value
.<
String
>
field
(
"date"
),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
));
//统计日期
LocalDate
statisticalDate
=
LocalDate
.
parse
(
value
.<
String
>
field
(
"date"
),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
));
//统计日期
DateTime
eventTime
=
DateTime
.
parse
(
time
,
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
//事件日期
DateTime
eventTime
=
DateTime
.
parse
(
dailyTravel
.
getTime
(),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
//事件日期
time
=
eventTime
.
toString
(
"yyyy-MM-dd HH:mm:ss"
);
LocalDate
eventDate
=
eventTime
.
toLocalDate
();
LocalDate
eventDate
=
eventTime
.
toLocalDate
();
if
(
statisticalDate
.
isBefore
(
today
)){
//统计时间不是当前日,需要重置
if
(
statisticalDate
.
isBefore
(
today
)){
//统计时间不是当前日,需要重置
builder
.
setField
(
"date"
,
today
.
toString
(
"yyyy-MM-dd"
));
dailyTravel
.
setDate
(
today
.
toString
(
"yyyy-MM-dd"
));
builder
.
setField
(
"travelMileage"
,
0
D
);
builder
.
setField
(
"travelTime"
,
0L
);
if
(
eventDate
.
equals
(
today
)){
//代表这条数据是今天的
if
(
eventDate
.
equals
(
today
)){
//代表这条数据是今天的
builder
.
setField
(
"lat"
,
lat
);
mutableEntry
.
setValue
(
build
(
builder
,
dailyTravel
));
builder
.
setField
(
"lng"
,
lng
);
builder
.
setField
(
"time"
,
time
);
mutableEntry
.
setValue
(
builder
.
build
());
}
else
{
}
else
{
builder
.
setField
(
"lat"
,
null
);
dailyTravel
.
setLat
(
null
);
builder
.
setField
(
"lng"
,
null
);
dailyTravel
.
setLng
(
null
);
builder
.
setField
(
"time"
,
null
);
dailyTravel
.
setTime
(
null
);
mutableEntry
.
setValue
(
build
er
.
build
(
));
mutableEntry
.
setValue
(
build
(
builder
,
dailyTravel
));
}
}
}
else
if
(
eventDate
.
equals
(
today
)){
}
else
if
(
eventDate
.
equals
(
today
)){
if
(
value
.<
Double
>
field
(
"lat"
)
==
null
){
if
(
value
.<
Double
>
field
(
"lat"
)
==
null
){
builder
.
setField
(
"lat"
,
lat
);
mutableEntry
.
setValue
(
build
(
builder
,
dailyTravel
));
builder
.
setField
(
"lng"
,
lng
);
builder
.
setField
(
"time"
,
time
);
mutableEntry
.
setValue
(
builder
.
build
());
}
else
{
}
else
{
DateTime
lastTime
=
DateTime
.
parse
(
value
.<
String
>
field
(
"time"
),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
DateTime
lastTime
=
DateTime
.
parse
(
value
.<
String
>
field
(
"time"
),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
if
(
lastTime
.
isBefore
(
eventTime
)){
if
(
lastTime
.
isBefore
(
eventTime
)){
Double
differDistance
=
getDistance
(
value
.<
Double
>
field
(
"lat"
),
value
.<
Double
>
field
(
"lng"
),
lat
,
lng
);
Double
differDistance
=
getDistance
(
value
.<
Double
>
field
(
"lat"
),
value
.<
Double
>
field
(
"lng"
),
dailyTravel
.
getLat
(),
dailyTravel
.
getLng
());
Double
travelMileage
=
value
.<
Double
>
field
(
"travelMileage"
)
==
null
?
0
D
:
value
.<
Double
>
field
(
"travelMileage"
)
+
differDistance
;
dailyTravel
.
setTravelMileage
(
travelMileage
);
Interval
interval
=
new
Interval
(
lastTime
,
eventTime
);
Interval
interval
=
new
Interval
(
lastTime
,
eventTime
);
Period
period
=
interval
.
toPeriod
(
PeriodType
.
millis
());
Period
period
=
interval
.
toPeriod
(
PeriodType
.
millis
());
int
differTime
=
period
.
getMillis
()
/
1000
;
int
differTime
=
period
.
getMillis
()
/
1000
;
builder
.
setField
(
"lat"
,
lat
);
builder
.
setField
(
"lng"
,
lng
);
builder
.
setField
(
"time"
,
time
);
Object
travelMileage
=
value
.<
Double
>
field
(
"travelMileage"
)
==
null
?
0
D
:
value
.<
Double
>
field
(
"travelMileage"
)
+
differDistance
;
builder
.
setField
(
"travelMileage"
,
travelMileage
);
Long
travelTime
=
value
.<
Long
>
field
(
"travelTime"
)
==
null
?
0L
:
value
.<
Long
>
field
(
"travelTime"
)
+
differTime
;
Long
travelTime
=
value
.<
Long
>
field
(
"travelTime"
)
==
null
?
0L
:
value
.<
Long
>
field
(
"travelTime"
)
+
differTime
;
builder
.
setField
(
"travelTime"
,
travelTime
);
dailyTravel
.
setTravelTime
(
travelTime
);
mutableEntry
.
setValue
(
build
er
.
build
(
));
mutableEntry
.
setValue
(
build
(
builder
,
dailyTravel
));
}
}
}
}
}
}
return
null
;
return
null
;
}
}
private
BinaryObject
build
(
BinaryObjectBuilder
builder
,
Object
object
){
Field
[]
fields
=
object
.
getClass
().
getDeclaredFields
();
for
(
Field
field
:
fields
)
{
try
{
field
.
setAccessible
(
true
);
builder
.
setField
(
field
.
getName
(),
field
.
get
(
object
));
}
catch
(
IllegalAccessException
e
)
{
e
.
printStackTrace
();
}
}
return
builder
.
build
();
}
private
Double
rad
(
Double
d
){
private
Double
rad
(
Double
d
){
return
d
*
Math
.
PI
/
180.0
;
return
d
*
Math
.
PI
/
180.0
;
}
}
...
...
src/main/resources/META-INF/app.properties
0 → 100644
View file @
34f0acb4
app.id
=
hangzhou-dataprocess
apollo.meta
=
http://10.197.236.187:7070/
\ No newline at end of file
src/main/resources/conf.properties
View file @
34f0acb4
kafka.bootstrap.servers
=
39.100.49.76:9092
kafka.bootstrap.servers
=
39.100.49.76:9092
#kafka.bootstrap.servers=10.197.236.154:9092
kafka.zookerper.servers
=
10.197.236.154:2181
#,10.197.236.169:2181,10.197.236.184:2181/kafka
#kafka.zookerper.servers=172.26.111.183:2181,172.26.111.178:2181,172.26.111.186:2181/tbd_kafka
#kafka.zookerper.servers=172.26.111.183:2181,172.26.111.178:2181,172.26.111.186:2181/tbd_kafka
kafka.zookerper.servers
=
10.197.236.211:2181
#
kafka.zookerper.servers=10.197.236.211:2181
window.time
=
5
window.time
=
5
compact.kafka.topic
=
transport_basedata_operation,tbd-transport-data-gathering
compact.kafka.topic
=
transport_basedata_operation,tbd-transport-data-gathering
application.kafka.topic
=
tbd-transport-data-gathering
application.kafka.topic
=
tbd-transport-data-gathering
basicsInfo.kafka.topic
=
transport_basedata_operation
basicsInfo.kafka.topic
=
transport_basedata_operation
hive.group.id
=
hive
hive.group.id
=
hive
ignite.group.id
=
ignite
3
ignite.group.id
=
ignite
basics.group.id
=
basics
2
basics.group.id
=
basics
hdfs.url
=
hdfs://10.197.236.211:8020
hive.driver
=
org.apache.hive.jdbc.HiveDriver
hive.driver
=
org.apache.hive.jdbc.HiveDriver
hive.url
=
jdbc:hive2://hadoop02:10000/ods
hive.url
=
jdbc:hive2://hadoop02:10000/ods
hive.username
=
hive
hive.username
=
hive
...
...
src/main/resources/ignite.xml
View file @
34f0acb4
...
@@ -17,8 +17,8 @@
...
@@ -17,8 +17,8 @@
<bean
class=
"org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi"
>
<bean
class=
"org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi"
>
<property
name=
"zkConnectionString"
value=
"10.197.236.211:2181,10.197.236.212:2181,10.197.236.213:2181"
/>
<property
name=
"zkConnectionString"
value=
"10.197.236.211:2181,10.197.236.212:2181,10.197.236.213:2181"
/>
<property
name=
"sessionTimeout"
value=
"30000"
/>
<property
name=
"sessionTimeout"
value=
"30000"
/>
<
property
name=
"zkRootPath"
value=
"/apacheIgnite"
/
>
<
!--<property name="zkRootPath" value="/apacheIgnite"/>--
>
<
!--<property name="zkRootPath" value="/Ignite"/>--
>
<
property
name=
"zkRootPath"
value=
"/Ignite"
/
>
<property
name=
"joinTimeout"
value=
"0"
/>
<property
name=
"joinTimeout"
value=
"0"
/>
</bean>
</bean>
</property>
</property>
...
...
src/main/scala/com/hikcreate/data/client/EmailClient.scala
0 → 100644
View file @
34f0acb4
package
com.hikcreate.data.client
import
java.io.File
import
play.api.libs.mailer._
object
EmailClient
{
val
host
=
"smtp.qq.com"
val
port
=
587
val
user
=
Option
(
"272558733@qq.com"
)
val
password
=
Option
(
"zjthyvgxtyvlbibh"
)
val
configuration
:
SMTPConfiguration
=
new
SMTPConfiguration
(
host
,
port
,
user
=
user
,
password
=
password
)
val
mailer
:
SMTPMailer
=
new
SMTPMailer
(
configuration
)
/**
* 添加本地文件AttachmentFile
* @param name 附件名
* @param filePath 本地文件路径
* @return
*/
def
generateLocalAttachment
(
name
:
String
,
filePath
:
String
)
:
AttachmentFile
=
AttachmentFile
(
name
,
new
File
(
filePath
))
/**
* 添加非本地文件AttachmentData
* @param name 附件名
* @param data 字节流
* @param mimetype 文件类型
*/
def
generateNotLocalAttachment
(
name
:
String
,
data
:
Array
[
Byte
],
mimetype
:
String
)
:
AttachmentData
=
AttachmentData
(
name
,
data
,
mimetype
)
/**
* @param subject 邮件主题
* @param to 邮件接收地址
* @param bodyText 如果bodyText参数和bodyHtml参数同时有,则只会显示bodyHtml中的内容
* @param bodyHtml 一般情况下这两个参数也只会用一个,另一个用None
* @param attachments 附件序列
*/
def
sendEmail
(
subject
:
String
,
to
:
Seq
[
String
],
bodyText
:
Option
[
String
],
bodyHtml
:
Option
[
String
],
attachments
:
Option
[
Seq
[
Attachment
]])
:
Unit
={
val
email
=
attachments
match
{
case
Some
(
x
)
=>
Email
(
subject
,
user
.
get
,
to
,
bodyText
,
bodyHtml
,
attachments
=
x
)
case
None
=>
Email
(
subject
,
user
.
get
,
to
,
bodyText
,
bodyHtml
)
}
mailer
.
send
(
email
)
}
}
src/main/scala/com/hikcreate/data/client/IgniteClient.scala
View file @
34f0acb4
package
com.hikcreate.data.client
package
com.hikcreate.data.client
import
java.util.concurrent.TimeUnit
import
java.util.concurrent.TimeUnit
import
com.hikcreate.ignite.domain1.
{
ErrorMsg
,
PrimaryKey
}
import
com.hikcreate.ignite.domain
.
{
ErrorMsg
,
PrimaryKey
}
import
com.hikcreate.ignite.domain
1.alarm._
import
com.hikcreate.ignite.domain
.alarm._
import
com.hikcreate.ignite.domain
1.alarm.processor.
{
DailyAlarmDealUpdate
,
DailyAlarmUpdate
}
import
com.hikcreate.ignite.domain
.alarm.processor.
{
DailyAlarmDealUpdate
,
DailyAlarmUpdate
}
import
com.hikcreate.ignite.domain
1.basic._
import
com.hikcreate.ignite.domain
.basic._
import
com.hikcreate.ignite.domain
1.vehicles.processor.
{
AlarmNumberUpdate
,
DailyTravelUpdate
}
import
com.hikcreate.ignite.domain
.vehicles.processor.
{
AlarmNumberUpdate
,
DailyTravelUpdate
}
import
com.hikcreate.ignite.domain
1.vehicles._
import
com.hikcreate.ignite.domain.vehicles._
import
javax.cache.expiry.
{
CreatedExpiryPolicy
,
Duration
}
import
org.apache.ignite.binary.BinaryObject
import
org.apache.ignite.binary.BinaryObject
import
org.apache.ignite.cache.CacheMode
import
org.apache.ignite.cache.CacheMode
import
org.apache.ignite.configuration.CacheConfiguration
import
org.apache.ignite.configuration.CacheConfiguration
import
org.apache.ignite.
{
Ignite
,
IgniteCache
,
Ignition
}
import
org.apache.ignite.
{
Ignite
,
IgniteCache
,
Ignition
}
import
org.joda.time.DateTime
import
scala.collection.JavaConversions.mapAsJavaMap
import
scala.collection.JavaConversions.mapAsJavaMap
import
scala.collection.JavaConverters._
/**
* binary type无法自动更改
* 闭包序列化发送到服务器只会发送一次,代码结构改变需要重启ignite服务(待解决)
*/
object
IgniteClient
{
object
IgniteClient
{
lazy
val
ignite
:
Ignite
=
Ignition
.
start
(
"ignite.xml"
)
lazy
val
ignite
:
Ignite
=
Ignition
.
start
(
"ignite.xml"
)
...
@@ -33,6 +29,7 @@ object IgniteClient {
...
@@ -33,6 +29,7 @@ object IgniteClient {
binary
.
build
()
binary
.
build
()
}
}
/*********************************基础信息表****************************************************************/
/*********************************基础信息表****************************************************************/
//企业基础信息表--企业接入情况
//企业基础信息表--企业接入情况
lazy
val
basicEnterpriseInfo
:
IgniteCache
[
Long
,
EnterpriseInfo
]
=
ignite
.
getOrCreateCache
(
lazy
val
basicEnterpriseInfo
:
IgniteCache
[
Long
,
EnterpriseInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
Long
,
EnterpriseInfo
]()
new
CacheConfiguration
[
Long
,
EnterpriseInfo
]()
...
@@ -42,6 +39,7 @@ object IgniteClient {
...
@@ -42,6 +39,7 @@ object IgniteClient {
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
EnterpriseInfo
])
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
EnterpriseInfo
])
)
)
//车辆基础信息表--接入车辆数
//车辆基础信息表--接入车辆数
lazy
val
basicVehicleInfo
:
IgniteCache
[
Long
,
VehicleInfo
]
=
ignite
.
getOrCreateCache
(
lazy
val
basicVehicleInfo
:
IgniteCache
[
Long
,
VehicleInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
Long
,
VehicleInfo
]()
new
CacheConfiguration
[
Long
,
VehicleInfo
]()
...
@@ -51,6 +49,7 @@ object IgniteClient {
...
@@ -51,6 +49,7 @@ object IgniteClient {
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
VehicleInfo
])
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
VehicleInfo
])
)
)
//报警类型配置基础表
//报警类型配置基础表
lazy
val
basicAlarmTypeInfo
:
IgniteCache
[
Long
,
AlarmTypeInfo
]
=
ignite
.
getOrCreateCache
(
lazy
val
basicAlarmTypeInfo
:
IgniteCache
[
Long
,
AlarmTypeInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
Long
,
AlarmTypeInfo
]()
new
CacheConfiguration
[
Long
,
AlarmTypeInfo
]()
...
@@ -60,7 +59,9 @@ object IgniteClient {
...
@@ -60,7 +59,9 @@ object IgniteClient {
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
AlarmTypeInfo
])
.
setIndexedTypes
(
classOf
[
Long
],
classOf
[
AlarmTypeInfo
])
)
)
/*********************************营运车辆监测****************************************************************/
/*********************************营运车辆监测****************************************************************/
/**
/**
* 今日车辆在线情况 累计行驶 累计安全行驶里程
* 今日车辆在线情况 累计行驶 累计安全行驶里程
* 主键:车牌号 + 车牌颜色(定义唯一一辆车)
* 主键:车牌号 + 车牌颜色(定义唯一一辆车)
...
@@ -75,11 +76,12 @@ object IgniteClient {
...
@@ -75,11 +76,12 @@ object IgniteClient {
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
)
)
def
updateMileageCache
(
key
:
BinaryObject
,
lat
:
Double
,
lng
:
Double
,
time
:
String
)
:
Unit
=
{
def
updateMileageCache
(
key
:
BinaryObject
,
dailyTravel
:
DailyTravel
)
:
Unit
=
{
dailyTravelCache
dailyTravelCache
.
withKeepBinary
()
.
withKeepBinary
()
.
invoke
(
key
,
new
DailyTravelUpdate
(
lat
,
lng
,
time
))
.
invoke
(
key
,
new
DailyTravelUpdate
(
dailyTravel
))
}
}
/**
/**
* 接入驾驶人数 -完成
* 接入驾驶人数 -完成
* 主键:身份证号码 - 去重
* 主键:身份证号码 - 去重
...
@@ -131,19 +133,6 @@ object IgniteClient {
...
@@ -131,19 +133,6 @@ object IgniteClient {
}
}
/*********************************安全行驶报警监测****************************************************************/
/*********************************安全行驶报警监测****************************************************************/
/**
* 附件历史记录
* 主键:车牌号 车牌颜色 设备ID 报警时间 序列号
*/
lazy
val
attachmentCache
:
IgniteCache
[
PrimaryKey
,
AttachmentInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
PrimaryKey
,
AttachmentInfo
]()
.
setSqlSchema
(
"Alarm"
)
.
setName
(
"AttachmentInfo"
)
.
setIndexedTypes
(
classOf
[
PrimaryKey
],
classOf
[
AttachmentInfo
])
.
setDataRegionName
(
"500MB_Region"
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
//.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS,24)))
)
/**
/**
* 今日报警数 今日区域报警数
* 今日报警数 今日区域报警数
...
@@ -164,6 +153,7 @@ object IgniteClient {
...
@@ -164,6 +153,7 @@ object IgniteClient {
.
withKeepBinary
()
.
withKeepBinary
()
.
invoke
(
key
,
new
DailyAlarmUpdate
(
time
))
.
invoke
(
key
,
new
DailyAlarmUpdate
(
time
))
}
}
/**
/**
* 今日报警处理数
* 今日报警处理数
* 主键:车牌号 车牌颜色 报警督办ID
* 主键:车牌号 车牌颜色 报警督办ID
...
@@ -184,8 +174,9 @@ object IgniteClient {
...
@@ -184,8 +174,9 @@ object IgniteClient {
.
withKeepBinary
()
.
withKeepBinary
()
.
invoke
(
key
,
new
DailyAlarmDealUpdate
(
map
))
.
invoke
(
key
,
new
DailyAlarmDealUpdate
(
map
))
}
}
/**
/**
*
今日
报警详情
* 报警详情
* 主键:车牌号 车牌颜色 报警时间
* 主键:车牌号 车牌颜色 报警时间
* 数据来源:上报报警信息消息
* 数据来源:上报报警信息消息
*/
*/
...
@@ -199,18 +190,35 @@ object IgniteClient {
...
@@ -199,18 +190,35 @@ object IgniteClient {
//.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS,24)))
//.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS,24)))
)
)
/*********************************错误数据****************************************************************/
/**
lazy
val
errorMsgInfo
:
IgniteCache
[
String
,
ErrorMsg
]
=
ignite
.
getOrCreateCache
(
* 附件
new
CacheConfiguration
[
String
,
ErrorMsg
]()
* 主键:车牌号 车牌颜色 设备ID 报警时间 序列号
.
setSqlSchema
(
"Error"
)
*/
.
setName
(
"ErrorMsg"
)
lazy
val
attachmentCache
:
IgniteCache
[
PrimaryKey
,
AttachmentInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
PrimaryKey
,
AttachmentInfo
]()
.
setSqlSchema
(
"Alarm"
)
.
setName
(
"AttachmentInfo"
)
.
setIndexedTypes
(
classOf
[
PrimaryKey
],
classOf
[
AttachmentInfo
])
.
setDataRegionName
(
"500MB_Region"
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
//.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS,24)))
)
/**
* 身份识别
* 主键:车牌号 车牌颜色 业务发生时间
*/
lazy
val
identificationInfoCache
:
IgniteCache
[
PrimaryKey
,
IdentificationInfo
]
=
ignite
.
getOrCreateCache
(
new
CacheConfiguration
[
PrimaryKey
,
IdentificationInfo
]()
.
setSqlSchema
(
"Alarm"
)
.
setName
(
"IdentificationInfo"
)
.
setIndexedTypes
(
classOf
[
PrimaryKey
],
classOf
[
IdentificationInfo
])
.
setDataRegionName
(
"500MB_Region"
)
.
setDataRegionName
(
"500MB_Region"
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setCacheMode
(
CacheMode
.
REPLICATED
)
.
setIndexedTypes
(
classOf
[
String
],
classOf
[
ErrorMsg
]
)
//.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS,24))
)
)
)
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
ignite
.
cacheNames
().
asScala
.
foreach
(
println
(
_
))
//dailyAlarmDealCache.clear()
ignite
.
close
()
}
}
}
}
src/main/scala/com/hikcreate/data/common/Sparking.scala
View file @
34f0acb4
package
com.hikcreate.data.common
package
com.hikcreate.data.common
import
com.hikcreate.data.listener.LifecycleListener
import
org.apache.log4j.
{
Level
,
Logger
}
import
org.apache.log4j.
{
Level
,
Logger
}
import
org.apache.kafka.common.serialization.StringDeserializer
import
org.apache.kafka.common.serialization.StringDeserializer
import
org.apache.spark.SparkConf
import
org.apache.spark.SparkConf
...
@@ -13,6 +14,7 @@ trait Sparking {
...
@@ -13,6 +14,7 @@ trait Sparking {
val
conf
:
SparkConf
=
new
SparkConf
()
val
conf
:
SparkConf
=
new
SparkConf
()
.
set
(
"spark.serializer"
,
"org.apache.spark.serializer.KryoSerializer"
)
.
set
(
"spark.serializer"
,
"org.apache.spark.serializer.KryoSerializer"
)
.
set
(
"spark.extraListeners"
,
classOf
[
LifecycleListener
].
getName
)
.
set
(
"hive.exec.dynamici.partition"
,
"true"
)
.
set
(
"hive.exec.dynamici.partition"
,
"true"
)
.
set
(
"hive.exec.dynamic.partition.mode"
,
"nonstrict"
)
.
set
(
"hive.exec.dynamic.partition.mode"
,
"nonstrict"
)
.
setAppName
(
"test"
)
.
setAppName
(
"test"
)
...
...
src/main/scala/com/hikcreate/data/constant/ApolloConst.scala
0 → 100644
View file @
34f0acb4
package
com.hikcreate.data.constant
import
com.ctrip.framework.apollo.
{
Config
,
ConfigService
}
import
com.hikcreate.data.model.TableKey
object
ApolloConst
{
val
config
:
Config
=
ConfigService
.
getConfig
(
"application"
)
val
bootstrap
:
String
=
config
.
getProperty
(
"kafka.bootstrap.servers"
,
null
)
val
zkKafka
:
String
=
config
.
getProperty
(
"kafka.zookerper.servers"
,
null
)
val
applicationTopic
:
Array
[
String
]
=
config
.
getProperty
(
"application.kafka.topic"
,
null
).
split
(
","
)
val
basicsInfoTopic
:
Array
[
String
]
=
config
.
getProperty
(
"basicsInfo.kafka.topic"
,
""
).
split
(
","
)
val
hiveGroupId
:
String
=
config
.
getProperty
(
"hive.group.id"
,
null
)
val
igniteGroupId
:
String
=
config
.
getProperty
(
"ignite.group.id"
,
null
)
val
basicsGroupId
:
String
=
config
.
getProperty
(
"basics.group.id"
,
null
)
val
hivePoolName
=
"hive"
val
hiveDriver
:
String
=
config
.
getProperty
(
"hive.driver"
,
null
)
val
hiveUrl
:
String
=
config
.
getProperty
(
"hive.url"
,
null
)
val
hiveUsername
:
String
=
config
.
getProperty
(
"hive.username"
,
null
)
val
hivePassword
:
String
=
config
.
getProperty
(
"hive.password"
,
null
)
val
areaCodeAndAddressUrl
:
String
=
config
.
getProperty
(
"areaCodeAndAddress.Url"
,
null
)
val
unKnownTable
:
String
=
config
.
getProperty
(
"hive.unknown.table"
,
null
)
val
warnTypes
:
Array
[
String
]
=
config
.
getProperty
(
"warnTypes"
,
null
).
split
(
","
)
val
tableMap
:
Map
[
TableKey
,
String
]
=
Map
(
//链路管理
TableKey
(
Some
(
"0x1001"
),
None
)->
config
.
getProperty
(
"hive.UP_CONNECT_REQ.table"
,
null
),
//主链路登录
TableKey
(
Some
(
"0x1003"
),
None
)->
config
.
getProperty
(
"hive.UP_DISCONNECT_REQ.table"
,
null
),
//主链路注销
TableKey
(
Some
(
"0x1005"
),
None
)->
config
.
getProperty
(
"hive.UP_LINKTEST_REQ.table"
,
null
),
//主链路链路保持
TableKey
(
Some
(
"0x1007"
),
None
)->
config
.
getProperty
(
"hive.UP_DISCONNECT_INFORM.table"
,
null
),
//主链路断开
TableKey
(
Some
(
"0x9001"
),
None
)->
config
.
getProperty
(
"hive.DOWN_CONNECT.table"
,
null
),
//从链路连接成功
TableKey
(
Some
(
"0x9006"
),
None
)->
config
.
getProperty
(
"hive.DOWN_LINKTEST.table"
,
null
),
//从链路连接保持应答
//车辆动态信息交换类
TableKey
(
Some
(
"0x1200"
),
Some
(
"0x1201"
))->
config
.
getProperty
(
"hive.UP_EXG_MSG_REGISTER.table"
,
null
),
//上传车辆注册信息消息
TableKey
(
Some
(
"0x1200"
),
Some
(
"0x1202"
))->
config
.
getProperty
(
"hive.UP_EXG_MSG_REAL_LOCATION.table"
,
null
),
//实时上传车辆定位消息
TableKey
(
Some
(
"0x1200"
),
Some
(
"0x1203"
))->
config
.
getProperty
(
"hive.KAFKA_UP_EXG_MSG_HISTORY_LOCATION.table"
,
null
),
////车辆定位信息补报
TableKey
(
Some
(
"0x1200"
),
Some
(
"0x120B"
))->
config
.
getProperty
(
"hive.UP_EXG_MSG_TAKE_EWAYBILL_ACK.table"
,
null
),
//上报车辆电子运单
//车辆报警信息交互业务类
TableKey
(
Some
(
"0x1400"
),
Some
(
"0x1402"
))->
config
.
getProperty
(
"hive.UP_WARN_MSG_ADPT_INFO.table"
,
null
),
//上报报警信息消息
TableKey
(
Some
(
"0x1400"
),
Some
(
"0x1401"
))->
config
.
getProperty
(
"hive.KAFKA_UP_WARN_MSG_URGE_TODO.table"
,
null
),
//报警督办请求信息
TableKey
(
Some
(
"0x9400"
),
Some
(
"0x9401"
))->
config
.
getProperty
(
"hive.KAFKA_DOWN_WARN_MSG_URGE_TODO.table"
,
null
),
//报警督办应答消息
//车辆监管业务类
//TableKey(Some("0x1500"),Some("0x1504"))->config.getProperty("hive.UP_CTRL_MSG_TAKE_TRAVEL.table"),//上报车辆行驶记录
//车辆静态信息交换业务类
TableKey
(
Some
(
"0x1600"
),
Some
(
"0x1601"
))->
config
.
getProperty
(
"hive.UP_BASE_MSG_VEHICLE_ADDED.table"
,
null
),
//补报车辆静态信息
//智能视频动态信息交换消息类
TableKey
(
Some
(
"0x1D00"
),
Some
(
"0x1D01"
))->
config
.
getProperty
(
"hive.UP_PREVENTION_EXG_MSG_DEVICE_PARAM.table"
,
null
),
//视频报警设备参数查询请求
TableKey
(
Some
(
"0x1D00"
),
Some
(
"0x1d02"
))->
config
.
getProperty
(
"hive.UP_PREVENTION_EXG_MSG_REPORT_DRIVER.table"
,
null
),
//定时上传驾驶员身份识别信息
TableKey
(
Some
(
"0x1C00"
),
Some
(
"0x1c02"
))->
config
.
getProperty
(
"hive.UP_PREVENTION_MSG_FILE_COMPLETE.table"
,
null
),
//智能视频报警附件上传结果上报
//基础信息类
TableKey
(
None
,
Some
(
"baseIntoPlatformInfo"
))->
config
.
getProperty
(
"hive.KAFKA_base_into_platform_info.table"
,
null
),
//接入平台
TableKey
(
None
,
Some
(
"baseIntoEnterpriseInfo"
))->
config
.
getProperty
(
"hive.KAFKA_base_into_enterprise_info.table"
,
null
),
//企业信息
TableKey
(
None
,
Some
(
"baseIntoVehicleInfo"
))->
config
.
getProperty
(
"hive.KAFKA_base_into_vehicle_info.table"
,
null
),
//接入车辆
TableKey
(
None
,
Some
(
"baseDataDisplayConfig"
))->
config
.
getProperty
(
"hive.KAFKA_base_data_display_config.table"
,
null
),
//数据展示配置
TableKey
(
None
,
Some
(
"baseWarningType"
))->
config
.
getProperty
(
"hive.KAFKA_base_warning_type.table"
,
null
)
//报警类型配置
)
}
src/main/scala/com/hikcreate/data/listener/BatchProcessListener.scala
0 → 100644
View file @
34f0acb4
package
com.hikcreate.data.listener
import
com.hikcreate.data.client.EmailClient
import
com.hikcreate.data.common.Logging
import
org.apache.spark.streaming.StreamingContext
import
org.apache.spark.streaming.scheduler.
{
StreamingListener
,
StreamingListenerBatchStarted
}
import
scala.collection.mutable.ArrayBuffer
/**
* 监控批处理时间
*/
class
BatchProcessListener
(
ssc
:
StreamingContext
)
extends
StreamingListener
with
Logging
{
val
DELAY_MAX
:
Int
=
1000
*
60
*
1
val
msg
=
new
ArrayBuffer
[
String
]()
msg
.
append
(
ssc
.
sparkContext
.
applicationId
)
msg
.
append
(
ssc
.
sparkContext
.
appName
)
override
def
onBatchStarted
(
batchStarted
:
StreamingListenerBatchStarted
)
:
Unit
=
{
val
Delay_ts
=
batchStarted
.
batchInfo
.
schedulingDelay
.
get
//调度延迟,单位:毫秒
if
(
Delay_ts
>
DELAY_MAX
){
msg
.
append
(
"数据处理存在延迟"
)
EmailClient
.
sendEmail
(
"Spark程序监控"
,
Seq
(
"272558733@qq.com"
),
Some
(
msg
.
mkString
(
"\n"
)),
None
,
None
)
}
}
}
src/main/scala/com/hikcreate/data/listener/LifecycleListener.scala
0 → 100644
View file @
34f0acb4
package
com.hikcreate.data.listener
import
com.hikcreate.data.client.EmailClient
import
com.hikcreate.data.common.Logging
import
org.apache.spark.SparkConf
import
org.apache.spark.scheduler.
{
SparkListener
,
SparkListenerApplicationEnd
,
SparkListenerApplicationStart
}
import
org.joda.time.DateTime
import
scala.collection.mutable.ArrayBuffer
/**
* 监控spark程序的启动与停止
*/
class
LifecycleListener
(
conf
:
SparkConf
)
extends
SparkListener
with
Logging
{
val
msg
=
new
ArrayBuffer
[
String
]()
override
def
onApplicationStart
(
applicationStart
:
SparkListenerApplicationStart
)
:
Unit
=
{
msg
.
append
(
"应用程序ID:"
+
applicationStart
.
appId
.
getOrElse
(
""
))
msg
.
append
(
"应用程序名称:"
+
applicationStart
.
appName
)
msg
.
append
(
"应用程序开始时间:"
+
new
DateTime
(
applicationStart
.
time
).
toString
(
"yyyy-MM-dd HH:mm:ss"
))
println
(
msg
)
}
override
def
onApplicationEnd
(
applicationEnd
:
SparkListenerApplicationEnd
)
:
Unit
=
{
msg
.
append
(
"应用程序结束时间:"
+
new
DateTime
(
applicationEnd
.
time
).
toString
(
"yyyy-MM-dd HH:mm:ss"
))
println
(
msg
.
mkString
(
"\n"
))
EmailClient
.
sendEmail
(
"Spark程序监控"
,
Seq
(
"272558733@qq.com"
),
Some
(
msg
.
mkString
(
"\n"
)),
None
,
None
)
}
}
src/main/scala/com/hikcreate/data/offline/FullSync.scala
View file @
34f0acb4
...
@@ -3,15 +3,16 @@ package com.hikcreate.data.offline
...
@@ -3,15 +3,16 @@ package com.hikcreate.data.offline
import
com.hikcreate.data.client.IgniteClient
import
com.hikcreate.data.client.IgniteClient
import
com.hikcreate.data.common.Sparking
import
com.hikcreate.data.common.Sparking
import
com.hikcreate.data.util.Tools
import
com.hikcreate.data.util.Tools
import
com.hikcreate.ignite.domain.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
com.hikcreate.ignite.domain1.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
org.apache.log4j.
{
Level
,
Logger
}
import
org.apache.spark.sql.SparkSession
import
org.apache.spark.sql.SparkSession
object
FullSync
extends
Sparking
{
object
FullSync
extends
Sparking
{
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
Logger
.
getRootLogger
.
setLevel
(
Level
.
OFF
)
/*IgniteClient.basicEnterpriseInfo.destroy()
Logger
.
getLogger
(
"org.apache.ignite"
).
setLevel
(
Level
.
OFF
)
IgniteClient.basicVehicleInfo.destroy()
IgniteClient.basicAlarmTypeInfo.destroy()*/
val
sparkSession
=
SparkSession
.
builder
().
config
(
conf
).
getOrCreate
()
val
sparkSession
=
SparkSession
.
builder
().
config
(
conf
).
getOrCreate
()
//基本企业信息表
//基本企业信息表
sparkSession
.
sqlContext
.
read
.
format
(
"jdbc"
).
options
(
Map
(
sparkSession
.
sqlContext
.
read
.
format
(
"jdbc"
).
options
(
Map
(
...
...
src/main/scala/com/hikcreate/data/sync/SyncBasic.scala
View file @
34f0acb4
...
@@ -6,7 +6,7 @@ import com.hikcreate.data.client.IgniteClient
...
@@ -6,7 +6,7 @@ import com.hikcreate.data.client.IgniteClient
import
com.hikcreate.data.common.
{
Logging
,
Sparking
}
import
com.hikcreate.data.common.
{
Logging
,
Sparking
}
import
com.hikcreate.data.constant.Const
import
com.hikcreate.data.constant.Const
import
com.hikcreate.data.util.
{
Tools
,
ZkManager
}
import
com.hikcreate.data.util.
{
Tools
,
ZkManager
}
import
com.hikcreate.ignite.domain.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
com.hikcreate.ignite.domain
1
.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
org.apache.spark.streaming.kafka010._
import
org.apache.spark.streaming.kafka010._
import
org.apache.spark.streaming.
{
Seconds
,
StreamingContext
}
import
org.apache.spark.streaming.
{
Seconds
,
StreamingContext
}
import
scala.collection.mutable.ArrayBuffer
import
scala.collection.mutable.ArrayBuffer
...
...
src/main/scala/com/hikcreate/data/sync/SyncIgnite.scala
View file @
34f0acb4
This diff is collapsed.
Click to expand it.
src/main/scala/com/hikcreate/data/util/Tools.scala
View file @
34f0acb4
...
@@ -6,11 +6,10 @@ import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}
...
@@ -6,11 +6,10 @@ import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}
import
com.hikcreate.data.client.IgniteClient
import
com.hikcreate.data.client.IgniteClient
import
com.hikcreate.data.common.Logging
import
com.hikcreate.data.common.Logging
import
com.hikcreate.data.constant.Const
import
com.hikcreate.data.constant.Const
import
com.hikcreate.ignite.domain.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
com.hikcreate.ignite.domain
1
.basic.
{
AlarmTypeInfo
,
EnterpriseInfo
,
VehicleInfo
}
import
org.apache.ignite.cache.query.SqlQuery
import
org.apache.ignite.cache.query.SqlQuery
import
org.joda.time.
{
DateTime
,
Duration
}
import
org.joda.time.
{
DateTime
,
Duration
}
import
scalaj.http.Http
import
scalaj.http.Http
import
scala.collection.mutable.ArrayBuffer
import
scala.collection.mutable.ArrayBuffer
object
Tools
extends
Logging
{
object
Tools
extends
Logging
{
...
@@ -42,7 +41,7 @@ object Tools extends Logging{
...
@@ -42,7 +41,7 @@ object Tools extends Logging{
.
header
(
"content-type"
,
"application/json"
)
.
header
(
"content-type"
,
"application/json"
)
//.timeout(connTimeoutMs = 1000,readTimeoutMs = 1000)
//.timeout(connTimeoutMs = 1000,readTimeoutMs = 1000)
.
asString
.
asString
val
endtime
=
DateTime
.
now
()
//
val endtime = DateTime.now()
//println("http请求时间:"+new Duration(starttime,endtime).getMillis)
//println("http请求时间:"+new Duration(starttime,endtime).getMillis)
val
body
=
JSON
.
parseObject
(
response
.
body
)
val
body
=
JSON
.
parseObject
(
response
.
body
)
val
item
=
body
.
getJSONObject
(
"result"
).
getJSONArray
(
"regeoItems"
).
getJSONObject
(
0
)
val
item
=
body
.
getJSONObject
(
"result"
).
getJSONArray
(
"regeoItems"
).
getJSONObject
(
0
)
...
@@ -67,7 +66,7 @@ object Tools extends Logging{
...
@@ -67,7 +66,7 @@ object Tools extends Logging{
def
getAddressAndLocationCodes
(
buffer
:
List
[(
Double
,
Double
)])
:
IndexedSeq
[(
String
,
String
)]
=
{
def
getAddressAndLocationCodes
(
buffer
:
List
[(
Double
,
Double
)])
:
IndexedSeq
[(
String
,
String
)]
=
{
val
json
=
new
JSONObject
()
val
json
=
new
JSONObject
()
val
arr
=
new
JSONArray
()
val
arr
=
new
JSONArray
()
buffer
.
foreach
{
x
=>
buffer
.
foreach
{
x
=>
val
lonAndLat
=
new
JSONObject
()
val
lonAndLat
=
new
JSONObject
()
lonAndLat
.
put
(
"longitude"
,
x
.
_1
)
lonAndLat
.
put
(
"longitude"
,
x
.
_1
)
lonAndLat
.
put
(
"latitude"
,
x
.
_2
)
lonAndLat
.
put
(
"latitude"
,
x
.
_2
)
...
@@ -88,12 +87,12 @@ object Tools extends Logging{
...
@@ -88,12 +87,12 @@ object Tools extends Logging{
}
}
}
}
def
getLocationCodes
(
buffer
:
List
[(
Double
,
Double
)])
:
IndexedSeq
[(
String
,
String
,
String
)]
=
{
def
getLocationCodes
(
buffer
:
List
[(
Double
,
Double
)])
:
IndexedSeq
[(
String
,
String
,
String
,
String
)]
=
{
getAddressAndLocationCodes
(
buffer
).
map
(
x
=>
x
.
_2
).
map
{
locationCode
=>
getAddressAndLocationCodes
(
buffer
).
map
{
locationCode
=>
val
provinceCode
=
locationCode
.
substring
(
0
,
2
)
val
provinceCode
=
locationCode
.
_2
.
substring
(
0
,
2
)
val
cityCode
=
locationCode
.
substring
(
2
,
4
)
val
cityCode
=
locationCode
.
_2
.
substring
(
2
,
4
)
val
areaCode
=
locationCode
.
substring
(
4
,
6
)
val
areaCode
=
locationCode
.
_2
.
substring
(
4
,
6
)
(
provinceCode
,
cityCode
,
areaCode
)
(
provinceCode
,
cityCode
,
areaCode
,
locationCode
.
_1
)
}
}
}
}
...
...
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