Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
48c5487a
Commit
48c5487a
authored
Feb 21, 2024
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.车辆超速10分钟记录五次后产生预警数据。
2.车辆超速列表部分分页数据为空问题处理。 3.车辆超速预警数据仅保留半个月数据。
parent
78ad3edd
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
21 deletions
+52
-21
CarSpeedWarningRecord.java
...join/equipmanage/common/entity/CarSpeedWarningRecord.java
+6
-0
CarServiceImpl.java
.../com/yeejoin/equipmanage/service/impl/CarServiceImpl.java
+7
-10
JxiopCarIotListerServiceImpl.java
...quipmanage/service/impl/JxiopCarIotListerServiceImpl.java
+27
-11
WlCarMileageServiceImpl.java
...oin/equipmanage/service/impl/WlCarMileageServiceImpl.java
+12
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/CarSpeedWarningRecord.java
View file @
48c5487a
...
...
@@ -53,4 +53,10 @@ public class CarSpeedWarningRecord extends BaseEntity {
@ApiModelProperty
(
value
=
"联系电话"
)
@TableField
(
"ownership"
)
private
String
ownership
;
@ApiModelProperty
(
value
=
"超速时间到分钟"
)
@TableField
(
"waring_date_minute"
)
private
String
waringDateMinute
;
@ApiModelProperty
(
value
=
"超速次数"
)
@TableField
(
"over_speed_count"
)
private
Integer
overSpeedCount
;
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/CarServiceImpl.java
View file @
48c5487a
...
...
@@ -1780,27 +1780,24 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
colModels
.
add
(
new
ColModel
(
"bizOrgName"
,
"所属单位"
));
colModels
.
add
(
new
ColModel
(
"waringDate"
,
"超速时间"
));
colModels
.
add
(
new
ColModel
(
"overSpeed"
,
"超速值(Km/h)"
));
Date
date
=
new
Date
();
String
endTime
=
DateUtil
.
format
(
date
,
DatePattern
.
NORM_DATETIME_FORMAT
);
date
=
DateUtil
.
offsetDay
(
date
,
-
5
);
String
startTime
=
DateUtil
.
format
(
date
,
DatePattern
.
NORM_DATETIME_FORMAT
);
QueryWrapper
queryWrapper
=
new
QueryWrapper
<
CarSpeedWarningRecord
>();
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
queryWrapper
.
like
(
"biz_org_name"
,
keyWord
);
}
queryWrapper
.
orderByDesc
(
"over_speed"
);
queryWrapper
.
last
(
"limit "
+
(
current
-
1
)
*
pageSize
+
","
+
current
*
pageSize
);
queryWrapper
.
ge
(
"over_speed_count"
,
5
);
queryWrapper
.
orderByDesc
(
"waring_date"
);
// 过滤车牌
List
<
Car
>
clist
=
this
.
list
(
new
LambdaQueryWrapper
<
Car
>().
likeRight
(
Car:
:
getBizOrgCode
,
orgCode
));
List
<
String
>
carnums
=
clist
.
stream
().
map
(
i
->
i
.
getCarNum
()).
collect
(
Collectors
.
toList
());
if
(
carnums
.
size
()
>
0
)
{
queryWrapper
.
in
(
"car_num"
,
carnums
);
}
Integer
count
=
wlCarSpeedWaringRecordMapper
.
selectCount
(
queryWrapper
);
queryWrapper
.
last
(
"limit "
+
(
current
-
1
)
*
pageSize
+
","
+
pageSize
);
List
<
CarSpeedWarningRecord
>
list
=
wlCarSpeedWaringRecordMapper
.
selectList
(
queryWrapper
);
DataGridMock
dataGridMock
=
new
DataGridMock
(
current
,
wlCarSpeedWaringRecordMapper
.
getCountOfRecords
(),
true
,
current
,
list
);
Integer
totalPage
=
(
count
+
pageSize
-
1
)/
pageSize
;
DataGridMock
dataGridMock
=
new
DataGridMock
(
current
,
count
,
true
,
totalPage
,
list
);
basicTableDataDto
.
setDataGridMock
(
dataGridMock
);
basicTableDataDto
.
setColModel
(
colModels
);
return
basicTableDataDto
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/JxiopCarIotListerServiceImpl.java
View file @
48c5487a
...
...
@@ -64,8 +64,8 @@ public class JxiopCarIotListerServiceImpl {
private
RedisTemplate
redisTemplate
;
// @Async("equipAsyncExecutor")
public
void
processMessage
(
String
topic
,
MqttMessage
message
){
// @Async("equipAsyncExecutor")
public
void
processMessage
(
String
topic
,
MqttMessage
message
)
{
String
measurement
=
topic
.
split
(
"/"
)[
0
];
String
deviceName
=
topic
.
split
(
"/"
)[
1
];
//根据topic 组装iotCode
...
...
@@ -100,11 +100,11 @@ public class JxiopCarIotListerServiceImpl {
}
this
.
updateCarLocation
(
jsonObject
,
iotCode
);
String
coordinate
=
jsonObject
.
getString
(
"FireCar_Longitude"
)
+
","
+
jsonObject
.
getString
(
"FireCar_Latitude"
);
if
(
ObjectUtils
.
isEmpty
(
redisTemplate
.
opsForValue
().
get
(
iotCode
)))
{
if
(
ObjectUtils
.
isEmpty
(
redisTemplate
.
opsForValue
().
get
(
iotCode
)))
{
redisTemplate
.
opsForValue
().
set
(
iotCode
,
coordinate
,
10
,
TimeUnit
.
MINUTES
);
logger
.
info
(
"插入数据到::redis"
);
}
else
{
if
(!
String
.
valueOf
(
redisTemplate
.
opsForValue
().
get
(
iotCode
)).
equals
(
coordinate
))
{
}
else
{
if
(!
String
.
valueOf
(
redisTemplate
.
opsForValue
().
get
(
iotCode
)).
equals
(
coordinate
))
{
redisTemplate
.
opsForValue
().
set
(
iotCode
,
coordinate
,
10
,
TimeUnit
.
MINUTES
);
logger
.
info
(
"插入数据到::redis"
);
}
...
...
@@ -203,10 +203,10 @@ public class JxiopCarIotListerServiceImpl {
logger
.
info
(
"----------------更新车辆电池电量信息成功----------------"
);
carMapper
.
updateById
(
car
);
logger
.
info
(
"车牌号::"
+
car
.
getCarNum
()
+
"最大车速:"
+
maxSpeed
+
"当前车速::"
+
speed
);
if
((
speed
-
maxSpeed
)
>
0
)
{
List
<
CarSpeedWarningRecord
>
list
=
wlCarSpeedWaringRecordMapper
.
selectList
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
eq
(
"car_num"
,
car
.
getCarNum
()).
between
(
"waring_date"
,
DateUtil
.
offsetMinute
(
new
Date
(),
10
),
new
Date
()));
if
(!(
list
.
size
()
>
0
))
{
if
((
speed
-
maxSpeed
)
>
0
)
{
List
<
CarSpeedWarningRecord
>
list
=
wlCarSpeedWaringRecordMapper
.
selectList
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
eq
(
"car_num"
,
car
.
getCarNum
()).
between
(
"waring_date"
,
DateUtil
.
offsetMinute
(
new
Date
(),
-
10
),
new
Date
()));
if
(!(
list
.
size
()
>
0
))
{
CarSpeedWarningRecord
carSpeedWarningRecord
=
new
CarSpeedWarningRecord
();
carSpeedWarningRecord
.
setCarNum
(
car
.
getCarNum
());
carSpeedWarningRecord
.
setDriver
(
car
.
getDriver
());
...
...
@@ -215,13 +215,29 @@ public class JxiopCarIotListerServiceImpl {
carSpeedWarningRecord
.
setOwnership
(
car
.
getOwnership
());
carSpeedWarningRecord
.
setBizOrgName
(
car
.
getBizOrgName
());
carSpeedWarningRecord
.
setWaringDate
(
DateUtil
.
parse
(
waringDate
,
DatePattern
.
NORM_DATETIME_PATTERN
));
wlCarSpeedWaringRecordMapper
.
insert
(
carSpeedWarningRecord
);
carSpeedWarningRecord
.
setWaringDateMinute
(
DateUtil
.
format
(
carSpeedWarningRecord
.
getWaringDate
(),
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
));
carSpeedWarningRecord
.
setOverSpeedCount
(
1
);
if
((
speed
-
maxSpeed
)<
maxSpeed
){
wlCarSpeedWaringRecordMapper
.
insert
(
carSpeedWarningRecord
);
}
logger
.
info
(
"-----------触发车辆超速告警成功--------"
);
}
else
{
CarSpeedWarningRecord
carSpeedWarningRecord
=
list
.
get
(
0
);
if
(!
carSpeedWarningRecord
.
getWaringDateMinute
().
equals
(
DateUtil
.
parse
(
waringDate
,
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
)))
{
carSpeedWarningRecord
.
setOverSpeedCount
(
carSpeedWarningRecord
.
getOverSpeedCount
()
+
1
);
carSpeedWarningRecord
.
setWaringDate
(
DateUtil
.
parse
(
waringDate
,
DatePattern
.
NORM_DATETIME_PATTERN
));
carSpeedWarningRecord
.
setWaringDateMinute
(
DateUtil
.
format
(
carSpeedWarningRecord
.
getWaringDate
(),
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
));
if
((
speed
-
maxSpeed
)<
maxSpeed
){
carSpeedWarningRecord
.
setOverSpeed
(
speed
-
maxSpeed
);
}
wlCarSpeedWaringRecordMapper
.
updateById
(
carSpeedWarningRecord
);
}
logger
.
info
(
"-----------更新车辆超速告警成功--------"
);
}
}
logger
.
info
(
"-----------推送车辆位置消息到到地图成功--------"
);
try
{
emqkeeper
.
getMqttClient
().
publish
(
"car/location"
,
sendArr
.
toJSONString
().
getBytes
(),
0
,
false
);
emqkeeper
.
getMqttClient
().
publish
(
"car/location"
,
sendArr
.
toJSONString
().
getBytes
(),
0
,
false
);
}
catch
(
MqttException
e
)
{
e
.
printStackTrace
();
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/WlCarMileageServiceImpl.java
View file @
48c5487a
...
...
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yeejoin.equipmanage.common.entity.Car
;
import
com.yeejoin.equipmanage.common.entity.CarSpeedWarningRecord
;
import
com.yeejoin.equipmanage.common.entity.WlCarMileage
;
import
com.yeejoin.equipmanage.common.utils.CoordinateUtil
;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
...
...
@@ -19,6 +20,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign;
import
com.yeejoin.equipmanage.listener.CarIotNewListener
;
import
com.yeejoin.equipmanage.mapper.CarMapper
;
import
com.yeejoin.equipmanage.mapper.WlCarMileageMapper
;
import
com.yeejoin.equipmanage.mapper.WlCarSpeedWaringRecordMapper
;
import
com.yeejoin.equipmanage.service.ICarService
;
import
com.yeejoin.equipmanage.service.IWlCarMileageService
;
import
org.apache.commons.lang3.ObjectUtils
;
...
...
@@ -76,6 +78,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
@Autowired
WlCarMileageMapper
wlCarMileageMapper
;
@Autowired
WlCarSpeedWaringRecordMapper
wlCarSpeedWaringRecordMapper
;
@Autowired
CarMapper
carMapper
;
@Value
(
"${car.max.speed:100}"
)
private
Integer
CAR_MAX_SPEED
;
...
...
@@ -393,6 +397,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
}
});
log
.
info
(
"-------------------跨天轨迹切分任务执行完成.............."
);
//删除过期的告警数据
Date
endTime
=
DateUtil
.
offsetDay
(
new
Date
(),-
15
);
String
endTimeStr
=
DateUtil
.
format
(
endTime
,
"yyyy-MM-dd HH:mm:00"
);
wlCarSpeedWaringRecordMapper
.
delete
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
le
(
"waring_date"
,
endTimeStr
));
}
@Scheduled
(
cron
=
"${mileage.splitmileage.cron}"
)
...
...
@@ -472,6 +480,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
});
log
.
info
(
"轨迹切分任务执行完成.............."
);
//删除无效的告警数据
Date
endTime
=
DateUtil
.
offsetMinute
(
new
Date
(),-
10
);
String
endTimeStr
=
DateUtil
.
format
(
endTime
,
"yyyy-MM-dd HH:mm:00"
);
wlCarSpeedWaringRecordMapper
.
delete
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
le
(
"waring_date"
,
endTimeStr
).
lt
(
"over_speed_count"
,
5
));
}
@Override
...
...
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