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
935cf26f
Commit
935cf26f
authored
Nov 04, 2019
by
杜发飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
0b820297
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
490 additions
and
295 deletions
+490
-295
pom.xml
+0
-6
src/main/java/com/hikcreate/ignite/domain/vehicles/DailyTravel.java
+0
-65
src/main/java/com/hikcreate/ignite/domain/vehicles/processor/DailyTravelUpdate.java
+0
-90
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/resources/ignite.xml
+2
-2
src/main/scala/com/hikcreate/data/client/IgniteClient.scala
+45
-37
src/main/scala/com/hikcreate/data/offline/FullSync.scala
+3
-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/AppListener.scala
+18
-0
src/main/scala/com/hikcreate/data/util/Tools.scala
+9
-11
No files found.
pom.xml
View file @
935cf26f
...
@@ -87,11 +87,6 @@
...
@@ -87,11 +87,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>
...
@@ -106,7 +101,6 @@
...
@@ -106,7 +101,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>
...
...
src/main/java/com/hikcreate/ignite/domain/vehicles/DailyTravel.java
deleted
100644 → 0
View file @
0b820297
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/vehicles/processor/DailyTravelUpdate.java
deleted
100644 → 0
View file @
0b820297
package
com
.
hikcreate
.
ignite
.
domain
.
vehicles
.
processor
;
import
org.apache.ignite.binary.BinaryObject
;
import
org.apache.ignite.binary.BinaryObjectBuilder
;
import
org.apache.ignite.cache.CacheEntryProcessor
;
import
org.joda.time.*
;
import
org.joda.time.format.DateTimeFormat
;
import
javax.cache.processor.EntryProcessorException
;
import
javax.cache.processor.MutableEntry
;
public
class
DailyTravelUpdate
implements
CacheEntryProcessor
<
BinaryObject
,
BinaryObject
,
Void
>
{
private
double
lat
;
private
double
lng
;
private
String
time
;
public
DailyTravelUpdate
(
double
lat
,
double
lng
,
String
time
){
this
.
lat
=
lat
;
this
.
lng
=
lng
;
this
.
time
=
time
;
}
@Override
public
Void
process
(
MutableEntry
<
BinaryObject
,
BinaryObject
>
mutableEntry
,
Object
...
objects
)
throws
EntryProcessorException
{
BinaryObject
value
=
mutableEntry
.
getValue
();
BinaryObjectBuilder
builder
=
value
.
toBuilder
();
LocalDate
today
=
LocalDate
.
now
();
//今日日期
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"
));
//事件日期
time
=
eventTime
.
toString
(
"yyyy-MM-dd HH:mm:ss"
);
LocalDate
eventDate
=
eventTime
.
toLocalDate
();
if
(
statisticalDate
.
isBefore
(
today
)){
//统计时间不是当前日,需要重置
builder
.
setField
(
"date"
,
today
.
toString
(
"yyyy-MM-dd"
));
builder
.
setField
(
"travelMileage"
,
0
D
);
builder
.
setField
(
"travelTime"
,
0L
);
if
(
eventDate
.
equals
(
today
)){
//代表这条数据是今天的
builder
.
setField
(
"lat"
,
lat
);
builder
.
setField
(
"lng"
,
lng
);
builder
.
setField
(
"time"
,
time
);
mutableEntry
.
setValue
(
builder
.
build
());
}
else
{
builder
.
setField
(
"lat"
,
null
);
builder
.
setField
(
"lng"
,
null
);
builder
.
setField
(
"time"
,
null
);
mutableEntry
.
setValue
(
builder
.
build
());
}
}
else
if
(
eventDate
.
equals
(
today
)){
if
(
value
.<
Double
>
field
(
"lat"
)
==
null
){
builder
.
setField
(
"lat"
,
lat
);
builder
.
setField
(
"lng"
,
lng
);
builder
.
setField
(
"time"
,
time
);
mutableEntry
.
setValue
(
builder
.
build
());
}
else
{
DateTime
lastTime
=
DateTime
.
parse
(
value
.<
String
>
field
(
"time"
),
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd HH:mm:ss"
));
if
(
lastTime
.
isBefore
(
eventTime
)){
Double
differDistance
=
getDistance
(
value
.<
Double
>
field
(
"lat"
),
value
.<
Double
>
field
(
"lng"
),
lat
,
lng
);
Interval
interval
=
new
Interval
(
lastTime
,
eventTime
);
Period
period
=
interval
.
toPeriod
(
PeriodType
.
millis
());
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
;
builder
.
setField
(
"travelTime"
,
travelTime
);
mutableEntry
.
setValue
(
builder
.
build
());
}
}
}
return
null
;
}
private
Double
rad
(
Double
d
){
return
d
*
Math
.
PI
/
180.0
;
}
private
Double
getDistance
(
Double
lat1
,
Double
lng1
,
Double
lat2
,
Double
lng2
){
if
(
lat1
!=
null
&&
lng1
!=
null
&&
lat2
!=
null
&&
lng2
!=
null
){
Double
EARTH_RADIUS
=
6371.830
D
;
Double
radLat1
=
rad
(
lat1
);
Double
radLat2
=
rad
(
lat2
);
Double
radLng1
=
rad
(
lng1
);
Double
radLng2
=
rad
(
lng2
);
Double
s
=
Math
.
acos
(
Math
.
cos
(
radLat1
)
*
Math
.
cos
(
radLat2
)
*
Math
.
cos
(
radLng1
-
radLng2
)
+
Math
.
sin
(
radLat1
)
*
Math
.
sin
(
radLat2
))
*
EARTH_RADIUS
;
return
Math
.
round
(
s
*
1000
D
)
/
1000
D
;
}
return
0
D
;
}
}
src/main/java/com/hikcreate/ignite/domain/ErrorMsg.java
→
src/main/java/com/hikcreate/ignite/domain
1
/ErrorMsg.java
View file @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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 @
935cf26f
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/resources/ignite.xml
View file @
935cf26f
...
@@ -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/IgniteClient.scala
View file @
935cf26f
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/offline/FullSync.scala
View file @
935cf26f
...
@@ -3,15 +3,14 @@ package com.hikcreate.data.offline
...
@@ -3,15 +3,14 @@ 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
import
scala.collection.JavaConverters._
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.ignite.cacheNames().asScala.foreach(x=>IgniteClient.ignite.destroyCache(x))
Logger
.
getLogger
(
"org.apache.ignite"
).
setLevel
(
Level
.
OFF
)
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 @
935cf26f
...
@@ -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 @
935cf26f
This diff is collapsed.
Click to expand it.
src/main/scala/com/hikcreate/data/util/AppListener.scala
0 → 100644
View file @
935cf26f
package
com.hikcreate.data.util
import
com.hikcreate.data.common.Logging
import
org.apache.spark.streaming.StreamingContext
import
org.apache.spark.streaming.scheduler.
{
StreamingListener
,
StreamingListenerBatchStarted
}
class
AppListener
(
ssc
:
StreamingContext
)
extends
StreamingListener
with
Logging
{
val
DELAY_MAX
=
20
override
def
onBatchStarted
(
batchStarted
:
StreamingListenerBatchStarted
)
:
Unit
=
{
val
Delay_ts
=
batchStarted
.
batchInfo
.
schedulingDelay
.
get
/*if(Delay_ts > DELAY_MAX ){
sendEmail(...)
}*/
}
}
src/main/scala/com/hikcreate/data/util/Tools.scala
View file @
935cf26f
...
@@ -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
)
...
@@ -79,7 +78,6 @@ object Tools extends Logging{
...
@@ -79,7 +78,6 @@ object Tools extends Logging{
//val endTime = DateTime.now()
//val endTime = DateTime.now()
//println("http请求时间:"+new Duration(startTime,endTime).getMillis/1000)
//println("http请求时间:"+new Duration(startTime,endTime).getMillis/1000)
val
body
=
JSON
.
parseObject
(
response
.
body
)
val
body
=
JSON
.
parseObject
(
response
.
body
)
println
(
response
.
body
)
val
items
=
body
.
getJSONObject
(
"result"
).
getJSONArray
(
"regeoItems"
)
val
items
=
body
.
getJSONObject
(
"result"
).
getJSONArray
(
"regeoItems"
)
(
0
until
items
.
size
()).
map
{
index
=>
(
0
until
items
.
size
()).
map
{
index
=>
val
item
=
items
.
getJSONObject
(
index
)
val
item
=
items
.
getJSONObject
(
index
)
...
@@ -89,12 +87,12 @@ object Tools extends Logging{
...
@@ -89,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