Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
c4d8a1ac
提交
c4d8a1ac
authored
6月 04, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/test' into test
Former-commit-id:
fdec2117
上级
e6665b60
1ddebe75
隐藏空白字符变更
内嵌
并排
正在显示
40 个修改的文件
包含
600 行增加
和
171 行删除
+600
-171
OrderChildPoundInfoVO.java
...ava/com/clx/performance/vo/app/OrderChildPoundInfoVO.java
+1
-9
OrderChildVO.java
...rc/main/java/com/clx/performance/vo/app/OrderChildVO.java
+9
-9
CollectTruckWaitVO.java
...com/clx/performance/vo/pc/collect/CollectTruckWaitVO.java
+0
-3
DriverTraceVO.java
...n/java/com/clx/performance/vo/pc/trace/DriverTraceVO.java
+2
-0
DriverTruckTraceVO.java
...a/com/clx/performance/vo/pc/trace/DriverTruckTraceVO.java
+2
-0
VehicleTraceVO.java
...com/clx/performance/vo/pc/vehiclewarn/VehicleTraceVO.java
+3
-2
VehicleWarnUserVO.java
.../clx/performance/vo/pc/vehiclewarn/VehicleWarnUserVO.java
+5
-2
pom.xml
performance-web/pom.xml
+1
-0
TempTraceController.java
.../clx/performance/controller/temp/TempTraceController.java
+9
-0
TruckPositionDao.java
...c/main/java/com/clx/performance/dao/TruckPositionDao.java
+21
-0
TruckPositionDaoImpl.java
...va/com/clx/performance/dao/impl/TruckPositionDaoImpl.java
+34
-0
VehicleWarnChildDaoImpl.java
...ormance/dao/impl/vehiclewarn/VehicleWarnChildDaoImpl.java
+11
-7
VehicleWarnInfoDaoImpl.java
...formance/dao/impl/vehiclewarn/VehicleWarnInfoDaoImpl.java
+0
-1
VehicleWarnLogDaoImpl.java
...rformance/dao/impl/vehiclewarn/VehicleWarnLogDaoImpl.java
+1
-5
VehicleWarnUserDaoImpl.java
...formance/dao/impl/vehiclewarn/VehicleWarnUserDaoImpl.java
+1
-1
VehicleWarnChildDao.java
.../clx/performance/dao/vehiclewarn/VehicleWarnChildDao.java
+2
-2
VehicleWarnLogDao.java
...om/clx/performance/dao/vehiclewarn/VehicleWarnLogDao.java
+0
-2
VehicleWarnCommonInfoDTO.java
...performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
+2
-0
TruckPositionJob.java
...va/com/clx/performance/job/position/TruckPositionJob.java
+163
-0
PlatTruckTraceJob.java
...java/com/clx/performance/job/trace/PlatTruckTraceJob.java
+1
-1
VehicleWarnJob.java
...a/com/clx/performance/job/vehiclewarn/VehicleWarnJob.java
+0
-21
OrderChildMapper.java
...ain/java/com/clx/performance/mapper/OrderChildMapper.java
+2
-2
TruckPositionMapper.java
.../java/com/clx/performance/mapper/TruckPositionMapper.java
+23
-0
TruckPosition.java
...rc/main/java/com/clx/performance/model/TruckPosition.java
+86
-0
VehicleWarnChild.java
...m/clx/performance/model/vehiclewarn/VehicleWarnChild.java
+2
-1
VehicleWarnUser.java
...om/clx/performance/model/vehiclewarn/VehicleWarnUser.java
+2
-1
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+3
-2
TruckTraceServiceImpl.java
...performance/service/impl/trace/TruckTraceServiceImpl.java
+51
-17
VehicleWarnConfigServiceImpl.java
...ervice/impl/vehiclewarn/VehicleWarnConfigServiceImpl.java
+9
-0
VehicleWarnDelayWarnServiceImpl.java
...ice/impl/vehiclewarn/VehicleWarnDelayWarnServiceImpl.java
+1
-1
VehicleWarnInfoServiceImpl.java
.../service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
+12
-8
VehicleWarnMqHandlerServiceImpl.java
...ice/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
+68
-9
VehicleWarnParkWarnServiceImpl.java
...vice/impl/vehiclewarn/VehicleWarnParkWarnServiceImpl.java
+9
-30
VehicleWarnReceiveAddressWarnServiceImpl.java
...vehiclewarn/VehicleWarnReceiveAddressWarnServiceImpl.java
+6
-28
VehicleWarnSendAddressWarnServiceImpl.java
...pl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
+5
-3
VehicleWarnUserServiceImpl.java
.../service/impl/vehiclewarn/VehicleWarnUserServiceImpl.java
+3
-2
TruckTraceService.java
.../com/clx/performance/service/trace/TruckTraceService.java
+3
-1
TruckPositionProvider.java
...om/clx/performance/sqlProvider/TruckPositionProvider.java
+44
-0
CollectTruckWaitStruct.java
...lx/performance/struct/collect/CollectTruckWaitStruct.java
+2
-0
ZjxlGpsService.java
...n/java/com/clx/performance/utils/zjxl/ZjxlGpsService.java
+1
-1
没有找到文件。
performance-api/src/main/java/com/clx/performance/vo/app/OrderChildPoundInfoVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -42,11 +42,8 @@ public class OrderChildPoundInfoVO {
private
Integer
poundStatus
;
@ApiModelProperty
(
value
=
"磅单审核驳回原因"
,
example
=
"交货信息错误"
)
private
String
poundRemark
;
@ApiModelProperty
(
value
=
"审核驳回类型:1装车 2卸车 3装车+卸车"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"
磅单
审核驳回类型:1装车 2卸车 3装车+卸车"
,
example
=
"1"
)
private
Integer
poundRejectType
;
public
Integer
getPoundRejectType
()
{
return
rejectType
;
}
@ApiModelProperty
(
value
=
"状态"
,
example
=
"0"
)
private
Integer
status
;
...
...
@@ -57,8 +54,4 @@ public class OrderChildPoundInfoVO {
@ApiModelProperty
(
value
=
"卸车磅单图片列表"
)
private
List
<
String
>
unloadImageList
;
@JsonIgnore
@ApiModelProperty
(
value
=
"审核驳回类型:1装车 2卸车 3装车+卸车"
,
example
=
"1"
,
hidden
=
true
)
private
Integer
rejectType
;
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/app/OrderChildVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -182,13 +182,6 @@ public class OrderChildVO {
private
String
lastLoadTime
;
//运单详情增加字段
@ApiModelProperty
(
value
=
"亏吨重量"
,
example
=
"1.23"
)
private
BigDecimal
lossWeight
;
@ApiModelProperty
(
value
=
"亏吨扣款"
,
example
=
"1.23"
)
@MoneyOutConvert
private
BigDecimal
lossAmount
;
//结算信息
@ApiModelProperty
(
value
=
"实际运费"
,
example
=
"1.23"
)
@MoneyOutConvert
...
...
@@ -204,6 +197,14 @@ public class OrderChildVO {
private
BigDecimal
settlementFreight
;
//运单详情增加字段
@ApiModelProperty
(
value
=
"亏吨重量"
,
example
=
"1.23"
)
private
BigDecimal
lossWeight
;
@ApiModelProperty
(
value
=
"亏吨扣款"
,
example
=
"1.23"
)
@MoneyOutConvert
private
BigDecimal
lossAmount
;
@ApiModelProperty
(
"可卸车时间段开始"
)
private
String
unloadBeginTime
;
...
...
@@ -219,4 +220,4 @@ public class OrderChildVO {
private
String
notOpenZJXLMsg
;
}
\ No newline at end of file
}
performance-api/src/main/java/com/clx/performance/vo/pc/collect/CollectTruckWaitVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -77,9 +77,6 @@ public class CollectTruckWaitVO {
@ApiModelProperty
(
value
=
"预计等待时长"
,
example
=
""
)
private
BigDecimal
stationTime
;
public
BigDecimal
getStationTime
()
{
return
stationInTime
;
}
@ApiModelProperty
(
value
=
"预计等待时长图片"
,
example
=
""
)
private
List
<
String
>
stationImageList
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/trace/DriverTraceVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -22,6 +22,8 @@ public class DriverTraceVO {
private
BigDecimal
speed
;
@ApiModelProperty
(
value
=
"停留时长(min)"
,
example
=
"12.3"
)
private
BigDecimal
stayTime
=
BigDecimal
.
ZERO
;
@ApiModelProperty
(
value
=
"停留开始时间"
)
private
String
stayBeginTime
;
@ApiModelProperty
(
value
=
"停留结束时间"
)
private
String
stayEndTime
;
@ApiModelProperty
(
value
=
"车辆状态:1空车 2重车"
,
example
=
"1"
)
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/trace/DriverTruckTraceVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -26,6 +26,8 @@ public class DriverTruckTraceVO {
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"GPS 时间"
)
private
String
gpsTime
;
@ApiModelProperty
(
value
=
"停留开始时间"
)
private
String
stayBeginTime
;
@ApiModelProperty
(
value
=
"停留结束时间"
)
private
String
stayEndTime
;
@ApiModelProperty
(
value
=
"停留时长(min)"
,
example
=
"12.3"
)
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleTraceVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -21,8 +21,8 @@ import java.util.List;
@NoArgsConstructor
public
class
VehicleTraceVO
{
@ApiModelProperty
(
value
=
"车辆轨迹列表"
)
List
<
DriverTruckTraceVO
>
truckTraceList
;
List
<
List
<
DriverTruckTraceVO
>
>
truckTraceList
;
@ApiModelProperty
(
value
=
"司机轨迹列表"
)
List
<
DriverTraceVO
>
driverTraceList
;
List
<
List
<
DriverTraceVO
>
>
driverTraceList
;
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnUserVO.java
浏览文件 @
c4d8a1ac
...
...
@@ -40,7 +40,7 @@ public class VehicleWarnUserVO {
@ApiModelProperty
(
value
=
"通知配置列表"
)
private
List
<
WarnTypeItem
>
warnTypeItemList
;
public
List
<
WarnTypeItem
>
getWarnTypeItemList
()
{
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
war
m
TypeJson
,
Integer
.
class
);
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
war
n
TypeJson
,
Integer
.
class
);
List
<
WarnTypeItem
>
list
=
new
ArrayList
<>();
for
(
VehicleWarnConfigEnum
.
WarnType
item
:
VehicleWarnConfigEnum
.
WarnType
.
values
())
{
...
...
@@ -56,7 +56,10 @@ public class VehicleWarnUserVO {
@JsonIgnore
@ApiModelProperty
(
value
=
"预警配置"
,
example
=
""
,
hidden
=
true
)
private
String
warmTypeJson
;
private
String
warnTypeJson
;
@JsonIgnore
@ApiModelProperty
(
value
=
"线路预警配置"
,
example
=
""
,
hidden
=
true
)
private
String
lineWarnTypeJson
;
@Getter
@Setter
...
...
performance-web/pom.xml
浏览文件 @
c4d8a1ac
...
...
@@ -303,6 +303,7 @@
</dependency>
</dependencies>
...
...
performance-web/src/main/java/com/clx/performance/controller/temp/TempTraceController.java
浏览文件 @
c4d8a1ac
...
...
@@ -6,6 +6,7 @@ import com.clx.performance.param.temp.DriverTraceAddParam;
import
com.clx.performance.param.temp.TruckTraceAddParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.gd.GdService
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
...
...
@@ -54,6 +55,14 @@ public class TempTraceController {
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"停留时长"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/getParkTime"
)
public
Result
<
Integer
>
getParkTime
(
String
truckNo
,
Long
userNo
,
String
beginTime
,
String
endTime
)
{
int
parkTime
=
truckTraceService
.
getParkTime
(
truckNo
,
userNo
,
LocalDateTimeUtils
.
parseTime
(
beginTime
),
LocalDateTimeUtils
.
parseTime
(
endTime
));
return
Result
.
ok
(
parkTime
);
}
@ApiOperation
(
value
=
"车辆轨迹同步"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/truckTraceSync"
)
public
Result
truckTraceSync
(
@RequestBody
TruckTraceAddParam
param
)
{
...
...
performance-web/src/main/java/com/clx/performance/dao/TruckPositionDao.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
dao
;
import
com.clx.performance.mapper.TruckPositionMapper
;
import
com.clx.performance.model.TruckPosition
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
public
interface
TruckPositionDao
extends
BaseDao
<
TruckPositionMapper
,
TruckPosition
,
Integer
>
{
void
updateTruckPositionStatus
(
Integer
deleteStatus
,
List
<
String
>
truckNoList
);
void
replaceTruckPosition
(
List
<
TruckPosition
>
truckPositionList
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/TruckPositionDaoImpl.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
dao
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.performance.dao.TruckPositionDao
;
import
com.clx.performance.mapper.TruckPositionMapper
;
import
com.clx.performance.model.TruckPosition
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
@Repository
public
class
TruckPositionDaoImpl
extends
BaseDaoImpl
<
TruckPositionMapper
,
TruckPosition
,
Integer
>
implements
TruckPositionDao
{
@Override
public
void
updateTruckPositionStatus
(
Integer
deleteStatus
,
List
<
String
>
truckNoList
)
{
update
(
lUdWrapper
()
.
set
(
TruckPosition:
:
getDeleteStatus
,
deleteStatus
)
.
notIn
(
CollectionUtil
.
isNotEmpty
(
truckNoList
),
TruckPosition:
:
getTruckNo
,
truckNoList
)
);
}
@Override
public
void
replaceTruckPosition
(
List
<
TruckPosition
>
truckPositionList
)
{
baseMapper
.
replaceTruckPosition
(
truckPositionList
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnChildDaoImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -15,19 +15,18 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper,
@Override
public
boolean
update
TraceTime
(
VehicleWarnChild
item
)
{
public
boolean
update
WarnStatus
(
VehicleWarnChild
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnChild:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnChild:
:
getTraceStatus
,
item
.
getTraceStatus
())
.
set
(
VehicleWarnChild:
:
getTraceTime
,
item
.
getTraceTime
())
.
set
(
VehicleWarnChild:
:
getWarnStatus
,
item
.
getWarnStatus
())
);
}
@Override
public
boolean
update
ReceiveAddressDistanc
e
(
VehicleWarnChild
item
)
{
public
boolean
update
EstimateLoadTim
e
(
VehicleWarnChild
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnChild:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnChild:
:
get
ReceiveAddressDistance
,
item
.
getReceiveAddressDistanc
e
())
.
set
(
VehicleWarnChild:
:
get
EstimateLoadTime
,
item
.
getEstimateLoadTim
e
())
);
}
...
...
@@ -40,12 +39,17 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper,
@Override
public
List
<
VehicleWarnChild
>
ListTruckNoOfTrace
()
{
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
).
eq
(
VehicleWarnChild:
:
getTraceStatus
,
VehicleWarnChildEnum
.
TraceStatus
.
ENABLE
.
getCode
()));
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
)
.
eq
(
VehicleWarnChild:
:
getWarnStatus
,
VehicleWarnChildEnum
.
WarnStatus
.
ENABLE
.
getCode
()));
}
@Override
public
List
<
VehicleWarnChild
>
ListTruckNoOfWarn
()
{
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
).
eq
(
VehicleWarnChild:
:
getTraceStatus
,
VehicleWarnChildEnum
.
WarnStatus
.
ENABLE
.
getCode
()));
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
)
.
eq
(
VehicleWarnChild:
:
getWarnStatus
,
VehicleWarnChildEnum
.
WarnStatus
.
ENABLE
.
getCode
())
.
orderByDesc
(
VehicleWarnChild:
:
getId
)
.
last
(
"limit 10000"
)
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnInfoDaoImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -74,7 +74,6 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
public
boolean
updateByConfig
(
Integer
warnConfigId
,
String
warnName
,
Integer
warnLevel
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getWarnConfigId
,
warnConfigId
)
.
ne
(
VehicleWarnInfo:
:
getStatus
,
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())
.
set
(
VehicleWarnInfo:
:
getWarnName
,
warnName
)
.
set
(
VehicleWarnInfo:
:
getWarnLevel
,
warnLevel
)
);
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnLogDaoImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -4,15 +4,11 @@ package com.clx.performance.dao.impl.vehiclewarn;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnLog
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
@Repository
public
class
VehicleWarnLogDaoImpl
extends
BaseDaoImpl
<
VehicleWarnLogMapper
,
VehicleWarnLog
,
Integer
>
implements
VehicleWarnLogDao
{
@Override
public
Optional
<
VehicleWarnLog
>
findById
(
Integer
id
)
{
return
null
;
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnUserDaoImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -37,7 +37,7 @@ public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, V
public
boolean
updateWarnType
(
VehicleWarnUser
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnUser:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnUser:
:
getWar
mTypeJson
,
item
.
getWarm
TypeJson
())
.
set
(
VehicleWarnUser:
:
getWar
nTypeJson
,
item
.
getWarn
TypeJson
())
);
}
...
...
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnChildDao.java
浏览文件 @
c4d8a1ac
...
...
@@ -9,8 +9,8 @@ import java.util.List;
public
interface
VehicleWarnChildDao
extends
BaseDao
<
VehicleWarnChildMapper
,
VehicleWarnChild
,
Integer
>
{
boolean
update
TraceTime
(
VehicleWarnChild
item
);
boolean
update
ReceiveAddressDistanc
e
(
VehicleWarnChild
item
);
boolean
update
WarnStatus
(
VehicleWarnChild
item
);
boolean
update
EstimateLoadTim
e
(
VehicleWarnChild
item
);
Optional
<
VehicleWarnChild
>
findByChildNo
(
String
childNo
);
List
<
VehicleWarnChild
>
ListTruckNoOfTrace
();
...
...
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnLogDao.java
浏览文件 @
c4d8a1ac
...
...
@@ -2,11 +2,9 @@ package com.clx.performance.dao.vehiclewarn;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnLog
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
public
interface
VehicleWarnLogDao
extends
BaseDao
<
VehicleWarnLogMapper
,
VehicleWarnLog
,
Integer
>
{
Optional
<
VehicleWarnLog
>
findById
(
Integer
id
);
}
performance-web/src/main/java/com/clx/performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
浏览文件 @
c4d8a1ac
...
...
@@ -27,6 +27,8 @@ public class VehicleWarnCommonInfoDTO {
private
LocalDateTime
lastArriveSendTime
;
//最晚到达货源地时间
private
LocalDateTime
lastArriveReceiveTime
;
//最晚到达目的地时间
private
boolean
gotoReceive
;
//前往或目的地
private
LocalDateTime
gotoReceiveTime
;
//前往或目的地时间
LocalDateTime
currentTime
;
//当前时间
...
...
performance-web/src/main/java/com/clx/performance/job/position/TruckPositionJob.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
job
.
position
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.order.enums.DeleteStatusEnum
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.TruckPositionDao
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.TruckPosition
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.user.feign.TruckFeign
;
import
com.clx.user.feign.UserClxFeign
;
import
com.clx.user.vo.feign.TruckOwnerInfoVO
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.job.JobLog
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
@Slf4j
@Component
public
class
TruckPositionJob
{
@Autowired
(
required
=
false
)
UserClxFeign
userClxFeign
;
@Autowired
(
required
=
false
)
TruckFeign
truckFeign
;
@Autowired
RedisTemplate
redisTemplate
;
@Autowired
TruckTraceService
truckTraceService
;
@Autowired
OrderChildDao
orderChildDao
;
@Autowired
TruckPositionDao
truckPositionDao
;
/**
* 车辆位置
*/
@XxlJob
(
"truckPosition"
)
public
void
truckPosition
()
{
try
{
getPlatformTruckPosition
();
}
catch
(
Exception
e
)
{
log
.
warn
(
"定时任务获取平台车辆当前定位信息失败,异常原因:{}"
,
e
);
JobLog
.
error
(
"定时任务获取平台车辆当前定位信息失败,异常原因====================="
,
e
);
}
}
/**
* @Author kavin
* @Description 定时获取平台车辆的定位
* @Param []
* @return
**/
public
void
getPlatformTruckPosition
(){
Result
<
List
<
String
>>
result
=
userClxFeign
.
getPlatformTruckList
();
log
.
info
(
"通过clx-user服务获取平台认证成功车辆,返回结果:{}"
,
JSON
.
toJSONString
(
result
));
if
(
Objects
.
equals
(
result
.
getCode
(),
ResultCodeEnum
.
SUCCESS
.
getCode
())){
List
<
TruckPosition
>
truckPositionList
=
new
ArrayList
<>();
List
<
String
>
truckNos
=
result
.
getData
();
//处理不在内的车牌号均至为失效
truckPositionDao
.
updateTruckPositionStatus
(
DeleteStatusEnum
.
YES
.
getCode
(),
truckNos
);
if
(
CollectionUtils
.
isEmpty
(
truckNos
)){
return
;
}
//有效运单集合
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
selectListWithEmptyCarList
();
Map
<
String
,
OrderChild
>
truckChildStatusMap
=
orderChildList
.
stream
()
.
collect
(
Collectors
.
toMap
(
item
->
item
.
getTruckNo
(),
item
->
item
,(
v1
,
v2
)
->
v1
));
//获取缓存中所有车辆位置信息
Map
<
String
,
TruckTraceDTO
>
truckTraceMap
=
redisTemplate
.
opsForHash
().
entries
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
beginTime
=
now
.
plus
(-
5
,
ChronoUnit
.
MINUTES
);
String
beginTimeStr
=
DateUtils
.
formatDateTime
(
beginTime
,
"yyyy-MM-dd HH:mm:ss"
).
get
();
String
endTimeStr
=
DateUtils
.
formatDateTime
(
now
,
"yyyy-MM-dd HH:mm:ss"
).
get
();
//既没接单 又没有中交兴路坐标的车辆集合
List
<
String
>
noZJXLNoChildTruckNos
=
new
ArrayList
<>();
for
(
String
truckNo
:
truckNos
){
TruckTraceDTO
trace
=
truckTraceMap
.
get
(
truckNo
);
OrderChild
child
=
truckChildStatusMap
.
get
(
truckNo
);
if
(
Objects
.
isNull
(
trace
)){
//无中交轨迹
TruckPosition
position
=
new
TruckPosition
();
position
.
setTruckNo
(
truckNo
);
position
.
setDeleteStatus
(
DeleteStatusEnum
.
NO
.
getCode
());
Long
userNo
=
null
;
if
(
Objects
.
isNull
(
child
)){
//车辆当前没有运单 取车主手机位置
Result
<
TruckOwnerInfoVO
>
truckOwnerResult
=
truckFeign
.
getTruckOwnerInfo
(
truckNo
);
if
(
Objects
.
equals
(
truckOwnerResult
.
getCode
(),
ResultCodeEnum
.
SUCCESS
.
getCode
())){
userNo
=
truckOwnerResult
.
getData
().
getUserNo
();
}
}
else
{
position
.
setChildNo
(
child
.
getChildNo
());
//车辆有运单 取运单司机手机位置
userNo
=
child
.
getDriverUserNo
();
}
if
(
Objects
.
nonNull
(
userNo
)){
List
<
DriverTraceVO
>
traceVOS
=
truckTraceService
.
listDriverTraceByTime
(
userNo
,
beginTimeStr
,
endTimeStr
);
if
(!
CollectionUtils
.
isEmpty
(
traceVOS
)){
position
.
setLatitude
(
traceVOS
.
get
(
0
).
getLatitude
());
position
.
setLongitude
(
traceVOS
.
get
(
0
).
getLongitude
());
}
}
truckPositionList
.
add
(
position
);
}
else
{
//有中交轨迹
TruckPosition
position
=
new
TruckPosition
();
position
.
setTruckNo
(
truckNo
);
position
.
setDeleteStatus
(
DeleteStatusEnum
.
NO
.
getCode
());
if
(
Objects
.
nonNull
(
child
)){
position
.
setChildNo
(
child
.
getChildNo
());
}
BigDecimal
[]
location
=
trace
.
getLocation
();
if
(
location
.
length
>
1
){
position
.
setLatitude
(
location
[
1
]);
position
.
setLongitude
(
location
[
0
]);
}
truckPositionList
.
add
(
position
);
}
}
//保存
truckPositionDao
.
replaceTruckPosition
(
truckPositionList
);
}
else
{
log
.
info
(
"通过clx-user服务获取平台认证成功车辆,获取失败"
);
}
}
}
performance-web/src/main/java/com/clx/performance/job/trace/PlatTruckTraceJob.java
浏览文件 @
c4d8a1ac
...
...
@@ -32,7 +32,7 @@ public class PlatTruckTraceJob {
try
{
// Result<List<String>> result = userClxFeign.getPlatformTruckList();
Result
<
List
<
String
>>
result
=
new
Result
<>();
result
.
setData
(
Arrays
.
asList
(
"陕KJ9799"
,
"陕KM5365"
));
result
.
setData
(
Arrays
.
asList
(
"陕KJ9799"
,
"陕KM5365"
,
"晋HG7149"
,
"晋HC3023"
,
"晋HJ3338"
));
if
(
result
.
succeed
()){
log
.
info
(
"平台车辆轨迹开始同步, size:{}"
,
result
.
getData
().
size
());
...
...
performance-web/src/main/java/com/clx/performance/job/vehiclewarn/VehicleWarnJob.java
浏览文件 @
c4d8a1ac
...
...
@@ -41,9 +41,6 @@ public class VehicleWarnJob {
for
(
VehicleWarnChild
item
:
list
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
beginTime
=
now
.
minusSeconds
(
600
);
// 发送mq (车辆预警)
vehicleWarnMqService
.
truckWarn
(
item
.
getChildNo
());
}
...
...
@@ -55,22 +52,4 @@ public class VehicleWarnJob {
}
// /**
// * 预警暂停取消
// */
// @XxlJob("vehicleWarnSuspendCancel")
// public void vehicleWarnSuspendCancel() {
//
// try {
//
// List<VehicleWarnInfo> list = vehicleWarnInfoDao.listSuspendTimeout();
// log.info("预警暂停取消, size:{}", list.size());
//
// vehicleWarnInfoDao.batchUpdateStatus(list.stream().map(item->item.getId()).collect(Collectors.toList()), VehicleWarnInfoEnum.Status.INIT.getCode());
//
// } catch (Exception e) {
// log.warn("预警暂停取消失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
// JobLog.error("预警暂停取消失败,异常原因=====================", e);
// }
// }
}
performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
浏览文件 @
c4d8a1ac
...
...
@@ -90,7 +90,7 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
List
<
Double
>
getLossNet
(
@Param
(
"param"
)
OrderChildReportParam
param
);
@Select
(
"<script>"
+
"select avg(TIMESTAMPDIFF(SECOND,
load_time,arrive_sen
d_time)) from "
+
TABLE
+
"select avg(TIMESTAMPDIFF(SECOND,
arrive_send_time,loa
d_time)) from "
+
TABLE
+
" where load_time is not null and pay_time >= #{beginTime} "
+
" <if test = 'sendSystemAddressId != null'>and send_system_address_id = #{sendSystemAddressId} </if> "
+
" <if test = 'receiveSystemAddressId != null'>and receive_system_address_id = #{receiveSystemAddressId} </if> "
+
...
...
@@ -104,7 +104,7 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
String
beginTime
);
@Select
(
"<script>"
+
"select avg(TIMESTAMPDIFF(SECOND,
unload_time,arrive_receive
_time)) from "
+
TABLE
+
"select avg(TIMESTAMPDIFF(SECOND,
arrive_receive_time,unload
_time)) from "
+
TABLE
+
" where unload_time is not null and pay_time >= #{beginTime} "
+
" <if test = 'sendSystemAddressId != null'>and send_system_address_id = #{sendSystemAddressId} </if> "
+
" <if test = 'receiveSystemAddressId != null'>and receive_system_address_id = #{receiveSystemAddressId} </if> "
+
...
...
performance-web/src/main/java/com/clx/performance/mapper/TruckPositionMapper.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.TruckPosition
;
import
com.clx.performance.sqlProvider.TruckPositionProvider
;
import
org.apache.ibatis.annotations.InsertProvider
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
@Mapper
public
interface
TruckPositionMapper
extends
BaseMapper
<
TruckPosition
>
{
@InsertProvider
(
type
=
TruckPositionProvider
.
class
,
method
=
"replaceTruckPosition"
)
void
replaceTruckPosition
(
List
<
TruckPosition
>
truckPositionList
);
}
performance-web/src/main/java/com/clx/performance/model/TruckPosition.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.msl.common.config.KeyColumn
;
import
com.msl.common.model.HasKey
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
@Getter
@Setter
@Accessors
(
chain
=
true
)
@TableName
(
"truck_position"
)
public
class
TruckPosition
implements
HasKey
<
Integer
>
{
/**
* id
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
/**
* 车牌号
*/
@TableField
(
"truck_no"
)
private
String
truckNo
;
/**
* 运单编号
*/
@TableField
(
"child_no"
)
private
String
childNo
;
/**
* 运单状态
*/
@TableField
(
"child_status"
)
private
Integer
childStatus
;;
/**
* 运单目的地所在省份
*/
@TableField
(
"child_province"
)
private
String
childProvince
;
/**
* 车辆位置所在省份
*/
@TableField
(
"truck_province"
)
private
String
truckProvince
;
/**
* 经度
*/
@TableField
(
"longitude"
)
private
BigDecimal
longitude
;
/**
* 纬度
*/
@TableField
(
"latitude"
)
private
BigDecimal
latitude
;
/**
* 删除状态: 0-否;1-是
*/
@TableField
(
"delete_status"
)
private
Integer
deleteStatus
;
/**
* 创建时间
*/
@TableField
(
"create_time"
)
private
LocalDateTime
createTime
;
@TableField
(
"modified_time"
)
private
LocalDateTime
modifiedTime
;
@KeyColumn
(
"id"
)
@Override
public
Integer
gainKey
()
{
return
id
;
}
}
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnChild.java
浏览文件 @
c4d8a1ac
...
...
@@ -39,9 +39,10 @@ public class VehicleWarnChild implements HasKey<Integer> {
private
Integer
arriveReceiveExpectTime
;
//预计到达目的地时间 (min)
private
LocalDateTime
takeTime
;
//接单时间
private
Integer
receiveAddressDistance
;
//距离目的地距离(m)
private
LocalDateTime
estimateLoadTime
;
//轨迹更新时间
private
LocalDateTime
traceTime
;
//轨迹更新时间
private
Integer
traceStatus
;
//轨迹更新状态:0禁止 1启用
private
Integer
wa
nStatus
;
//预警更新状态
:0禁用 1启用
private
Integer
wa
rnStatus
;
//预警使能
:0禁用 1启用
private
Integer
status
;
//状态
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
...
...
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnUser.java
浏览文件 @
c4d8a1ac
...
...
@@ -28,7 +28,8 @@ public class VehicleWarnUser implements HasKey<Integer> {
private
Integer
id
;
//id
private
String
name
;
//姓名
private
String
mobile
;
//手机
private
String
warmTypeJson
;
//预警配置
private
String
warnTypeJson
;
//预警配置
private
String
lineWarnTypeJson
;
//线路预警配置
private
Integer
deleteStatus
;
//删除状态: 0-否;1-是
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
service
.
impl
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.order.enums.OrderEnum
;
...
...
@@ -63,8 +64,8 @@ import com.msl.user.utils.TokenUtil;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.amqp.core.AmqpTemplate
;
...
...
@@ -1195,7 +1196,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
SETTLEMENT
.
getCode
(),
OrderChildLogEnum
.
Type
.
SETTLEMENT
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
}
@Override
...
...
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -69,17 +69,29 @@ public class TruckTraceServiceImpl implements TruckTraceService {
}
else
{
if
(
parkIdx
==
null
)
{
continue
;}
long
stayTime
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
i
).
getGpsTime
())).
getSeconds
();
traceList
.
get
(
parkIdx
).
setStayTime
(
new
BigDecimal
(
stayTime
).
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
));
traceList
.
get
(
parkIdx
).
setStayEndTime
(
traceList
.
get
(
i
).
getGpsTime
());
long
duration
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
i
).
getGpsTime
())).
getSeconds
();
BigDecimal
stayTime
=
new
BigDecimal
(
duration
)
.
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
);
for
(
int
j
=
parkIdx
;
j
<=
i
;
j
++){
traceList
.
get
(
j
).
setStayTime
(
stayTime
);
traceList
.
get
(
j
).
setStayBeginTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
());
traceList
.
get
(
j
).
setStayEndTime
(
traceList
.
get
(
i
).
getGpsTime
());
}
parkIdx
=
null
;
}
}
if
(
parkIdx
!=
null
&&
parkIdx
<
traceList
.
size
()-
1
){
long
stayTime
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
())).
getSeconds
();
traceList
.
get
(
parkIdx
).
setStayTime
(
new
BigDecimal
(
stayTime
).
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
));
traceList
.
get
(
parkIdx
).
setStayEndTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
());
long
duration
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
())).
getSeconds
();
BigDecimal
stayTime
=
new
BigDecimal
(
duration
)
.
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
);
for
(
int
j
=
parkIdx
;
j
<=
traceList
.
size
()-
1
;
j
++){
traceList
.
get
(
j
).
setStayTime
(
stayTime
);
traceList
.
get
(
j
).
setStayBeginTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
());
traceList
.
get
(
j
).
setStayEndTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
());
}
}
return
traceList
;
...
...
@@ -98,17 +110,27 @@ public class TruckTraceServiceImpl implements TruckTraceService {
}
else
{
if
(
parkIdx
==
null
)
{
continue
;}
long
stayTime
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
i
).
getGpsTime
())).
getSeconds
();
traceList
.
get
(
parkIdx
).
setStayTime
(
new
BigDecimal
(
stayTime
).
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
));
traceList
.
get
(
parkIdx
).
setStayEndTime
(
traceList
.
get
(
i
).
getGpsTime
());
long
duration
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
i
).
getGpsTime
())).
getSeconds
();
BigDecimal
stayTime
=
new
BigDecimal
(
duration
)
.
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
);
for
(
int
j
=
parkIdx
;
j
<=
i
;
j
++)
{
traceList
.
get
(
j
).
setStayTime
(
stayTime
);
traceList
.
get
(
j
).
setStayBeginTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
());
traceList
.
get
(
j
).
setStayEndTime
(
traceList
.
get
(
i
).
getGpsTime
());
}
parkIdx
=
null
;
}
}
if
(
parkIdx
!=
null
&&
parkIdx
<
traceList
.
size
()-
1
){
long
stayTime
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
())).
getSeconds
();
traceList
.
get
(
parkIdx
).
setStayTime
(
new
BigDecimal
(
stayTime
).
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
));
traceList
.
get
(
parkIdx
).
setStayEndTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
());
long
duration
=
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
traceList
.
get
(
traceList
.
size
()-
1
).
getGpsTime
())).
getSeconds
();
BigDecimal
stayTime
=
new
BigDecimal
(
duration
)
.
divide
(
new
BigDecimal
(
60
),
1
,
RoundingMode
.
HALF_UP
);
for
(
int
j
=
parkIdx
;
j
<=
traceList
.
size
()-
1
;
j
++)
{
traceList
.
get
(
j
).
setStayTime
(
stayTime
);
traceList
.
get
(
j
).
setStayBeginTime
(
traceList
.
get
(
parkIdx
).
getGpsTime
());
traceList
.
get
(
j
).
setStayEndTime
(
traceList
.
get
(
traceList
.
size
()
-
1
).
getGpsTime
());
}
}
return
traceList
;
...
...
@@ -270,9 +292,16 @@ public class TruckTraceServiceImpl implements TruckTraceService {
}
@Override
public
int
getParkTime
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusDays
(
1
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
public
int
getParkTime
(
String
truckNo
,
Long
userNo
,
LocalDateTime
beginDateTime
)
{
return
getParkTime
(
truckNo
,
userNo
,
beginDateTime
,
LocalDateTime
.
now
());
}
@Override
public
int
getParkTime
(
String
truckNo
,
Long
userNo
,
LocalDateTime
beginDateTime
,
LocalDateTime
endDateTime
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
beginDateTime
);
String
endTime
=
LocalDateTimeUtils
.
formatTime
(
endDateTime
);
boolean
flag
=
false
;
// 车辆
// 非停留最大时间
...
...
@@ -286,7 +315,10 @@ public class TruckTraceServiceImpl implements TruckTraceService {
);
String
time
=
beginTime
;
if
(!
list
.
isEmpty
()){
list
.
get
(
0
).
getGpsTime
();}
if
(!
list
.
isEmpty
()){
time
=
list
.
get
(
0
).
getGpsTime
();
flag
=
true
;
//车辆存在轨迹
}
// 停留时间段
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
...
...
@@ -299,6 +331,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
// 停留时长
return
(
int
)
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
list
.
get
(
list
.
size
()
-
1
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
list
.
get
(
0
).
getGpsTime
())).
toMinutes
();
}
if
(
flag
)
{
return
0
;}
// 司机
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
...
...
@@ -310,7 +343,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
.
limit
(
1
)
);
time
=
beginTime
;
if
(!
list1
.
isEmpty
()){
list1
.
get
(
0
).
getPositionTime
();}
if
(!
list1
.
isEmpty
()){
time
=
list1
.
get
(
0
).
getPositionTime
();}
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
lt
(
DriverTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
...
...
@@ -325,6 +358,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
return
0
;
}
@Override
public
BigDecimal
[]
getCurrentTruckPosition
(
String
truckNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
5
));
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnConfigServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -2,9 +2,11 @@ package com.clx.performance.service.impl.vehiclewarn;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnConfigService
;
import
com.clx.performance.struct.vehiclewarn.VehicleWarnConfigStruct
;
...
...
@@ -32,6 +34,9 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Autowired
private
VehicleWarnConfigStruct
vehicleWarnConfigStruct
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
saveConfig
(
VehicleWarnConfigAddParam
param
)
{
...
...
@@ -82,6 +87,10 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfig
.
setRadius
(
param
.
getRadius
());
vehicleWarnConfigDao
.
updateConfig
(
vehicleWarnConfig
);
// 同步历史数据
VehicleWarnInfo
vehicleWarnInfo
=
new
VehicleWarnInfo
();
vehicleWarnInfoDao
.
updateByConfig
(
vehicleWarnConfig
.
getId
(),
vehicleWarnConfig
.
getWarnName
(),
vehicleWarnConfig
.
getWarnLevel
());
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnDelayWarnServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -63,7 +63,7 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
// 计算需要的时间
Integer
needTime
=
sendAddressTime
+
loadTime
+
expectTime
+
unloadTime
;
log
.
info
(
"运单延误,sendAddressTime:{}, loadTime:{}, expectTime:{}, unloadTime:{}, needTime:{}"
,
sendAddressTime
,
loadTime
,
expectTime
,
unloadTime
,
needTime
);
// 超时
if
(
transportEndTime
.
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -6,6 +6,7 @@ import com.clx.performance.dao.OrderChildDao;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnRangeDao
;
import
com.clx.performance.enums.DriverTruckEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnLogEnum
;
...
...
@@ -138,23 +139,26 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
if
(
orderChild
.
getFinishTime
()
!=
null
)
{
endTime
=
orderChild
.
getFinishTime
();}
if
(
endTime
.
isAfter
(
beginTime
.
plusDays
(
TRUCK_TRACE_DAY_MAX
)))
{
endTime
=
beginTime
.
plusDays
(
TRUCK_TRACE_DAY_MAX
);}
//最多查询3天
List
<
DriverTruckTraceVO
>
truckTraceList
=
truckTraceService
.
calcTruckStayTime
(
truckTraceService
.
listTruckTraceByTime
(
vehicleWarnInfo
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
)));
List
<
DriverTraceVO
>
driverTraceList
=
truckTraceService
.
calcDriverStayTime
(
truckTraceService
.
listDriverTraceByTime
(
vehicleWarnInfo
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
)));
List
<
DriverTruckTraceVO
>
truckTraceList
=
truckTraceService
.
listTruckTraceByTime
(
vehicleWarnInfo
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
// 接单重车、卸车空车
for
(
DriverTruckTraceVO
item
:
truckTraceList
)
{
item
.
setTruckStatus
(
2
);
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
HEAVY
.
getCode
()
);
if
(
orderChild
.
getCancelTime
()
!=
null
){
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getCancelTime
())){
item
.
setTruckStatus
(
1
);}
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getCancelTime
())){
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
EMPTY
.
getCode
());}
}
if
(
orderChild
.
getUnloadTime
()
!=
null
){
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getUnloadTime
())){
item
.
setTruckStatus
(
1
);}
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getUnloadTime
())){
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
EMPTY
.
getCode
());}
}
}
List
<
DriverTraceVO
>
driverTraceList
=
truckTraceService
.
listDriverTraceByTime
(
vehicleWarnInfo
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
VehicleTraceVO
result
=
new
VehicleTraceVO
();
result
.
setDriverTraceList
(
driverTraceList
);
result
.
setTruckTraceList
(
truckTrace
List
);
result
.
setDriverTraceList
(
truckTraceService
.
splitDriverTrace
(
driverTraceList
)
);
result
.
setTruckTraceList
(
truckTrace
Service
.
splitTruckTrace
(
truckTraceList
)
);
return
result
;
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -16,15 +16,18 @@ import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum
;
import
com.clx.performance.extranal.user.OrderService
;
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.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
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.TruckTraceMqHandlerService
;
import
com.clx.performance.service.vehiclewarn.*
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -41,6 +44,7 @@ import java.util.Objects;
@Slf4j
@Service
public
class
VehicleWarnMqHandlerServiceImpl
implements
VehicleWarnMqHandlerService
{
private
static
final
Integer
DISTANCE_DEFAULT
=
2000
;
@Autowired
private
OrderChildDao
orderChildDao
;
...
...
@@ -70,16 +74,36 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
private
OrderService
orderService
;
@Autowired
private
VehicleWarnDelayWarnService
vehicleWarnDelayWarnService
;
@Autowired
private
TruckTraceMqHandlerService
truckTraceMqHandlerService
;
@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
);
// 同步车辆轨迹
TruckTraceSyncMqParam
truckTraceSyncMqParam
=
new
TruckTraceSyncMqParam
();
truckTraceSyncMqParam
.
setChildNo
(
orderChild
.
getChildNo
());
truckTraceSyncMqParam
.
setTruckNo
(
orderChild
.
getTruckNo
());
truckTraceSyncMqParam
.
setBeginTime
(
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
5
)));
truckTraceSyncMqParam
.
setEndTime
(
LocalDateTimeUtils
.
formatTime
());
try
{
truckTraceMqHandlerService
.
truckTracSync
(
truckTraceSyncMqParam
);
}
catch
(
Exception
e
){
log
.
info
(
"同步车辆轨迹失败, msg:{}"
,
e
.
getMessage
());
}
// 计算预计时间
BigDecimal
[]
currentPosition
=
vehicleWarnCommonService
.
getCurrentPosition
(
orderChild
.
getTruckNo
(),
orderChild
.
getDriverUserNo
());
int
arriveSendExpectTime
=
vehicleWarnCommonService
.
getNeedTime
(
currentPosition
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
());
int
arriveReceiveExpectTime
=
vehicleWarnCommonService
.
getNeedTime
(
currentPosition
,
orderGoods
.
getReceiveLongitude
(),
orderGoods
.
getReceiveLatitude
());
BigDecimal
[]
currentPosition
=
vehicleWarnCommonService
.
getCurrentPosition
(
orderChild
.
getTruckNo
(),
orderChild
.
getDriverUserNo
());
int
arriveSendExpectTime
=
vehicleWarnCommonService
.
getNeedTime
(
currentPosition
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
());
int
arriveReceiveExpectTime
=
vehicleWarnCommonService
.
getNeedTime
(
new
BigDecimal
[]{
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
()},
orderGoods
.
getReceiveLongitude
(),
orderGoods
.
getReceiveLatitude
());
int
needDistance
=
vehicleWarnCommonService
.
getNeedDistance
(
new
BigDecimal
[]{
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
()},
orderGoods
.
getReceiveLongitude
(),
orderGoods
.
getReceiveLatitude
());
VehicleWarnChild
vehicleWarnChild
=
new
VehicleWarnChild
();
vehicleWarnChild
.
setOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
());
...
...
@@ -92,9 +116,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
vehicleWarnChild
.
setReceiveLatitude
(
orderGoods
.
getReceiveLatitude
());
vehicleWarnChild
.
setArriveSendExpectTime
(
arriveSendExpectTime
==
0
?
null
:
arriveSendExpectTime
);
vehicleWarnChild
.
setArriveReceiveExpectTime
(
arriveReceiveExpectTime
==
0
?
null
:
arriveReceiveExpectTime
);
vehicleWarnChild
.
setReceiveAddressDistance
(
needDistance
);
vehicleWarnChild
.
setTakeTime
(
orderChild
.
getPayTime
());
vehicleWarnChild
.
setTraceTime
(
LocalDateTime
.
now
());
vehicleWarnChild
.
setWarnStatus
(
VehicleWarnChildEnum
.
WarnStatus
.
ENABLE
.
getCode
());
vehicleWarnChildDao
.
saveEntity
(
vehicleWarnChild
);
}
...
...
@@ -136,7 +162,34 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
commonInfo
.
setReceiveAddressDistance
(
vehicleWarnCommonService
.
getNeedDistance
(
commonInfo
.
getCurrentPosition
(),
vehicleWarnChild
.
getReceiveLongitude
(),
vehicleWarnChild
.
getReceiveLatitude
()));
}
log
.
info
(
"commonInfo:{}"
,
commonInfo
.
toString
());
// 未装车前往目的地判断
commonInfo
.
setGotoReceive
(
false
);
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())){
// 首次不处理预警
if
(
vehicleWarnChild
.
getEstimateLoadTime
()
!=
null
){
commonInfo
.
setGotoReceive
(
true
);
commonInfo
.
setGotoReceiveTime
(
vehicleWarnChild
.
getEstimateLoadTime
());
}
else
{
Integer
needDistance
=
commonInfo
.
getReceiveAddressDistance
();
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()-
needDistance
>
DISTANCE_DEFAULT
){
commonInfo
.
setGotoReceive
(
true
);
commonInfo
.
setGotoReceiveTime
(
LocalDateTime
.
now
());
vehicleWarnChild
.
setEstimateLoadTime
(
commonInfo
.
getGotoReceiveTime
());
vehicleWarnChildDao
.
updateEstimateLoadTime
(
vehicleWarnChild
);
}
}
}
else
{
if
(
orderChild
.
getLoadTime
()
!=
null
){
commonInfo
.
setGotoReceive
(
true
);
commonInfo
.
setGotoReceiveTime
(
orderChild
.
getLoadTime
());
}
}
log
.
info
(
"commonInfo:{}"
,
commonInfo
);
// 前往货源地超时
...
...
@@ -243,11 +296,17 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
}
}
// 更新目的地距离
if
(
commonInfo
.
getReceiveAddressDistance
()
!=
null
)
{
vehicleWarnChild
.
setReceiveAddressDistance
(
commonInfo
.
getReceiveAddressDistance
());
vehicleWarnChildDao
.
updateReceiveAddressDistance
(
vehicleWarnChild
);
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
DRIVER_CANCEL
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PLATFORM_CANCEL
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
OWNER_CANCEL
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getCode
())
)
{
// 运单结束不再预警
vehicleWarnChild
.
setWarnStatus
(
VehicleWarnChildEnum
.
TraceStatus
.
DISABLE
.
getCode
());
vehicleWarnChildDao
.
updateWarnStatus
(
vehicleWarnChild
);
}
}
@Override
...
...
@@ -259,7 +318,7 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
// 过滤需要通知的人员
List
<
VehicleWarnUser
>
list
=
vehicleWarnUserDao
.
listAllEnable
();
for
(
VehicleWarnUser
item
:
list
)
{
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
item
.
getWar
m
TypeJson
(),
Integer
.
class
);
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
item
.
getWar
n
TypeJson
(),
Integer
.
class
);
if
(
warnTypeList
.
contains
(
vehicleWarnInfo
.
getWarnType
())){
mobileList
.
add
(
item
.
getMobile
());
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnParkWarnServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -46,22 +47,11 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
public
void
packTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
// 未装车前往目的地判断
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())){
// 首次不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()
==
null
){
return
;
}
else
{
Integer
needDistance
=
commonInfo
.
getReceiveAddressDistance
();
// 未前往目的地不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()-
needDistance
<
DISTANCE_DEFAULT
){
return
;}
}
}
if
(!
commonInfo
.
isGotoReceive
())
{
return
;}
orderChild
.
setLoadTime
(
commonInfo
.
getGotoReceiveTime
());
// 停留时间
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
());
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
()
,
orderChild
.
getLoadTime
()
);
log
.
info
(
"停留超时,停留时间:{}"
,
parkTime
);
if
(
parkTime
==
0
)
{
return
;}
...
...
@@ -87,7 +77,8 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
();
if
(
parkTime
>
time
){
return
;}
log
.
info
(
"停留超时,parkTime:{}, time:{}"
,
parkTime
,
time
);
if
(
parkTime
<
time
){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
...
...
@@ -101,23 +92,11 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
public
void
sensitiveAreaParkTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
)
{
// 未装车前往目的地判断
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())){
// 首次不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()
==
null
){
return
;
}
else
{
Integer
needDistance
=
commonInfo
.
getReceiveAddressDistance
();
// 未前往目的地不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()-
needDistance
<
DISTANCE_DEFAULT
){
return
;}
}
}
if
(!
commonInfo
.
isGotoReceive
())
{
return
;}
orderChild
.
setLoadTime
(
commonInfo
.
getGotoReceiveTime
());
// 停留时间
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
());
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
()
,
vehicleWarnChild
.
getTakeTime
()
);
log
.
info
(
"敏感区停留超时,停留时间:{}"
,
parkTime
);
if
(
parkTime
<
PARK_TIMEOUT_DEFAULT
)
{
return
;}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnReceiveAddressWarnServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -44,22 +44,9 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
if
(
vehicleWarnChild
.
getArriveReceiveExpectTime
()
==
null
)
{
return
;}
// 未装车前往目的地判断
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())){
if
(
!
commonInfo
.
isGotoReceive
())
{
return
;}
// 首次不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()
==
null
){
return
;
}
else
{
Integer
needDistance
=
commonInfo
.
getReceiveAddressDistance
();
// 未前往目的地不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()-
needDistance
<
DISTANCE_DEFAULT
){
return
;}
// 假定当前已装车
orderChild
.
setLoadTime
(
LocalDateTime
.
now
());
}
}
orderChild
.
setLoadTime
(
commonInfo
.
getGotoReceiveTime
());
// 理论时间
Integer
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
...
...
@@ -90,6 +77,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
expectTime
)).
divide
(
new
BigDecimal
(
"100"
),
0
,
RoundingMode
.
HALF_UP
).
intValue
();
log
.
info
(
"前往目的地超时, childNo:{}, loadTime:{}, expectTime:{}, time:{}, needTime:{}"
,
loadTime
,
expectTime
,
time
,
needTime
);
if
(
loadTime
.
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
// 更新
...
...
@@ -105,19 +94,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
if
(
vehicleWarnChild
.
getArriveReceiveExpectTime
()
==
null
)
{
return
;}
// 未装车前往目的地判断
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())){
// 首次不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()
==
null
){
return
;
}
else
{
Integer
needDistance
=
commonInfo
.
getReceiveAddressDistance
();
// 未前往目的地不处理预警
if
(
vehicleWarnChild
.
getReceiveAddressDistance
()-
needDistance
<
DISTANCE_DEFAULT
){
return
;}
}
}
if
(!
commonInfo
.
isGotoReceive
())
{
return
;}
// 计算需要的时间
int
needTime
=
commonInfo
.
getReceiveAddressTime
();
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -39,9 +39,9 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
if
(
vehicleWarnChild
.
getArrive
Receive
ExpectTime
()
==
null
)
{
return
;}
if
(
vehicleWarnChild
.
getArrive
Send
ExpectTime
()
==
null
)
{
return
;}
long
expectTime
=
vehicleWarnChild
.
getArrive
Receive
ExpectTime
();
long
expectTime
=
vehicleWarnChild
.
getArrive
Send
ExpectTime
();
// 计算需要的时间
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
...
...
@@ -67,6 +67,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
expectTime
)).
divide
(
new
BigDecimal
(
"100"
),
0
,
RoundingMode
.
HALF_UP
).
intValue
();
log
.
info
(
"前往货源地超时, childNo:{}, takeTime:{}, expectTime:{}, time:{}, needTime:{}"
,
orderChild
.
getChildNo
(),
orderChild
.
getPayTime
(),
expectTime
,
time
,
needTime
);
if
(
orderChild
.
getPayTime
().
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
// 更新
...
...
@@ -86,7 +88,7 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
LocalDateTime
lastArriveSendTime
=
commonInfo
.
getLastArriveSendTime
();
log
.
info
(
"到达货源地延误, childNo:{},
takeTime:{}, arriveSendExpectTime:{}, needTime:{}"
,
orderChild
.
getChildNo
(),
vehicleWarnChild
.
getTakeTime
(),
vehicleWarnChild
.
getArriveSendExpectTime
()
,
needTime
);
log
.
info
(
"到达货源地延误, childNo:{},
lastArriveSendTime:{}, needTime:{}"
,
orderChild
.
getChildNo
(),
lastArriveSendTime
,
needTime
);
// 超时判断
LocalDateTime
now
=
LocalDateTime
.
now
();
if
(
lastArriveSendTime
.
isAfter
(
now
.
plusMinutes
(
needTime
)))
{
return
;}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnUserServiceImpl.java
浏览文件 @
c4d8a1ac
...
...
@@ -50,7 +50,8 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
VehicleWarnUser
vehicleWarnUser
=
new
VehicleWarnUser
();
vehicleWarnUser
.
setName
(
param
.
getName
());
vehicleWarnUser
.
setMobile
(
param
.
getMobile
());
vehicleWarnUser
.
setWarmTypeJson
(
JSON
.
toJSONString
(
warnTypeList
));
vehicleWarnUser
.
setWarnTypeJson
(
JSON
.
toJSONString
(
warnTypeList
));
vehicleWarnUser
.
setLineWarnTypeJson
(
JSON
.
toJSONString
(
new
ArrayList
<>()));
vehicleWarnUser
.
setCreateBy
(
loginUserInfo
.
getUserName
());
vehicleWarnUserDao
.
saveEntity
(
vehicleWarnUser
);
...
...
@@ -78,7 +79,7 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
List
<
Integer
>
warnTypeList
=
param
.
getWarnTypeList
().
stream
().
filter
(
item
->
Objects
.
equals
(
item
.
getEnable
(),
1
)).
map
(
item
->
item
.
getWarnType
()).
collect
(
Collectors
.
toList
());
vehicleWarnUser
.
setWar
m
TypeJson
(
JSON
.
toJSONString
(
warnTypeList
));
vehicleWarnUser
.
setWar
n
TypeJson
(
JSON
.
toJSONString
(
warnTypeList
));
vehicleWarnUserDao
.
updateWarnType
(
vehicleWarnUser
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
浏览文件 @
c4d8a1ac
...
...
@@ -6,6 +6,7 @@ import com.clx.performance.vo.pc.trace.DriverTraceVO;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
public
interface
TruckTraceService
{
...
...
@@ -19,7 +20,8 @@ public interface TruckTraceService {
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
);
int
getParkTime
(
String
truckNo
,
Long
userNo
);
int
getParkTime
(
String
truckNo
,
Long
userNo
,
LocalDateTime
beginDateTime
);
int
getParkTime
(
String
truckNo
,
Long
userNo
,
LocalDateTime
beginTime
,
LocalDateTime
endTime
);
BigDecimal
[]
getCurrentTruckPosition
(
String
truckNo
);
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/TruckPositionProvider.java
0 → 100644
浏览文件 @
c4d8a1ac
package
com
.
clx
.
performance
.
sqlProvider
;
import
com.clx.order.enums.DeleteStatusEnum
;
import
com.clx.performance.model.TruckPosition
;
import
org.apache.commons.lang.StringUtils
;
import
java.util.List
;
import
java.util.Objects
;
/**
* 车辆位置;
*
* @author : jiangwenye
* @date : 2024-05-29
*/
public
class
TruckPositionProvider
{
public
String
replaceTruckPosition
(
List
<
TruckPosition
>
truckPositionList
)
{
StringBuffer
sqlList
=
new
StringBuffer
();
sqlList
.
append
(
" REPLACE INTO truck_position "
+
"(truck_no,child_no,child_status,child_province,truck_province,"
+
"longitude,latitude,delete_status) "
+
" VALUES "
);
for
(
int
i
=
0
;
i
<
truckPositionList
.
size
();
i
++)
{
TruckPosition
tp
=
truckPositionList
.
get
(
i
);
sqlList
.
append
(
" ('"
)
.
append
(
tp
.
getTruckNo
()).
append
(
"','"
)
.
append
(
StringUtils
.
isEmpty
(
tp
.
getChildNo
())?
""
:
tp
.
getChildNo
()).
append
(
"',"
)
.
append
(
Objects
.
isNull
(
tp
.
getChildStatus
())?
0
:
tp
.
getChildStatus
()).
append
(
",'"
)
.
append
(
StringUtils
.
isEmpty
(
tp
.
getChildProvince
())?
""
:
tp
.
getChildProvince
()).
append
(
"','"
)
.
append
(
StringUtils
.
isEmpty
(
tp
.
getTruckProvince
())?
""
:
tp
.
getTruckProvince
()).
append
(
"',"
)
.
append
(
Objects
.
isNull
(
tp
.
getLongitude
())?
0
:
tp
.
getLongitude
()).
append
(
","
)
.
append
(
Objects
.
isNull
(
tp
.
getLatitude
())?
0
:
tp
.
getLatitude
()).
append
(
","
)
.
append
(
DeleteStatusEnum
.
NO
.
getCode
())
.
append
(
")"
);
if
(
i
<
truckPositionList
.
size
()
-
1
)
{
sqlList
.
append
(
","
);
}
}
return
sqlList
.
toString
();
}
}
performance-web/src/main/java/com/clx/performance/struct/collect/CollectTruckWaitStruct.java
浏览文件 @
c4d8a1ac
...
...
@@ -4,12 +4,14 @@ import com.clx.performance.model.collect.CollectTruckWait;
import
com.clx.performance.vo.pc.collect.CollectTruckWaitVO
;
import
com.msl.common.utils.DateStructUtil
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
java.util.Objects
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
Objects
.
class
})
public
interface
CollectTruckWaitStruct
{
@Mapping
(
target
=
"stationTime"
,
source
=
"stationInTime"
)
CollectTruckWaitVO
convert
(
CollectTruckWait
item
);
}
performance-web/src/main/java/com/clx/performance/utils/zjxl/ZjxlGpsService.java
浏览文件 @
c4d8a1ac
...
...
@@ -170,7 +170,7 @@ public class ZjxlGpsService {
*/
public
ZjxlResultDTO
postHttps
(
String
api
,
String
token
,
Map
<
String
,
String
>
map
){
if
(
"dev"
.
equals
(
active
)
//
|| "test".equals(active)
||
"test"
.
equals
(
active
)
||
"release"
.
equals
(
active
))
{
String
result
=
"{\"status\":1001,\"result\":{\"mileage\":\"177.3\",\"parkSize\":\"5\",\"cityArray\":[],\"parkArray\":[{\"parkMins\":\"136\",\"parkBte\":\"1686731162000\",\"parkEte\":\"1686739373000\",\"parkLon\":\"66528174\",\"parkLat\":\"23798859\",\"parkAdr\":\"内蒙古自治区鄂尔多斯市准格尔旗安通驾校,西北方向,37.2米\"},{\"parkMins\":\"703\",\"parkBte\":\"1686739723000\",\"parkEte\":\"1686781943000\",\"parkLon\":\"66536286\",\"parkLat\":\"23780995\",\"parkAdr\":\"内蒙古自治区鄂尔多斯市准格尔旗准格尔南路与林荫街交叉口北正东方向150米远昇汽车服务站,东方向,158.3米\"},{\"parkMins\":\"6\",\"parkBte\":\"1686787930000\",\"parkEte\":\"1686788310000\",\"parkLon\":\"66846810\",\"parkLat\":\"23680326\",\"parkAdr\":\"山西省忻州市偏关县华部石化吕家窑站,西北方向,45.2米\"},{\"parkMins\":\"23\",\"parkBte\":\"1686794098000\",\"parkEte\":\"1686795526000\",\"parkLon\":\"67017985\",\"parkLat\":\"23472582\",\"parkAdr\":\"山西省忻州市五寨县索家沟村,西北方向,914.3米\"},{\"parkMins\":\"8\",\"parkBte\":\"1686795541000\",\"parkEte\":\"1686796074000\",\"parkLon\":\"67018158\",\"parkLat\":\"23472493\",\"parkAdr\":\"山西省忻州市五寨县索家沟村,西北方向,884.6米\"}],\"trackArray\":[{\"lat\":\"23821540\",\"lon\":\"66283857\",\"gtm\":\"20230614/153826\",\"spd\":\"64.8\",\"mlg\":\"240353.5\",\"hgt\":\"1303\",\"agl\":\"98\"},{\"lat\":\"23821095\",\"lon\":\"66287817\",\"gtm\":\"20230614/153856\",\"spd\":\"72.2\",\"mlg\":\"240354.1\",\"hgt\":\"1296\",\"agl\":\"98\"},{\"lat\":\"23820847\",\"lon\":\"66290056\",\"gtm\":\"20230614/153912\",\"spd\":\"79.6\",\"mlg\":\"240354.5\",\"hgt\":\"1288\",\"agl\":\"97\"},{\"lat\":\"23820588\",\"lon\":\"66292374\",\"gtm\":\"20230614/153926\",\"spd\":\"79.6\",\"mlg\":\"240354.9\",\"hgt\":\"1281\",\"agl\":\"98\"},{\"lat\":\"23820537\",\"lon\":\"66292831\",\"gtm\":\"20230614/153928\",\"spd\":\"77.7\",\"mlg\":\"240354.9\",\"hgt\":\"1281\",\"agl\":\"97\"},{\"lat\":\"23820378\",\"lon\":\"66296466\",\"gtm\":\"20230614/153956\",\"spd\":\"62.9\",\"mlg\":\"240355.5\",\"hgt\":\"1282\",\"agl\":\"87\"},{\"lat\":\"23820952\",\"lon\":\"66300832\",\"gtm\":\"20230614/154027\",\"spd\":\"87.0\",\"mlg\":\"240356.2\",\"hgt\":\"1279\",\"agl\":\"76\"},{\"lat\":\"23821167\",\"lon\":\"66302023\",\"gtm\":\"20230614/154034\",\"spd\":\"90.7\",\"mlg\":\"240356.4\",\"hgt\":\"1280\",\"agl\":\"76\"},{\"lat\":\"23821960\",\"lon\":\"66305943\",\"gtm\":\"20230614/154058\",\"spd\":\"79.6\",\"mlg\":\"240357.1\",\"hgt\":\"1297\",\"agl\":\"72\"},{\"lat\":\"23823291\",\"lon\":\"66310339\",\"gtm\":\"20230614/154129\",\"spd\":\"72.2\",\"mlg\":\"240357.8\",\"hgt\":\"1310\",\"agl\":\"69\"}]}}"
;
//String result = "{\"status\":1006,\"result\":\"无数据\"}";
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论