Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
be3f81ee
提交
be3f81ee
authored
5月 11, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v14.4_vehicle_warn_20240425' into test
# Conflicts: # performance-web/pom.xml # performance-web/src/main/java/com/clx/performance/controller/temp/TempController.java
上级
6885ac48
8fe636df
隐藏空白字符变更
内嵌
并排
正在显示
127 个修改的文件
包含
5743 行增加
和
3 行删除
+5743
-3
ResultEnum.java
...i/src/main/java/com/clx/performance/enums/ResultEnum.java
+44
-0
VehicleWarnChildEnum.java
...x/performance/enums/vehiclewarn/VehicleWarnChildEnum.java
+48
-0
VehicleWarnConfigEnum.java
.../performance/enums/vehiclewarn/VehicleWarnConfigEnum.java
+74
-0
VehicleWarnInfoEnum.java
...lx/performance/enums/vehiclewarn/VehicleWarnInfoEnum.java
+31
-0
VehicleWarnLogEnum.java
...clx/performance/enums/vehiclewarn/VehicleWarnLogEnum.java
+48
-0
VehicleWarnRangEnum.java
...lx/performance/enums/vehiclewarn/VehicleWarnRangEnum.java
+50
-0
VehicleWarnUserEnum.java
...lx/performance/enums/vehiclewarn/VehicleWarnUserEnum.java
+22
-0
TruckTraceSyncMqParam.java
...clx/performance/param/mq/trace/TruckTraceSyncMqParam.java
+24
-0
VehicleWarnChildAddMqParam.java
...ance/param/mq/vehiclewarn/VehicleWarnChildAddMqParam.java
+22
-0
VehicleWarnTruckWarnMqParam.java
...nce/param/mq/vehiclewarn/VehicleWarnTruckWarnMqParam.java
+22
-0
VehicleWarnTruckWarnNoticeMqParam.java
...ram/mq/vehiclewarn/VehicleWarnTruckWarnNoticeMqParam.java
+22
-0
PageVehicleWarnConfigParam.java
...ance/param/pc/vehiclewarn/PageVehicleWarnConfigParam.java
+27
-0
PageVehicleWarnInfoParam.java
...rmance/param/pc/vehiclewarn/PageVehicleWarnInfoParam.java
+36
-0
PageVehicleWarnUserParam.java
...rmance/param/pc/vehiclewarn/PageVehicleWarnUserParam.java
+20
-0
VehicleWarnConfigAddParam.java
...mance/param/pc/vehiclewarn/VehicleWarnConfigAddParam.java
+40
-0
VehicleWarnConfigDeleteUpdateParam.java
...am/pc/vehiclewarn/VehicleWarnConfigDeleteUpdateParam.java
+19
-0
VehicleWarnConfigStatusUpdateParam.java
...am/pc/vehiclewarn/VehicleWarnConfigStatusUpdateParam.java
+22
-0
VehicleWarnConfigUpdateParam.java
...ce/param/pc/vehiclewarn/VehicleWarnConfigUpdateParam.java
+44
-0
VehicleWarnInfoResolveUpdateParam.java
...ram/pc/vehiclewarn/VehicleWarnInfoResolveUpdateParam.java
+19
-0
VehicleWarnInfoSuspendUpdateParam.java
...ram/pc/vehiclewarn/VehicleWarnInfoSuspendUpdateParam.java
+24
-0
VehicleWarnUserAddParam.java
...ormance/param/pc/vehiclewarn/VehicleWarnUserAddParam.java
+22
-0
VehicleWarnUserConfigUpdateParam.java
...aram/pc/vehiclewarn/VehicleWarnUserConfigUpdateParam.java
+23
-0
VehicleWarnUserDeleteParam.java
...ance/param/pc/vehiclewarn/VehicleWarnUserDeleteParam.java
+18
-0
VehicleWarnUserUpdateParam.java
...ance/param/pc/vehiclewarn/VehicleWarnUserUpdateParam.java
+26
-0
DriverTraceAddParam.java
...a/com/clx/performance/param/temp/DriverTraceAddParam.java
+36
-0
TruckTraceAddParam.java
...va/com/clx/performance/param/temp/TruckTraceAddParam.java
+42
-0
DriverTraceVO.java
...n/java/com/clx/performance/vo/pc/trace/DriverTraceVO.java
+27
-0
DriverTruckTraceVO.java
...a/com/clx/performance/vo/pc/trace/DriverTruckTraceVO.java
+33
-0
VehicleTraceVO.java
...com/clx/performance/vo/pc/vehiclewarn/VehicleTraceVO.java
+29
-0
VehicleWarnConfigVO.java
...lx/performance/vo/pc/vehiclewarn/VehicleWarnConfigVO.java
+88
-0
VehicleWarnInfoVO.java
.../clx/performance/vo/pc/vehiclewarn/VehicleWarnInfoVO.java
+112
-0
VehicleWarnLogVO.java
...m/clx/performance/vo/pc/vehiclewarn/VehicleWarnLogVO.java
+49
-0
VehicleWarnUserVO.java
.../clx/performance/vo/pc/vehiclewarn/VehicleWarnUserVO.java
+80
-0
pom.xml
performance-web/pom.xml
+30
-0
PerformanceApplication.java
...main/java/com/clx/performance/PerformanceApplication.java
+2
-0
ClxMessageConfig.java
...ain/java/com/clx/performance/config/ClxMessageConfig.java
+4
-0
EsCustomizer.java
...rc/main/java/com/clx/performance/config/EsCustomizer.java
+65
-0
EsPoolProperties.java
...ain/java/com/clx/performance/config/EsPoolProperties.java
+31
-0
RabbitTraceConfig.java
...in/java/com/clx/performance/config/RabbitTraceConfig.java
+63
-0
RabbitVehicleWarnConfig.java
...a/com/clx/performance/config/RabbitVehicleWarnConfig.java
+87
-0
RabbitKeyTraceConstants.java
...com/clx/performance/constant/RabbitKeyTraceConstants.java
+42
-0
RabbitKeyVehicleWarnConstants.java
...x/performance/constant/RabbitKeyVehicleWarnConstants.java
+54
-0
VehicleWarnConfigController.java
...ontroller/pc/vehiclewarn/VehicleWarnConfigController.java
+83
-0
VehicleWarnInfoController.java
.../controller/pc/vehiclewarn/VehicleWarnInfoController.java
+67
-0
VehicleWarnUserController.java
.../controller/pc/vehiclewarn/VehicleWarnUserController.java
+77
-0
TempTraceController.java
.../clx/performance/controller/temp/TempTraceController.java
+66
-0
TempVehicleWarnController.java
...erformance/controller/temp/TempVehicleWarnController.java
+46
-0
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+7
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+16
-0
VehicleWarnChildDaoImpl.java
...ormance/dao/impl/vehiclewarn/VehicleWarnChildDaoImpl.java
+51
-0
VehicleWarnConfigDaoImpl.java
...rmance/dao/impl/vehiclewarn/VehicleWarnConfigDaoImpl.java
+85
-0
VehicleWarnInfoDaoImpl.java
...formance/dao/impl/vehiclewarn/VehicleWarnInfoDaoImpl.java
+109
-0
VehicleWarnLogDaoImpl.java
...rformance/dao/impl/vehiclewarn/VehicleWarnLogDaoImpl.java
+18
-0
VehicleWarnRangeDaoImpl.java
...ormance/dao/impl/vehiclewarn/VehicleWarnRangeDaoImpl.java
+26
-0
VehicleWarnUserDaoImpl.java
...formance/dao/impl/vehiclewarn/VehicleWarnUserDaoImpl.java
+78
-0
VehicleWarnChildDao.java
.../clx/performance/dao/vehiclewarn/VehicleWarnChildDao.java
+18
-0
VehicleWarnConfigDao.java
...clx/performance/dao/vehiclewarn/VehicleWarnConfigDao.java
+24
-0
VehicleWarnInfoDao.java
...m/clx/performance/dao/vehiclewarn/VehicleWarnInfoDao.java
+28
-0
VehicleWarnLogDao.java
...om/clx/performance/dao/vehiclewarn/VehicleWarnLogDao.java
+12
-0
VehicleWarnRangeDao.java
.../clx/performance/dao/vehiclewarn/VehicleWarnRangeDao.java
+12
-0
VehicleWarnUserDao.java
...m/clx/performance/dao/vehiclewarn/VehicleWarnUserDao.java
+25
-0
VehicleWarnCommonInfoDTO.java
...performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
+32
-0
DriverTraceESPlusMapper.java
...lx/performance/esplus/mapper/DriverTraceESPlusMapper.java
+8
-0
TruckTraceESPlusMapper.java
...clx/performance/esplus/mapper/TruckTraceESPlusMapper.java
+8
-0
DriverTraceESPlus.java
...a/com/clx/performance/esplus/model/DriverTraceESPlus.java
+42
-0
TruckTraceESPlus.java
...va/com/clx/performance/esplus/model/TruckTraceESPlus.java
+30
-0
TruckTraceJob.java
.../src/main/java/com/clx/performance/job/TruckTraceJob.java
+4
-1
VehicleTraceJob.java
...n/java/com/clx/performance/job/trace/VehicleTraceJob.java
+52
-0
VehicleWarnJob.java
...a/com/clx/performance/job/vehiclewarn/VehicleWarnJob.java
+76
-0
TraceDelayListener.java
...om/clx/performance/listener/trace/TraceDelayListener.java
+43
-0
TruckTraceSyncListener.java
...lx/performance/listener/trace/TruckTraceSyncListener.java
+43
-0
VehicleWarnChildAddListener.java
...nce/listener/vehiclewarn/VehicleWarnChildAddListener.java
+43
-0
VehicleWarnDelayListener.java
...rmance/listener/vehiclewarn/VehicleWarnDelayListener.java
+43
-0
VehicleWarnTruckWarnListener.java
...ce/listener/vehiclewarn/VehicleWarnTruckWarnListener.java
+43
-0
VehicleWarnTruckWarnNoticeListener.java
...tener/vehiclewarn/VehicleWarnTruckWarnNoticeListener.java
+43
-0
OrderChildMapper.java
...ain/java/com/clx/performance/mapper/OrderChildMapper.java
+30
-0
VehicleWarnChildMapper.java
...erformance/mapper/vehiclewarn/VehicleWarnChildMapper.java
+12
-0
VehicleWarnConfigMapper.java
...rformance/mapper/vehiclewarn/VehicleWarnConfigMapper.java
+23
-0
VehicleWarnInfoMapper.java
...performance/mapper/vehiclewarn/VehicleWarnInfoMapper.java
+23
-0
VehicleWarnLogMapper.java
.../performance/mapper/vehiclewarn/VehicleWarnLogMapper.java
+13
-0
VehicleWarnRangMapper.java
...performance/mapper/vehiclewarn/VehicleWarnRangMapper.java
+12
-0
VehicleWarnUserMapper.java
...performance/mapper/vehiclewarn/VehicleWarnUserMapper.java
+24
-0
VehicleWarnChild.java
...m/clx/performance/model/vehiclewarn/VehicleWarnChild.java
+55
-0
VehicleWarnConfig.java
.../clx/performance/model/vehiclewarn/VehicleWarnConfig.java
+52
-0
VehicleWarnInfo.java
...om/clx/performance/model/vehiclewarn/VehicleWarnInfo.java
+57
-0
VehicleWarnLog.java
...com/clx/performance/model/vehiclewarn/VehicleWarnLog.java
+46
-0
VehicleWarnRang.java
...om/clx/performance/model/vehiclewarn/VehicleWarnRang.java
+46
-0
VehicleWarnUser.java
...om/clx/performance/model/vehiclewarn/VehicleWarnUser.java
+42
-0
OrderChildPostService.java
.../clx/performance/service/child/OrderChildPostService.java
+1
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+2
-2
OrderChildPostServiceImpl.java
...ormance/service/impl/child/OrderChildPostServiceImpl.java
+13
-0
TruckTraceMqHandlerServiceImpl.java
...ce/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
+75
-0
TruckTraceMqServiceImpl.java
...rformance/service/impl/trace/TruckTraceMqServiceImpl.java
+36
-0
TruckTraceServiceImpl.java
...performance/service/impl/trace/TruckTraceServiceImpl.java
+217
-0
VehicleWarnCommonServiceImpl.java
...ervice/impl/vehiclewarn/VehicleWarnCommonServiceImpl.java
+183
-0
VehicleWarnConfigServiceImpl.java
...ervice/impl/vehiclewarn/VehicleWarnConfigServiceImpl.java
+125
-0
VehicleWarnDelayWarnServiceImpl.java
...ice/impl/vehiclewarn/VehicleWarnDelayWarnServiceImpl.java
+115
-0
VehicleWarnInfoServiceImpl.java
.../service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
+143
-0
VehicleWarnLoadAndUnloadWarnServiceImpl.java
.../vehiclewarn/VehicleWarnLoadAndUnloadWarnServiceImpl.java
+104
-0
VehicleWarnMqHandlerServiceImpl.java
...ice/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
+327
-0
VehicleWarnMqServiceImpl.java
...ce/service/impl/vehiclewarn/VehicleWarnMqServiceImpl.java
+58
-0
VehicleWarnParkWarnServiceImpl.java
...vice/impl/vehiclewarn/VehicleWarnParkWarnServiceImpl.java
+145
-0
VehicleWarnReceiveAddressWarnServiceImpl.java
...vehiclewarn/VehicleWarnReceiveAddressWarnServiceImpl.java
+153
-0
VehicleWarnSendAddressWarnServiceImpl.java
...pl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
+116
-0
VehicleWarnUserServiceImpl.java
.../service/impl/vehiclewarn/VehicleWarnUserServiceImpl.java
+100
-0
TruckTraceMqHandlerService.java
...performance/service/trace/TruckTraceMqHandlerService.java
+9
-0
TruckTraceMqService.java
...om/clx/performance/service/trace/TruckTraceMqService.java
+8
-0
TruckTraceService.java
.../com/clx/performance/service/trace/TruckTraceService.java
+23
-0
VehicleWarnCommonService.java
...ormance/service/vehiclewarn/VehicleWarnCommonService.java
+27
-0
VehicleWarnConfigService.java
...ormance/service/vehiclewarn/VehicleWarnConfigService.java
+21
-0
VehicleWarnDelayWarnService.java
...ance/service/vehiclewarn/VehicleWarnDelayWarnService.java
+11
-0
VehicleWarnInfoService.java
...rformance/service/vehiclewarn/VehicleWarnInfoService.java
+19
-0
VehicleWarnLoadAndUnloadWarnService.java
...vice/vehiclewarn/VehicleWarnLoadAndUnloadWarnService.java
+11
-0
VehicleWarnMqHandlerService.java
...ance/service/vehiclewarn/VehicleWarnMqHandlerService.java
+19
-0
VehicleWarnMqService.java
...performance/service/vehiclewarn/VehicleWarnMqService.java
+10
-0
VehicleWarnParkWarnService.java
...mance/service/vehiclewarn/VehicleWarnParkWarnService.java
+12
-0
VehicleWarnReceiveAddressWarnService.java
...ice/vehiclewarn/VehicleWarnReceiveAddressWarnService.java
+12
-0
VehicleWarnSendAddressWarnService.java
...ervice/vehiclewarn/VehicleWarnSendAddressWarnService.java
+13
-0
VehicleWarnUserService.java
...rformance/service/vehiclewarn/VehicleWarnUserService.java
+18
-0
VehicleWarnConfigSqlProvider.java
...sqlProvider/vehiclewarn/VehicleWarnConfigSqlProvider.java
+34
-0
VehicleWarnInfoSqlProvider.java
...e/sqlProvider/vehiclewarn/VehicleWarnInfoSqlProvider.java
+38
-0
VehicleWarnUserSqlProvider.java
...e/sqlProvider/vehiclewarn/VehicleWarnUserSqlProvider.java
+27
-0
DriverTraceStruct.java
...a/com/clx/performance/struct/trace/DriverTraceStruct.java
+25
-0
TruckTraceStruct.java
...va/com/clx/performance/struct/trace/TruckTraceStruct.java
+23
-0
VehicleWarnConfigStruct.java
...rformance/struct/vehiclewarn/VehicleWarnConfigStruct.java
+18
-0
VehicleWarnInfoStruct.java
...performance/struct/vehiclewarn/VehicleWarnInfoStruct.java
+20
-0
VehicleWarnUserStruct.java
...performance/struct/vehiclewarn/VehicleWarnUserStruct.java
+18
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/ResultEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
@Getter
@AllArgsConstructor
public
enum
ResultEnum
implements
com
.
msl
.
common
.
enums
.
ResultEnum
{
/**
* 系统
*/
SIGN_NULL
(
1001
,
"签名不存在"
),
SIGN_ERROR
(
1002
,
"签名错误"
),
TIMESTAMP_ERROR
(
1003
,
"请求不在时间范围内"
),
INCREMENT_ERROR
(
1004
,
"编码生成失败"
),
HTTP_ERROR
(
1005
,
"HTTP请求失败"
),
LOCK_ERROR
(
1006
,
"加锁失败"
),
TRY_LOCK_ERROR
(
1007
,
"操作频繁,请稍后重试"
),
FEIGN_ERROR
(
1008
,
"服务调用失败"
),
PARAM_ERROR
(
1009
,
"参数缺失"
),
DATA_ERROR
(
1010
,
"数据错误"
),
/**
* 通用
*/
FILE_LIMIT_ERROR
(
1104
,
"文件过大"
),
REPEAT_OPERATION
(
1105
,
"重复操作"
),
DATA_NOT_FIND
(
1106
,
"数据不存在"
),
DATA_REPEAT
(
1107
,
"数据重复"
),
VEHICLE_WARN_USER_EXIST
(
1201
,
"联系方式已存在"
),
VEHICLE_WARN_CONFIG_EXIST
(
1201
,
"配置名称已存在"
),
;
private
final
int
code
;
private
final
String
msg
;
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnChildEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
VehicleWarnChildEnum
{
;
@Getter
@AllArgsConstructor
public
enum
TraceStatus
{
DISABLE
(
0
,
"禁止"
),
ENABLE
(
1
,
"启用"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
TraceStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
TraceStatus:
:
getMsg
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
WarnStatus
{
DISABLE
(
0
,
"禁止"
),
ENABLE
(
1
,
"启用"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
WarnStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
WarnStatus:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnConfigEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
VehicleWarnConfigEnum
{
;
@Getter
@AllArgsConstructor
public
enum
WarnType
{
ARRIVE_SEND_DELAY
(
1
,
"运单-到达货源地延误"
),
GOTO_SEND_TIMEOUT
(
2
,
"运单-前往货源地超时"
),
ARRIVE_RECEIVE_DELAY
(
3
,
"运单-到达目的地延误"
),
GOTO_RECEIVE_TIMEOUT
(
4
,
"运单-前往目的地超时"
),
PARK_TIMEOUT
(
5
,
"运单-停留超时"
),
SENSITIVE_AREA_PARK_TIMEOUT
(
6
,
"运单-敏感区停留"
),
LOAD_TIMEOUT
(
7
,
"运单-装车超时"
),
UNLOAD_TIMEOUT
(
8
,
"运单-卸车超时"
),
DELAY
(
9
,
"运单-运单延误"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
WarnType
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
WarnType:
:
getMsg
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
DeleteStatus
{
NO
(
0
,
"否"
),
YES
(
1
,
"是"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
DeleteStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
DeleteStatus:
:
getMsg
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
Status
{
ENABLE
(
1
,
"启用"
),
DISABLE
(
2
,
"禁用"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
Status
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
Status:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnInfoEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
VehicleWarnInfoEnum
{
;
@Getter
@AllArgsConstructor
public
enum
Status
{
INIT
(
1
,
"待处理"
),
RESOLVE
(
2
,
"已处理"
),
SUSPEND
(
3
,
"暂停预警"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
Status
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
Status:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnLogEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
VehicleWarnLogEnum
{
;
@Getter
@AllArgsConstructor
public
enum
Type
{
SUSPEND
(
1
,
"暂停预警"
),
RESOLVE
(
2
,
"处理预警"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
Type
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
Type:
:
getMsg
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
WarnRang
{
CHILD
(
1
,
"本运单不再提示该预警"
),
ORDER
(
2
,
"相同货单不再提示该预警"
),
NONE
(
3
,
"不再提示该预警"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
WarnRang
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
WarnRang:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnRangEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
VehicleWarnRangEnum
{
;
@Getter
@AllArgsConstructor
public
enum
WarnRange
{
CHILD
(
1
,
"运单"
),
ORDER_GOODS
(
2
,
"货单"
),
ALL
(
3
,
"全部"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
WarnRange
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
WarnRange:
:
getMsg
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
Status
{
ENABLE
(
1
,
"有效"
),
DISABLE
(
2
,
"无效"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
Status
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
code
).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
Status:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/vehiclewarn/VehicleWarnUserEnum.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
enums
.
vehiclewarn
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
public
enum
VehicleWarnUserEnum
{
;
@Getter
@AllArgsConstructor
public
enum
DeleteStatus
{
NO
(
0
,
"否"
),
YES
(
1
,
"是"
),
;
private
final
Integer
code
;
private
final
String
msg
;
}
}
performance-api/src/main/java/com/clx/performance/param/mq/trace/TruckTraceSyncMqParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
mq
.
trace
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description:
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
TruckTraceSyncMqParam
{
private
String
childNo
;
//运单编号
private
String
truckNo
;
//车牌号
private
String
beginTime
;
//开始时间
private
String
endTime
;
//结束时间
}
performance-api/src/main/java/com/clx/performance/param/mq/vehiclewarn/VehicleWarnChildAddMqParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
mq
.
vehiclewarn
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description: 新增
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
VehicleWarnChildAddMqParam
{
private
String
childNo
;
//运单编号
}
performance-api/src/main/java/com/clx/performance/param/mq/vehiclewarn/VehicleWarnTruckWarnMqParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
mq
.
vehiclewarn
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description: 新增
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
VehicleWarnTruckWarnMqParam
{
private
String
childNo
;
//运单编号
}
performance-api/src/main/java/com/clx/performance/param/mq/vehiclewarn/VehicleWarnTruckWarnNoticeMqParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
mq
.
vehiclewarn
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description: 通知
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
VehicleWarnTruckWarnNoticeMqParam
{
private
Integer
infoId
;
//id
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/PageVehicleWarnConfigParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
com.msl.common.base.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
@Getter
@Setter
@NoArgsConstructor
public
class
PageVehicleWarnConfigParam
extends
PageParam
{
@ApiModelProperty
(
value
=
"预警方案名称"
,
example
=
"方案1"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"1"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"状态:1启用 2禁用"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"开始时间"
,
example
=
""
)
private
String
beginTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
example
=
""
)
private
String
endTime
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/PageVehicleWarnInfoParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
com.msl.common.base.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
@Getter
@Setter
@NoArgsConstructor
public
class
PageVehicleWarnInfoParam
extends
PageParam
{
@ApiModelProperty
(
value
=
"预警名称"
,
example
=
"超时"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"1"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"1000"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"处理状态:1待处理 2已处理 3暂停预警"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"发货地址"
,
example
=
"北京"
)
private
String
sendAddress
;
@ApiModelProperty
(
value
=
"收货地址"
,
example
=
"山西"
)
private
String
receiveAddress
;
@ApiModelProperty
(
value
=
"开始时间"
,
example
=
""
)
private
String
beginTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
example
=
""
)
private
String
endTime
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/PageVehicleWarnUserParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
com.msl.common.base.PageParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
@Getter
@Setter
@NoArgsConstructor
public
class
PageVehicleWarnUserParam
extends
PageParam
{
@ApiModelProperty
(
value
=
"姓名"
,
example
=
"张三"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机"
,
example
=
"13000000000"
)
private
String
mobile
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnConfigAddParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnConfigAddParam
{
@ApiModelProperty
(
value
=
"预警方案名称"
,
example
=
"方案1"
)
@NotBlank
(
message
=
"预警方案名称不能为空"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型"
,
example
=
"1"
)
@NotNull
(
message
=
"预警类型不能为空"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"1"
)
@NotNull
(
message
=
"预警级别不能为空"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"预警间隔(小时)"
,
example
=
"1.2"
)
private
BigDecimal
interval
;
@ApiModelProperty
(
value
=
"超时比例(%)"
,
example
=
"12.3"
)
private
BigDecimal
timeoutRatio
;
@ApiModelProperty
(
value
=
"经度"
,
example
=
"123.45"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
value
=
"纬度"
,
example
=
"12.34"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"地址"
,
example
=
"北京"
)
private
String
address
;
@ApiModelProperty
(
value
=
"半径(米)"
,
example
=
"100"
)
private
Integer
radius
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnConfigDeleteUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnConfigDeleteUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnConfigStatusUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnConfigStatusUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"状态:1启用 2禁用"
,
example
=
"1"
)
@NotNull
(
message
=
"状态不能为空"
)
private
Integer
status
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnConfigUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnConfigUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"预警方案名称"
,
example
=
"方案1"
)
@NotBlank
(
message
=
"预警方案名称不能为空"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型"
,
example
=
"1"
)
@NotNull
(
message
=
"预警类型不能为空"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警级别: 1一级 2二级 3三级"
,
example
=
"1"
)
@NotNull
(
message
=
"预警级别不能为空"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"预警间隔(小时)"
,
example
=
"1.2"
)
private
BigDecimal
interval
;
@ApiModelProperty
(
value
=
"超时比例(%)"
,
example
=
"12.3"
)
private
BigDecimal
timeoutRatio
;
@ApiModelProperty
(
value
=
"经度"
,
example
=
"123.45"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
value
=
"纬度"
,
example
=
"12.34"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"地址"
,
example
=
"北京"
)
private
String
address
;
@ApiModelProperty
(
value
=
"半径(米)"
,
example
=
"123"
)
private
Integer
radius
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnInfoResolveUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnInfoResolveUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotBlank
(
message
=
"id不能为空"
)
private
Integer
id
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnInfoSuspendUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnInfoSuspendUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotBlank
(
message
=
"id不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"预警屏蔽范围:1运单 2货单 3无预警"
,
example
=
"1"
)
private
Integer
warnRang
;
@ApiModelProperty
(
value
=
"预警屏蔽结束时间"
,
example
=
""
)
private
String
warnEndTime
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnUserAddParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnUserAddParam
{
@ApiModelProperty
(
value
=
"姓名"
,
example
=
"张三"
)
@NotBlank
(
message
=
"姓名不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机"
,
example
=
"13000000000"
)
@NotBlank
(
message
=
"手机不能为空"
)
private
String
mobile
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnUserConfigUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnUserVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnUserConfigUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"选中报警类型列表"
)
private
List
<
VehicleWarnUserVO
.
WarnTypeItem
>
warnTypeList
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnUserDeleteParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnUserDeleteParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
}
performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnUserUpdateParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
pc
.
vehiclewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnUserUpdateParam
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"姓名"
,
example
=
"张三"
)
@NotBlank
(
message
=
"姓名不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机"
,
example
=
"13000000000"
)
@NotBlank
(
message
=
"手机不能为空"
)
private
String
mobile
;
}
performance-api/src/main/java/com/clx/performance/param/temp/DriverTraceAddParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
temp
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
DriverTraceAddParam
{
@ApiModelProperty
(
value
=
"车辆轨迹列表"
)
private
List
<
DriverTraceItem
>
traceList
;
@Setter
@Getter
@ToString
@NoArgsConstructor
public
static
class
DriverTraceItem
{
@ApiModelProperty
(
value
=
"用户编码"
,
example
=
"10000"
)
private
Long
userNo
;
@ApiModelProperty
(
value
=
"1-正常上传,2-离线上传"
,
example
=
"1"
)
private
Integer
dataType
;
@ApiModelProperty
(
value
=
"位置 [123.45, 12.34]"
)
private
BigDecimal
[]
location
;
@ApiModelProperty
(
value
=
"时间"
)
private
String
gpsTime
;
}
}
performance-api/src/main/java/com/clx/performance/param/temp/TruckTraceAddParam.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
param
.
temp
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
TruckTraceAddParam
{
@ApiModelProperty
(
value
=
"车辆轨迹列表"
)
private
List
<
TruckTraceItem
>
traceList
;
@Setter
@Getter
@ToString
@NoArgsConstructor
public
static
class
TruckTraceItem
{
@ApiModelProperty
(
value
=
"车辆编号"
,
example
=
"京A12345"
)
private
String
truckNo
;
@ApiModelProperty
(
value
=
"正北方向夹角"
,
example
=
"12.34"
)
private
BigDecimal
angle
;
@ApiModelProperty
(
value
=
"速度"
,
example
=
"12.34"
)
private
BigDecimal
speed
;
@ApiModelProperty
(
value
=
"里程"
,
example
=
"12.34"
)
private
BigDecimal
mileage
;
@ApiModelProperty
(
value
=
"海拔"
,
example
=
"12.34"
)
private
BigDecimal
height
;
@ApiModelProperty
(
value
=
"位置 [123.45, 12.34]"
)
private
BigDecimal
[]
location
;
@ApiModelProperty
(
value
=
"时间"
)
private
String
gpsTime
;
}
}
performance-api/src/main/java/com/clx/performance/vo/pc/trace/DriverTraceVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
trace
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
@Getter
@Setter
@NoArgsConstructor
public
class
DriverTraceVO
{
@ApiModelProperty
(
value
=
"经度"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
value
=
"纬度"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"GPS 时间"
)
private
String
gpsTime
;
@ApiModelProperty
(
value
=
"速度"
)
private
BigDecimal
speed
;
@ApiModelProperty
(
value
=
"停留时长(min)"
,
example
=
"12.3"
)
private
BigDecimal
stayTime
=
BigDecimal
.
ZERO
;
@ApiModelProperty
(
value
=
"车辆状态:1空车 2重车"
,
example
=
"1"
)
private
Integer
truckStatus
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/trace/DriverTruckTraceVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
trace
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
@Getter
@Setter
@NoArgsConstructor
public
class
DriverTruckTraceVO
{
@ApiModelProperty
(
value
=
"正北方向夹角"
,
example
=
"12.34"
)
private
BigDecimal
angle
;
@ApiModelProperty
(
value
=
"GPS 速度"
,
example
=
"12.34"
)
private
BigDecimal
speed
;
@ApiModelProperty
(
value
=
"里程"
,
example
=
"12.34"
)
private
BigDecimal
mileage
;
@ApiModelProperty
(
value
=
"海拔"
,
example
=
"12.34"
)
private
BigDecimal
height
;
@ApiModelProperty
(
value
=
"经度"
,
example
=
"123.45"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
value
=
"纬度"
,
example
=
"12.34"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"GPS 时间"
)
private
String
gpsTime
;
@ApiModelProperty
(
value
=
"停留时长(min)"
,
example
=
"12.3"
)
private
BigDecimal
stayTime
=
BigDecimal
.
ZERO
;
@ApiModelProperty
(
value
=
"车辆状态:1空车 2重车"
,
example
=
"1"
)
private
Integer
truckStatus
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleTraceVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
vehiclewarn
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.util.List
;
/**
* @Author: aiqinguo
* @Description: 车辆轨迹
* @Date: 2024/04/25 17:09:33
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleTraceVO
{
@ApiModelProperty
(
value
=
"车辆轨迹列表"
)
List
<
DriverTruckTraceVO
>
truckTraceList
;
@ApiModelProperty
(
value
=
"司机轨迹列表"
)
List
<
DriverTraceVO
>
driverTraceList
;
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnConfigVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
vehiclewarn
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.time.LocalDateTime
;
import
java.math.BigDecimal
;
/**
* @Author: aiqinguo
* @Description: 车辆预警配置
* @Date: 2024/04/25 14:09:40
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnConfigVO
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"预警方案名称"
,
example
=
"方案1"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警类型"
,
example
=
"1"
)
private
String
warnTypeMsg
;
public
String
getWarnTypeMsg
()
{
return
VehicleWarnConfigEnum
.
WarnType
.
getMsgByCode
(
warnType
);
}
@ApiModelProperty
(
value
=
"预警级别: 1一级 2二级 3三级"
,
example
=
"1"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"一级"
)
private
String
warnLevelMsg
;
public
String
getWarnLevelMsg
()
{
if
(
warnLevel
==
1
)
{
return
"一级"
;}
if
(
warnLevel
==
2
)
{
return
"二级"
;}
if
(
warnLevel
==
3
)
{
return
"三级"
;}
return
null
;
}
@ApiModelProperty
(
value
=
"预警间隔(小时)"
,
example
=
"1.2"
)
private
BigDecimal
interval
;
@ApiModelProperty
(
value
=
"超时比例(%)"
,
example
=
"12.3"
)
private
BigDecimal
timeoutRatio
;
@ApiModelProperty
(
value
=
"经度"
,
example
=
"123.45"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
value
=
"纬度"
,
example
=
"12.34"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"地址"
,
example
=
"北京"
)
private
String
address
;
@ApiModelProperty
(
value
=
"半径(米)"
,
example
=
"123"
)
private
Integer
radius
;
@ApiModelProperty
(
value
=
"状态:1启用 2禁用"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"状态:1启用 2禁用"
,
example
=
"启用"
)
private
String
statusMsg
;
public
String
getStatusMsg
()
{
return
VehicleWarnConfigEnum
.
Status
.
getMsgByCode
(
status
);
}
@ApiModelProperty
(
value
=
"创建人"
,
example
=
""
)
private
String
createBy
;
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
""
)
private
String
createTime
;
@ApiModelProperty
(
value
=
"修改时间"
,
example
=
""
)
private
String
modifiedTime
;
@Getter
@Setter
@NoArgsConstructor
public
static
class
WarnTypeItem
{
@ApiModelProperty
(
value
=
"报警类型"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"报警类型名称"
,
example
=
"超时"
)
private
String
warnTypeName
;
public
WarnTypeItem
(
Integer
warnType
,
String
warnTypeName
)
{
this
.
warnType
=
warnType
;
this
.
warnTypeName
=
warnTypeName
;
}
}
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnInfoVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
vehiclewarn
;
import
cn.hutool.core.date.LocalDateTimeUtil
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.apache.commons.lang3.StringUtils
;
import
java.time.LocalDateTime
;
import
java.util.Objects
;
/**
* @Author: aiqinguo
* @Description: 车辆预警信息表
* @Date: 2024/04/25 17:09:33
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnInfoVO
{
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"预警id"
,
example
=
"1"
)
private
Integer
warnId
;
@ApiModelProperty
(
value
=
"预警名称"
,
example
=
"超时"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"预警类型"
,
example
=
"1"
)
private
String
warnTypeMsg
;
public
String
getWarnTypeMsg
()
{
return
VehicleWarnConfigEnum
.
WarnType
.
getMsgByCode
(
warnType
);
}
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"1"
)
private
Integer
warnLevel
;
@ApiModelProperty
(
value
=
"预警级别"
,
example
=
"一级"
)
private
String
warnLevelMsg
;
public
String
getWarnLevelMsg
()
{
if
(
warnLevel
==
1
)
{
return
"一级"
;}
if
(
warnLevel
==
2
)
{
return
"二级"
;}
if
(
warnLevel
==
3
)
{
return
"三级"
;}
return
null
;
}
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"1000"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"发货地址id"
,
example
=
"1"
)
private
Integer
sendAddressId
;
@ApiModelProperty
(
value
=
"发货地址"
,
example
=
"北京"
)
private
String
sendAddress
;
@ApiModelProperty
(
value
=
"收货地址id"
,
example
=
"2"
)
private
Integer
receiveAddressId
;
@ApiModelProperty
(
value
=
"收货地址"
,
example
=
"山西"
)
private
String
receiveAddress
;
@ApiModelProperty
(
value
=
"运单状态"
,
example
=
"1"
)
private
Integer
childStatus
;
@ApiModelProperty
(
value
=
"运单状态"
,
example
=
"1"
)
private
String
childStatusMsg
;
public
String
getChildStatusMsg
()
{
return
OrderChildEnum
.
Status
.
getMsgByCode
(
childStatus
);
}
@ApiModelProperty
(
value
=
"车辆ID"
,
example
=
"1"
)
private
Integer
truckId
;
@ApiModelProperty
(
value
=
"车牌号"
,
example
=
"京A12345"
)
private
String
truckNo
;
@ApiModelProperty
(
value
=
"司机用户编号"
,
example
=
"100000"
)
private
Long
driverUserNo
;
@ApiModelProperty
(
value
=
"司机姓名"
,
example
=
"张三"
)
private
String
driverName
;
@ApiModelProperty
(
value
=
"司机手机号"
,
example
=
"13000000000"
)
private
String
driverMobile
;
@ApiModelProperty
(
value
=
"接单时间"
,
example
=
""
)
private
String
takeTime
;
@ApiModelProperty
(
value
=
"预警时间"
,
example
=
""
)
private
String
warnTime
;
@ApiModelProperty
(
value
=
"预警暂停时间"
,
example
=
""
)
private
String
suspendTime
;
@ApiModelProperty
(
value
=
"处理状态:1待处理 2已处理 3暂停预警"
,
example
=
"1"
)
private
Integer
status
;
public
Integer
getStatus
()
{
if
(
Objects
.
equals
(
status
,
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
()))
{
return
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
();}
if
(
StringUtils
.
isNotBlank
(
suspendTime
)){
if
(
LocalDateTimeUtil
.
parse
(
suspendTime
).
isBefore
(
LocalDateTime
.
now
()))
{
return
VehicleWarnInfoEnum
.
Status
.
INIT
.
getCode
();
}
else
{
return
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
();
}
}
return
VehicleWarnInfoEnum
.
Status
.
INIT
.
getCode
();
}
@ApiModelProperty
(
value
=
"处理状态:1待处理 2已处理 3暂停预警"
,
example
=
"待处理"
)
private
String
statusMsg
;
public
String
getStatusMsg
()
{
return
VehicleWarnInfoEnum
.
Status
.
getMsgByCode
(
getStatus
());
}
@ApiModelProperty
(
value
=
"创建人"
,
example
=
""
)
private
String
createBy
;
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
""
)
private
String
createTime
;
@ApiModelProperty
(
value
=
"修改时间"
,
example
=
""
)
private
String
modifiedTime
;
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnLogVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
vehiclewarn
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 预警日志
* @Date: 2024/04/26 11:21:25
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnLogVO
{
@ApiModelProperty
(
value
=
"id"
,
example
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"预警信息id"
,
example
=
"1"
)
private
Integer
infoId
;
@ApiModelProperty
(
value
=
"类型:1暂停预警 2处理预警"
,
example
=
"1"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"预警名称"
,
example
=
"超时"
)
private
String
warnName
;
@ApiModelProperty
(
value
=
"预警时间"
,
example
=
""
)
private
String
warnTime
;
@ApiModelProperty
(
value
=
"预警屏蔽范围:1运单 2货单 3无预警"
,
example
=
"1"
)
private
Integer
warnRang
;
@ApiModelProperty
(
value
=
"预警屏蔽结束时间"
,
example
=
""
)
private
LocalDateTime
warnEndTime
;
@ApiModelProperty
(
value
=
"内容"
,
example
=
"预警处理"
)
private
String
content
;
@ApiModelProperty
(
value
=
"创建人"
,
example
=
""
)
private
String
createBy
;
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
""
)
private
String
createTime
;
@ApiModelProperty
(
value
=
"修改时间"
,
example
=
""
)
private
String
modifiedTime
;
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnUserVO.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
vo
.
pc
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author: aiqinguo
* @Description: 车辆预警通知人员表
* @Date: 2024/04/25 13:24:56
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public
class
VehicleWarnUserVO
{
@ApiModelProperty
(
value
=
"id"
,
example
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"姓名"
,
example
=
"张三"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机"
,
example
=
"13000000000"
)
private
String
mobile
;
@ApiModelProperty
(
value
=
"创建人"
,
example
=
""
)
private
String
createBy
;
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
""
)
private
String
createTime
;
@ApiModelProperty
(
value
=
"修改时间"
,
example
=
""
)
private
String
modifiedTime
;
@ApiModelProperty
(
value
=
"通知配置列表"
)
private
List
<
WarnTypeItem
>
warnTypeItemList
;
public
List
<
WarnTypeItem
>
getWarnTypeItemList
()
{
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
warmTypeJson
,
Integer
.
class
);
List
<
WarnTypeItem
>
list
=
new
ArrayList
<>();
for
(
VehicleWarnConfigEnum
.
WarnType
item
:
VehicleWarnConfigEnum
.
WarnType
.
values
())
{
if
(
warnTypeList
.
contains
(
item
.
getCode
())){
list
.
add
(
new
WarnTypeItem
(
item
.
getCode
(),
item
.
getMsg
(),
1
));
}
else
{
list
.
add
(
new
WarnTypeItem
(
item
.
getCode
(),
item
.
getMsg
(),
0
));
}
}
return
list
;
}
@JsonIgnore
@ApiModelProperty
(
value
=
"预警配置"
,
example
=
""
,
hidden
=
true
)
private
String
warmTypeJson
;
@Getter
@Setter
@NoArgsConstructor
public
static
class
WarnTypeItem
{
@ApiModelProperty
(
value
=
"报警类型"
,
example
=
"1"
)
private
Integer
warnType
;
@ApiModelProperty
(
value
=
"报警类型名称"
,
example
=
"超时"
)
private
String
warnTypeName
;
@ApiModelProperty
(
value
=
"使能:0禁用 1启用"
,
example
=
"1"
)
private
Integer
enable
;
public
WarnTypeItem
(
Integer
warnType
,
String
warnTypeName
,
Integer
enable
)
{
this
.
warnType
=
warnType
;
this
.
warnTypeName
=
warnTypeName
;
this
.
enable
=
enable
;
}
}
}
\ No newline at end of file
performance-web/pom.xml
浏览文件 @
be3f81ee
...
...
@@ -101,6 +101,16 @@
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.elasticsearch.client
</groupId>
<artifactId>
elasticsearch-rest-high-level-client
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.elasticsearch
</groupId>
<artifactId>
elasticsearch
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
...
...
@@ -273,6 +283,26 @@
<groupId>
com.clx.cy
</groupId>
<artifactId>
open-sdk
</artifactId>
</dependency>
<dependency>
<groupId>
org.elasticsearch.client
</groupId>
<artifactId>
elasticsearch-rest-high-level-client
</artifactId>
<version>
7.14.0
</version>
</dependency>
<dependency>
<groupId>
org.elasticsearch
</groupId>
<artifactId>
elasticsearch
</artifactId>
<version>
7.14.0
</version>
</dependency>
<dependency>
<groupId>
org.dromara.easy-es
</groupId>
<artifactId>
easy-es-boot-starter
</artifactId>
<version>
2.0.0-beta7
</version>
</dependency>
</dependencies>
...
...
performance-web/src/main/java/com/clx/performance/PerformanceApplication.java
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
;
import
com.msl.common.config.ViewScan
;
import
org.dromara.easyes.starter.register.EsMapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
...
@@ -18,6 +19,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@ComponentScan
({
"com.clx.performance.*"
,
"com.msl.*"
})
@EnableFeignClients
(
basePackages
=
{
"com.msl.*"
,
"com.clx.performance.*"
,
"com.clx.order.*"
,
"com.clx.user.*"
,
"com.clx.message.*"
})
@ViewScan
(
basePackage
=
"com.clx.user.view"
)
@EsMapperScan
(
"com.clx.performance.esplus.mapper"
)
public
class
PerformanceApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
performance-web/src/main/java/com/clx/performance/config/ClxMessageConfig.java
浏览文件 @
be3f81ee
...
...
@@ -29,4 +29,8 @@ public class ClxMessageConfig {
//转账支付-还款单短信模板
private
String
repaymentTemplateCode
;
//车辆报警短信模板
private
String
vehicleWarnTemplateCode
;
//车辆报警渠道id
private
Integer
vehicleWarnChannelId
;
}
performance-web/src/main/java/com/clx/performance/config/EsCustomizer.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.HeaderElement
;
import
org.apache.http.HeaderElementIterator
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.impl.nio.client.HttpAsyncClientBuilder
;
import
org.apache.http.message.BasicHeaderElementIterator
;
import
org.apache.http.protocol.HTTP
;
import
org.elasticsearch.client.RestClientBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.elasticsearch.RestClientBuilderCustomizer
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
EsCustomizer
implements
RestClientBuilderCustomizer
{
@Autowired
private
EsPoolProperties
esPoolProperties
;
/**
* Customize the {@link RestClientBuilder}.
* <p>
* Possibly overrides customizations made with the {@code "spring.elasticsearch.rest"}
* configuration properties namespace. For more targeted changes, see
* {@link #customize(HttpAsyncClientBuilder)} and
* {@link #customize(RequestConfig.Builder)}.
*
* @param builder the builder to customize
*/
@Override
public
void
customize
(
RestClientBuilder
builder
)
{
}
/**
* Customize the {@link HttpAsyncClientBuilder}.
*
* @param builder the builder
* @since 2.3.0
*/
@Override
public
void
customize
(
HttpAsyncClientBuilder
builder
)
{
builder
.
setMaxConnTotal
(
esPoolProperties
.
getMaxTotal
())
.
setMaxConnPerRoute
(
esPoolProperties
.
getMaxPerRoute
())
.
setKeepAliveStrategy
((
response
,
context
)
->
{
final
HeaderElementIterator
it
=
new
BasicHeaderElementIterator
(
response
.
headerIterator
(
HTTP
.
CONN_KEEP_ALIVE
));
while
(
it
.
hasNext
())
{
final
HeaderElement
he
=
it
.
nextElement
();
final
String
param
=
he
.
getName
();
final
String
value
=
he
.
getValue
();
if
(
value
!=
null
&&
"timeout"
.
equalsIgnoreCase
(
param
))
{
try
{
return
Long
.
parseLong
(
value
)
*
1000
;
}
catch
(
final
NumberFormatException
ignore
)
{
log
.
error
(
""
,
ignore
);
}
}
}
return
esPoolProperties
.
getKeepAlive
().
toMillis
();
});
}
}
performance-web/src/main/java/com/clx/performance/config/EsPoolProperties.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
config
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.cloud.context.config.annotation.RefreshScope
;
import
org.springframework.context.annotation.Configuration
;
import
java.time.Duration
;
import
java.time.temporal.ChronoUnit
;
@ConfigurationProperties
(
prefix
=
"spring.elasticsearch"
)
@Configuration
@Getter
@Setter
@RefreshScope
public
class
EsPoolProperties
{
/**
* 连接存活时间
*/
private
Duration
keepAlive
=
Duration
.
of
(
120
,
ChronoUnit
.
SECONDS
);
/**
* 连接池最大连接数
*/
private
int
maxTotal
=
30
;
/**
* 单节点最大连接数
*/
private
int
maxPerRoute
=
10
;
}
performance-web/src/main/java/com/clx/performance/config/RabbitTraceConfig.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
config
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.BindingBuilder
;
import
org.springframework.amqp.core.DirectExchange
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Author: aiqingguo
* @Description: 轨迹 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public
class
RabbitTraceConfig
{
@Bean
public
DirectExchange
traceDefaultExchange
()
{
return
new
DirectExchange
(
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
);
}
@Bean
public
Queue
traceDefaultDelayQueue
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
8
);
params
.
put
(
"x-message-ttl"
,
15
*
60
*
1000
);
params
.
put
(
"x-max-length"
,
5000000
);
params
.
put
(
"x-dead-letter-exchange"
,
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
);
params
.
put
(
"x-dead-letter-routing-key"
,
RabbitKeyTraceConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
return
new
Queue
(
RabbitKeyTraceConstants
.
DEFAULT_DELAY_QUEUE
,
true
,
false
,
false
,
params
);
}
@Bean
public
Binding
traceDefaultDelayQueueBinding
()
{
return
BindingBuilder
.
bind
(
traceDefaultDelayQueue
()).
to
(
traceDefaultExchange
()).
with
(
RabbitKeyTraceConstants
.
DEFAULT_DELAY_ROUTING_KEY
);
}
@Bean
public
Queue
traceDefaultDeadQueue
()
{
return
new
Queue
(
RabbitKeyTraceConstants
.
DEFAULT_DEAD_QUEUE
);
}
@Bean
public
Binding
traceDefaultDeadQueueBinding
()
{
return
BindingBuilder
.
bind
(
traceDefaultDeadQueue
()).
to
(
traceDefaultExchange
()).
with
(
RabbitKeyTraceConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
}
/**
* 统计更新
*/
@Bean
public
Queue
traceTruckTraceSyncQueue
()
{
return
new
Queue
(
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_QUEUE
);
}
@Bean
public
Binding
traceTruckTraceSyncQueueBinding
()
{
return
BindingBuilder
.
bind
(
traceTruckTraceSyncQueue
()).
to
(
traceDefaultExchange
()).
with
(
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_ROUTING_KEY
);
}
}
performance-web/src/main/java/com/clx/performance/config/RabbitVehicleWarnConfig.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
config
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.BindingBuilder
;
import
org.springframework.amqp.core.DirectExchange
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Author: aiqingguo
* @Description: 货款往来明细 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public
class
RabbitVehicleWarnConfig
{
@Bean
public
DirectExchange
vehicleWarnDefaultExchange
()
{
return
new
DirectExchange
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
);
}
@Bean
public
Queue
vehicleWarnDefaultDelayQueue
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
8
);
params
.
put
(
"x-message-ttl"
,
15
*
60
*
1000
);
params
.
put
(
"x-max-length"
,
5000000
);
params
.
put
(
"x-dead-letter-exchange"
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
);
params
.
put
(
"x-dead-letter-routing-key"
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
return
new
Queue
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_QUEUE
,
true
,
false
,
false
,
params
);
}
@Bean
public
Binding
vehicleWarnDefaultDelayQueueBinding
()
{
return
BindingBuilder
.
bind
(
vehicleWarnDefaultDelayQueue
()).
to
(
vehicleWarnDefaultExchange
()).
with
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
);
}
@Bean
public
Queue
vehicleWarnDefaultDeadQueue
()
{
return
new
Queue
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_DEAD_QUEUE
);
}
@Bean
public
Binding
vehicleWarnDefaultDeadQueueBinding
()
{
return
BindingBuilder
.
bind
(
vehicleWarnDefaultDeadQueue
()).
to
(
vehicleWarnDefaultExchange
()).
with
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
}
/**
* 新增
*/
@Bean
public
Queue
vehicleWarnChildAddQueue
()
{
return
new
Queue
(
RabbitKeyVehicleWarnConstants
.
ORDER_CHILD_ADD_QUEUE
);
}
@Bean
public
Binding
vehicleWarnChildAddQueueBinding
()
{
return
BindingBuilder
.
bind
(
vehicleWarnChildAddQueue
()).
to
(
vehicleWarnDefaultExchange
()).
with
(
RabbitKeyVehicleWarnConstants
.
ORDER_CHILD_ADD_ROUTING_KEY
);
}
/**
* 车辆预警
*/
@Bean
public
Queue
vehicleWarnTruckWarnQueue
()
{
return
new
Queue
(
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_QUEUE
);
}
@Bean
public
Binding
vehicleWarnTruckWarnQueueBinding
()
{
return
BindingBuilder
.
bind
(
vehicleWarnTruckWarnQueue
()).
to
(
vehicleWarnDefaultExchange
()).
with
(
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_ROUTING_KEY
);
}
/**
* 车辆预警
*/
@Bean
public
Queue
vehicleWarnNoticeQueue
()
{
return
new
Queue
(
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_NOTICE_QUEUE
);
}
@Bean
public
Binding
vehicleWarnNoticeQueueBinding
()
{
return
BindingBuilder
.
bind
(
vehicleWarnNoticeQueue
()).
to
(
vehicleWarnDefaultExchange
()).
with
(
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_NOTICE_ROUTING_KEY
);
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyTraceConstants.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
constant
;
/**
* @Author: aiqingguo
* @Description: 轨迹-mq
* @Date: 2023-10-19 15:10:10
* @Version: 1.0
*/
public
class
RabbitKeyTraceConstants
{
private
static
final
String
PREFIX
=
"clx-performance.trace."
;
private
static
final
String
EXCHANGE
=
".exchange"
;
private
static
final
String
QUEUE
=
".queue"
;
private
static
final
String
QUEUE_ROUTING_KEY
=
".routing.key"
;
private
static
final
String
DELAY_QUEUE
=
".delay.queue"
;
private
static
final
String
DELAY_ROUTING_KEY
=
".delay.routing.key"
;
private
static
final
String
DEAD_QUEUE
=
".dead.queue"
;
private
static
final
String
DEAD_ROUTING_KEY
=
".dead.routing.key"
;
private
RabbitKeyTraceConstants
()
{
}
/**
* 缺省交换机
*/
public
static
final
String
DEFAULT_EXCHANGE
=
PREFIX
+
"default"
+
EXCHANGE
;
/**
* 缺省延迟队列
*/
public
static
final
String
DEFAULT_DELAY_QUEUE
=
PREFIX
+
"default"
+
DELAY_QUEUE
;
public
static
final
String
DEFAULT_DELAY_ROUTING_KEY
=
PREFIX
+
"default"
+
DELAY_ROUTING_KEY
;
public
static
final
String
DEFAULT_DEAD_QUEUE
=
PREFIX
+
"default"
+
DEAD_QUEUE
;
public
static
final
String
DEFAULT_DEAD_ROUTING_KEY
=
PREFIX
+
"default"
+
DEAD_ROUTING_KEY
;
/**
* 车辆轨迹同步
*/
public
static
final
String
TRUCK_TRACE_SYNC_QUEUE
=
PREFIX
+
"truck.trace.update"
+
QUEUE
;
public
static
final
String
TRUCK_TRACE_SYNC_ROUTING_KEY
=
PREFIX
+
"truck.trace.update"
+
QUEUE_ROUTING_KEY
;
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyVehicleWarnConstants.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
constant
;
/**
* @Author: aiqingguo
* @Description: 车辆预警-mq
* @Date: 2023-10-19 15:10:10
* @Version: 1.0
*/
public
class
RabbitKeyVehicleWarnConstants
{
private
static
final
String
PREFIX
=
"clx-performance.vehicleWarn."
;
private
static
final
String
EXCHANGE
=
".exchange"
;
private
static
final
String
QUEUE
=
".queue"
;
private
static
final
String
QUEUE_ROUTING_KEY
=
".routing.key"
;
private
static
final
String
DELAY_QUEUE
=
".delay.queue"
;
private
static
final
String
DELAY_ROUTING_KEY
=
".delay.routing.key"
;
private
static
final
String
DEAD_QUEUE
=
".dead.queue"
;
private
static
final
String
DEAD_ROUTING_KEY
=
".dead.routing.key"
;
private
RabbitKeyVehicleWarnConstants
()
{
}
/**
* 缺省交换机
*/
public
static
final
String
DEFAULT_EXCHANGE
=
PREFIX
+
"default"
+
EXCHANGE
;
/**
* 缺省延迟队列
*/
public
static
final
String
DEFAULT_DELAY_QUEUE
=
PREFIX
+
"default"
+
DELAY_QUEUE
;
public
static
final
String
DEFAULT_DELAY_ROUTING_KEY
=
PREFIX
+
"default"
+
DELAY_ROUTING_KEY
;
public
static
final
String
DEFAULT_DEAD_QUEUE
=
PREFIX
+
"default"
+
DEAD_QUEUE
;
public
static
final
String
DEFAULT_DEAD_ROUTING_KEY
=
PREFIX
+
"default"
+
DEAD_ROUTING_KEY
;
/**
* 新增
*/
public
static
final
String
ORDER_CHILD_ADD_QUEUE
=
PREFIX
+
"orderChild.add"
+
QUEUE
;
public
static
final
String
ORDER_CHILD_ADD_ROUTING_KEY
=
PREFIX
+
"orderChild.add"
+
QUEUE_ROUTING_KEY
;
/**
* 车辆预警
*/
public
static
final
String
TRUCK_WARN_QUEUE
=
PREFIX
+
"truck.warn"
+
QUEUE
;
public
static
final
String
TRUCK_WARN_ROUTING_KEY
=
PREFIX
+
"truck.warn"
+
QUEUE_ROUTING_KEY
;
/**
* 车辆预警通知
*/
public
static
final
String
TRUCK_WARN_NOTICE_QUEUE
=
PREFIX
+
"truckWarn.notice"
+
QUEUE
;
public
static
final
String
TRUCK_WARN_NOTICE_ROUTING_KEY
=
PREFIX
+
"truckWarn.notice"
+
QUEUE_ROUTING_KEY
;
}
performance-web/src/main/java/com/clx/performance/controller/pc/vehiclewarn/VehicleWarnConfigController.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
controller
.
pc
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnConfigService
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
@Slf4j
@RestController
@Validated
@Api
(
tags
=
"车辆预警-预警配置"
)
@RequestMapping
(
value
=
"/pc/owner/vehicleWarnConfig"
)
public
class
VehicleWarnConfigController
{
@Autowired
private
VehicleWarnConfigService
vehicleWarnConfigService
;
@ApiOperation
(
value
=
"新增配置"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/saveConfig"
)
@UnitCovert
(
result
=
false
)
public
Result
<
Void
>
saveConfig
(
@RequestBody
@Validated
VehicleWarnConfigAddParam
param
)
{
vehicleWarnConfigService
.
saveConfig
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"更新配置"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateConfig"
)
public
Result
<
Void
>
updateConfig
(
@RequestBody
@Validated
VehicleWarnConfigUpdateParam
param
)
{
vehicleWarnConfigService
.
updateConfig
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"更新配置状态"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateStatus"
)
public
Result
<
Void
>
updateStatus
(
@RequestBody
@Validated
VehicleWarnConfigStatusUpdateParam
param
)
{
vehicleWarnConfigService
.
updateStatus
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"删除配置"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/deleteConfig"
)
public
Result
<
Void
>
deleteConfig
(
@RequestBody
@Validated
VehicleWarnConfigDeleteUpdateParam
param
)
{
vehicleWarnConfigService
.
deleteConfig
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"获取配置信息"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/getConfig"
)
public
Result
<
VehicleWarnConfigVO
>
getConfig
(
@NotNull
(
message
=
"id不能为空"
)
@Validated
Integer
id
)
{
return
Result
.
ok
(
vehicleWarnConfigService
.
getConfig
(
id
));
}
@ApiOperation
(
value
=
"分页搜索配置列表"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/pageConfig"
)
public
Result
<
PageData
<
VehicleWarnConfigVO
>>
pageConfig
(
@RequestBody
@Validated
PageVehicleWarnConfigParam
param
)
{
IPage
<
VehicleWarnConfigVO
>
page
=
vehicleWarnConfigService
.
pageConfig
(
param
);
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
@ApiOperation
(
value
=
"预警类型下拉"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/listWarnType"
)
public
Result
<
List
<
VehicleWarnConfigVO
.
WarnTypeItem
>>
listWarnType
()
{
return
Result
.
ok
(
vehicleWarnConfigService
.
listWarnType
());
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/vehiclewarn/VehicleWarnInfoController.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
controller
.
pc
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoResolveUpdateParam
;
import
com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoSuspendUpdateParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnInfoService
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotNull
;
@Slf4j
@RestController
@Validated
@Api
(
tags
=
"车辆预警-预警信息"
)
@RequestMapping
(
value
=
"/pc/owner/vehicleWarnInfo"
)
public
class
VehicleWarnInfoController
{
@Autowired
private
VehicleWarnInfoService
vehicleWarnInfoService
;
@ApiOperation
(
value
=
"更新预警暂停"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateSuspend"
)
public
Result
<
Void
>
updateSuspend
(
@RequestBody
@Validated
VehicleWarnInfoSuspendUpdateParam
param
)
{
vehicleWarnInfoService
.
updateSuspend
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"更新处理"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateResolve"
)
public
Result
<
Void
>
updateConfig
(
@RequestBody
@Validated
VehicleWarnInfoResolveUpdateParam
param
)
{
vehicleWarnInfoService
.
updateResolve
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"获取轨迹"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/getTrace"
)
public
Result
<
VehicleTraceVO
>
getTrace
(
@NotNull
(
message
=
"id不能为空"
)
@Validated
Integer
id
)
{
return
Result
.
ok
(
vehicleWarnInfoService
.
getTrace
(
id
));
}
@ApiOperation
(
value
=
"获取预警信息"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/getInfo"
)
public
Result
<
VehicleWarnInfoVO
>
getInfo
(
@NotNull
(
message
=
"id不能为空"
)
@Validated
Integer
id
)
{
return
Result
.
ok
(
vehicleWarnInfoService
.
getInfo
(
id
));
}
@ApiOperation
(
value
=
"分页搜索预警信息列表"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/pageInfo"
)
public
Result
<
PageData
<
VehicleWarnInfoVO
>>
pageInfo
(
@RequestBody
@Validated
PageVehicleWarnInfoParam
param
)
{
IPage
<
VehicleWarnInfoVO
>
page
=
vehicleWarnInfoService
.
pageInfo
(
param
);
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/vehiclewarn/VehicleWarnUserController.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
controller
.
pc
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnUserService
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnUserVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
@Slf4j
@RestController
@Validated
@Api
(
tags
=
"车辆预警-预警通知人员"
)
@RequestMapping
(
value
=
"/pc/owner/vehicleWarnUser"
)
public
class
VehicleWarnUserController
{
@Autowired
private
VehicleWarnUserService
vehicleWarnUserService
;
@ApiOperation
(
value
=
"新增人员"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/saveUser"
)
@UnitCovert
(
result
=
false
)
public
Result
<
Void
>
saveUser
(
@RequestBody
@Validated
VehicleWarnUserAddParam
param
)
{
vehicleWarnUserService
.
saveUser
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"更新用户"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateUser"
)
public
Result
<
Void
>
updateUser
(
@RequestBody
@Validated
VehicleWarnUserUpdateParam
param
)
{
vehicleWarnUserService
.
updateUser
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"更新通知配置"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/updateConfig"
)
public
Result
<
Void
>
updateConfig
(
@RequestBody
@Validated
VehicleWarnUserConfigUpdateParam
param
)
{
vehicleWarnUserService
.
updateConfig
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"删除用户"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/deleteUser"
)
public
Result
<
Void
>
deleteUser
(
@RequestBody
@Validated
VehicleWarnUserDeleteParam
param
)
{
vehicleWarnUserService
.
deleteUser
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"获取人员信息"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/getUser"
)
public
Result
<
VehicleWarnUserVO
>
getUser
(
@NotNull
(
message
=
"id不能为空"
)
@Validated
Integer
id
)
{
return
Result
.
ok
(
vehicleWarnUserService
.
getUser
(
id
));
}
@ApiOperation
(
value
=
"分页搜索人员列表"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/pageUser"
)
public
Result
<
PageData
<
VehicleWarnUserVO
>>
pageUser
(
@RequestBody
@Validated
PageVehicleWarnUserParam
param
)
{
IPage
<
VehicleWarnUserVO
>
page
=
vehicleWarnUserService
.
pageUser
(
param
);
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
}
performance-web/src/main/java/com/clx/performance/controller/temp/TempTraceController.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
controller
.
temp
;
import
com.clx.performance.param.temp.DriverTraceAddParam
;
import
com.clx.performance.param.temp.TruckTraceAddParam
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/temp/trace"
)
public
class
TempTraceController
{
@Autowired
private
TruckTraceService
truckTraceService
;
@ApiOperation
(
value
=
"车辆轨迹同步"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/truckTraceSync"
)
public
Result
truckTraceSync
(
@RequestBody
TruckTraceAddParam
param
)
{
truckTraceService
.
truckTraceSave
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"查询车辆轨迹"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/listTruckTraceByTime"
)
public
Result
<
List
<
DriverTruckTraceVO
>>
listTruckTraceByTime
(
String
truckNo
,
String
beginTime
,
String
endTime
)
{
return
Result
.
ok
(
truckTraceService
.
listTruckTraceByTime
(
truckNo
,
beginTime
,
endTime
));
}
@ApiOperation
(
value
=
"司机轨迹同步"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/driverTraceSync"
)
public
Result
driverTraceSync
(
@RequestBody
DriverTraceAddParam
param
)
{
truckTraceService
.
driverTraceSave
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"查询司机轨迹"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/listDriverTraceByTime"
)
public
Result
<
List
<
DriverTraceVO
>>
listDriverTraceByTime
(
Long
userNo
,
String
beginTime
,
String
endTime
)
{
return
Result
.
ok
(
truckTraceService
.
listDriverTraceByTime
(
userNo
,
beginTime
,
endTime
));
}
}
performance-web/src/main/java/com/clx/performance/controller/temp/TempVehicleWarnController.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
controller
.
temp
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/temp/vehicleWarn"
)
public
class
TempVehicleWarnController
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@ApiOperation
(
value
=
"发送预警短信"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/sendSms"
)
public
Result
sendSms
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
)
{
vehicleWarnMqHandlerService
.
sendSms
(
mobileList
,
warnName
,
truckNo
,
childNo
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"发送预警外呼"
,
notes
=
"<br>By:艾庆国"
)
@PostMapping
(
"/sendClink"
)
public
Result
sendClink
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
)
{
vehicleWarnMqHandlerService
.
sendClink
(
mobileList
,
warnName
,
truckNo
,
childNo
);
return
Result
.
ok
();
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
be3f81ee
...
...
@@ -166,4 +166,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Page
<
OrderChild
>
getMonthAgoByUserNo
(
Long
userNo
,
LocalDateTime
monthAgo
,
PageParam
param
);
IPage
<
OrderChild
>
pageOwnerOrderChildList
(
PageOwnerOrderChildListParam
param
);
Integer
loadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
Integer
unloadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
be3f81ee
...
...
@@ -539,4 +539,20 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
query
.
orderByDesc
(
OrderChild
::
getCreateTime
);
return
baseMapper
.
selectPage
(
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
()),
query
);
}
@Override
public
Integer
loadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
)
{
return
baseMapper
.
loadTimeAvg
(
sendAddressId
,
receiveAddressId
,
sendSystemAddressId
,
receiveSystemAddressId
,
beginTime
);
}
@Override
public
Integer
unloadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
)
{
return
baseMapper
.
unloadTimeAvg
(
sendAddressId
,
receiveAddressId
,
sendSystemAddressId
,
receiveSystemAddressId
,
beginTime
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnChildDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnChildMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
class
VehicleWarnChildDaoImpl
extends
BaseDaoImpl
<
VehicleWarnChildMapper
,
VehicleWarnChild
,
Integer
>
implements
VehicleWarnChildDao
{
@Override
public
boolean
updateTraceTime
(
VehicleWarnChild
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnChild:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnChild:
:
getTraceStatus
,
item
.
getTraceStatus
())
.
set
(
VehicleWarnChild:
:
getTraceTime
,
item
.
getTraceTime
())
);
}
@Override
public
boolean
updateReceiveAddressDistance
(
VehicleWarnChild
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnChild:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnChild:
:
getReceiveAddressDistance
,
item
.
getReceiveAddressDistance
())
);
}
@Override
public
Optional
<
VehicleWarnChild
>
findByChildNo
(
String
childNo
)
{
return
Optional
.
of
(
childNo
)
.
map
(
item
->
lQrWrapper
().
eq
(
VehicleWarnChild:
:
getChildNo
,
item
))
.
map
(
super
::
getOne
);
}
@Override
public
List
<
VehicleWarnChild
>
ListTruckNoOfTrace
()
{
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
).
eq
(
VehicleWarnChild:
:
getTraceStatus
,
VehicleWarnChildEnum
.
TraceStatus
.
ENABLE
.
getCode
()));
}
@Override
public
List
<
VehicleWarnChild
>
ListTruckNoOfWarn
()
{
return
list
(
lQrWrapper
().
select
(
VehicleWarnChild:
:
getChildNo
,
VehicleWarnChild:
:
getTruckNo
).
eq
(
VehicleWarnChild:
:
getTraceStatus
,
VehicleWarnChildEnum
.
WarnStatus
.
ENABLE
.
getCode
()));
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnConfigDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
impl
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnConfigMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
class
VehicleWarnConfigDaoImpl
extends
BaseDaoImpl
<
VehicleWarnConfigMapper
,
VehicleWarnConfig
,
Integer
>
implements
VehicleWarnConfigDao
{
@Override
public
boolean
updateConfig
(
VehicleWarnConfig
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnConfig:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnConfig:
:
getWarnName
,
item
.
getWarnName
())
.
set
(
VehicleWarnConfig:
:
getWarnType
,
item
.
getWarnType
())
.
set
(
VehicleWarnConfig:
:
getWarnLevel
,
item
.
getWarnLevel
())
.
set
(
VehicleWarnConfig:
:
getInterval
,
item
.
getInterval
())
.
set
(
VehicleWarnConfig:
:
getTimeoutRatio
,
item
.
getTimeoutRatio
())
.
set
(
VehicleWarnConfig:
:
getLongitude
,
item
.
getLongitude
())
.
set
(
VehicleWarnConfig:
:
getLatitude
,
item
.
getLatitude
())
.
set
(
VehicleWarnConfig:
:
getAddress
,
item
.
getAddress
())
.
set
(
VehicleWarnConfig:
:
getRadius
,
item
.
getRadius
())
);
}
@Override
public
boolean
updateStatus
(
VehicleWarnConfig
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnConfig:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnConfig:
:
getStatus
,
item
.
getStatus
())
);
}
@Override
public
boolean
updateDelete
(
VehicleWarnConfig
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnConfig:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnConfig:
:
getDeleteStatus
,
item
.
getDeleteStatus
())
);
}
@Override
public
Optional
<
VehicleWarnConfig
>
findById
(
Integer
id
)
{
return
Optional
.
of
(
id
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnConfig:
:
getId
,
id
)
.
eq
(
VehicleWarnConfig:
:
getDeleteStatus
,
VehicleWarnConfigEnum
.
DeleteStatus
.
NO
.
getCode
())
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
Optional
<
VehicleWarnConfig
>
findByName
(
String
name
)
{
return
Optional
.
of
(
name
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnConfig:
:
getWarnName
,
name
)
.
eq
(
VehicleWarnConfig:
:
getDeleteStatus
,
VehicleWarnConfigEnum
.
DeleteStatus
.
NO
.
getCode
())
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
List
<
VehicleWarnConfig
>
listByWarnType
(
Integer
warnType
)
{
return
list
(
lQrWrapper
().
eq
(
VehicleWarnConfig:
:
getWarnType
,
warnType
));
}
@Override
public
IPage
<
VehicleWarnConfig
>
pageByParam
(
PageVehicleWarnConfigParam
param
)
{
Page
<
VehicleWarnConfig
>
page
=
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
());
return
baseMapper
.
pageByParam
(
page
,
param
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnInfoDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
impl
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
@Repository
public
class
VehicleWarnInfoDaoImpl
extends
BaseDaoImpl
<
VehicleWarnInfoMapper
,
VehicleWarnInfo
,
Integer
>
implements
VehicleWarnInfoDao
{
@Override
public
boolean
updateStatus
(
VehicleWarnInfo
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnInfo:
:
getStatus
,
item
.
getStatus
())
);
}
@Override
public
boolean
batchUpdateStatus
(
List
<
Integer
>
idList
,
Integer
status
)
{
return
update
(
lUdWrapper
()
.
in
(
VehicleWarnInfo:
:
getId
,
idList
)
.
set
(
VehicleWarnInfo:
:
getStatus
,
status
)
);
}
@Override
public
boolean
updateSuspendTime
(
VehicleWarnInfo
item
,
Integer
warnRang
)
{
if
(
Objects
.
equals
(
warnRang
,
VehicleWarnRangEnum
.
WarnRange
.
CHILD
.
getCode
()))
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getId
,
item
.
getId
())
.
ne
(
VehicleWarnInfo:
:
getStatus
,
VehicleWarnInfoEnum
.
Status
.
RESOLVE
)
.
set
(
VehicleWarnInfo:
:
getSuspendTime
,
item
.
getSuspendTime
())
);
}
else
if
(
Objects
.
equals
(
warnRang
,
VehicleWarnRangEnum
.
WarnRange
.
ORDER_GOODS
.
getCode
()))
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getWarnConfigId
,
item
.
getWarnConfigId
())
.
eq
(
VehicleWarnInfo:
:
getOrderGoodsNo
,
item
.
getOrderGoodsNo
())
.
ne
(
VehicleWarnInfo:
:
getStatus
,
VehicleWarnInfoEnum
.
Status
.
RESOLVE
)
.
set
(
VehicleWarnInfo:
:
getSuspendTime
,
item
.
getSuspendTime
())
);
}
else
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getWarnConfigId
,
item
.
getWarnConfigId
())
.
ne
(
VehicleWarnInfo:
:
getStatus
,
VehicleWarnInfoEnum
.
Status
.
RESOLVE
)
.
set
(
VehicleWarnInfo:
:
getSuspendTime
,
item
.
getSuspendTime
())
);
}
}
@Override
public
boolean
updateWarnTime
(
VehicleWarnInfo
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnInfo:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnInfo:
:
getWarnTime
,
item
.
getWarnTime
())
);
}
@Override
public
Optional
<
VehicleWarnInfo
>
findById
(
Integer
id
)
{
return
Optional
.
of
(
id
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnInfo:
:
getId
,
id
)
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
Optional
<
VehicleWarnInfo
>
findByChildNoAndWarnConfigId
(
String
childNo
,
Integer
warnConfigId
)
{
return
Optional
.
of
(
childNo
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnInfo:
:
getChildNo
,
childNo
)
.
eq
(
VehicleWarnInfo:
:
getWarnConfigId
,
warnConfigId
)
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
List
<
VehicleWarnInfo
>
listSuspendTimeout
()
{
return
list
(
lQrWrapper
()
.
eq
(
VehicleWarnInfo:
:
getStatus
,
VehicleWarnInfoEnum
.
Status
.
SUSPEND
.
getCode
())
.
lt
(
VehicleWarnInfo:
:
getSuspendTime
,
LocalDateTime
.
now
())
);
}
@Override
public
IPage
<
VehicleWarnInfo
>
pageByParam
(
PageVehicleWarnInfoParam
param
)
{
Page
<
VehicleWarnInfo
>
page
=
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
());
return
baseMapper
.
pageByParam
(
page
,
param
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnLogDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
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/VehicleWarnRangeDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnRangeDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnRang
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Repository
public
class
VehicleWarnRangeDaoImpl
extends
BaseDaoImpl
<
VehicleWarnRangMapper
,
VehicleWarnRang
,
Integer
>
implements
VehicleWarnRangeDao
{
@Override
public
List
<
VehicleWarnRang
>
ListByWarnConfigId
(
Integer
warnConfigId
)
{
return
list
(
lQrWrapper
()
.
eq
(
VehicleWarnRang:
:
getWarnConfigId
,
warnConfigId
)
.
eq
(
VehicleWarnRang:
:
getStatus
,
VehicleWarnRangEnum
.
Status
.
ENABLE
.
getCode
())
.
le
(
VehicleWarnRang:
:
getWarnEndTime
,
LocalDateTime
.
now
())
.
orderByDesc
(
VehicleWarnRang:
:
getId
)
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnUserDaoImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
impl
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnUserEnum
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnUserMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
class
VehicleWarnUserDaoImpl
extends
BaseDaoImpl
<
VehicleWarnUserMapper
,
VehicleWarnUser
,
Integer
>
implements
VehicleWarnUserDao
{
@Override
public
boolean
updateUser
(
VehicleWarnUser
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnUser:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnUser:
:
getName
,
item
.
getName
())
.
set
(
VehicleWarnUser:
:
getMobile
,
item
.
getMobile
())
);
}
@Override
public
boolean
deleteUser
(
VehicleWarnUser
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnUser:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnUser:
:
getDeleteStatus
,
item
.
getDeleteStatus
())
);
}
@Override
public
boolean
updateWarnType
(
VehicleWarnUser
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
VehicleWarnUser:
:
getId
,
item
.
getId
())
.
set
(
VehicleWarnUser:
:
getWarmTypeJson
,
item
.
getWarmTypeJson
())
);
}
@Override
public
Optional
<
VehicleWarnUser
>
findById
(
Integer
id
)
{
return
Optional
.
of
(
id
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnUser:
:
getId
,
id
)
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
Optional
<
VehicleWarnUser
>
findByMobile
(
String
mobile
)
{
return
Optional
.
of
(
mobile
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
VehicleWarnUser:
:
getMobile
,
mobile
)
.
eq
(
VehicleWarnUser:
:
getDeleteStatus
,
VehicleWarnUserEnum
.
DeleteStatus
.
NO
.
getCode
())
.
last
(
"limit 1"
)
)
.
map
(
super
::
getOne
);
}
@Override
public
List
<
VehicleWarnUser
>
listAllEnable
()
{
return
list
(
lQrWrapper
()
.
eq
(
VehicleWarnUser:
:
getDeleteStatus
,
VehicleWarnUserEnum
.
DeleteStatus
.
NO
.
getCode
())
);
}
@Override
public
IPage
<
VehicleWarnUser
>
pageByParam
(
PageVehicleWarnUserParam
param
)
{
Page
<
VehicleWarnUser
>
page
=
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
());
return
baseMapper
.
pageByParam
(
page
,
param
);
}
}
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnChildDao.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
vehiclewarn
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnChildMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
public
interface
VehicleWarnChildDao
extends
BaseDao
<
VehicleWarnChildMapper
,
VehicleWarnChild
,
Integer
>
{
boolean
updateTraceTime
(
VehicleWarnChild
item
);
boolean
updateReceiveAddressDistance
(
VehicleWarnChild
item
);
Optional
<
VehicleWarnChild
>
findByChildNo
(
String
childNo
);
List
<
VehicleWarnChild
>
ListTruckNoOfTrace
();
List
<
VehicleWarnChild
>
ListTruckNoOfWarn
();
}
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnConfigDao.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnConfigMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
public
interface
VehicleWarnConfigDao
extends
BaseDao
<
VehicleWarnConfigMapper
,
VehicleWarnConfig
,
Integer
>
{
boolean
updateConfig
(
VehicleWarnConfig
item
);
boolean
updateStatus
(
VehicleWarnConfig
item
);
boolean
updateDelete
(
VehicleWarnConfig
item
);
Optional
<
VehicleWarnConfig
>
findById
(
Integer
id
);
Optional
<
VehicleWarnConfig
>
findByName
(
String
name
);
List
<
VehicleWarnConfig
>
listByWarnType
(
Integer
warnType
);
IPage
<
VehicleWarnConfig
>
pageByParam
(
PageVehicleWarnConfigParam
param
);
}
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnInfoDao.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
public
interface
VehicleWarnInfoDao
extends
BaseDao
<
VehicleWarnInfoMapper
,
VehicleWarnInfo
,
Integer
>
{
boolean
updateStatus
(
VehicleWarnInfo
item
);
boolean
batchUpdateStatus
(
List
<
Integer
>
idList
,
Integer
status
);
boolean
updateSuspendTime
(
VehicleWarnInfo
item
,
Integer
warnRang
);
boolean
updateWarnTime
(
VehicleWarnInfo
item
);
Optional
<
VehicleWarnInfo
>
findById
(
Integer
id
);
Optional
<
VehicleWarnInfo
>
findByChildNoAndWarnConfigId
(
String
childNo
,
Integer
warnConfigId
);
List
<
VehicleWarnInfo
>
listSuspendTimeout
();
IPage
<
VehicleWarnInfo
>
pageByParam
(
PageVehicleWarnInfoParam
param
);
}
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnLogDao.java
0 → 100644
浏览文件 @
be3f81ee
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/dao/vehiclewarn/VehicleWarnRangeDao.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
vehiclewarn
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnRang
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
public
interface
VehicleWarnRangeDao
extends
BaseDao
<
VehicleWarnRangMapper
,
VehicleWarnRang
,
Integer
>
{
List
<
VehicleWarnRang
>
ListByWarnConfigId
(
Integer
warnConfigId
);
}
performance-web/src/main/java/com/clx/performance/dao/vehiclewarn/VehicleWarnUserDao.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
dao
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.mapper.vehiclewarn.VehicleWarnUserMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
public
interface
VehicleWarnUserDao
extends
BaseDao
<
VehicleWarnUserMapper
,
VehicleWarnUser
,
Integer
>
{
boolean
updateUser
(
VehicleWarnUser
item
);
boolean
deleteUser
(
VehicleWarnUser
item
);
boolean
updateWarnType
(
VehicleWarnUser
item
);
Optional
<
VehicleWarnUser
>
findById
(
Integer
id
);
Optional
<
VehicleWarnUser
>
findByMobile
(
String
mobile
);
List
<
VehicleWarnUser
>
listAllEnable
();
IPage
<
VehicleWarnUser
>
pageByParam
(
PageVehicleWarnUserParam
param
);
}
performance-web/src/main/java/com/clx/performance/dto/vehiclewarn/VehicleWarnCommonInfoDTO.java
0 → 100644
浏览文件 @
be3f81ee
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
;
//当前时间
private
LocalDateTime
transportEndTime
;
//拉运结束时间
}
performance-web/src/main/java/com/clx/performance/esplus/mapper/DriverTraceESPlusMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
esplus
.
mapper
;
import
com.clx.performance.esplus.model.DriverTraceESPlus
;
import
org.dromara.easyes.core.kernel.BaseEsMapper
;
public
interface
DriverTraceESPlusMapper
extends
BaseEsMapper
<
DriverTraceESPlus
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/mapper/TruckTraceESPlusMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
esplus
.
mapper
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
org.dromara.easyes.core.kernel.BaseEsMapper
;
public
interface
TruckTraceESPlusMapper
extends
BaseEsMapper
<
TruckTraceESPlus
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/model/DriverTraceESPlus.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
esplus
.
model
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.dromara.easyes.annotation.IndexField
;
import
org.dromara.easyes.annotation.IndexId
;
import
org.dromara.easyes.annotation.IndexName
;
import
org.dromara.easyes.annotation.rely.FieldType
;
import
org.dromara.easyes.annotation.rely.IdType
;
import
java.math.BigDecimal
;
@Data
@IndexName
(
"clx_trace_driver_trace_index1"
)
public
class
DriverTraceESPlus
{
@IndexId
(
type
=
IdType
.
UUID
)
private
String
id
;
@ApiModelProperty
(
"用户编号"
)
private
Long
userNo
;
@ApiModelProperty
(
"1-正常上传,2-离线上传"
)
private
Integer
dataType
;
@IndexField
(
fieldType
=
FieldType
.
GEO_POINT
)
private
BigDecimal
[]
location
;
//位置
@ApiModelProperty
(
"速度"
)
private
BigDecimal
speed
;
@IndexField
(
fieldType
=
FieldType
.
DATE
)
private
String
positionTime
;
@IndexField
(
fieldType
=
FieldType
.
DATE
)
private
String
createTime
;
@IndexField
(
fieldType
=
FieldType
.
DATE
)
private
String
modifiedTime
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/esplus/model/TruckTraceESPlus.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
esplus
.
model
;
import
lombok.Data
;
import
org.dromara.easyes.annotation.IndexField
;
import
org.dromara.easyes.annotation.IndexId
;
import
org.dromara.easyes.annotation.IndexName
;
import
org.dromara.easyes.annotation.rely.FieldType
;
import
org.dromara.easyes.annotation.rely.IdType
;
import
java.math.BigDecimal
;
@Data
@IndexName
(
value
=
"clx_truck_trace"
)
public
class
TruckTraceESPlus
{
@IndexId
(
type
=
IdType
.
UUID
)
private
String
id
;
@IndexField
(
fieldType
=
FieldType
.
KEYWORD
)
private
String
truckNo
;
//车辆编号
private
BigDecimal
angle
;
//agl
private
BigDecimal
speed
;
//速度
private
BigDecimal
mileage
;
//里程
private
BigDecimal
height
;
//海拔
private
BigDecimal
[]
location
;
//位置
@IndexField
(
fieldType
=
FieldType
.
DATE
)
private
String
gpsTime
;
//时间
private
String
createTime
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/job/TruckTraceJob.java
浏览文件 @
be3f81ee
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.job;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.service.trace.TruckTraceMqService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
com.clx.user.feign.UserClxFeign
;
...
...
@@ -34,6 +35,9 @@ public class TruckTraceJob {
@Autowired
RedisTemplate
redisTemplate
;
@Autowired
private
TruckTraceMqService
truckTraceMqService
;
/**
* 驾驶证过期
...
...
@@ -98,5 +102,4 @@ public class TruckTraceJob {
}
}
}
performance-web/src/main/java/com/clx/performance/job/trace/VehicleTraceJob.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
job
.
trace
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.service.trace.TruckTraceMqService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.msl.common.job.JobLog
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Slf4j
@Component
public
class
VehicleTraceJob
{
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
TruckTraceMqService
truckTraceMqService
;
/**
* 车辆轨迹同步
*/
@XxlJob
(
"truckTraceSync"
)
public
void
truckTraceSync
()
{
try
{
List
<
VehicleWarnChild
>
list
=
vehicleWarnChildDao
.
ListTruckNoOfTrace
();
log
.
info
(
"车辆轨迹同步, size:{}"
,
list
.
size
());
for
(
VehicleWarnChild
item
:
list
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
beginTime
=
now
.
minusSeconds
(
600
);
// 发送mq (同步车辆轨迹)
truckTraceMqService
.
truckTracSync
(
item
.
getTruckNo
(),
item
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
now
));
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"车辆轨迹同步失败,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
JobLog
.
error
(
"车辆轨迹同步失败,异常原因====================="
,
e
);
}
}
}
performance-web/src/main/java/com/clx/performance/job/vehiclewarn/VehicleWarnJob.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
job
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
com.msl.common.job.JobLog
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
@Component
public
class
VehicleWarnJob
{
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
VehicleWarnMqService
vehicleWarnMqService
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
/**
* 车辆监控预警
*/
@XxlJob
(
"vehicleWarnTruckWarn"
)
public
void
vehicleWarnTruckWarn
()
{
try
{
List
<
VehicleWarnChild
>
list
=
vehicleWarnChildDao
.
ListTruckNoOfWarn
();
log
.
info
(
"车辆监控预警, size:{}"
,
list
.
size
());
for
(
VehicleWarnChild
item
:
list
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
beginTime
=
now
.
minusSeconds
(
600
);
// 发送mq (车辆预警)
vehicleWarnMqService
.
truckWarn
(
item
.
getChildNo
());
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"车辆监控预警失败,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
JobLog
.
error
(
"车辆监控预警失败,异常原因====================="
,
e
);
}
}
// /**
// * 预警暂停取消
// */
// @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/listener/trace/TraceDelayListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 轨迹 mq
* @Date: 2023-10-20 10:30:49
* @Version: 1.0
*/
@Slf4j
@Component
public
class
TraceDelayListener
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeyTraceConstants
.
DEFAULT_DEAD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"轨迹-延迟, message:{}"
,
message
);
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
MqDelay
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"轨迹-延迟 失败"
,
e
);
}
}
void
process
(
MqDelay
mq
){
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
mq
.
getData
()).
getBytes
()).
build
();
rabbitTemplate
.
send
(
mq
.
getExchange
(),
mq
.
getRouterKey
(),
message
);
}
}
performance-web/src/main/java/com/clx/performance/listener/trace/TruckTraceSyncListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: mq
* @Date: 2023-10-20 16:34:40
* @Version: 1.0
*/
@Slf4j
@Component
public
class
TruckTraceSyncListener
{
@Autowired
private
TruckTraceMqHandlerService
truckTraceMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"轨迹, 车辆轨迹同步, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
TruckTraceSyncMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"轨迹, 车辆轨迹同步失败"
,
e
);
}
}
private
void
process
(
TruckTraceSyncMqParam
mq
){
truckTraceMqHandlerService
.
truckTracSync
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnChildAddListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 运单新增 mq
* @Date: 2023-10-20 16:34:40
* @Version: 1.0
*/
@Slf4j
@Component
public
class
VehicleWarnChildAddListener
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyVehicleWarnConstants
.
ORDER_CHILD_ADD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-运单新增, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
VehicleWarnChildAddMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-运单新增 失败"
,
e
);
}
}
private
void
process
(
VehicleWarnChildAddMqParam
mq
){
vehicleWarnMqHandlerService
.
orderChildAdd
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnDelayListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeySettlementConstants
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 车辆预警 mq
* @Date: 2023-10-20 16:14:30
* @Version: 1.0
*/
@Slf4j
@Component
public
class
VehicleWarnDelayListener
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeySettlementConstants
.
DEFAULT_DEAD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-延迟, message:{}"
,
message
);
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
MqDelay
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-延迟 失败"
,
e
);
}
}
void
process
(
MqDelay
mq
){
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
mq
.
getData
()).
getBytes
()).
build
();
rabbitTemplate
.
send
(
mq
.
getExchange
(),
mq
.
getRouterKey
(),
message
);
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnTruckWarnListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 运单新增 mq
* @Date: 2023-10-20 16:34:40
* @Version: 1.0
*/
@Slf4j
@Component
public
class
VehicleWarnTruckWarnListener
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-运单预警, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
VehicleWarnTruckWarnMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-运单预警 失败"
,
e
);
}
}
private
void
process
(
VehicleWarnTruckWarnMqParam
mq
){
vehicleWarnMqHandlerService
.
truckWarn
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/listener/vehiclewarn/VehicleWarnTruckWarnNoticeListener.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
listener
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 运单预警通知 mq
* @Date: 2023-10-20 16:34:40
* @Version: 1.0
*/
@Slf4j
@Component
public
class
VehicleWarnTruckWarnNoticeListener
{
@Autowired
private
VehicleWarnMqHandlerService
vehicleWarnMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_NOTICE_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"车辆预警-运单预警通知, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
VehicleWarnTruckWarnNoticeMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"车辆预警-运单预警通知 失败"
,
e
);
}
}
private
void
process
(
VehicleWarnTruckWarnNoticeMqParam
mq
){
vehicleWarnMqHandlerService
.
truckWarnNotice
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
浏览文件 @
be3f81ee
...
...
@@ -22,6 +22,7 @@ import java.util.List;
@Mapper
public
interface
OrderChildMapper
extends
BaseMapper
<
OrderChild
>
{
String
TABLE
=
"order_child"
;
/**
* 司机运单列表
...
...
@@ -85,4 +86,32 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider
(
type
=
OrderChildSqlProvider
.
class
,
method
=
"getLossNet"
)
List
<
Double
>
getLossNet
(
@Param
(
"param"
)
OrderChildReportParam
param
);
@Select
(
"<script>"
+
"select sum(TIMESTAMPDIFF(SECOND,load_time,arrive_send_time)) from "
+
TABLE
+
" where load_time is not null and 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> "
+
" <if test = 'sendSystemAddressId == null'>and send_address_id = #{sendAddressId} </if> "
+
" <if test = 'receiveSystemAddressId == null'>and receive_address_id = #{receiveAddressId} </if> "
+
" </script>"
)
Integer
loadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
@Select
(
"<script>"
+
"select sum(TIMESTAMPDIFF(SECOND,unload_time,arrive_receive_time)) from "
+
TABLE
+
" where unload_time is not null and 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> "
+
" <if test = 'sendSystemAddressId == null'>and send_address_id = #{sendAddressId} </if> "
+
" <if test = 'receiveSystemAddressId == null'>and receive_address_id = #{receiveAddressId} </if> "
+
" </script>"
)
Integer
unloadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnChildMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
VehicleWarnChildMapper
extends
BaseMapper
<
VehicleWarnChild
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnConfigMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam
;
import
com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnConfigSqlProvider
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.SelectProvider
;
@Mapper
public
interface
VehicleWarnConfigMapper
extends
BaseMapper
<
VehicleWarnConfig
>
{
String
TABLE
=
"vehicle_warn_config"
;
/**
* @see VehicleWarnConfigSqlProvider#pageByParam(Page, PageVehicleWarnConfigParam)
*/
@SelectProvider
(
type
=
VehicleWarnConfigSqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
VehicleWarnConfig
>
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnConfigParam
param
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnInfoMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnInfoSqlProvider
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.SelectProvider
;
@Mapper
public
interface
VehicleWarnInfoMapper
extends
BaseMapper
<
VehicleWarnInfo
>
{
String
TABLE
=
"vehicle_warn_info"
;
/**
* @see VehicleWarnInfoSqlProvider#pageByParam(Page, PageVehicleWarnInfoParam)
*/
@SelectProvider
(
type
=
VehicleWarnInfoSqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
VehicleWarnInfo
>
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnInfoParam
param
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnLogMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnLog
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
VehicleWarnLogMapper
extends
BaseMapper
<
VehicleWarnLog
>
{
String
TABLE
=
"vehicle_warn_log"
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnRangMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnRang
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
VehicleWarnRangMapper
extends
BaseMapper
<
VehicleWarnRang
>
{
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/vehiclewarn/VehicleWarnUserMapper.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
mapper
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam
;
import
com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnUserSqlProvider
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.SelectProvider
;
@Mapper
public
interface
VehicleWarnUserMapper
extends
BaseMapper
<
VehicleWarnUser
>
{
String
TABLE
=
"vehicle_warn_user"
;
/**
* @see VehicleWarnUserSqlProvider#pageByParam(Page, PageVehicleWarnUserParam)
*/
@SelectProvider
(
type
=
VehicleWarnUserSqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
VehicleWarnUser
>
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnUserParam
param
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnChild.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 车辆预警运单表
* @Date: 2024/04/28 14:36:58
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnChild
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
String
childNo
;
//运单编号
private
String
orderGoodsNo
;
//货单编号
private
String
truckNo
;
//车牌号
private
Long
driverUserNo
;
//司机用户编号
private
BigDecimal
sendLongitude
;
//发货地址经度
private
BigDecimal
sendLatitude
;
//发货地址纬度
private
BigDecimal
receiveLongitude
;
//收货地址经度
private
BigDecimal
receiveLatitude
;
//收货地址纬度
private
Integer
arriveSendExpectTime
;
//预计到达货源地时间 (min)
private
Integer
arriveReceiveExpectTime
;
//预计到达目的地时间 (min)
private
LocalDateTime
takeTime
;
//接单时间
private
Integer
receiveAddressDistance
;
//距离目的地距离(m)
private
LocalDateTime
traceTime
;
//轨迹更新时间
private
Integer
traceStatus
;
//轨迹更新状态:0禁止 1启用
private
Integer
wanStatus
;
//预警更新状态:0禁用 1启用
private
Integer
status
;
//状态
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnConfig.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 车辆预警配置
* @Date: 2024/04/25 13:24:56
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnConfig
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
String
warnName
;
//预警方案名称
private
Integer
warnType
;
//预警类型
private
Integer
warnLevel
;
//预警级别
@TableField
(
value
=
"`interval`"
)
private
BigDecimal
interval
;
//预警间隔(小时)
private
BigDecimal
timeoutRatio
;
//超时比例(%)
private
BigDecimal
longitude
;
//经度
private
BigDecimal
latitude
;
//纬度
private
String
address
;
//地址
private
Integer
radius
;
//半径(米)
private
Integer
deleteStatus
;
//删除状态: 0-否;1-是
private
Integer
status
;
//状态:1启用 2禁用
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnInfo.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 车辆预警信息表
* @Date: 2024/04/25 13:24:56
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnInfo
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
Integer
warnConfigId
;
//预警配置id
private
String
warnName
;
//预警名称
private
Integer
warnType
;
//预警类型
private
Integer
warnLevel
;
//预警级别
private
String
orderGoodsNo
;
//货单编号
private
String
childNo
;
//运单编号
private
Integer
sendAddressId
;
//发货地址id
private
String
sendAddress
;
//发货地址
private
Integer
receiveAddressId
;
//收货地址id
private
String
receiveAddress
;
//收货地址
private
Integer
childStatus
;
//运单状态
private
Integer
truckId
;
//车辆ID
private
String
truckNo
;
//车牌号
private
Long
driverUserNo
;
//司机用户编号
private
String
driverName
;
//司机姓名
private
String
driverMobile
;
//司机手机号
private
LocalDateTime
takeTime
;
//接单时间
private
LocalDateTime
suspendTime
;
//预警暂停时间
private
LocalDateTime
warnTime
;
//预警时间
private
Integer
status
;
//处理状态:1待处理 2已处理 3暂停预警
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnLog.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 预警日志
* @Date: 2024/04/26 10:32:01
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnLog
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
Integer
infoId
;
//预警信息id
private
Integer
type
;
//类型:1暂停预警 2处理预警
private
String
childNo
;
//运单编号
private
String
warnName
;
//预警名称
private
LocalDateTime
warnTime
;
//预警时间
private
Integer
warnRang
;
//预警屏蔽范围:1运单 2货单 3无预警
private
LocalDateTime
warnEndTime
;
//预警屏蔽结束时间
private
String
content
;
//内容
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnRang.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 预警范围
* @Date: 2024/05/06 15:21:27
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnRang
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
Integer
warnConfigId
;
//预警配置id
private
String
warnName
;
//预警名称
private
Integer
warnRang
;
//预警屏蔽范围:1运单 2货单 3全部
private
String
orderNo
;
//货单编号
private
String
childNo
;
//运单编号
private
LocalDateTime
warnEndTime
;
//预警屏蔽结束时间
private
Integer
status
;
//状态:1有效 2无效
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnUser.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
model
.
vehiclewarn
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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.NoArgsConstructor
;
import
lombok.Setter
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqinguo
* @Description: 车辆预警通知人员表
* @Date: 2024/04/25 13:24:56
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName
(
autoResultMap
=
true
)
public
class
VehicleWarnUser
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
//id
private
String
name
;
//姓名
private
String
mobile
;
//手机
private
String
warmTypeJson
;
//预警配置
private
Integer
deleteStatus
;
//删除状态: 0-否;1-是
private
String
createBy
;
//创建人
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
performance-web/src/main/java/com/clx/performance/service/child/OrderChildPostService.java
浏览文件 @
be3f81ee
...
...
@@ -4,6 +4,7 @@ import com.clx.performance.model.OrderChild;
public
interface
OrderChildPostService
{
void
orderChildAdd
(
String
childNo
);
void
orderChildArriveReceiveAddress
(
OrderChild
orderChild
);
void
orderChildDriverConfirm
(
OrderChild
orderChild
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
be3f81ee
...
...
@@ -427,8 +427,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
CREATED
.
getCode
(),
OrderChildLogEnum
.
Type
.
CREATED
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
//
发送mq 新增运单
orderChild
Mq
Service
.
orderChildAdd
(
orderChild
.
getChildNo
());
//
司机接单后置逻辑
orderChild
Post
Service
.
orderChildAdd
(
orderChild
.
getChildNo
());
SaveOrderChildVO
result
=
new
SaveOrderChildVO
();
result
.
setChildNo
(
childNo
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/child/OrderChildPostServiceImpl.java
浏览文件 @
be3f81ee
...
...
@@ -9,6 +9,7 @@ import com.clx.performance.service.IntegralMqService;
import
com.clx.performance.service.OrderChildMqService
;
import
com.clx.performance.service.breakcontract.BreakContractDriverRecordService
;
import
com.clx.performance.service.child.OrderChildPostService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnMqService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,6 +27,18 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
@Autowired
private
BreakContractDriverRecordService
breakContractDriverRecordService
;
@Autowired
private
VehicleWarnMqService
vehicleWarnMqService
;
@Override
public
void
orderChildAdd
(
String
childNo
)
{
// 发送mq 新增运单
orderChildMqService
.
orderChildAdd
(
childNo
);
// 发送mq (运单新增)
vehicleWarnMqService
.
orderChildAdd
(
childNo
);
}
@Override
public
void
orderChildArriveReceiveAddress
(
OrderChild
orderChild
)
{
// 保存违约记录
...
...
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqHandlerServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.dto.zjxl.TruckTraceDTO
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnChildEnum
;
import
com.clx.performance.esplus.mapper.TruckTraceESPlusMapper
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.utils.zjxl.ZjxlGpsService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
@Service
public
class
TruckTraceMqHandlerServiceImpl
implements
TruckTraceMqHandlerService
{
@Autowired
private
ZjxlGpsService
zjxlGpsService
;
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
truckTracSync
(
TruckTraceSyncMqParam
mq
)
{
VehicleWarnChild
vehicleWarnChild
=
vehicleWarnChildDao
.
findByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
if
(
orderChild
.
getFinishTime
()
!=
null
)
{
vehicleWarnChild
.
setTraceStatus
(
VehicleWarnChildEnum
.
TraceStatus
.
DISABLE
.
getCode
());
}
vehicleWarnChild
.
setTraceTime
(
LocalDateTimeUtils
.
parseTime
(
mq
.
getEndTime
()));
List
<
TruckTraceDTO
>
list
=
zjxlGpsService
.
getTruckTrace
(
mq
.
getTruckNo
(),
mq
.
getBeginTime
(),
mq
.
getEndTime
());
if
(
list
.
isEmpty
())
{
return
;}
List
<
TruckTraceESPlus
>
esList
=
new
ArrayList
<>();
for
(
TruckTraceDTO
item
:
list
)
{
TruckTraceESPlus
es
=
new
TruckTraceESPlus
();
es
.
setTruckNo
(
item
.
getTruckNo
());
es
.
setAngle
(
item
.
getAngle
());
es
.
setHeight
(
item
.
getHeight
());
es
.
setLocation
(
new
BigDecimal
[]{
item
.
getLocation
()[
0
],
item
.
getLocation
()[
1
]});
es
.
setGpsTime
(
item
.
getGpsTime
());
es
.
setMileage
(
item
.
getMileage
());
es
.
setSpeed
(
item
.
getSpeed
());
esList
.
add
(
es
);
}
// 保存
truckTraceESPlusMapper
.
insertBatch
(
esList
);
// 更新同步时间
vehicleWarnChildDao
.
updateTraceTime
(
vehicleWarnChild
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyTraceConstants
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
import
com.clx.performance.service.trace.TruckTraceMqService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
TruckTraceMqServiceImpl
implements
TruckTraceMqService
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@Override
public
void
truckTracSync
(
String
childNo
,
String
truckNo
,
String
beginTime
,
String
endTime
)
{
TruckTraceSyncMqParam
mq
=
new
TruckTraceSyncMqParam
();
mq
.
setChildNo
(
childNo
);
mq
.
setTruckNo
(
truckNo
);
mq
.
setBeginTime
(
beginTime
);
mq
.
setEndTime
(
endTime
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyTraceConstants
.
TRUCK_TRACE_SYNC_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyTraceConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyTraceConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
trace
;
import
com.clx.performance.esplus.mapper.DriverTraceESPlusMapper
;
import
com.clx.performance.esplus.mapper.TruckTraceESPlusMapper
;
import
com.clx.performance.esplus.model.DriverTraceESPlus
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.param.temp.DriverTraceAddParam
;
import
com.clx.performance.param.temp.TruckTraceAddParam
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.struct.trace.DriverTraceStruct
;
import
com.clx.performance.struct.trace.TruckTraceStruct
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
@Service
public
class
TruckTraceServiceImpl
implements
TruckTraceService
{
// 停留速度
private
static
final
Integer
PARK_SPEED
=
5
;
@Autowired
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
@Autowired
private
DriverTraceESPlusMapper
driverTraceESPlusMapper
;
@Autowired
private
TruckTraceStruct
truckTraceStruct
;
@Autowired
private
DriverTraceStruct
driverTraceStruct
;
@Override
public
List
<
DriverTruckTraceVO
>
listTruckTraceByTime
(
String
truckNo
,
String
beginTime
,
String
endTime
)
{
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
.
le
(
TruckTraceESPlus:
:
getGpsTime
,
endTime
)
.
orderByAsc
(
"gpsTime"
)
);
List
<
DriverTruckTraceVO
>
traceList
=
truckTraceStruct
.
convert
(
list
);
// 停留时长计算
Integer
parkIdx
=
null
;
for
(
int
i
=
0
;
i
<
traceList
.
size
();
i
++){
if
(
traceList
.
get
(
i
).
getSpeed
().
compareTo
(
new
BigDecimal
(
PARK_SPEED
))
<
0
){
parkIdx
=
i
;
}
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
));
}
}
return
traceList
;
}
@Override
public
List
<
DriverTraceVO
>
listDriverTraceByTime
(
Long
userNo
,
String
beginTime
,
String
endTime
)
{
List
<
DriverTraceESPlus
>
list
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
le
(
DriverTraceESPlus:
:
getPositionTime
,
endTime
)
.
orderByAsc
(
"positionTime"
)
);
List
<
DriverTraceVO
>
traceList
=
driverTraceStruct
.
convert
(
list
);
// 停留时长计算
Integer
parkIdx
=
null
;
for
(
int
i
=
0
;
i
<
traceList
.
size
();
i
++){
if
(
traceList
.
get
(
i
).
getSpeed
().
compareTo
(
new
BigDecimal
(
PARK_SPEED
))
<
0
){
parkIdx
=
i
;
}
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
));
}
}
return
traceList
;
}
@Override
public
void
truckTraceSave
(
TruckTraceAddParam
param
){
List
<
TruckTraceESPlus
>
list
=
new
ArrayList
<>();
for
(
TruckTraceAddParam
.
TruckTraceItem
item
:
param
.
getTraceList
())
{
TruckTraceESPlus
es
=
new
TruckTraceESPlus
();
es
.
setTruckNo
(
item
.
getTruckNo
());
es
.
setAngle
(
item
.
getAngle
());
es
.
setHeight
(
item
.
getHeight
());
es
.
setLocation
(
item
.
getLocation
());
es
.
setGpsTime
(
item
.
getGpsTime
());
es
.
setMileage
(
item
.
getMileage
());
es
.
setSpeed
(
item
.
getSpeed
());
es
.
setCreateTime
(
LocalDateTimeUtils
.
formatTime
());
list
.
add
(
es
);
}
truckTraceESPlusMapper
.
insertBatch
(
list
);
}
@Override
public
void
driverTraceSave
(
DriverTraceAddParam
param
){
List
<
DriverTraceESPlus
>
list
=
new
ArrayList
<>();
for
(
DriverTraceAddParam
.
DriverTraceItem
item
:
param
.
getTraceList
())
{
DriverTraceESPlus
es
=
new
DriverTraceESPlus
();
es
.
setUserNo
(
item
.
getUserNo
());
es
.
setDataType
(
item
.
getDataType
());
es
.
setLocation
(
item
.
getLocation
());
es
.
setPositionTime
(
item
.
getGpsTime
());
es
.
setCreateTime
(
LocalDateTimeUtils
.
formatTime
());
es
.
setModifiedTime
(
es
.
getCreateTime
());
list
.
add
(
es
);
}
driverTraceESPlusMapper
.
insertBatch
(
list
);
}
@Override
public
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
5
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
// 车辆
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
.
le
(
TruckTraceESPlus:
:
getGpsTime
,
endTime
)
.
orderByDesc
(
"gpsTime"
)
.
limit
(
1
)
);
if
(!
list
.
isEmpty
()){
return
list
.
get
(
0
).
getLocation
();
}
// 司机
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
le
(
DriverTraceESPlus:
:
getPositionTime
,
endTime
)
.
orderByDesc
(
"positionTime"
)
.
limit
(
1
)
);
if
(!
list1
.
isEmpty
()){
return
list1
.
get
(
0
).
getLocation
();
}
return
null
;
}
@Override
public
int
getParkTime
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusDays
(
1
));
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
// 车辆
List
<
TruckTraceESPlus
>
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
gt
(
TruckTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
.
ge
(
TruckTraceESPlus:
:
getGpsTime
,
beginTime
)
.
le
(
TruckTraceESPlus:
:
getGpsTime
,
endTime
)
.
orderByAsc
(
"gpsTime"
)
.
limit
(
1
)
);
if
(!
list
.
isEmpty
()){
list
=
truckTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
TruckTraceESPlus
>()
.
eq
(
TruckTraceESPlus:
:
getTruckNo
,
truckNo
)
.
gt
(
TruckTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
.
gt
(
TruckTraceESPlus:
:
getGpsTime
,
list
.
get
(
0
).
getGpsTime
())
.
le
(
TruckTraceESPlus:
:
getGpsTime
,
endTime
)
.
orderByDesc
(
"gpsTime"
)
);
return
(
int
)
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
list
.
get
(
0
).
getGpsTime
()),
LocalDateTimeUtils
.
parseTime
(
list
.
get
(
list
.
size
()
-
1
).
getGpsTime
())).
toMinutes
();
}
// 司机
List
<
DriverTraceESPlus
>
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
beginTime
)
.
le
(
DriverTraceESPlus:
:
getPositionTime
,
endTime
)
.
orderByAsc
(
"positionTime"
)
.
limit
(
1
)
);
if
(!
list1
.
isEmpty
()){
list1
=
driverTraceESPlusMapper
.
selectList
(
new
LambdaEsQueryWrapper
<
DriverTraceESPlus
>()
.
eq
(
DriverTraceESPlus:
:
getUserNo
,
userNo
)
.
eq
(
DriverTraceESPlus:
:
getSpeed
,
PARK_SPEED
)
.
ge
(
DriverTraceESPlus:
:
getPositionTime
,
list1
.
get
(
0
).
getPositionTime
())
.
le
(
DriverTraceESPlus:
:
getPositionTime
,
endTime
)
.
orderByDesc
(
"positionTime"
)
);
return
(
int
)
Duration
.
between
(
LocalDateTimeUtils
.
parseTime
(
list1
.
get
(
0
).
getPositionTime
()),
LocalDateTimeUtils
.
parseTime
(
list1
.
get
(
list1
.
size
()
-
1
).
getPositionTime
())).
toMinutes
();
}
return
0
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnCommonServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
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.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.VehicleWarnMqService
;
import
com.clx.performance.utils.gd.GdService
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.gps.GpsUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
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
){
// 计算下次生效时间
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
.
updateWarnTime
(
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
.
setOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
());
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
item
.
getWarnEndTime
().
isAfter
(
LocalDateTime
.
now
());
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
ORDER_GOODS
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getOrderGoodsNo
(),
item
.
getOrderNo
()))
{
return
item
.
getWarnEndTime
().
isAfter
(
LocalDateTime
.
now
());
}
}
if
(
Objects
.
equals
(
item
.
getWarnRang
(),
VehicleWarnRangEnum
.
WarnRange
.
CHILD
.
getCode
())){
if
(
Objects
.
equals
(
vehicleWarnChild
.
getChildNo
(),
item
.
getChildNo
()))
{
return
item
.
getWarnEndTime
().
isAfter
(
LocalDateTime
.
now
());
}
}
}
}
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
);
}
/**
* 获取需要距离(m)
*/
@Override
public
int
getNeedDistance
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
){
int
needDistance
=
0
;
if
(
currentPosition
==
null
)
{
return
0
;}
try
{
List
<
GdRouteDTO
>
gdRouteDTOS
=
gdService
.
getRoute
(
currentPosition
[
0
],
currentPosition
[
1
],
destinationLongitude
,
destinationLatitude
);
if
(!
gdRouteDTOS
.
isEmpty
()){
needDistance
=
gdRouteDTOS
.
get
(
0
).
getDistance
();
}
}
catch
(
ServiceSystemException
e
)
{
log
.
info
(
"获取高德线路失败, msg:{}"
,
e
.
getMessage
());
}
return
needDistance
;
}
@Override
public
Integer
getDistance
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
)
{
if
(
currentPosition
==
null
)
{
return
null
;}
return
GpsUtil
.
distanceM
(
currentPosition
[
0
],
currentPosition
[
1
],
destinationLongitude
,
destinationLatitude
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnConfigServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
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.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnConfigService
;
import
com.clx.performance.struct.vehiclewarn.VehicleWarnConfigStruct
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnConfigServiceImpl
implements
VehicleWarnConfigService
{
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnConfigStruct
vehicleWarnConfigStruct
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
saveConfig
(
VehicleWarnConfigAddParam
param
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
Optional
<
VehicleWarnConfig
>
optional
=
vehicleWarnConfigDao
.
findByName
(
param
.
getWarnName
());
if
(
optional
.
isPresent
()){
throw
new
ServiceSystemException
(
ResultEnum
.
VEHICLE_WARN_CONFIG_EXIST
);
}
VehicleWarnConfig
vehicleWarnConfig
=
new
VehicleWarnConfig
();
vehicleWarnConfig
.
setWarnName
(
param
.
getWarnName
());
vehicleWarnConfig
.
setWarnType
(
param
.
getWarnType
());
vehicleWarnConfig
.
setWarnLevel
(
param
.
getWarnLevel
());
vehicleWarnConfig
.
setInterval
(
param
.
getInterval
());
vehicleWarnConfig
.
setTimeoutRatio
(
param
.
getTimeoutRatio
());
vehicleWarnConfig
.
setLongitude
(
param
.
getLongitude
());
vehicleWarnConfig
.
setLatitude
(
param
.
getLatitude
());
vehicleWarnConfig
.
setAddress
(
param
.
getAddress
());
vehicleWarnConfig
.
setRadius
(
param
.
getRadius
());
vehicleWarnConfig
.
setCreateBy
(
loginUserInfo
.
getUserName
());
vehicleWarnConfigDao
.
saveEntity
(
vehicleWarnConfig
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateConfig
(
VehicleWarnConfigUpdateParam
param
)
{
VehicleWarnConfig
vehicleWarnConfig
=
vehicleWarnConfigDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
vehicleWarnConfig
.
getWarnName
(),
param
.
getWarnName
())){
Optional
<
VehicleWarnConfig
>
optional
=
vehicleWarnConfigDao
.
findByName
(
param
.
getWarnName
());
if
(
optional
.
isPresent
()){
throw
new
ServiceSystemException
(
ResultEnum
.
VEHICLE_WARN_CONFIG_EXIST
);
}
}
vehicleWarnConfig
.
setWarnName
(
param
.
getWarnName
());
vehicleWarnConfig
.
setWarnType
(
param
.
getWarnType
());
vehicleWarnConfig
.
setWarnLevel
(
param
.
getWarnLevel
());
vehicleWarnConfig
.
setInterval
(
param
.
getInterval
());
vehicleWarnConfig
.
setTimeoutRatio
(
param
.
getTimeoutRatio
());
vehicleWarnConfig
.
setLongitude
(
param
.
getLongitude
());
vehicleWarnConfig
.
setLatitude
(
param
.
getLatitude
());
vehicleWarnConfig
.
setAddress
(
param
.
getAddress
());
vehicleWarnConfig
.
setRadius
(
param
.
getRadius
());
vehicleWarnConfigDao
.
updateConfig
(
vehicleWarnConfig
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateStatus
(
VehicleWarnConfigStatusUpdateParam
param
)
{
VehicleWarnConfig
vehicleWarnConfig
=
vehicleWarnConfigDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
vehicleWarnConfig
.
setStatus
(
param
.
getStatus
());
vehicleWarnConfigDao
.
updateStatus
(
vehicleWarnConfig
);
}
@Override
public
void
deleteConfig
(
VehicleWarnConfigDeleteUpdateParam
param
)
{
VehicleWarnConfig
vehicleWarnConfig
=
vehicleWarnConfigDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
vehicleWarnConfig
.
setDeleteStatus
(
VehicleWarnConfigEnum
.
DeleteStatus
.
YES
.
getCode
());
vehicleWarnConfigDao
.
updateDelete
(
vehicleWarnConfig
);
}
@Override
public
VehicleWarnConfigVO
getConfig
(
Integer
id
)
{
return
vehicleWarnConfigStruct
.
convert
(
vehicleWarnConfigDao
.
findById
(
id
).
orNull
());
}
@Override
public
IPage
<
VehicleWarnConfigVO
>
pageConfig
(
PageVehicleWarnConfigParam
param
)
{
return
vehicleWarnConfigStruct
.
convertPage
(
vehicleWarnConfigDao
.
pageByParam
(
param
));
}
@Override
public
List
<
VehicleWarnConfigVO
.
WarnTypeItem
>
listWarnType
()
{
List
<
VehicleWarnConfigVO
.
WarnTypeItem
>
list
=
new
ArrayList
<>();
for
(
VehicleWarnConfigEnum
.
WarnType
item
:
VehicleWarnConfigEnum
.
WarnType
.
values
())
{
list
.
add
(
new
VehicleWarnConfigVO
.
WarnTypeItem
(
item
.
getCode
(),
item
.
getMsg
()));
}
return
list
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnDelayWarnServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
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.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnDelayWarnService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnDelayWarnServiceImpl
implements
VehicleWarnDelayWarnService
{
// 装卸车默认时间(min)
private
static
final
Integer
LOAD_UNLOAD_TIME_DEFAULT
=
60
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
/**
* 运单延误
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
delayTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
// 拉运结束时间
LocalDateTime
transportEndTime
=
commonInfo
.
getTransportEndTime
();
// 预警到达货源地时间
Integer
sendAddressTime
=
commonInfo
.
getSendAddressTime
();
// 装车时间
Integer
loadTime
=
getLoadTime
(
orderChild
.
getSendAddressId
(),
orderChild
.
getReceiveAddressId
(),
orderChild
.
getSendSystemAddressId
(),
orderChild
.
getReceiveSystemAddressId
(),
commonInfo
.
getCurrentTime
());
// 到目的地时间
Integer
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
// 卸车时间
Integer
unloadTime
=
getUnloadTime
(
orderChild
.
getSendAddressId
(),
orderChild
.
getReceiveAddressId
(),
orderChild
.
getSendSystemAddressId
(),
orderChild
.
getReceiveSystemAddressId
(),
commonInfo
.
getCurrentTime
());
// 计算需要的时间
Integer
needTime
=
sendAddressTime
+
loadTime
+
expectTime
+
unloadTime
;
// 超时
if
(
transportEndTime
.
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
DELAY
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doDelayTimeout
(
orderChild
,
vehicleWarnChild
,
item
);
}
}
private
void
doDelayTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
/**
* 获取装车平均时间(min)
*/
private
Integer
getLoadTime
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
LocalDateTime
now
){
Integer
time
=
orderChildDao
.
loadTimeAvg
(
sendAddressId
,
receiveAddressId
,
sendSystemAddressId
,
receiveSystemAddressId
,
LocalDateTimeUtils
.
formatTime
(
now
.
minusDays
(
30
)));
if
(
time
==
null
)
{
return
LOAD_UNLOAD_TIME_DEFAULT
;}
return
time
/
60
;
}
/**
* 获取卸车平均时间(min)
*/
private
Integer
getUnloadTime
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
LocalDateTime
now
){
Integer
time
=
orderChildDao
.
unloadTimeAvg
(
sendAddressId
,
receiveAddressId
,
sendSystemAddressId
,
receiveSystemAddressId
,
LocalDateTimeUtils
.
formatTime
(
now
.
minusDays
(
30
)));
if
(
time
==
null
)
{
return
LOAD_UNLOAD_TIME_DEFAULT
;}
return
time
/
60
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnInfoServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnLogEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnLog
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoResolveUpdateParam
;
import
com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoSuspendUpdateParam
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnInfoService
;
import
com.clx.performance.struct.vehiclewarn.VehicleWarnInfoStruct
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Slf4j
@Service
public
class
VehicleWarnInfoServiceImpl
implements
VehicleWarnInfoService
{
private
final
Integer
TRUCK_TRACE_DAY_MAX
=
3
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnLogDao
vehicleWarnLogDao
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
VehicleWarnInfoStruct
vehicleWarnInfoStruct
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateSuspend
(
VehicleWarnInfoSuspendUpdateParam
param
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
vehicleWarnInfo
.
setSuspendTime
(
LocalDateTimeUtils
.
parseTime
(
param
.
getWarnEndTime
()));
vehicleWarnInfoDao
.
updateSuspendTime
(
vehicleWarnInfo
,
param
.
getWarnRang
());
VehicleWarnLog
vehicleWarnLog
=
new
VehicleWarnLog
();
vehicleWarnLog
.
setInfoId
(
vehicleWarnInfo
.
getId
());
vehicleWarnLog
.
setType
(
VehicleWarnLogEnum
.
Type
.
SUSPEND
.
getCode
());
vehicleWarnLog
.
setContent
(
VehicleWarnLogEnum
.
Type
.
SUSPEND
.
getMsg
());
vehicleWarnLog
.
setChildNo
(
vehicleWarnInfo
.
getChildNo
());
vehicleWarnLog
.
setWarnName
(
vehicleWarnInfo
.
getWarnName
());
vehicleWarnLog
.
setWarnRang
(
param
.
getWarnRang
());
vehicleWarnLog
.
setWarnEndTime
(
LocalDateTimeUtils
.
parseTime
(
param
.
getWarnEndTime
()));
vehicleWarnLog
.
setCreateBy
(
loginUserInfo
.
getUserName
());
vehicleWarnLogDao
.
saveEntity
(
vehicleWarnLog
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateResolve
(
VehicleWarnInfoResolveUpdateParam
param
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
vehicleWarnInfo
.
setStatus
(
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
());
vehicleWarnInfoDao
.
updateStatus
(
vehicleWarnInfo
);
VehicleWarnLog
vehicleWarnLog
=
new
VehicleWarnLog
();
vehicleWarnLog
.
setInfoId
(
vehicleWarnInfo
.
getId
());
vehicleWarnLog
.
setType
(
VehicleWarnLogEnum
.
Type
.
RESOLVE
.
getCode
());
vehicleWarnLog
.
setContent
(
VehicleWarnLogEnum
.
Type
.
RESOLVE
.
getMsg
());
vehicleWarnLog
.
setChildNo
(
vehicleWarnInfo
.
getChildNo
());
vehicleWarnLog
.
setWarnName
(
vehicleWarnInfo
.
getWarnName
());
vehicleWarnLog
.
setCreateBy
(
loginUserInfo
.
getUserName
());
vehicleWarnLogDao
.
saveEntity
(
vehicleWarnLog
);
}
@Override
public
VehicleTraceVO
getTrace
(
Integer
id
)
{
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findById
(
id
).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
vehicleWarnInfo
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
LocalDateTime
beginTime
=
vehicleWarnInfo
.
getTakeTime
();
LocalDateTime
endTime
=
LocalDateTime
.
now
();
if
(
orderChild
.
getArriveSendTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveSendTime
();}
if
(
orderChild
.
getLoadTime
()
!=
null
)
{
endTime
=
orderChild
.
getLoadTime
();}
if
(
orderChild
.
getArriveReceiveTime
()
!=
null
)
{
endTime
=
orderChild
.
getArriveReceiveTime
();}
if
(
orderChild
.
getUnloadTime
()
!=
null
)
{
endTime
=
orderChild
.
getUnloadTime
();}
if
(
orderChild
.
getConfirmTime
()
!=
null
)
{
endTime
=
orderChild
.
getConfirmTime
();}
if
(
orderChild
.
getSettleTime
()
!=
null
)
{
endTime
=
orderChild
.
getSettleTime
();}
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
.
listTruckTraceByTime
(
vehicleWarnInfo
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
List
<
DriverTraceVO
>
driverTraceList
=
truckTraceService
.
listDriverTraceByTime
(
vehicleWarnInfo
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
endTime
));
// 接单重车、卸车空车
for
(
DriverTruckTraceVO
item
:
truckTraceList
)
{
item
.
setTruckStatus
(
1
);
if
(
orderChild
.
getCancelTime
()
!=
null
){
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getCancelTime
())){
item
.
setTruckStatus
(
0
);}
}
if
(
orderChild
.
getUnloadTime
()
!=
null
){
if
(
LocalDateTimeUtils
.
parseTime
(
item
.
getGpsTime
()).
isAfter
(
orderChild
.
getUnloadTime
())){
item
.
setTruckStatus
(
0
);}
}
}
VehicleTraceVO
result
=
new
VehicleTraceVO
();
result
.
setDriverTraceList
(
driverTraceList
);
result
.
setTruckTraceList
(
truckTraceList
);
return
result
;
}
@Override
public
VehicleWarnInfoVO
getInfo
(
Integer
id
)
{
return
vehicleWarnInfoStruct
.
convert
(
vehicleWarnInfoDao
.
findById
(
id
).
orNull
());
}
@Override
public
IPage
<
VehicleWarnInfoVO
>
pageInfo
(
PageVehicleWarnInfoParam
param
)
{
return
vehicleWarnInfoStruct
.
convertPage
(
vehicleWarnInfoDao
.
pageByParam
(
param
));
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnLoadAndUnloadWarnServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
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.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnLoadAndUnloadWarnService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
@Slf4j
@Service
public
class
VehicleWarnLoadAndUnloadWarnServiceImpl
implements
VehicleWarnLoadAndUnloadWarnService
{
private
static
final
Integer
MIN_FER_HOUR
=
60
;
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
/**
* 装车超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
loadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
){
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
LOAD_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doLoadTimeout
(
orderChild
,
vehicleWarnChild
,
item
);
}
}
private
void
doLoadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
();
if
(
orderChild
.
getArriveSendTime
().
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
())){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
/**
* 到达货源地超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
unloadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
){
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
UNLOAD_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doUnloadTimeout
(
orderChild
,
vehicleWarnChild
,
item
);
}
}
private
void
doUnloadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
();
if
(
orderChild
.
getArriveReceiveTime
().
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
())){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnMqHandlerServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
cn.hutool.json.JSONObject
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.message.feign.ClxMessageOpenapiFeign
;
import
com.clx.message.req.batch.AliBatchSmsMessageReq
;
import
com.clx.message.req.message.ClinkMessageReq
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.performance.config.ClxMessageConfig
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao
;
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.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.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
import
com.clx.performance.service.vehiclewarn.*
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnMqHandlerServiceImpl
implements
VehicleWarnMqHandlerService
{
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
VehicleWarnChildDao
vehicleWarnChildDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
VehicleWarnUserDao
vehicleWarnUserDao
;
@Autowired
private
VehicleWarnSendAddressWarnService
vehicleWarnSendAddressWarnService
;
@Autowired
private
VehicleWarnLoadAndUnloadWarnService
vehicleWarnLoadAndUnloadWarnService
;
@Autowired
private
VehicleWarnReceiveAddressWarnService
vehicleWarnReceiveAddressWarnService
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
@Autowired
private
ClxMessageConfig
clxMessageConfig
;
@Autowired
private
ClxMessageOpenapiFeign
clxMessageOpenapiFeign
;
@Autowired
private
VehicleWarnParkWarnService
vehicleWarnParkWarnService
;
@Autowired
private
OrderService
orderService
;
@Autowired
private
VehicleWarnDelayWarnService
vehicleWarnDelayWarnService
;
@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
);
// 计算预计时间
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
());
VehicleWarnChild
vehicleWarnChild
=
new
VehicleWarnChild
();
vehicleWarnChild
.
setOrderGoodsNo
(
orderChild
.
getOrderNo
());
vehicleWarnChild
.
setChildNo
(
orderChild
.
getChildNo
());
vehicleWarnChild
.
setTruckNo
(
orderChild
.
getTruckNo
());
vehicleWarnChild
.
setDriverUserNo
(
orderChild
.
getDriverUserNo
());
vehicleWarnChild
.
setSendLongitude
(
orderGoods
.
getSendLongitude
());
vehicleWarnChild
.
setSendLatitude
(
orderGoods
.
getSendLatitude
());
vehicleWarnChild
.
setReceiveLongitude
(
orderGoods
.
getReceiveLongitude
());
vehicleWarnChild
.
setReceiveLatitude
(
orderGoods
.
getReceiveLatitude
());
vehicleWarnChild
.
setArriveSendExpectTime
(
arriveSendExpectTime
==
0
?
null
:
arriveSendExpectTime
);
vehicleWarnChild
.
setArriveReceiveExpectTime
(
arriveReceiveExpectTime
==
0
?
null
:
arriveReceiveExpectTime
);
vehicleWarnChild
.
setTraceTime
(
orderChild
.
getPayTime
());
vehicleWarnChildDao
.
saveEntity
(
vehicleWarnChild
);
}
@Override
public
void
truckWarn
(
VehicleWarnTruckWarnMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
VehicleWarnChild
vehicleWarnChild
=
vehicleWarnChildDao
.
findByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
VehicleWarnCommonInfoDTO
commonInfo
=
new
VehicleWarnCommonInfoDTO
();
commonInfo
.
setLastArriveSendTime
(
orderGoods
.
getLastArriveReceiveTime
());
commonInfo
.
setLastArriveReceiveTime
(
orderGoods
.
getLastArriveSendTime
());
commonInfo
.
setCurrentTime
(
LocalDateTime
.
now
());
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderGoods
.
getOrderNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_INVALID
);
commonInfo
.
setTransportEndTime
(
LocalDateTimeUtils
.
parseTime
(
orderInfo
.
getTransportEndTime
()));
// 获取当前位置
commonInfo
.
setCurrentPosition
(
vehicleWarnCommonService
.
getCurrentPosition
(
orderChild
.
getTruckNo
(),
orderChild
.
getDriverUserNo
()));
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
)
{
// 距货源地时间
commonInfo
.
setSendAddressTime
(
vehicleWarnCommonService
.
getNeedTime
(
commonInfo
.
getCurrentPosition
(),
vehicleWarnChild
.
getSendLongitude
(),
vehicleWarnChild
.
getSendLatitude
()));
}
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
())
)
{
// 距目的地时间
commonInfo
.
setReceiveAddressTime
(
vehicleWarnCommonService
.
getNeedTime
(
commonInfo
.
getCurrentPosition
(),
vehicleWarnChild
.
getReceiveLongitude
(),
vehicleWarnChild
.
getReceiveLatitude
()));
// 距目的地距离
commonInfo
.
setReceiveAddressDistance
(
vehicleWarnCommonService
.
getNeedDistance
(
commonInfo
.
getCurrentPosition
(),
vehicleWarnChild
.
getReceiveLongitude
(),
vehicleWarnChild
.
getReceiveLatitude
()));
}
// 前往货源地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
){
try
{
vehicleWarnSendAddressWarnService
.
gotoSendAddressTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
error
(
"前往货源地超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 到达货源地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
){
try
{
vehicleWarnSendAddressWarnService
.
arriveSendAddressTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
error
(
"到达货源地超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 装车超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
){
try
{
vehicleWarnLoadAndUnloadWarnService
.
loadTimeout
(
orderChild
,
vehicleWarnChild
);
}
catch
(
Exception
e
){
log
.
error
(
"装车超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 卸车超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
())
){
try
{
vehicleWarnLoadAndUnloadWarnService
.
unloadTimeout
(
orderChild
,
vehicleWarnChild
);
}
catch
(
Exception
e
){
log
.
error
(
"卸车超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 前往目的地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
())
){
try
{
vehicleWarnReceiveAddressWarnService
.
gotoReceiveAddressTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
info
(
"前往目的地超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 到达目的地超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
())
){
try
{
vehicleWarnReceiveAddressWarnService
.
arriveReceiveAddressTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
info
(
"到达目的地超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 停留超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
())
){
try
{
vehicleWarnParkWarnService
.
packTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
info
(
"停留超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 敏感区停留超时
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
())
){
try
{
vehicleWarnParkWarnService
.
sensitiveAreaParkTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
info
(
"敏感区停留超时错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 运单延误
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
())
){
try
{
vehicleWarnDelayWarnService
.
delayTimeout
(
orderChild
,
vehicleWarnChild
,
commonInfo
);
}
catch
(
Exception
e
){
log
.
info
(
"运单延误错误, msg:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
// 更新目的地距离
if
(
commonInfo
.
getReceiveAddressDistance
()
!=
null
)
{
vehicleWarnChild
.
setReceiveAddressDistance
(
commonInfo
.
getReceiveAddressDistance
());
vehicleWarnChildDao
.
updateReceiveAddressDistance
(
vehicleWarnChild
);
}
}
@Override
public
void
truckWarnNotice
(
VehicleWarnTruckWarnNoticeMqParam
mq
)
{
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findById
(
mq
.
getInfoId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
List
<
String
>
mobileList
=
new
ArrayList
<>();
// 过滤需要通知的人员
List
<
VehicleWarnUser
>
list
=
vehicleWarnUserDao
.
listAllEnable
();
for
(
VehicleWarnUser
item
:
list
)
{
List
<
Integer
>
warnTypeList
=
JSON
.
parseArray
(
item
.
getWarmTypeJson
(),
Integer
.
class
);
if
(
warnTypeList
.
contains
(
vehicleWarnInfo
.
getWarnType
())){
mobileList
.
add
(
item
.
getMobile
());
}
}
if
(
mobileList
.
isEmpty
())
{
return
;}
log
.
info
(
"车辆预警通知, id:{}, mobileList:{}"
,
vehicleWarnInfo
.
getId
(),
JSON
.
toJSONString
(
mobileList
));
if
(
vehicleWarnInfo
.
getWarnLevel
()
==
2
){
//2级短信
sendSms
(
mobileList
,
vehicleWarnInfo
.
getWarnName
(),
vehicleWarnInfo
.
getTruckNo
(),
vehicleWarnInfo
.
getChildNo
());
}
else
if
(
vehicleWarnInfo
.
getWarnLevel
()
==
3
)
{
//3级外呼
sendClink
(
mobileList
,
vehicleWarnInfo
.
getWarnName
(),
vehicleWarnInfo
.
getTruckNo
(),
vehicleWarnInfo
.
getChildNo
());
}
}
/**
* 发送预警短信
*/
@Override
public
void
sendSms
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
)
{
//触发${warnName}预警;车牌号${truckNo};运单${childNo};请尽快核实情况
AliBatchSmsMessageReq
req
=
new
AliBatchSmsMessageReq
();
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
set
(
"warnName"
,
warnName
);
jsonObject
.
set
(
"truckNo"
,
truckNo
);
jsonObject
.
set
(
"childNo"
,
childNo
);
req
.
setTemplateCode
(
clxMessageConfig
.
getVehicleWarnTemplateCode
());
req
.
setChannelId
(
clxMessageConfig
.
getChannelId
());
req
.
setAppId
(
clxMessageConfig
.
getAppId
().
toString
());
req
.
setMobileList
(
mobileList
);
req
.
setContent
(
jsonObject
.
toString
());
clxMessageOpenapiFeign
.
sendAliSmsBatch
(
req
);
}
/**
* 发送预警外呼
*/
@Override
public
void
sendClink
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
)
{
//触发{指定预警名称}预警;车牌号{车牌号};运单{运单号};请尽快核实情况
ClinkMessageReq
req
=
new
ClinkMessageReq
();
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"触发"
);
sb
.
append
(
warnName
);
sb
.
append
(
"预警;车牌号"
);
sb
.
append
(
truckNo
);
sb
.
append
(
";运单"
);
sb
.
append
(
childNo
);
sb
.
append
(
";请尽快核实情况"
);
String
content
=
sb
.
toString
();
req
.
setChannelId
(
clxMessageConfig
.
getVehicleWarnChannelId
());
req
.
setAppId
(
clxMessageConfig
.
getAppId
().
toString
());
req
.
setContent
(
content
);
for
(
String
mobile
:
mobileList
)
{
req
.
setMobile
(
mobile
);
clxMessageOpenapiFeign
.
sendClink
(
req
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnMqServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.common.MqDelay
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyVehicleWarnConstants
;
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.vehiclewarn.VehicleWarnMqService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
VehicleWarnMqServiceImpl
implements
VehicleWarnMqService
{
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@Override
public
void
orderChildAdd
(
String
childNo
)
{
VehicleWarnChildAddMqParam
mq
=
new
VehicleWarnChildAddMqParam
();
mq
.
setChildNo
(
childNo
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
ORDER_CHILD_ADD_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
@Override
public
void
truckWarn
(
String
childNo
)
{
VehicleWarnTruckWarnMqParam
mq
=
new
VehicleWarnTruckWarnMqParam
();
mq
.
setChildNo
(
childNo
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
@Override
public
void
truckWarnNotice
(
Integer
infoId
)
{
VehicleWarnTruckWarnNoticeMqParam
mq
=
new
VehicleWarnTruckWarnNoticeMqParam
();
mq
.
setInfoId
(
infoId
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
TRUCK_WARN_NOTICE_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyVehicleWarnConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyVehicleWarnConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnParkWarnServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
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.service.trace.TruckTraceService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnParkWarnService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnParkWarnServiceImpl
implements
VehicleWarnParkWarnService
{
private
static
final
Integer
MIN_FER_HOUR
=
60
;
private
static
final
Integer
DISTANCE_DEFAULT
=
2000
;
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
/**
* 停留超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
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
;}
}
}
// 停留时间
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
());
if
(
parkTime
==
0
)
{
return
;}
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
PARK_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doParkTimeout
(
orderChild
,
vehicleWarnChild
,
item
,
parkTime
);
}
}
private
void
doParkTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
,
int
parkTimee
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
MIN_FER_HOUR
)).
intValue
();
if
(
parkTimee
>
time
){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
@Override
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
;}
}
}
// 停留时间
int
parkTime
=
truckTraceService
.
getParkTime
(
vehicleWarnChild
.
getTruckNo
(),
vehicleWarnChild
.
getDriverUserNo
());
if
(
parkTime
==
0
)
{
return
;}
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
SENSITIVE_AREA_PARK_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doSensitiveParkTimeout
(
orderChild
,
vehicleWarnChild
,
item
,
commonInfo
);
}
}
private
void
doSensitiveParkTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
,
VehicleWarnCommonInfoDTO
commonInfo
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 敏感区距离
Integer
sensitiveDistance
=
vehicleWarnCommonService
.
getDistance
(
commonInfo
.
getCurrentPosition
(),
vehicleWarnConfig
.
getLongitude
(),
vehicleWarnConfig
.
getLatitude
());
if
(
sensitiveDistance
==
null
||
sensitiveDistance
>
vehicleWarnConfig
.
getRadius
())
{
return
;}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnReceiveAddressWarnServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
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.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnReceiveAddressWarnService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnReceiveAddressWarnServiceImpl
implements
VehicleWarnReceiveAddressWarnService
{
private
static
final
Integer
DISTANCE_DEFAULT
=
2000
;
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
/**
* 前往目的地超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
gotoReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
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
;}
// 假定当前已装车
orderChild
.
setLoadTime
(
LocalDateTime
.
now
());
}
}
// 理论时间
Integer
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
// 计算需要的时间
Integer
needTime
=
commonInfo
.
getReceiveAddressTime
();
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
GOTO_RECEIVE_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doGotoReceiveAddressTimeout
(
orderChild
,
vehicleWarnChild
,
item
,
expectTime
,
needTime
);
}
}
private
void
doGotoReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
,
Integer
expectTime
,
Integer
needTime
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
LocalDateTime
loadTime
=
orderChild
.
getLoadTime
();
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
expectTime
)).
divide
(
new
BigDecimal
(
"100"
),
0
,
RoundingMode
.
HALF_UP
).
intValue
();
if
(
loadTime
.
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
/**
* 到达目的地超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
arriveReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
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
;}
}
}
// 计算需要的时间
int
needTime
=
commonInfo
.
getReceiveAddressTime
();
LocalDateTime
lastArriveReceiveTime
=
commonInfo
.
getLastArriveReceiveTime
();
// 超时判断
LocalDateTime
now
=
commonInfo
.
getCurrentTime
();
if
(
lastArriveReceiveTime
.
isAfter
(
now
.
plusMinutes
(
needTime
)))
{
return
;}
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
ARRIVE_RECEIVE_DELAY
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doArriveReceiveAddressTimeout
(
orderChild
,
vehicleWarnChild
,
item
);
}
}
private
void
doArriveReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnSendAddressWarnServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum
;
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.service.vehiclewarn.VehicleWarnCommonService
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnSendAddressWarnService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
VehicleWarnSendAddressWarnServiceImpl
implements
VehicleWarnSendAddressWarnService
{
@Autowired
private
VehicleWarnConfigDao
vehicleWarnConfigDao
;
@Autowired
private
VehicleWarnInfoDao
vehicleWarnInfoDao
;
@Autowired
private
VehicleWarnCommonService
vehicleWarnCommonService
;
/**
* 前往货源地超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
long
expectTime
=
vehicleWarnChild
.
getArriveReceiveExpectTime
();
// 计算需要的时间
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
GOTO_SEND_TIMEOUT
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doGotoSendAddressTimeout
(
orderChild
,
vehicleWarnChild
,
item
,
expectTime
,
needTime
);
}
}
private
void
doGotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
,
long
expectTime
,
Integer
needTime
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 超时判断
int
time
=
vehicleWarnConfig
.
getTimeoutRatio
().
multiply
(
new
BigDecimal
(
expectTime
)).
divide
(
new
BigDecimal
(
"100"
),
0
,
RoundingMode
.
HALF_UP
).
intValue
();
if
(
orderChild
.
getPayTime
().
plusMinutes
(
expectTime
).
plusMinutes
(
time
).
isAfter
(
LocalDateTime
.
now
().
plusMinutes
(
needTime
))){
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
/**
* 到达货源地超时
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
){
if
(
vehicleWarnChild
.
getArriveSendExpectTime
()
==
null
)
{
return
;}
// 计算需要的时间
Integer
needTime
=
commonInfo
.
getSendAddressTime
();
// 超时判断
LocalDateTime
now
=
LocalDateTime
.
now
();
if
(
vehicleWarnChild
.
getTakeTime
().
plusMinutes
(
vehicleWarnChild
.
getArriveSendExpectTime
()).
isAfter
(
now
.
plusMinutes
(
needTime
)))
{
return
;}
List
<
VehicleWarnConfig
>
vehicleWarnConfigList
=
vehicleWarnConfigDao
.
listByWarnType
(
VehicleWarnConfigEnum
.
WarnType
.
ARRIVE_SEND_DELAY
.
getCode
());
if
(
vehicleWarnConfigList
.
isEmpty
())
{
return
;}
for
(
VehicleWarnConfig
item
:
vehicleWarnConfigList
)
{
doArriveSendAddressTimeout
(
orderChild
,
vehicleWarnChild
,
item
);
}
}
private
void
doArriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnConfig
vehicleWarnConfig
){
VehicleWarnInfo
vehicleWarnInfo
=
vehicleWarnInfoDao
.
findByChildNoAndWarnConfigId
(
vehicleWarnChild
.
getChildNo
(),
vehicleWarnConfig
.
getId
()).
orNull
();
if
(
vehicleWarnInfo
!=
null
&&
Objects
.
equals
(
vehicleWarnInfo
.
getStatus
(),
VehicleWarnInfoEnum
.
Status
.
RESOLVE
.
getCode
())){
return
;
}
// 暂停检测
boolean
suspend
=
vehicleWarnCommonService
.
suspendCheck
(
vehicleWarnChild
,
vehicleWarnConfig
.
getId
());
if
(
suspend
)
{
return
;}
// 更新
vehicleWarnCommonService
.
vehicleWarnInfoUpdate
(
orderChild
,
vehicleWarnInfo
,
vehicleWarnConfig
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnUserServiceImpl.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
impl
.
vehiclewarn
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.vehiclewarn.VehicleWarnUserEnum
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.service.vehiclewarn.VehicleWarnUserService
;
import
com.clx.performance.struct.vehiclewarn.VehicleWarnUserStruct
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnUserVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
VehicleWarnUserServiceImpl
implements
VehicleWarnUserService
{
@Autowired
private
VehicleWarnUserDao
vehicleWarnUserDao
;
@Autowired
private
VehicleWarnUserStruct
vehicleWarnUserStruct
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
saveUser
(
VehicleWarnUserAddParam
param
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
Optional
<
VehicleWarnUser
>
optional
=
vehicleWarnUserDao
.
findByMobile
(
param
.
getMobile
());
if
(
optional
.
isPresent
()){
throw
new
ServiceSystemException
(
ResultEnum
.
VEHICLE_WARN_USER_EXIST
);
}
VehicleWarnUser
vehicleWarnUser
=
new
VehicleWarnUser
();
vehicleWarnUser
.
setName
(
param
.
getName
());
vehicleWarnUser
.
setMobile
(
param
.
getMobile
());
vehicleWarnUser
.
setWarmTypeJson
(
JSON
.
toJSONString
(
new
ArrayList
<>()));
vehicleWarnUser
.
setCreateBy
(
loginUserInfo
.
getUserName
());
vehicleWarnUserDao
.
saveEntity
(
vehicleWarnUser
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateUser
(
VehicleWarnUserUpdateParam
param
)
{
VehicleWarnUser
vehicleWarnUser
=
vehicleWarnUserDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
vehicleWarnUser
.
getMobile
(),
param
.
getMobile
())){
Optional
<
VehicleWarnUser
>
optional
=
vehicleWarnUserDao
.
findByMobile
(
param
.
getMobile
());
if
(
optional
.
isPresent
()){
throw
new
ServiceSystemException
(
ResultEnum
.
VEHICLE_WARN_USER_EXIST
);
}
}
vehicleWarnUser
.
setName
(
param
.
getName
());
vehicleWarnUser
.
setMobile
(
param
.
getMobile
());
vehicleWarnUserDao
.
updateUser
(
vehicleWarnUser
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateConfig
(
VehicleWarnUserConfigUpdateParam
param
)
{
VehicleWarnUser
vehicleWarnUser
=
vehicleWarnUserDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
List
<
Integer
>
warnTypeList
=
param
.
getWarnTypeList
().
stream
().
filter
(
item
->
Objects
.
equals
(
item
.
getEnable
(),
1
)).
map
(
item
->
item
.
getWarnType
()).
collect
(
Collectors
.
toList
());
vehicleWarnUser
.
setWarmTypeJson
(
JSON
.
toJSONString
(
warnTypeList
));
vehicleWarnUserDao
.
updateWarnType
(
vehicleWarnUser
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
deleteUser
(
VehicleWarnUserDeleteParam
param
)
{
VehicleWarnUser
vehicleWarnUser
=
vehicleWarnUserDao
.
findById
(
param
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
vehicleWarnUser
.
setDeleteStatus
(
VehicleWarnUserEnum
.
DeleteStatus
.
YES
.
getCode
());
vehicleWarnUserDao
.
deleteUser
(
vehicleWarnUser
);
}
@Override
public
VehicleWarnUserVO
getUser
(
Integer
id
)
{
return
vehicleWarnUserStruct
.
convert
(
vehicleWarnUserDao
.
findById
(
id
).
orNull
());
}
@Override
public
IPage
<
VehicleWarnUserVO
>
pageUser
(
PageVehicleWarnUserParam
param
)
{
return
vehicleWarnUserStruct
.
convertPage
(
vehicleWarnUserDao
.
pageByParam
(
param
));
}
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceMqHandlerService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
trace
;
import
com.clx.performance.param.mq.trace.TruckTraceSyncMqParam
;
public
interface
TruckTraceMqHandlerService
{
void
truckTracSync
(
TruckTraceSyncMqParam
mq
);
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceMqService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
trace
;
public
interface
TruckTraceMqService
{
void
truckTracSync
(
String
childNo
,
String
truckNo
,
String
beginTime
,
String
endTime
);
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
trace
;
import
com.clx.performance.param.temp.DriverTraceAddParam
;
import
com.clx.performance.param.temp.TruckTraceAddParam
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
java.math.BigDecimal
;
import
java.util.List
;
public
interface
TruckTraceService
{
List
<
DriverTruckTraceVO
>
listTruckTraceByTime
(
String
truckNo
,
String
beginTime
,
String
endTime
);
List
<
DriverTraceVO
>
listDriverTraceByTime
(
Long
userNo
,
String
beginTime
,
String
endTime
);
void
truckTraceSave
(
TruckTraceAddParam
param
);
void
driverTraceSave
(
DriverTraceAddParam
param
);
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
);
int
getParkTime
(
String
truckNo
,
Long
userNo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnCommonService.java
0 → 100644
浏览文件 @
be3f81ee
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
{
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
);
int
getNeedDistance
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
);
Integer
getDistance
(
BigDecimal
[]
currentPosition
,
BigDecimal
destinationLongitude
,
BigDecimal
destinationLatitude
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnConfigService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO
;
import
java.util.List
;
public
interface
VehicleWarnConfigService
{
void
saveConfig
(
VehicleWarnConfigAddParam
param
);
void
updateConfig
(
VehicleWarnConfigUpdateParam
param
);
void
updateStatus
(
VehicleWarnConfigStatusUpdateParam
param
);
void
deleteConfig
(
VehicleWarnConfigDeleteUpdateParam
param
);
VehicleWarnConfigVO
getConfig
(
Integer
id
);
IPage
<
VehicleWarnConfigVO
>
pageConfig
(
PageVehicleWarnConfigParam
param
);
List
<
VehicleWarnConfigVO
.
WarnTypeItem
>
listWarnType
();
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnDelayWarnService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnDelayWarnService
{
void
delayTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnInfoService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO
;
public
interface
VehicleWarnInfoService
{
void
updateSuspend
(
VehicleWarnInfoSuspendUpdateParam
param
);
void
updateResolve
(
VehicleWarnInfoResolveUpdateParam
param
);
VehicleTraceVO
getTrace
(
Integer
id
);
VehicleWarnInfoVO
getInfo
(
Integer
id
);
IPage
<
VehicleWarnInfoVO
>
pageInfo
(
PageVehicleWarnInfoParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnLoadAndUnloadWarnService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnLoadAndUnloadWarnService
{
void
loadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
void
unloadTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnMqHandlerService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam
;
import
com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam
;
import
java.util.List
;
public
interface
VehicleWarnMqHandlerService
{
void
orderChildAdd
(
VehicleWarnChildAddMqParam
mq
);
void
truckWarn
(
VehicleWarnTruckWarnMqParam
mq
);
void
truckWarnNotice
(
VehicleWarnTruckWarnNoticeMqParam
mq
);
void
sendSms
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
);
void
sendClink
(
List
<
String
>
mobileList
,
String
warnName
,
String
truckNo
,
String
childNo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnMqService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
public
interface
VehicleWarnMqService
{
void
orderChildAdd
(
String
childNo
);
void
truckWarn
(
String
childNo
);
void
truckWarnNotice
(
Integer
infoId
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnParkWarnService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnParkWarnService
{
void
packTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
void
sensitiveAreaParkTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnReceiveAddressWarnService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnReceiveAddressWarnService
{
void
gotoReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
void
arriveReceiveAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnSendAddressWarnService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnChild
;
public
interface
VehicleWarnSendAddressWarnService
{
void
gotoSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
void
arriveSendAddressTimeout
(
OrderChild
orderChild
,
VehicleWarnChild
vehicleWarnChild
,
VehicleWarnCommonInfoDTO
commonInfo
);
}
performance-web/src/main/java/com/clx/performance/service/vehiclewarn/VehicleWarnUserService.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
service
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.vehiclewarn.*
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnUserVO
;
public
interface
VehicleWarnUserService
{
void
saveUser
(
VehicleWarnUserAddParam
param
);
void
updateUser
(
VehicleWarnUserUpdateParam
param
);
void
updateConfig
(
VehicleWarnUserConfigUpdateParam
param
);
void
deleteUser
(
VehicleWarnUserDeleteParam
param
);
VehicleWarnUserVO
getUser
(
Integer
id
);
IPage
<
VehicleWarnUserVO
>
pageUser
(
PageVehicleWarnUserParam
param
);
}
performance-web/src/main/java/com/clx/performance/sqlProvider/vehiclewarn/VehicleWarnConfigSqlProvider.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
sqlProvider
.
vehiclewarn
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.jdbc.SQL
;
import
java.util.Objects
;
public
class
VehicleWarnConfigSqlProvider
{
private
static
final
String
TABLE
=
"vehicle_warn_config"
;
public
String
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnConfigParam
param
)
{
return
new
SQL
(){{
SELECT
(
"*"
);
FROM
(
TABLE
);
WHERE
(
"delete_status = 0"
);
if
(
StringUtils
.
isNotBlank
(
param
.
getWarnName
()))
{
WHERE
(
"warn_name = #{param.warnName}"
);}
if
(
Objects
.
nonNull
(
param
.
getWarnType
()))
{
WHERE
(
"warn_type = #{param.warnType}"
);}
if
(
Objects
.
nonNull
(
param
.
getWarnLevel
()))
{
WHERE
(
"warn_level = #{param.warnLevel}"
);}
if
(
Objects
.
nonNull
(
param
.
getStatus
()))
{
WHERE
(
"status = #{param.status}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getBeginTime
()))
{
WHERE
(
"create_time >= #{param.beginTime}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getEndTime
()))
{
WHERE
(
"create_time <= #{param.endTime}"
);}
ORDER_BY
(
"id desc"
);
}}.
toString
();
}
}
performance-web/src/main/java/com/clx/performance/sqlProvider/vehiclewarn/VehicleWarnInfoSqlProvider.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
sqlProvider
.
vehiclewarn
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.jdbc.SQL
;
import
java.util.Objects
;
public
class
VehicleWarnInfoSqlProvider
{
private
static
final
String
TABLE
=
"vehicle_warn_info"
;
public
String
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnInfoParam
param
)
{
return
new
SQL
(){{
SELECT
(
"*"
);
FROM
(
TABLE
);
if
(
StringUtils
.
isNotBlank
(
param
.
getWarnName
()))
{
WHERE
(
"warn_name = #{param.warnName}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getChildNo
()))
{
WHERE
(
"child_no = #{param.childNo}"
);}
if
(
Objects
.
nonNull
(
param
.
getWarnType
()))
{
WHERE
(
"warn_type = #{param.warnType}"
);}
if
(
Objects
.
nonNull
(
param
.
getWarnLevel
()))
{
WHERE
(
"warn_level = #{param.warnLevel}"
);}
if
(
Objects
.
nonNull
(
param
.
getStatus
()))
{
WHERE
(
"status = #{param.status}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getSendAddress
()))
{
WHERE
(
"send_address like CONCAT('%',#{param.sendAddress},'%')"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getReceiveAddress
()))
{
WHERE
(
"receive_address like CONCAT('%',#{param.receiveAddress},'%')"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getBeginTime
()))
{
WHERE
(
"create_time >= #{param.beginTime}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getEndTime
()))
{
WHERE
(
"create_time <= #{param.endTime}"
);}
ORDER_BY
(
"id desc"
);
}}.
toString
();
}
}
performance-web/src/main/java/com/clx/performance/sqlProvider/vehiclewarn/VehicleWarnUserSqlProvider.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
sqlProvider
.
vehiclewarn
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.jdbc.SQL
;
public
class
VehicleWarnUserSqlProvider
{
private
static
final
String
TABLE
=
"vehicle_warn_user"
;
public
String
pageByParam
(
@Param
(
"page"
)
Page
page
,
@Param
(
"param"
)
PageVehicleWarnUserParam
param
)
{
return
new
SQL
(){{
SELECT
(
"*"
);
FROM
(
TABLE
);
WHERE
(
"delete_status = 0"
);
if
(
StringUtils
.
isNotBlank
(
param
.
getName
()))
{
WHERE
(
"name = #{param.name}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getMobile
()))
{
WHERE
(
"mobile = #{param.mobile}"
);}
ORDER_BY
(
"id desc"
);
}}.
toString
();
}
}
performance-web/src/main/java/com/clx/performance/struct/trace/DriverTraceStruct.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
struct
.
trace
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.esplus.model.DriverTraceESPlus
;
import
com.clx.performance.vo.pc.trace.DriverTraceVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
,
BigDecimal
.
class
})
public
interface
DriverTraceStruct
{
@Mapping
(
target
=
"longitude"
,
expression
=
"java(item.getLocation()[0])"
)
@Mapping
(
target
=
"latitude"
,
expression
=
"java(item.getLocation()[1])"
)
@Mapping
(
target
=
"gpsTime"
,
source
=
"positionTime"
)
DriverTraceVO
convert
(
DriverTraceESPlus
item
);
List
<
DriverTraceVO
>
convert
(
List
<
DriverTraceESPlus
>
list
);
Page
<
DriverTraceVO
>
convertPage
(
IPage
<
DriverTraceESPlus
>
page
);
}
performance-web/src/main/java/com/clx/performance/struct/trace/TruckTraceStruct.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
struct
.
trace
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.esplus.model.TruckTraceESPlus
;
import
com.clx.performance.vo.pc.trace.DriverTruckTraceVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
java.util.List
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
})
public
interface
TruckTraceStruct
{
@Mapping
(
target
=
"longitude"
,
expression
=
"java(item.getLocation()[0])"
)
@Mapping
(
target
=
"latitude"
,
expression
=
"java(item.getLocation()[1])"
)
DriverTruckTraceVO
convert
(
TruckTraceESPlus
item
);
List
<
DriverTruckTraceVO
>
convert
(
List
<
TruckTraceESPlus
>
list
);
Page
<
DriverTruckTraceVO
>
convertPage
(
IPage
<
TruckTraceESPlus
>
page
);
}
performance-web/src/main/java/com/clx/performance/struct/vehiclewarn/VehicleWarnConfigStruct.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
struct
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
})
public
interface
VehicleWarnConfigStruct
{
VehicleWarnConfigVO
convert
(
VehicleWarnConfig
item
);
Page
<
VehicleWarnConfigVO
>
convertPage
(
IPage
<
VehicleWarnConfig
>
page
);
}
performance-web/src/main/java/com/clx/performance/struct/vehiclewarn/VehicleWarnInfoStruct.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
struct
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnConfig
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnInfo
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
})
public
interface
VehicleWarnInfoStruct
{
VehicleWarnInfoVO
convert
(
VehicleWarnInfo
item
);
Page
<
VehicleWarnInfoVO
>
convertPage
(
IPage
<
VehicleWarnInfo
>
page
);
}
performance-web/src/main/java/com/clx/performance/struct/vehiclewarn/VehicleWarnUserStruct.java
0 → 100644
浏览文件 @
be3f81ee
package
com
.
clx
.
performance
.
struct
.
vehiclewarn
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.vehiclewarn.VehicleWarnUser
;
import
com.clx.performance.vo.pc.vehiclewarn.VehicleWarnUserVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
})
public
interface
VehicleWarnUserStruct
{
VehicleWarnUserVO
convert
(
VehicleWarnUser
item
);
Page
<
VehicleWarnUserVO
>
convertPage
(
IPage
<
VehicleWarnUser
>
page
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论