Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
a488da71
提交
a488da71
authored
4月 26, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v14.4_vehicle_warn_20240425' into dev
上级
01b24c84
6e4695cd
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
374 行增加
和
0 行删除
+374
-0
TruckTraceSyncMqParam.java
...clx/performance/param/mq/trace/TruckTraceSyncMqParam.java
+23
-0
RabbitKeyTraceConstants.java
...com/clx/performance/constant/RabbitKeyTraceConstants.java
+42
-0
DriverTraceESPlusMapper.java
...lx/performance/esplus/mapper/DriverTraceESPlusMapper.java
+8
-0
TruckTraceESPlusMapper.java
...clx/performance/esplus/mapper/TruckTraceESPlusMapper.java
+8
-0
DriverTraceESPlus.java
...a/com/clx/performance/esplus/model/DriverTraceESPlus.java
+45
-0
TruckTraceESPlus.java
...va/com/clx/performance/esplus/model/TruckTraceESPlus.java
+29
-0
TruckTraceJob.java
.../src/main/java/com/clx/performance/job/TruckTraceJob.java
+27
-0
TraceDelayListener.java
...om/clx/performance/listener/trace/TraceDelayListener.java
+43
-0
TruckTraceSyncListener.java
...lx/performance/listener/trace/TruckTraceSyncListener.java
+43
-0
TruckTraceMqHandlerServiceImpl.java
...ce/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
+53
-0
TruckTraceMqServiceImpl.java
...rformance/service/impl/trace/TruckTraceMqServiceImpl.java
+35
-0
TruckTraceMqHandlerService.java
...performance/service/trace/TruckTraceMqHandlerService.java
+10
-0
TruckTraceMqService.java
...om/clx/performance/service/trace/TruckTraceMqService.java
+8
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/mq/trace/TruckTraceSyncMqParam.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
param
.
mq
.
trace
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description:
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
TruckTraceSyncMqParam
{
private
String
truckNo
;
//车牌号
private
String
beginTime
;
//开始时间
private
String
endTime
;
//结束时间
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyTraceConstants.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
constant
;
/**
* @Author: aiqingguo
* @Description: 轨迹-mq
* @Date: 2023-10-19 15:10:10
* @Version: 1.0
*/
public
class
RabbitKeyTraceConstants
{
private
static
final
String
PREFIX
=
"clx-performance.trace."
;
private
static
final
String
EXCHANGE
=
".exchange"
;
private
static
final
String
QUEUE
=
".queue"
;
private
static
final
String
QUEUE_ROUTING_KEY
=
".routing.key"
;
private
static
final
String
DELAY_QUEUE
=
".delay.queue"
;
private
static
final
String
DELAY_ROUTING_KEY
=
".delay.routing.key"
;
private
static
final
String
DEAD_QUEUE
=
".dead.queue"
;
private
static
final
String
DEAD_ROUTING_KEY
=
".dead.routing.key"
;
private
RabbitKeyTraceConstants
()
{
}
/**
* 缺省交换机
*/
public
static
final
String
DEFAULT_EXCHANGE
=
PREFIX
+
"default"
+
EXCHANGE
;
/**
* 缺省延迟队列
*/
public
static
final
String
DEFAULT_DELAY_QUEUE
=
PREFIX
+
"default"
+
DELAY_QUEUE
;
public
static
final
String
DEFAULT_DELAY_ROUTING_KEY
=
PREFIX
+
"default"
+
DELAY_ROUTING_KEY
;
public
static
final
String
DEFAULT_DEAD_QUEUE
=
PREFIX
+
"default"
+
DEAD_QUEUE
;
public
static
final
String
DEFAULT_DEAD_ROUTING_KEY
=
PREFIX
+
"default"
+
DEAD_ROUTING_KEY
;
/**
* 车辆轨迹同步
*/
public
static
final
String
TRUCK_TRACE_SYNC_QUEUE
=
PREFIX
+
"truck.trace.update"
+
QUEUE
;
public
static
final
String
TRUCK_TRACE_SYNC_ROUTING_KEY
=
PREFIX
+
"truck.trace.update"
+
QUEUE_ROUTING_KEY
;
}
performance-web/src/main/java/com/clx/performance/esplus/mapper/DriverTraceESPlusMapper.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
esplus
.
mapper
;
import
com.clx.performance.esplus.model.DriverTraceESPlus
;
import
org.dromara.easyes.core.kernel.BaseEsMapper
;
public
interface
DriverTraceESPlusMapper
extends
BaseEsMapper
<
DriverTraceESPlus
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/mapper/TruckTraceESPlusMapper.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
esplus
.
mapper
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
org.dromara.easyes.core.kernel.BaseEsMapper
;
public
interface
TruckTraceESPlusMapper
extends
BaseEsMapper
<
TruckTraceESPlus
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/model/DriverTraceESPlus.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
esplus
.
model
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
lombok.experimental.Accessors
;
import
org.dromara.easyes.annotation.IndexField
;
import
org.dromara.easyes.annotation.IndexId
;
import
org.dromara.easyes.annotation.IndexName
;
import
org.dromara.easyes.annotation.rely.FieldType
;
import
org.dromara.easyes.annotation.rely.IdType
;
import
org.elasticsearch.common.geo.GeoPoint
;
import
org.springframework.data.annotation.Id
;
import
java.math.BigDecimal
;
@Data
@IndexName
(
"clx_trace_driver_trace_index1"
)
public
class
DriverTraceESPlus
{
@IndexId
(
type
=
IdType
.
CUSTOMIZE
)
private
String
id
;
@ApiModelProperty
(
"用户编号"
)
private
Long
userNo
;
@ApiModelProperty
(
"1-正常上传,2-离线上传"
)
private
Integer
dataType
;
@ApiModelProperty
(
"位置"
)
private
GeoPoint
location
;
@ApiModelProperty
(
"定位时间"
)
private
String
positionTime
;
@ApiModelProperty
(
"添加时间"
)
private
String
createTime
;
@ApiModelProperty
(
"修改时间"
)
private
String
modifiedTime
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/model/TruckTraceESPlus.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
esplus
.
model
;
import
lombok.Data
;
import
org.dromara.easyes.annotation.IndexId
;
import
org.dromara.easyes.annotation.IndexName
;
import
org.dromara.easyes.annotation.Settings
;
import
org.dromara.easyes.annotation.rely.IdType
;
import
org.elasticsearch.common.geo.GeoPoint
;
import
java.math.BigDecimal
;
@Data
@IndexName
(
value
=
"quality_task_info"
,
keepGlobalPrefix
=
true
)
public
class
TruckTraceESPlus
{
@IndexId
(
type
=
IdType
.
CUSTOMIZE
)
private
String
id
;
private
String
truckNo
;
//车辆编号
private
BigDecimal
angle
;
//角度
private
BigDecimal
speed
;
//速度
private
BigDecimal
mileage
;
//里程
private
BigDecimal
height
;
//高度
private
GeoPoint
location
;
//位置
private
String
gpsTime
;
//时间
private
String
createTime
;
private
String
modifiedTime
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/job/TruckTraceJob.java
浏览文件 @
a488da71
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.job;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.service.trace.TruckTraceMqService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
com.clx.user.feign.UserClxFeign
;
...
...
@@ -34,6 +35,9 @@ public class TruckTraceJob {
@Autowired
RedisTemplate
redisTemplate
;
@Autowired
private
TruckTraceMqService
truckTraceMqService
;
/**
* 驾驶证过期
...
...
@@ -99,4 +103,27 @@ public class TruckTraceJob {
}
/**
* 车辆轨迹同步
*/
@XxlJob
(
"truckTraceSync"
)
public
void
truckTraceSync
()
{
try
{
List
<
String
>
truckNoList
=
new
ArrayList
<>();
log
.
info
(
"车辆轨迹同步, size:{}"
,
truckNoList
.
size
());
for
(
String
truckNo
:
truckNoList
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
// 发送mq (同步车辆轨迹)
truckTraceMqService
.
truckTracSync
(
truckNo
,
LocalDateTimeUtils
.
formatTime
(
now
.
minusSeconds
(
600
)),
LocalDateTimeUtils
.
formatTime
(
now
));
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"车辆轨迹同步失败,异常原因:{}"
,
e
);
JobLog
.
error
(
"车辆轨迹同步失败,异常原因====================="
,
e
);
}
}
}
performance-web/src/main/java/com/clx/performance/listener/trace/TraceDelayListener.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
listener
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 轨迹 mq
* @Date: 2023-10-20 10:30:49
* @Version: 1.0
*/
@Slf4j
@Component
public
class
TraceDelayListener
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeyTraceConstants
.
DEFAULT_DEAD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"轨迹-延迟, message:{}"
,
message
);
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
MqDelay
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"轨迹-延迟 失败"
,
e
);
}
}
void
process
(
MqDelay
mq
){
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
mq
.
getData
()).
getBytes
()).
build
();
rabbitTemplate
.
send
(
mq
.
getExchange
(),
mq
.
getRouterKey
(),
message
);
}
}
performance-web/src/main/java/com/clx/performance/listener/trace/TruckTraceSyncListener.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
listener
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: mq
* @Date: 2023-10-20 16:34:40
* @Version: 1.0
*/
@Slf4j
@Component
public
class
TruckTraceSyncListener
{
@Autowired
private
TruckTraceMqHandlerService
truckTraceMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"轨迹, 车辆轨迹同步, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
TruckTraceSyncMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"轨迹, 车辆轨迹同步失败"
,
e
);
}
}
private
void
process
(
TruckTraceSyncMqParam
mq
){
truckTraceMqHandlerService
.
truckTracSync
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.esplus.mapper.DriverTraceESPlusMapper
;
import
com.clx.performance.esplus.mapper.TruckTraceESPlusMapper
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.elasticsearch.common.geo.GeoPoint
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
@Service
public
class
TruckTraceMqHandlerServiceImpl
implements
TruckTraceMqHandlerService
{
@Autowired
private
ZjxlGpsService
zjxlGpsService
;
@Autowired
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
@Override
public
void
truckTracSync
(
TruckTraceSyncMqParam
mq
)
{
List
<
TruckTraceDTO
>
list
=
zjxlGpsService
.
getTruckTrace
(
mq
.
getTruckNo
(),
mq
.
getBeginTime
(),
mq
.
getEndTime
());
if
(
list
.
isEmpty
())
{
return
;}
List
<
TruckTraceESPlus
>
esList
=
new
ArrayList
<>();
for
(
TruckTraceDTO
item
:
list
)
{
TruckTraceESPlus
es
=
new
TruckTraceESPlus
();
es
.
setTruckNo
(
item
.
getTruckNo
());
es
.
setAngle
(
item
.
getAngle
());
es
.
setHeight
(
item
.
getHeight
());
es
.
setLocation
(
new
GeoPoint
(
item
.
getLocation
()[
0
].
doubleValue
(),
item
.
getLocation
()[
1
].
doubleValue
()));
es
.
setGpsTime
(
item
.
getGpsTime
());
es
.
setMileage
(
item
.
getMileage
());
es
.
setSpeed
(
item
.
getSpeed
());
esList
.
add
(
es
);
}
// 保存
truckTraceESPlusMapper
.
insertBatch
(
esList
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqServiceImpl.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
TruckTraceMqServiceImpl
implements
TruckTraceMqService
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@Override
public
void
truckTracSync
(
String
truckNo
,
String
beginTime
,
String
endTime
)
{
TruckTraceSyncMqParam
mq
=
new
TruckTraceSyncMqParam
();
mq
.
setTruckNo
(
truckNo
);
mq
.
setBeginTime
(
beginTime
);
mq
.
setEndTime
(
endTime
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyTraceConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceMqHandlerService.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
service
.
trace
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
public
interface
TruckTraceMqHandlerService
{
void
truckTracSync
(
TruckTraceSyncMqParam
mq
);
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceMqService.java
0 → 100644
浏览文件 @
a488da71
package
com
.
clx
.
performance
.
service
.
trace
;
public
interface
TruckTraceMqService
{
void
truckTracSync
(
String
truckNo
,
String
beginTime
,
String
endTime
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论