Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
633587de
提交
633587de
authored
5月 09, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
运单预警
上级
44f78520
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
211 行增加
和
154 行删除
+211
-154
VehicleWarnCommonInfoDTO.java
...performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
+30
-0
TruckTraceServiceImpl.java
...performance/service/impl/trace/TruckTraceServiceImpl.java
+6
-1
VehicleWarnCommonServiceImpl.java
...ervice/impl/vehiclewarn/VehicleWarnCommonServiceImpl.java
+141
-0
VehicleWarnSendAddressWarnServiceImpl.java
...pl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
+12
-150
TruckTraceService.java
.../com/clx/performance/service/trace/TruckTraceService.java
+1
-1
VehicleWarnCommonService.java
...ormance/service/vehiclewarn/VehicleWarnCommonService.java
+17
-0
VehicleWarnSendAddressWarnService.java
...ervice/vehiclewarn/VehicleWarnSendAddressWarnService.java
+4
-2
没有找到文件。
performance-web/src/main/java/com/clx/performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
0 → 100644
浏览文件 @
633587de
package
com
.
clx
.
performance
.
dto
.
vehiclewarn
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnCommonInfoDTO
{
BigDecimal
[]
currentPosition
;
//当前位置
Integer
sendAddressDistance
;
//距货源地址距离
Integer
receiveAddressDistance
;
//距目的地址距离
Integer
sendAddressTime
;
//距货源地址时间
Integer
receiveAddressTime
;
//距目的地址时间
Boolean
suspendStatus
;
//是否暂停 0:未暂停 1:暂停
private
LocalDateTime
lastArriveSendTime
;
//最晚到达货源地时间
private
LocalDateTime
lastArriveReceiveTime
;
//最晚到达目的地时间
LocalDateTime
currentTime
;
//当前时间
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
浏览文件 @
633587de
...
@@ -27,6 +27,7 @@ import java.util.List;
...
@@ -27,6 +27,7 @@ import java.util.List;
@Slf4j
@Slf4j
@Service
@Service
public
class
TruckTraceServiceImpl
implements
TruckTraceService
{
public
class
TruckTraceServiceImpl
implements
TruckTraceService
{
// 停留速度
private
static
final
Integer
PARK_SPEED
=
5
;
private
static
final
Integer
PARK_SPEED
=
5
;
@Autowired
@Autowired
...
@@ -134,10 +135,11 @@ public class TruckTraceServiceImpl implements TruckTraceService {
...
@@ -134,10 +135,11 @@ public class TruckTraceServiceImpl implements TruckTraceService {
}
}
@Override
@Override
public
BigDecimal
[]
get
Las
tPosition
(
String
truckNo
,
Long
userNo
)
{
public
BigDecimal
[]
get
Curren
tPosition
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusHours
(
1
));
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusHours
(
1
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
// 车辆
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
...
@@ -149,6 +151,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
...
@@ -149,6 +151,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
return
list
.
get
(
0
).
getLocation
();
return
list
.
get
(
0
).
getLocation
();
}
}
// 司机
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
...
@@ -168,6 +171,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
...
@@ -168,6 +171,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusDays
(
1
));
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusDays
(
1
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
// 车辆
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
gt
(
TruckTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
.
gt
(
TruckTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
...
@@ -188,6 +192,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
...
@@ -188,6 +192,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
}
}
// 司机
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnCommonServiceImpl.java
浏览文件 @
633587de
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnRangeDao
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnRang
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
com.clx.performance.utils.gd.GdService
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
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.List
;
import
java.util.Objects
;
@Slf4j
@Slf4j
@Service
@Service
public
class
VehicleWarnCommonServiceImpl
implements
VehicleWarnCommonService
{
public
class
VehicleWarnCommonServiceImpl
implements
VehicleWarnCommonService
{
private
static
final
Integer
MIN_FER_HOUR
=
60
;
private
static
final
Integer
SEC_FER_MIN
=
60
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Autowired
private
GdService
gdService
;
@Autowired
private
VehicleWarnRangeDao
vehicleWarnRangeDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnMqService
vehicleWarnMqService
;
@Override
public
void
vehicleWarnInfoUpdate
(
OrderChild
orderChild
,
VehicleWarnInfo
vehicleWarnInfo
,
VehicleWarnConfig
vehicleWarnConfig
){
// 更新
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
INIT
.
getCode
())){
// 计算下次生效时间
LocalDateTime
nextTime
=
vehicleWarnInfo
.
getWarnTime
().
plusMinutes
(
vehicleWarnConfig
.
getInterval
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
());
if
(
nextTime
.
isAfter
(
LocalDateTime
.
now
()))
{
return
;}
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
updateWarn
(
vehicleWarnInfo
);
return
;
}
// 新增
vehicleWarnInfo
=
new
VehicleWarnInfo
();
vehicleWarnInfo
.
setWarnConfigId
(
vehicleWarnConfig
.
getId
());
vehicleWarnInfo
.
setWarnType
(
vehicleWarnConfig
.
getWarnType
());
vehicleWarnInfo
.
setWarnName
(
vehicleWarnConfig
.
getWarnName
());
vehicleWarnInfo
.
setWarnName
(
vehicleWarnConfig
.
getWarnName
());
vehicleWarnInfo
.
setWarnLevel
(
vehicleWarnConfig
.
getWarnLevel
());
vehicleWarnInfo
.
setChildNo
(
orderChild
.
getChildNo
());
vehicleWarnInfo
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
vehicleWarnInfo
.
setSendAddress
(
orderChild
.
getSendAddress
());
vehicleWarnInfo
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
vehicleWarnInfo
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
vehicleWarnInfo
.
setTruckId
(
orderChild
.
getTruckId
());
vehicleWarnInfo
.
setTruckNo
(
orderChild
.
getTruckNo
());
vehicleWarnInfo
.
setDriverUserNo
(
orderChild
.
getDriverUserNo
());
vehicleWarnInfo
.
setDriverName
(
orderChild
.
getDriverName
());
vehicleWarnInfo
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
vehicleWarnInfo
.
setTakeTime
(
orderChild
.
getPayTime
());
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
saveEntity
(
vehicleWarnInfo
);
// 发送mq (预警通知)
vehicleWarnMqService
.
truckWarnNotice
(
vehicleWarnInfo
.
getId
());
}
/**
* 暂停检测
*/
@Override
public
boolean
suspendCheck
(
VehicleWarnChild
vehicleWarnChild
,
Integer
warnConfigId
){
// 报警暂停
List
<
VehicleWarnRang
>
vehicleWarnRangList
=
vehicleWarnRangeDao
.
ListByWarnConfigId
(
warnConfigId
);
if
(!
vehicleWarnRangList
.
isEmpty
()){
for
(
VehicleWarnRang
item
:
vehicleWarnRangList
)
{
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
ALL
.
getCode
())){
return
true
;
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
ORDER
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getOrderNo
(),
item
.
getOrderNo
()))
{
return
true
;
}
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
CHILD
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getChildNo
(),
item
.
getChildNo
()))
{
return
true
;
}
}
}
}
return
false
;
}
/**
* 获取当前位置
*/
@Override
public
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
){
BigDecimal
[]
currentPosition
=
truckTraceService
.
getCurrentPosition
(
truckNo
,
userNo
);
return
currentPosition
;
}
/**
* 获取需要时间(min)
*/
@Override
public
int
getNeedTime
(
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
){
try
{
List
<
GdRouteDTO
>
gdRouteDTOS
=
gdService
.
getRoute
(
originLongitude
,
originLatitude
,
destinationLongitude
,
destinationLatitude
);
if
(!
gdRouteDTOS
.
isEmpty
()){
return
gdRouteDTOS
.
get
(
0
).
getDuration
()
/
SEC_FER_MIN
;
}
}
catch
(
ServiceSystemException
e
)
{
log
.
info
(
"获取高德线路失败, msg:{}"
,
e
.
getMessage
());
}
return
0
;
}
/**
* 获取需要时间(min)
*/
@Override
public
int
getNeedTime
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
if
(
currentPosition
==
null
)
{
return
0
;}
return
getNeedTime
(
currentPosition
[
0
],
currentPosition
[
1
],
destinationLongitude
,
destinationLatitude
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
浏览文件 @
633587de
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.impl.vehiclewarn.VehicleWarnRangeDaoImpl
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.
gd.GdRoute
DTO
;
import
com.clx.performance.dto.
vehiclewarn.VehicleWarnCommonInfo
DTO
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnRang
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnSendAddressWarnService
;
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
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
;
...
@@ -31,36 +25,26 @@ import java.util.Objects;
...
@@ -31,36 +25,26 @@ import java.util.Objects;
@Slf4j
@Slf4j
@Service
@Service
public
class
VehicleWarnSendAddressWarnServiceImpl
implements
VehicleWarnSendAddressWarnService
{
public
class
VehicleWarnSendAddressWarnServiceImpl
implements
VehicleWarnSendAddressWarnService
{
private
static
final
Integer
MIN_FER_HOUR
=
60
;
private
static
final
Integer
SEC_FER_MIN
=
60
;
@Autowired
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
@Autowired
private
VehicleWarnRangeDaoImpl
vehicleWarnRangeDao
;
private
VehicleWarnCommonService
vehicleWarnCommonService
;
@Autowired
private
GdService
gdService
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Autowired
private
VehicleWarnMqService
vehicleWarnMqService
;
/**
/**
* 前往货源地超时
* 前往货源地超时
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
){
public
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
long
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
long
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
// 计算需要的时间
// 计算需要的时间
Integer
needTime
=
getNeedTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
(),
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
vehicleWarnChild
.
getSendLongitude
(),
vehicleWarnChild
.
getSendLatitude
());
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
GOTO_SEND_TIMEOUT
.
getCode
());
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
GOTO_SEND_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
...
@@ -75,7 +59,7 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
...
@@ -75,7 +59,7 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findEnableByChildNoAndWarnConfigType
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findEnableByChildNoAndWarnConfigType
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
// 暂停检测
// 暂停检测
boolean
suspend
=
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
// 已暂停
// 已暂停
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
())){
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
())){
...
@@ -91,43 +75,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
...
@@ -91,43 +75,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
if
(
orderChild
.
getPayTime
().
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
if
(
orderChild
.
getPayTime
().
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
// 更新
// 更新
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
INIT
.
getCode
())){
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
// 计算下次生效时间
LocalDateTime
nextTime
=
vehicleWarnInfo
.
getWarnTime
().
plusMinutes
(
vehicleWarnConfig
.
getInterval
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
());
if
(
nextTime
.
isAfter
(
LocalDateTime
.
now
()))
{
return
;}
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
updateWarn
(
vehicleWarnInfo
);
return
;
}
// 新增
vehicleWarnInfo
=
new
VehicleWarnInfo
();
vehicleWarnInfo
.
setWarnConfigId
(
vehicleWarnConfig
.
getId
());
vehicleWarnInfo
.
setWarnType
(
vehicleWarnConfig
.
getWarnType
());
vehicleWarnInfo
.
setWarnName
(
vehicleWarnConfig
.
getWarnName
());
vehicleWarnInfo
.
setWarnName
(
vehicleWarnConfig
.
getWarnName
());
vehicleWarnInfo
.
setWarnLevel
(
vehicleWarnConfig
.
getWarnLevel
());
vehicleWarnInfo
.
setChildNo
(
orderChild
.
getChildNo
());
vehicleWarnInfo
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
vehicleWarnInfo
.
setSendAddress
(
orderChild
.
getSendAddress
());
vehicleWarnInfo
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
vehicleWarnInfo
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
vehicleWarnInfo
.
setTruckId
(
orderChild
.
getTruckId
());
vehicleWarnInfo
.
setTruckNo
(
orderChild
.
getTruckNo
());
vehicleWarnInfo
.
setDriverUserNo
(
orderChild
.
getDriverUserNo
());
vehicleWarnInfo
.
setDriverName
(
orderChild
.
getDriverName
());
vehicleWarnInfo
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
vehicleWarnInfo
.
setTakeTime
(
orderChild
.
getPayTime
());
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
saveEntity
(
vehicleWarnInfo
);
// 发送mq (预警通知)
vehicleWarnMqService
.
truckWarnNotice
(
vehicleWarnInfo
.
getId
());
}
}
/**
/**
...
@@ -135,12 +84,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
...
@@ -135,12 +84,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
){
public
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
// 计算需要的时间
// 计算需要的时间
Integer
needTime
=
getNeedTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
(),
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
vehicleWarnChild
.
getSendLongitude
(),
vehicleWarnChild
.
getSendLatitude
());
// 超时判断
// 超时判断
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
...
@@ -159,7 +107,7 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
...
@@ -159,7 +107,7 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findEnableByChildNoAndWarnConfigType
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findEnableByChildNoAndWarnConfigType
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
// 暂停检测
// 暂停检测
boolean
suspend
=
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
// 已暂停
// 已暂停
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
())){
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
())){
...
@@ -171,94 +119,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
...
@@ -171,94 +119,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
}
}
// 更新
// 更新
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
INIT
.
getCode
())){
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
// 计算下次生效时间
LocalDateTime
nextTime
=
vehicleWarnInfo
.
getWarnTime
().
plusMinutes
(
vehicleWarnConfig
.
getInterval
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
());
if
(
nextTime
.
isAfter
(
LocalDateTime
.
now
()))
{
return
;}
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
updateWarn
(
vehicleWarnInfo
);
return
;
}
// 新增
vehicleWarnInfo
=
new
VehicleWarnInfo
();
vehicleWarnInfo
.
setWarnConfigId
(
vehicleWarnConfig
.
getId
());
vehicleWarnInfo
.
setWarnType
(
vehicleWarnConfig
.
getWarnType
());
vehicleWarnInfo
.
setWarnName
(
vehicleWarnConfig
.
getWarnName
());
vehicleWarnInfo
.
setWarnLevel
(
vehicleWarnConfig
.
getWarnLevel
());
vehicleWarnInfo
.
setChildNo
(
orderChild
.
getChildNo
());
vehicleWarnInfo
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
vehicleWarnInfo
.
setSendAddress
(
orderChild
.
getSendAddress
());
vehicleWarnInfo
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
vehicleWarnInfo
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
vehicleWarnInfo
.
setTruckId
(
orderChild
.
getTruckId
());
vehicleWarnInfo
.
setTruckNo
(
orderChild
.
getTruckNo
());
vehicleWarnInfo
.
setDriverUserNo
(
orderChild
.
getDriverUserNo
());
vehicleWarnInfo
.
setDriverName
(
orderChild
.
getDriverName
());
vehicleWarnInfo
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
vehicleWarnInfo
.
setTakeTime
(
orderChild
.
getPayTime
());
vehicleWarnInfo
.
setWarnTime
(
LocalDateTime
.
now
());
vehicleWarnInfoDao
.
saveEntity
(
vehicleWarnInfo
);
// 发送mq (预警通知)
vehicleWarnMqService
.
truckWarnNotice
(
vehicleWarnInfo
.
getId
());
}
/**
* 暂停检测
*/
private
boolean
suspendCheck
(
VehicleWarnChild
vehicleWarnChild
,
Integer
warnConfigId
){
// 报警暂停
List
<
VehicleWarnRang
>
vehicleWarnRangList
=
vehicleWarnRangeDao
.
ListByWarnConfigId
(
warnConfigId
);
if
(!
vehicleWarnRangList
.
isEmpty
()){
for
(
VehicleWarnRang
item
:
vehicleWarnRangList
)
{
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
ALL
.
getCode
())){
return
true
;
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
ORDER
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getOrderNo
(),
item
.
getOrderNo
()))
{
return
true
;
}
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
CHILD
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getChildNo
(),
item
.
getChildNo
()))
{
return
true
;
}
}
}
}
return
false
;
}
/**
* 获取需要时间(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/trace/TruckTraceService.java
浏览文件 @
633587de
...
@@ -17,7 +17,7 @@ public interface TruckTraceService {
...
@@ -17,7 +17,7 @@ public interface TruckTraceService {
void
driverTraceSave
(
DriverTraceAddParam
param
);
void
driverTraceSave
(
DriverTraceAddParam
param
);
BigDecimal
[]
get
Las
tPosition
(
String
truckNo
,
Long
userNo
);
BigDecimal
[]
get
Curren
tPosition
(
String
truckNo
,
Long
userNo
);
int
getParkTime
(
String
truckNo
,
Long
userNo
);
int
getParkTime
(
String
truckNo
,
Long
userNo
);
}
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnCommonService.java
浏览文件 @
633587de
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
java.math.BigDecimal
;
public
interface
VehicleWarnCommonService
{
public
interface
VehicleWarnCommonService
{
void
vehicleWarnInfoUpdate
(
OrderChild
orderChild
,
VehicleWarnInfo
vehicleWarnInfo
,
VehicleWarnConfig
vehicleWarnConfig
);
boolean
suspendCheck
(
VehicleWarnChild
vehicleWarnChild
,
Integer
warnConfigId
);
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
);
int
getNeedTime
(
BigDecimal
originLongitude
,
BigDecimal
originLatitude
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
);
int
getNeedTime
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
);
}
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnSendAddressWarnService.java
浏览文件 @
633587de
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnSendAddressWarnService
{
public
interface
VehicleWarnSendAddressWarnService
{
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论