Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
84ffaf2b
提交
84ffaf2b
authored
5月 07, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
运单预警
上级
ba9c6886
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
412 行增加
和
8 行删除
+412
-8
VehicleWarnTruckWarnNoticeMqParam.java
...ram/mq/vehiclewarn/VehicleWarnTruckWarnNoticeMqParam.java
+22
-0
RabbitKeyVehicleWarnConstants.java
...x/performance/constant/RabbitKeyVehicleWarnConstants.java
+6
-0
VehicleWarnChildAddListener.java
...nce/listener/vehiclewarn/VehicleWarnChildAddListener.java
+43
-0
VehicleWarnDelayListener.java
...rmance/listener/vehiclewarn/VehicleWarnDelayListener.java
+43
-0
VehicleWarnTruckWarnListener.java
...ce/listener/vehiclewarn/VehicleWarnTruckWarnListener.java
+43
-0
VehicleWarnChild.java
...m/clx/performance/model/vehiclewarn/VehicleWarnChild.java
+3
-3
TruckTraceMqHandlerServiceImpl.java
...ce/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
+22
-1
TruckTraceServiceImpl.java
...performance/service/impl/trace/TruckTraceServiceImpl.java
+32
-0
VehicleWarnInfoServiceImpl.java
.../service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
+3
-2
VehicleWarnMqHandlerServiceImpl.java
...ice/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
+143
-0
VehicleWarnMqServiceImpl.java
...ce/service/impl/vehiclewarn/VehicleWarnMqServiceImpl.java
+12
-0
VehicleWarnSendAddressWarnServiceImpl.java
...pl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
+0
-0
TruckTraceService.java
.../com/clx/performance/service/trace/TruckTraceService.java
+3
-0
VehicleWarnMqHandlerService.java
...ance/service/vehiclewarn/VehicleWarnMqHandlerService.java
+13
-0
VehicleWarnMqService.java
...performance/service/vehiclewarn/VehicleWarnMqService.java
+2
-0
VehicleWarnSendAddressWarnService.java
...ervice/vehiclewarn/VehicleWarnSendAddressWarnService.java
+11
-0
GdService.java
...src/main/java/com/clx/performance/utils/gd/GdService.java
+11
-2
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/mq/vehiclewarn/VehicleWarnTruckWarnNoticeMqParam.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
param
.
mq
.
vehiclewarn
;
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
VehicleWarnTruckWarnNoticeMqParam
{
private
Integer
infoId
;
//id
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyVehicleWarnConstants.java
浏览文件 @
84ffaf2b
...
@@ -45,4 +45,10 @@ public class RabbitKeyVehicleWarnConstants {
...
@@ -45,4 +45,10 @@ public class RabbitKeyVehicleWarnConstants {
public
static
final
String
TRUCK_WARN_QUEUE
=
PREFIX
+
"truck.warn"
+
QUEUE
;
public
static
final
String
TRUCK_WARN_QUEUE
=
PREFIX
+
"truck.warn"
+
QUEUE
;
public
static
final
String
TRUCK_WARN_ROUTING_KEY
=
PREFIX
+
"truck.warn"
+
QUEUE_ROUTING_KEY
;
public
static
final
String
TRUCK_WARN_ROUTING_KEY
=
PREFIX
+
"truck.warn"
+
QUEUE_ROUTING_KEY
;
/**
* 车辆预警通知
*/
public
static
final
String
TRUCK_WARN_NOTICE_QUEUE
=
PREFIX
+
"truckWarn.notice"
+
QUEUE
;
public
static
final
String
TRUCK_WARN_NOTICE_ROUTING_KEY
=
PREFIX
+
"truckWarn.notice"
+
QUEUE_ROUTING_KEY
;
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnChildAddListener.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
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
VehicleWarnChildAddListener
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyVehicleWarnConstants
.
ORDER_CHILD_ADD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-运单新增, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
VehicleWarnChildAddMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-运单新增 失败"
,
e
);
}
}
private
void
process
(
VehicleWarnChildAddMqParam
mq
){
vehicleWarnMqHandlerService
.
orderChildAdd
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnDelayListener.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
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.RabbitKeySettlementConstants
;
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 16:14:30
* @Version: 1.0
*/
@Slf4j
@Component
public
class
VehicleWarnDelayListener
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeySettlementConstants
.
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/vehiclewarn/VehicleWarnTruckWarnListener.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
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
VehicleWarnTruckWarnListener
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-运单预警, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
VehicleWarnTruckWarnMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-运单预警 失败"
,
e
);
}
}
private
void
process
(
VehicleWarnTruckWarnMqParam
mq
){
vehicleWarnMqHandlerService
.
truckWarn
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnChild.java
浏览文件 @
84ffaf2b
...
@@ -35,9 +35,9 @@ public class VehicleWarnChild implements HasKey<Integer> {
...
@@ -35,9 +35,9 @@ public class VehicleWarnChild implements HasKey<Integer> {
private
BigDecimal
sendLatitude
;
//发货地址纬度
private
BigDecimal
sendLatitude
;
//发货地址纬度
private
BigDecimal
receiveLongitude
;
//收货地址经度
private
BigDecimal
receiveLongitude
;
//收货地址经度
private
BigDecimal
receiveLatitude
;
//收货地址纬度
private
BigDecimal
receiveLatitude
;
//收货地址纬度
private
LocalDateTime
expectSendTime
;
//预计到达货源地时间
private
Integer
arriveSendExpectTime
;
//预计到达货源地时间 (min)
private
LocalDateTime
expectReceiveTime
;
//预计到达目的地时间
private
Integer
arriveReceiveExpectTime
;
//预计到达目的地时间 (min)
private
LocalDateTime
takeTime
;
//接单时间
private
LocalDateTime
traceTime
;
//轨迹更新时间
private
LocalDateTime
traceTime
;
//轨迹更新时间
private
Integer
traceStatus
;
//轨迹更新状态:0禁止 1启用
private
Integer
traceStatus
;
//轨迹更新状态:0禁止 1启用
private
Integer
wanStatus
;
//预警更新状态:0禁用 1启用
private
Integer
wanStatus
;
//预警更新状态:0禁用 1启用
...
...
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum
;
import
com.clx.performance.esplus.mapper.TruckTraceESPlusMapper
;
import
com.clx.performance.esplus.mapper.TruckTraceESPlusMapper
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.param.temp.TruckTraceAddParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -22,12 +28,25 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
...
@@ -22,12 +28,25 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
@Autowired
@Autowired
private
ZjxlGpsService
zjxlGpsService
;
private
ZjxlGpsService
zjxlGpsService
;
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
@Autowired
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
truckTracSync
(
TruckTraceSyncMqParam
mq
)
{
public
void
truckTracSync
(
TruckTraceSyncMqParam
mq
)
{
VehicleWarnChild
vehicleWarnChild
=
vehicleWarnChildDao
.
findByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
if
(
orderChild
.
getFinishTime
()
!=
null
)
{
vehicleWarnChild
.
setTraceStatus
(
VehicleWarnChildEnum
.
TraceStatus
.
DISABLE
.
getCode
());
}
vehicleWarnChild
.
setTraceTime
(
LocalDateTimeUtils
.
parseTime
(
mq
.
getEndTime
()));
List
<
TruckTraceDTO
>
list
=
zjxlGpsService
.
getTruckTrace
(
mq
.
getTruckNo
(),
mq
.
getBeginTime
(),
mq
.
getEndTime
());
List
<
TruckTraceDTO
>
list
=
zjxlGpsService
.
getTruckTrace
(
mq
.
getTruckNo
(),
mq
.
getBeginTime
(),
mq
.
getEndTime
());
if
(
list
.
isEmpty
())
{
return
;}
if
(
list
.
isEmpty
())
{
return
;}
...
@@ -49,6 +68,8 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
...
@@ -49,6 +68,8 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
// 保存
// 保存
truckTraceESPlusMapper
.
insertBatch
(
esList
);
truckTraceESPlusMapper
.
insertBatch
(
esList
);
// 更新同步时间
vehicleWarnChildDao
.
updateTraceTime
(
vehicleWarnChild
);
}
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
浏览文件 @
84ffaf2b
...
@@ -17,6 +17,8 @@ import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
...
@@ -17,6 +17,8 @@ import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -105,4 +107,34 @@ public class TruckTraceServiceImpl implements TruckTraceService {
...
@@ -105,4 +107,34 @@ public class TruckTraceServiceImpl implements TruckTraceService {
driverTraceESPlusMapper
.
insertBatch
(
list
);
driverTraceESPlusMapper
.
insertBatch
(
list
);
}
}
@Override
public
BigDecimal
[]
getLastPosition
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusHours
(
1
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
.
le
(
TruckTraceESPlus:
:
getGpsTime
,
endTime
)
.
orderByDesc
(
"gpsTime"
)
.
limit
(
1
)
);
if
(!
list
.
isEmpty
()){
return
list
.
get
(
0
).
getLocation
();
}
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
le
(
DriverTraceESPlus:
:
getPositionTime
,
endTime
)
.
orderByDesc
(
"positionTime"
)
.
limit
(
1
)
);
if
(!
list1
.
isEmpty
()){
return
list1
.
get
(
0
).
getLocation
();
}
return
null
;
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
浏览文件 @
84ffaf2b
...
@@ -34,6 +34,7 @@ import java.util.List;
...
@@ -34,6 +34,7 @@ import java.util.List;
@Slf4j
@Slf4j
@Service
@Service
public
class
VehicleWarnInfoServiceImpl
implements
VehicleWarnInfoService
{
public
class
VehicleWarnInfoServiceImpl
implements
VehicleWarnInfoService
{
private
final
Integer
TRUCK_TRACE_DAY_MAX
=
3
;
@Autowired
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
...
@@ -96,7 +97,7 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
...
@@ -96,7 +97,7 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
vehicleWarnInfo
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
vehicleWarnInfo
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
LocalDateTime
beginTime
=
vehicleWarnInfo
.
getTakeTime
();
LocalDateTime
beginTime
=
vehicleWarnInfo
.
getTakeTime
();
LocalDateTime
endTime
=
vehicleWarnInfo
.
getTakeTime
();
LocalDateTime
endTime
=
LocalDateTime
.
now
();
if
(
orderChild
.
getArriveSendTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveSendTime
();}
if
(
orderChild
.
getArriveSendTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveSendTime
();}
if
(
orderChild
.
getLoadTime
()
!=
null
)
{
endTime
=
orderChild
.
getLoadTime
();}
if
(
orderChild
.
getLoadTime
()
!=
null
)
{
endTime
=
orderChild
.
getLoadTime
();}
if
(
orderChild
.
getArriveReceiveTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveReceiveTime
();}
if
(
orderChild
.
getArriveReceiveTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveReceiveTime
();}
...
@@ -104,7 +105,7 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
...
@@ -104,7 +105,7 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
if
(
orderChild
.
getConfirmTime
()
!=
null
)
{
endTime
=
orderChild
.
getConfirmTime
();}
if
(
orderChild
.
getConfirmTime
()
!=
null
)
{
endTime
=
orderChild
.
getConfirmTime
();}
if
(
orderChild
.
getSettleTime
()
!=
null
)
{
endTime
=
orderChild
.
getSettleTime
();}
if
(
orderChild
.
getSettleTime
()
!=
null
)
{
endTime
=
orderChild
.
getSettleTime
();}
if
(
orderChild
.
getFinishTime
()
!=
null
)
{
endTime
=
orderChild
.
getFinishTime
();}
if
(
orderChild
.
getFinishTime
()
!=
null
)
{
endTime
=
orderChild
.
getFinishTime
();}
if
(
endTime
.
isAfter
(
beginTime
.
plusDays
(
3
)))
{
endTime
=
beginTime
.
plusDays
(
3
);}
//最多查询3天
if
(
endTime
.
isAfter
(
beginTime
.
plusDays
(
TRUCK_TRACE_DAY_MAX
)))
{
endTime
=
beginTime
.
plusDays
(
TRUCK_TRACE_DAY_MAX
);}
//最多查询3天
List
<
DriverTruckTraceVO
>
truckTraceList
=
truckTraceService
.
listTruckTraceByTime
(
vehicleWarnInfo
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
List
<
DriverTruckTraceVO
>
truckTraceList
=
truckTraceService
.
listTruckTraceByTime
(
vehicleWarnInfo
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
List
<
DriverTraceVO
>
driverTraceList
=
truckTraceService
.
listDriverTraceByTime
(
vehicleWarnInfo
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
List
<
DriverTraceVO
>
driverTraceList
=
truckTraceService
.
listDriverTraceByTime
(
vehicleWarnInfo
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnLoadAndUnloadWarnService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnSendAddressWarnService
;
import
com.clx.performance.utils.gd.GdService
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnMqHandlerServiceImpl
implements
VehicleWarnMqHandlerService
{
private
static
final
Integer
SEC_FER_MIN
=
60
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
VehicleWarnSendAddressWarnService
vehicleWarnSendAddressWarnService
;
@Autowired
private
VehicleWarnLoadAndUnloadWarnService
vehicleWarnLoadAndUnloadWarnService
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Autowired
private
GdService
gdService
;
@Override
public
void
orderChildAdd
(
VehicleWarnChildAddMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
int
arriveSendExpectTime
=
getNeedTime
(
orderChild
.
getTruckNo
(),
orderChild
.
getDriverUserNo
(),
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
());
int
arriveReceiveExpectTime
=
getNeedTime
(
orderChild
.
getTruckNo
(),
orderChild
.
getDriverUserNo
(),
orderGoods
.
getReceiveLongitude
(),
orderGoods
.
getReceiveLatitude
());
VehicleWarnChild
vehicleWarnChild
=
new
VehicleWarnChild
();
vehicleWarnChild
.
setOrderNo
(
orderChild
.
getOrderNo
());
vehicleWarnChild
.
setChildNo
(
orderChild
.
getChildNo
());
vehicleWarnChild
.
setTruckNo
(
orderChild
.
getTruckNo
());
vehicleWarnChild
.
setDriverUserNo
(
orderChild
.
getDriverUserNo
());
vehicleWarnChild
.
setSendLongitude
(
orderGoods
.
getSendLongitude
());
vehicleWarnChild
.
setSendLatitude
(
orderGoods
.
getSendLatitude
());
vehicleWarnChild
.
setReceiveLongitude
(
orderGoods
.
getReceiveLongitude
());
vehicleWarnChild
.
setReceiveLatitude
(
orderGoods
.
getReceiveLatitude
());
vehicleWarnChild
.
setArriveSendExpectTime
(
arriveSendExpectTime
==
0
?
null
:
arriveSendExpectTime
);
vehicleWarnChild
.
setArriveReceiveExpectTime
(
arriveReceiveExpectTime
==
0
?
null
:
arriveReceiveExpectTime
);
vehicleWarnChild
.
setTraceTime
(
orderChild
.
getPayTime
());
vehicleWarnChildDao
.
saveEntity
(
vehicleWarnChild
);
}
@Override
public
void
truckWarn
(
VehicleWarnTruckWarnMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
VehicleWarnChild
vehicleWarnChild
=
vehicleWarnChildDao
.
findByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
// 前往货源地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
){
vehicleWarnSendAddressWarnService
.
gotoSendAddressTimeout
(
orderChild
,
vehicleWarnChild
);
}
// 到达货源地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
){
vehicleWarnSendAddressWarnService
.
arriveSendAddressTimeout
(
orderChild
,
vehicleWarnChild
);
}
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
){
vehicleWarnLoadAndUnloadWarnService
.
loadTimeout
(
orderChild
,
vehicleWarnChild
);
}
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
())
){
vehicleWarnLoadAndUnloadWarnService
.
unloadTimeout
(
orderChild
,
vehicleWarnChild
);
}
}
@Override
public
void
truckWarnNotice
(
VehicleWarnTruckWarnNoticeMqParam
mq
)
{
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findById
(
mq
.
getInfoId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
// 发送短信
// 外呼
}
/**
* 获取需要时间(min)
*/
private
int
getNeedTime
(
String
truckNo
,
Long
userNo
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
){
int
needTime
=
0
;
BigDecimal
[]
lastPosition
=
truckTraceService
.
getLastPosition
(
truckNo
,
userNo
);
if
(
lastPosition
!=
null
)
{
try
{
List
<
GdRouteDTO
>
gdRouteDTOS
=
gdService
.
getRoute
(
lastPosition
[
0
],
lastPosition
[
1
],
destinationLongitude
,
destinationLatitude
);
if
(!
gdRouteDTOS
.
isEmpty
()){
needTime
=
gdRouteDTOS
.
get
(
0
).
getDuration
()
/
SEC_FER_MIN
;
}
}
catch
(
ServiceSystemException
e
)
{
log
.
info
(
"获取高德线路失败, truckNo:{}, userNo:{}, msg:{}"
,
truckNo
,
userNo
,
e
.
getMessage
());
}
}
return
needTime
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnMqServiceImpl.java
浏览文件 @
84ffaf2b
...
@@ -6,6 +6,7 @@ import com.clx.performance.common.MqWrapper;
...
@@ -6,6 +6,7 @@ import com.clx.performance.common.MqWrapper;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
...
@@ -43,4 +44,15 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
...
@@ -43,4 +44,15 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
@Override
public
void
truckWarnNotice
(
Integer
infoId
)
{
VehicleWarnTruckWarnNoticeMqParam
mq
=
new
VehicleWarnTruckWarnNoticeMqParam
();
mq
.
setInfoId
(
infoId
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_NOTICE_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
0 → 100644
浏览文件 @
84ffaf2b
差异被折叠。
点击展开。
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
浏览文件 @
84ffaf2b
...
@@ -5,6 +5,7 @@ import com.clx.performance.param.temp.TruckTraceAddParam;
...
@@ -5,6 +5,7 @@ import com.clx.performance.param.temp.TruckTraceAddParam;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
public
interface
TruckTraceService
{
public
interface
TruckTraceService
{
...
@@ -15,4 +16,6 @@ public interface TruckTraceService {
...
@@ -15,4 +16,6 @@ public interface TruckTraceService {
void
truckTraceSave
(
TruckTraceAddParam
param
);
void
truckTraceSave
(
TruckTraceAddParam
param
);
void
driverTraceSave
(
DriverTraceAddParam
param
);
void
driverTraceSave
(
DriverTraceAddParam
param
);
BigDecimal
[]
getLastPosition
(
String
truckNo
,
Long
userNo
);
}
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnMqHandlerService.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
public
interface
VehicleWarnMqHandlerService
{
void
orderChildAdd
(
VehicleWarnChildAddMqParam
mq
);
void
truckWarn
(
VehicleWarnTruckWarnMqParam
mq
);
void
truckWarnNotice
(
VehicleWarnTruckWarnNoticeMqParam
mq
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnMqService.java
浏览文件 @
84ffaf2b
...
@@ -5,4 +5,6 @@ public interface VehicleWarnMqService {
...
@@ -5,4 +5,6 @@ public interface VehicleWarnMqService {
void
orderChildAdd
(
String
childNo
);
void
orderChildAdd
(
String
childNo
);
void
truckWarn
(
String
childNo
);
void
truckWarn
(
String
childNo
);
void
truckWarnNotice
(
Integer
infoId
);
}
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnSendAddressWarnService.java
0 → 100644
浏览文件 @
84ffaf2b
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnSendAddressWarnService
{
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
}
performance-web/src/main/java/com/clx/performance/utils/gd/GdService.java
浏览文件 @
84ffaf2b
...
@@ -33,24 +33,33 @@ public class GdService {
...
@@ -33,24 +33,33 @@ public class GdService {
private
static
final
String
REGEO_API
=
"https://restapi.amap.com/v3/geocode/regeo"
;
//逆地理编码
private
static
final
String
REGEO_API
=
"https://restapi.amap.com/v3/geocode/regeo"
;
//逆地理编码
private
static
final
Integer
STRATEGY_DEFAULT
=
32
;
private
static
final
Integer
STRATEGY_33
=
10
;
private
String
gaodeKey
=
"b2550e16bbc7bf9f6cd168e0f21709fc"
;
private
String
gaodeKey
=
"b2550e16bbc7bf9f6cd168e0f21709fc"
;
public
List
<
GdRouteDTO
>
getRoute
(
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
,
Integer
strategy
)
{
return
getRoute
(
gaodeKey
,
strategy
,
originLongitude
,
originLatitude
,
destinationLongitude
,
destinationLatitude
);
}
public
List
<
GdRouteDTO
>
getRoute
(
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
public
List
<
GdRouteDTO
>
getRoute
(
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
return
getRoute
(
gaodeKey
,
originLongitude
,
originLatitude
,
destinationLongitude
,
destinationLatitude
);
return
getRoute
(
gaodeKey
,
STRATEGY_DEFAULT
,
originLongitude
,
originLatitude
,
destinationLongitude
,
destinationLatitude
);
}
}
public
static
List
<
GdRouteDTO
>
getRoute
(
String
key
,
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
public
static
List
<
GdRouteDTO
>
getRoute
(
String
key
,
Integer
strategy
,
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
//log.info("高德线路规划开始");
//log.info("高德线路规划开始");
List
<
GdRouteDTO
>
routeList
=
new
ArrayList
<>();
List
<
GdRouteDTO
>
routeList
=
new
ArrayList
<>();
String
url
=
DIRECTION_API
+
"?origin="
+
originLongitude
.
doubleValue
()+
","
+
originLatitude
.
doubleValue
()
String
url
=
DIRECTION_API
+
"?origin="
+
originLongitude
.
doubleValue
()+
","
+
originLatitude
.
doubleValue
()
+
"&destination="
+
destinationLongitude
.
doubleValue
()+
","
+
destinationLatitude
.
doubleValue
()
+
"&destination="
+
destinationLongitude
.
doubleValue
()+
","
+
destinationLatitude
.
doubleValue
()
+
"&strategy="
+
strategy
+
"&output=json&key="
+
key
+
"&extensions=base&show_fields=cost,tmcs"
;
+
"&output=json&key="
+
key
+
"&extensions=base&show_fields=cost,tmcs"
;
//解析返回的结果
//解析返回的结果
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论