Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
9e13efb7
提交
9e13efb7
authored
8月 09, 2024
作者:
jiangwujie
浏览文件
操作
浏览文件
下载
差异文件
feature(电子围栏): merge to dev
上级
f3e7ed3d
a1f6f2d4
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
304 行增加
和
38 行删除
+304
-38
AppEnum.java
...-api/src/main/java/com/clx/performance/enums/AppEnum.java
+1
-0
OrderChildEnum.java
...c/main/java/com/clx/performance/enums/OrderChildEnum.java
+80
-0
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+15
-0
OrderChildLoadRangeCheckParam.java
.../performance/param/app/OrderChildLoadRangeCheckParam.java
+0
-16
OrderChildLoadRangeCheckResultVO.java
.../performance/vo/app/OrderChildLoadRangeCheckResultVO.java
+17
-0
DriverNoticeConfigVO.java
.../java/com/clx/performance/vo/pc/DriverNoticeConfigVO.java
+4
-0
LoadAppConfig.java
...c/main/java/com/clx/performance/config/LoadAppConfig.java
+32
-0
AppDriverOrderChildController.java
...ormance/controller/app/AppDriverOrderChildController.java
+1
-1
OrderChildMessageNoticeJob.java
...a/com/clx/performance/job/OrderChildMessageNoticeJob.java
+39
-0
OrderChild.java
...b/src/main/java/com/clx/performance/model/OrderChild.java
+13
-0
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+2
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+100
-21
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/AppEnum.java
浏览文件 @
9e13efb7
...
...
@@ -16,6 +16,7 @@ public enum AppEnum {
public
enum
UniqueIdentifier
{
SMART_WEIGHT
(
1
,
"场站-smart-weight"
),
PURCHASE_MANAGE
(
2
,
"供应链-purchase-manage"
),
;
...
...
performance-api/src/main/java/com/clx/performance/enums/OrderChildEnum.java
浏览文件 @
9e13efb7
...
...
@@ -228,4 +228,84 @@ public enum OrderChildEnum {
}
}
/**
* 驶入驶离货源地状态
*/
@Getter
@AllArgsConstructor
public
enum
EnterExitSendStatus
{
INIT
(
0
,
"到达货源地"
),
DRIVE_IN
(
1
,
"驶入"
),
DRIVE_OUT
(
2
,
"驶离"
);
private
final
Integer
code
;
private
final
String
name
;
public
static
Optional
<
EnterExitSendStatus
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
EnterExitSendStatus:
:
getName
).
orElse
(
null
);
}
}
/**
* 驶离通知状态
*/
@Getter
@AllArgsConstructor
public
enum
ExitNoticeStatus
{
NOT_NOTIFIED
(
0
,
"到达货源地"
),
NOTIFIED
(
1
,
"驶入"
);
private
final
Integer
code
;
private
final
String
name
;
public
static
Optional
<
ExitNoticeStatus
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
ExitNoticeStatus:
:
getName
).
orElse
(
null
);
}
}
/**
* 驶入驶离货源地状态
*/
@Getter
@AllArgsConstructor
public
enum
RemoveLoadLimitStatus
{
NOT_REMOVED
(
0
,
"未解除"
),
REMOVED
(
1
,
"已解除"
),
;
private
final
Integer
code
;
private
final
String
name
;
public
static
Optional
<
RemoveLoadLimitStatus
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
RemoveLoadLimitStatus:
:
getName
).
orElse
(
null
);
}
}
@Getter
@AllArgsConstructor
public
enum
NeedAlertEnum
{
OK
(
0
,
"不用弹窗"
),
FAIL
(
1
,
"需要弹"
);
private
final
int
code
;
private
final
String
msg
;
}
}
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
9e13efb7
...
...
@@ -4,6 +4,9 @@ import com.msl.common.enums.ResultEnum;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
@Getter
@AllArgsConstructor
...
...
@@ -203,4 +206,16 @@ public enum PerformanceResultEnum implements ResultEnum {
;
private
final
int
code
;
private
final
String
msg
;
public
static
Optional
<
PerformanceResultEnum
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
==
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
Integer
code
)
{
return
getByCode
(
code
).
map
(
PerformanceResultEnum:
:
getMsg
).
orElse
(
null
);
}
public
static
PerformanceResultEnum
getEnumByCode
(
Integer
code
)
{
return
getByCode
(
code
).
orElse
(
null
);
}
}
performance-api/src/main/java/com/clx/performance/param/app/OrderChildLoadRangeCheckParam.java
浏览文件 @
9e13efb7
...
...
@@ -17,26 +17,10 @@ import java.math.BigDecimal;
@NoArgsConstructor
public
class
OrderChildLoadRangeCheckParam
{
@ApiModelProperty
(
value
=
"货单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"货单编号不能为空"
)
private
String
orderGoodsNo
;
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"运单编号不能为空"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"车辆id"
,
example
=
"1"
)
@NotNull
(
message
=
"车辆id空"
)
private
Integer
truckId
;
@ApiModelProperty
(
value
=
"车牌号"
,
example
=
"1"
)
@NotNull
(
message
=
"车牌号不能为空"
)
private
String
truckNo
;
@ApiModelProperty
(
value
=
"司机用户编号"
,
example
=
"1"
)
@NotNull
(
message
=
"司机用户编号空"
)
private
Long
driverUserNo
;
@ApiModelProperty
(
"纬度"
)
private
BigDecimal
latitude
;
...
...
performance-api/src/main/java/com/clx/performance/vo/app/OrderChildLoadRangeCheckResultVO.java
浏览文件 @
9e13efb7
package
com
.
clx
.
performance
.
vo
.
app
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.util.Objects
;
/**
* 是否需要监装结果VO
*/
...
...
@@ -22,4 +27,15 @@ public class OrderChildLoadRangeCheckResultVO {
@ApiModelProperty
(
value
=
"错误信息"
,
example
=
"错误"
)
private
String
msg
;
public
Result
<
OrderChildLoadRangeCheckResultVO
>
toResult
()
{
if
(
Objects
.
equals
(
code
,
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
()))
{
return
Result
.
ok
();
}
else
{
Result
<
OrderChildLoadRangeCheckResultVO
>
result
=
Result
.
fail
(
PerformanceResultEnum
.
getEnumByCode
(
code
));
result
.
setData
(
this
);
result
.
setMsg
(
msg
);
return
result
;
}
}
}
\ No newline at end of file
performance-api/src/main/java/com/clx/performance/vo/pc/DriverNoticeConfigVO.java
浏览文件 @
9e13efb7
...
...
@@ -28,4 +28,8 @@ public class DriverNoticeConfigVO {
@ApiModelProperty
(
value
=
"启用状态:0禁用 1启用"
)
private
Integer
status
;
public
Integer
getNoticeTriggerDistanceMeter
()
{
return
noticeTriggerDistance
!=
null
?
noticeTriggerDistance
.
multiply
(
new
BigDecimal
(
1000
)).
intValue
()
:
0
;
}
}
performance-web/src/main/java/com/clx/performance/config/LoadAppConfig.java
0 → 100644
浏览文件 @
9e13efb7
package
com
.
clx
.
performance
.
config
;
import
com.clx.performance.dao.AppDao
;
import
com.clx.performance.enums.AppEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.model.App
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author liruixin
* @create 2024-01-10 13:19
*/
@Component
public
class
LoadAppConfig
{
private
App
app
;
@Autowired
private
AppDao
appDao
;
public
App
getApp
()
{
if
(
app
==
null
)
{
app
=
appDao
.
getOneByField
(
App:
:
getUniqueIdentifier
,
AppEnum
.
UniqueIdentifier
.
PURCHASE_MANAGE
.
getCode
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);;
}
return
app
;
}
}
performance-web/src/main/java/com/clx/performance/controller/app/AppDriverOrderChildController.java
浏览文件 @
9e13efb7
...
...
@@ -198,7 +198,7 @@ public class AppDriverOrderChildController {
@ApiOperation
(
value
=
"司机端装货范围检查拦截"
,
notes
=
"<br>By:姜武杰"
)
@PostMapping
(
"/loadRangeCheck"
)
public
Result
<
OrderChildLoadRangeCheckResultVO
>
loadRangeCheck
(
@RequestBody
@Validated
OrderChildLoadRangeCheckParam
param
)
{
return
Result
.
ok
(
orderChildService
.
loadRangeCheck
(
param
)
);
return
orderChildService
.
loadRangeCheck
(
param
).
toResult
(
);
}
@ApiOperation
(
value
=
"是否需要弹出监装信息"
,
notes
=
"<br>By:姜武杰"
)
@PostMapping
(
"/needAlertSuperviseInfo"
)
...
...
performance-web/src/main/java/com/clx/performance/job/OrderChildMessageNoticeJob.java
0 → 100644
浏览文件 @
9e13efb7
package
com
.
clx
.
performance
.
job
;
import
com.clx.performance.service.OrderChildService
;
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
;
/**
* 运单监控实时位置耗时信息job
* @author jiangwujie
*/
@Slf4j
@Component
public
class
OrderChildMessageNoticeJob
{
@Autowired
OrderChildService
orderChildService
;
/**
* 运单监控实时位置耗时信息
*/
@XxlJob
(
"orderChildMessageNotice"
)
public
void
orderChildMessageNotice
()
{
try
{
log
.
info
(
"开始实时计算进行中的运单的实时位置计算任务================================================"
);
orderChildService
.
orderChildMessageNotice
();
log
.
info
(
"结束实时计算进行中的运单的实时位置计算任务================================================"
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"定时任务计算进行中的运单的实时位置失败,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
JobLog
.
error
(
"定时任务计算进行中的运单的实时位置失败,异常原因====================="
,
e
);
}
}
}
performance-web/src/main/java/com/clx/performance/model/OrderChild.java
浏览文件 @
9e13efb7
...
...
@@ -106,6 +106,19 @@ public class OrderChild implements HasKey<Integer> {
private
BigDecimal
deposit
;
//接单保证金(分/车)
private
LocalDateTime
poundAuditTime
;
//磅单审核通过时间
/**
* 驶入驶离货源地状态 0 初始 1 驶入 2 驶离
*/
private
Integer
enterExitSendStatus
;
/**
* 驶离通知状态 0 未通知 1 已通知
*/
private
Integer
exitNoticeStatus
;
/**
* 是否解除监装限制 0 未解除 1 解除
*/
private
Integer
removeLoadLimitStatus
;
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
...
...
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
9e13efb7
...
...
@@ -114,4 +114,6 @@ public interface OrderChildService {
List
<
HistoryLineTranVolumeChartVO
>
getHistoryLineTransportVolume
(
String
orderNo
);
OrderChildLoadRangeCheckResultVO
loadRangeCheck
(
OrderChildLoadRangeCheckParam
param
);
void
orderChildMessageNotice
();
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
9e13efb7
...
...
@@ -244,6 +244,8 @@ public class OrderChildServiceImpl implements OrderChildService {
private
OrderWeightService
orderWeightService
;
@Autowired
private
OrderChildOperateLimitConfigService
orderChildOperateLimitConfigService
;
@Autowired
private
DriverNoticeConfigService
driverNoticeConfigService
;
@PostConstruct
public
void
init
(){
...
...
@@ -2908,6 +2910,22 @@ public class OrderChildServiceImpl implements OrderChildService {
}
return
gdRouteDTOS
;
}
/**
* @Author kavin
* @Description 通过高德获取时间
* @Param [truckNo, beginLongitude, beginLatitude, endLongitude, endLatitude]
* @return
**/
public
GdRouteDTO
getGdRoute
(
String
truckNo
,
BigDecimal
beginLongitude
,
BigDecimal
beginLatitude
,
BigDecimal
endLongitude
,
BigDecimal
endLatitude
)
{
List
<
GdRouteDTO
>
gdRouteDTOS
=
null
;
try
{
gdRouteDTOS
=
gdService
.
getRoute
(
beginLongitude
,
beginLatitude
,
endLongitude
,
endLatitude
);
}
catch
(
ServiceSystemException
e
)
{
log
.
info
(
"orderChildExpect==高德地图调用失败,车辆{},异常原因{}"
,
truckNo
,
e
.
getMessage
());
}
return
CollectionUtils
.
isNotEmpty
(
gdRouteDTOS
)
?
gdRouteDTOS
.
get
(
0
)
:
null
;
}
@Override
public
IPage
<
CustomerComplaintOrderChildVO
>
pageCustomerComplaintOrderChild
(
PageParam
param
)
{
...
...
@@ -3128,24 +3146,29 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderChildOperateLimitConfigVO
config
=
orderChildOperateLimitConfigService
.
listConfig
();
// 无配置
if
(
config
==
null
||
config
.
getAllowUploadDistance
()
==
null
)
{
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
FAIL
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_ERROR
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_ERROR
.
getMsg
());
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_ERROR
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_ERROR
.
getMsg
());
}
// 配置禁用
if
(
Objects
.
equals
(
config
.
getStatus
(),
EnabledStatusEnum
.
DISABLE
.
getCode
()))
{
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
OK
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_DISABLED
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_DISABLED
.
getMsg
());
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_DISABLED
.
getCode
(),
ORDER_CHILD_LOAD_LIMIT_CONFIG_DISABLED
.
getMsg
());
}
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
param
.
getOrderGoodsNo
()).
get
();
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
param
.
getChildNo
()).
orNull
();
if
(
orderChild
==
null
)
{
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getMsg
());
}
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
//todo 解除装车限制
// 发货地址纬度
BigDecimal
sendLatitude
=
orderGoods
.
getSendLatitude
();
// 发货地经度
BigDecimal
sendLongitude
=
orderGoods
.
getSendLongitude
();
// 卡车经纬度
BigDecimal
[]
truckLocation
=
getTruckLocation
(
param
);
BigDecimal
[]
truckLocation
=
getTruckLocation
(
orderChild
.
getTruckNo
(),
param
.
getLongitude
(),
param
.
getLatitude
()
);
BigDecimal
longitude
=
truckLocation
[
0
];
BigDecimal
latitude
=
truckLocation
[
1
];
// 获取卡车位置失败
if
(
longitude
==
null
||
latitude
==
null
)
{
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
FAIL
.
getCode
(),
TRUCK_LOCATION_ERROR
.
getCode
(),
TRUCK_LOCATION_ERROR
.
getMsg
());
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
TRUCK_LOCATION_ERROR
.
getCode
(),
TRUCK_LOCATION_ERROR
.
getMsg
());
}
List
<
GdRouteDTO
>
route
=
gdService
.
getRoute
(
longitude
,
latitude
,
sendLongitude
,
sendLatitude
);
if
(
CollectionUtils
.
isNotEmpty
(
route
))
{
...
...
@@ -3153,28 +3176,84 @@ public class OrderChildServiceImpl implements OrderChildService {
Integer
distance
=
gdRouteDTO
.
getDistance
();
if
(
distance
>
config
.
allowUploadDistanceMeter
())
{
// 装车位置 超限
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
FAIL
.
getCode
(),
TRUCK_LOCATION_OUT_OF_SEND_RANGE
.
getCode
(),
String
.
format
(
TRUCK_LOCATION_OUT_OF_SEND_RANGE
.
getMsg
(),
config
.
getAllowUploadDistance
()));
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
TRUCK_LOCATION_OUT_OF_SEND_RANGE
.
getCode
(),
String
.
format
(
TRUCK_LOCATION_OUT_OF_SEND_RANGE
.
getMsg
(),
config
.
getAllowUploadDistance
()));
}
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
OK
.
getCode
(),
NeedAlertEnum
.
OK
.
getCode
(),
"验证通过"
);
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
"验证通过"
);
}
return
new
OrderChildLoadRangeCheckResultVO
(
NeedAlertEnum
.
FAIL
.
getCode
(),
GAODE_DISTANCE_ERROR
.
getCode
(),
GAODE_DISTANCE_ERROR
.
getMsg
());
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
GAODE_DISTANCE_ERROR
.
getCode
(),
GAODE_DISTANCE_ERROR
.
getMsg
());
}
@Getter
@AllArgsConstructor
public
enum
NeedAlertEnum
{
OK
(
0
,
"不用弹窗"
),
FAIL
(
1
,
"需要弹"
);
private
final
int
code
;
private
final
String
msg
;
@Override
public
void
orderChildMessageNotice
()
{
// 司机通知配置
DriverNoticeConfigVO
driverNoticeConfigVO
=
driverNoticeConfigService
.
listConfig
();
if
(
driverNoticeConfigVO
==
null
)
{
log
.
error
(
"司机通知配置为空"
);
return
;
}
if
(
Objects
.
equals
(
driverNoticeConfigVO
.
getStatus
(),
EnabledStatusEnum
.
DISABLE
.
getCode
()))
{
log
.
info
(
"司机通知配置为未启用状态,不进行通知处理"
);
return
;
}
//查询平台车辆的定位信息
Map
<
String
,
TruckTraceDTO
>
truckTraceMap
=
redisTemplate
.
opsForHash
().
entries
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
//查询平台到达货源地的订单
List
<
Integer
>
list
=
Collections
.
singletonList
(
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
LocalDateTime
endTime
=
LocalDateTime
.
now
();
LocalDateTime
startTime
=
endTime
.
minusMonths
(
1
);
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listOrderChild
(
list
,
startTime
,
endTime
);
for
(
OrderChild
child
:
orderChildList
)
{
String
childNo
=
child
.
getChildNo
();
String
truckNo
=
child
.
getTruckNo
();
//解除监装限制的不进行处理
if
(
Objects
.
equals
(
child
.
getRemoveLoadLimitStatus
(),
OrderChildEnum
.
RemoveLoadLimitStatus
.
REMOVED
.
getCode
()))
{
log
.
info
(
"运单:{},卡车:{} 已解除监装限制"
,
childNo
,
truckNo
);
return
;
}
//获取卡车的位置
TruckTraceDTO
truckTraceDTO
=
truckTraceMap
.
get
(
truckNo
);
BigDecimal
truckLongitudeX
=
null
;
BigDecimal
truckLatitudeY
=
null
;
if
(
Objects
.
nonNull
(
truckTraceDTO
))
{
truckLongitudeX
=
truckTraceDTO
.
getLocation
()[
0
];
truckLatitudeY
=
truckTraceDTO
.
getLocation
()[
1
];
}
//判断卡车是否出了货源地x公里范围
String
orderGoodsNo
=
child
.
getOrderGoodsNo
();
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
get
();
BigDecimal
siteLongitudeX
=
orderGoods
.
getSendLongitude
();
BigDecimal
siteLatitudeY
=
orderGoods
.
getSendLatitude
();
//调高德获取距离
if
(
Objects
.
nonNull
(
truckLongitudeX
)
&&
Objects
.
nonNull
(
truckLatitudeY
))
{
GdRouteDTO
route
=
getGdRoute
(
truckNo
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
(),
siteLongitudeX
,
siteLatitudeY
);
if
(
route
==
null
)
{
log
.
error
(
"高德获取卡车与货源地位置距离失败,orderGoodsNo:{},orderChildNo:{},truckNo:{}"
,
orderGoodsNo
,
childNo
,
truckNo
);
return
;
}
//距离
Integer
distance
=
route
.
getDistance
();
//超出货源地x公里范围了
if
(
distance
>=
driverNoticeConfigVO
.
getNoticeTriggerDistanceMeter
())
{
if
(
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
())
&&
Objects
.
equals
(
child
.
getExitNoticeStatus
(),
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
())
)
{
}
// orderChild.getExitNoticeStatus(OrderChildEnum.ExitNoticeStatus.NOT_NOTICE.getCode());
}
}
}
}
private
BigDecimal
[]
getTruckLocation
(
OrderChildLoadRangeCheckParam
param
)
{
BigDecimal
longitude
=
param
.
getLongitude
();
BigDecimal
latitude
=
param
.
getLatitude
();
private
BigDecimal
[]
getTruckLocation
(
String
truckNo
,
BigDecimal
longitude
,
BigDecimal
latitude
)
{
TruckLocationDTO
truckLocationDTO
=
null
;
try
{
truckLocationDTO
=
zjxlGpsService
.
getTruckLastLocation
(
param
.
getTruckNo
()
);
truckLocationDTO
=
zjxlGpsService
.
getTruckLastLocation
(
truckNo
);
}
catch
(
Exception
e
)
{
log
.
info
(
"中交兴路获取失败:{}"
,
e
.
getMessage
());
}
...
...
@@ -3184,9 +3263,9 @@ public class OrderChildServiceImpl implements OrderChildService {
BigDecimal
[]
location
=
truckLocationDTO
.
getLocation
();
longitude
=
location
[
0
];
latitude
=
location
[
1
];
log
.
info
(
"当前中交兴路获取司机车牌:{},相关位置信息:{}"
,
param
.
getTruckNo
()
,
JSONUtil
.
parse
(
truckLocationDTO
));
log
.
info
(
"当前中交兴路获取司机车牌:{},相关位置信息:{}"
,
truckNo
,
JSONUtil
.
parse
(
truckLocationDTO
));
}
else
{
log
.
info
(
"中交兴路获取失败,通过高德获取,
相关参数:{}"
,
JSONUtil
.
parse
(
param
));
log
.
info
(
"中交兴路获取失败,通过高德获取,
truckNo:{}"
,
JSONUtil
.
parse
(
truckNo
));
}
return
new
BigDecimal
[]{
longitude
,
latitude
};
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论