Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
5f873144
提交
5f873144
authored
7月 16, 2024
作者:
刘海泉
1
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v18.6_youhua_20240701' into test
# Conflicts: # performance-web/src/main/java/com/clx/performance/job/TruckTraceJob.java # performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
上级
8c5bdaf2
4b21571b
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
242 行增加
和
22 行删除
+242
-22
TempController.java
...a/com/clx/performance/controller/temp/TempController.java
+27
-2
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+3
-1
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+12
-1
OrderChildExpectDTO.java
...ain/java/com/clx/performance/dto/OrderChildExpectDTO.java
+1
-0
PushOrderChildExpectTimeJob.java
.../com/clx/performance/job/PushOrderChildExpectTimeJob.java
+121
-0
TruckTraceJob.java
.../src/main/java/com/clx/performance/job/TruckTraceJob.java
+11
-10
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+51
-1
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+5
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+10
-7
OrderChildStruct.java
...ain/java/com/clx/performance/struct/OrderChildStruct.java
+1
-0
没有找到文件。
performance-web/src/main/java/com/clx/performance/controller/temp/TempController.java
浏览文件 @
5f873144
package
com
.
clx
.
performance
.
controller
.
temp
;
import
com.clx.open.sdk.callback.message.OrderChildSyncMessage
;
import
com.clx.performance.dto.OrderChildExpectDTO
;
import
com.clx.performance.extranal.transport.TransportService
;
import
com.clx.performance.feign.TransportFeignService
;
import
com.clx.performance.listener.OrderChildDtsListener
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.TempService
;
import
com.clx.performance.service.child.FeignOrderChildService
;
import
com.clx.performance.service.trace.TruckTraceMqHandlerService
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -17,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* @Author: aiqingguo
...
...
@@ -42,6 +44,9 @@ public class TempController {
@Autowired
private
OrderChildDtsListener
orderChildDtsListener
;
@Autowired
private
OrderChildService
orderChildService
;
@ApiOperation
(
value
=
"test"
,
notes
=
"<br>By:艾庆国"
)
@RequestMapping
(
value
=
"/test"
,
method
=
RequestMethod
.
GET
)
...
...
@@ -66,6 +71,26 @@ public class TempController {
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"插入缓存运单预计时间"
,
notes
=
"<br>By:刘海泉"
)
@RequestMapping
(
value
=
"/saveOrderChildExpectTime"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Void
>
saveOrderChildExpectTime
(
@RequestParam
(
"childNo"
)
@NotBlank
(
message
=
"运单号不能为空"
)
String
childNo
,
@RequestParam
(
"expectArriveTime"
)
@NotBlank
(
message
=
"预计到达货源地时间"
)
String
expectArriveTime
,
@RequestParam
(
"expectReceiveTime"
)
@NotBlank
(
message
=
"预计到达目的地时间"
)
String
expectReceiveTime
)
{
OrderChildExpectDTO
expect
=
new
OrderChildExpectDTO
();
expect
.
setChildNo
(
childNo
);
expect
.
setExpectArriveTime
(
expectArriveTime
);
expect
.
setExpectReceiveTime
(
expectReceiveTime
);
expect
.
setCreateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
()).
get
());
orderChildService
.
cacheOrderChildExpectData
(
childNo
,
expect
);
return
Result
.
ok
();
}
// @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST)
// public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) {
...
...
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
5f873144
...
...
@@ -72,7 +72,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Page
<
OrderChild
>
pageOrderChild
(
PageMonitorOrderChildQCParam
param
);
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
);
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
,
LocalDateTime
startTime
,
LocalDateTime
endTime
);
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
);
...
...
@@ -199,4 +199,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
);
List
<
OrderChild
>
listBeforeUnloadOrderChild
(
LocalDateTime
startTime
,
LocalDateTime
endTime
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
5f873144
...
...
@@ -360,9 +360,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
)
{
public
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
query
.
in
(
OrderChild
::
getStatus
,
status
);
query
.
ge
(
OrderChild
::
getCreateTime
,
startTime
);
query
.
le
(
OrderChild
::
getCreateTime
,
endTime
);
return
baseMapper
.
selectList
(
query
);
}
...
...
@@ -657,4 +659,13 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
)
{
return
baseMapper
.
statisticsCancelOrderGoodsWeight
(
childNos
);
}
@Override
public
List
<
OrderChild
>
listBeforeUnloadOrderChild
(
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
return
list
(
lQrWrapper
()
.
lt
(
OrderChild
::
getStatus
,
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
())
.
ge
(
OrderChild
::
getCreateTime
,
startTime
)
.
le
(
OrderChild
::
getCreateTime
,
endTime
)
);
}
}
performance-web/src/main/java/com/clx/performance/dto/OrderChildExpectDTO.java
浏览文件 @
5f873144
...
...
@@ -25,6 +25,7 @@ public class OrderChildExpectDTO implements Serializable {
private
String
truckLatitudeY
;
//车辆位置维度
private
Integer
expectTransportTimeSecond
;
//预计运输时间
private
String
expectTransportTime
;
//预计运输时间(转化秒 为几小时几分钟)
private
String
createTime
;
//插入缓存的时间
}
performance-web/src/main/java/com/clx/performance/job/PushOrderChildExpectTimeJob.java
0 → 100644
浏览文件 @
5f873144
package
com
.
clx
.
performance
.
job
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.open.sdk.callback.OpenCallBackClient
;
import
com.clx.open.sdk.callback.dto.OrderChildExpectTimeDTO
;
import
com.clx.open.sdk.callback.message.OrderChildExpectTimeMessage
;
import
com.clx.order.enums.SyncPlatformEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.performance.config.ThirdAppConfig
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dto.OrderChildExpectDTO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.listener.OrderChildDtsListener
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.struct.OrderChildStruct
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.msl.common.job.JobLog
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Slf4j
@Component
@AllArgsConstructor
public
class
PushOrderChildExpectTimeJob
{
private
final
OrderChildDao
orderChildDao
;
private
final
OrderFeign
orderFeign
;
private
final
OrderChildService
orderChildService
;
private
final
OrderChildStruct
orderChildStruct
;
private
final
DriverService
driverService
;
private
final
ThirdAppConfig
thirdAppConfig
;
private
final
OrderChildDtsListener
orderChildDtsListener
;
/**
* 推送运单预计时间到对应的平台
*/
@XxlJob
(
"pushOrderChildExpectTimeJob"
)
public
void
pushOrderChildExpectTimeJob
()
{
try
{
pushOrderChildExpectTime2ThirdPlatform
();
}
catch
(
Exception
e
)
{
log
.
warn
(
"定时任务推送运单预计时间到对应的平台失败,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
JobLog
.
error
(
"定时任务获取平台车辆定位信息失败,异常原因====================="
,
e
);
}
}
//数媒宝对应的运单进行实时预计时间推送
public
void
pushOrderChildExpectTime2ThirdPlatform
(){
log
.
info
(
"开始查询承运系统未到达目的地前的运单开始==================="
);
LocalDateTime
endTime
=
LocalDateTime
.
now
();
LocalDateTime
startTime
=
endTime
.
minusMonths
(
1
);
List
<
OrderChild
>
list
=
orderChildDao
.
listBeforeUnloadOrderChild
(
startTime
,
endTime
);
log
.
info
(
"查询到承运系统未到达目的地前的运单条数:{} 条"
,
list
.
size
());
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
List
<
String
>
orderNoList
=
list
.
stream
().
map
(
OrderChild:
:
getOrderNo
).
collect
(
Collectors
.
toList
());
Result
<
Map
<
String
,
Integer
>>
mapResult
=
orderFeign
.
queryListOrderSource
(
orderNoList
);
if
(!
mapResult
.
succeed
()){
log
.
warn
(
"通过订单编号查询订单来源信息失败,响应结果:{}"
,
mapResult
);
return
;
}
Map
<
String
,
Integer
>
orderSourceMap
=
mapResult
.
getData
();
List
<
OrderChildExpectTimeDTO
>
syncExpectList
=
new
ArrayList
<>();
list
.
forEach
(
item
->{
//交易平台数媒宝同步运单同步实时预计时间
if
(
Objects
.
equals
(
orderSourceMap
.
get
(
item
.
getOrderNo
()),
SyncPlatformEnum
.
Source
.
TRADE_PLATFORM
.
getCode
())){
List
<
OrderChildExpectDTO
>
expectList
=
orderChildService
.
getOrderChildExpect
(
item
.
getChildNo
());
if
(
CollectionUtils
.
isEmpty
(
expectList
)
||
StringUtils
.
isBlank
(
expectList
.
get
(
0
).
getCreateTime
())){
log
.
info
(
"运单号:{} 未从缓存中查询到对应的预计时间信息"
,
item
.
getChildNo
());
return
;
}
OrderChildExpectDTO
orderChildExpect
=
expectList
.
get
(
0
);
LocalDateTime
calcExpectTime
=
DateUtils
.
parseDateTime
(
orderChildExpect
.
getCreateTime
()).
get
();
//如果缓存预计时间 插入的不是10分钟之内的,则不进行使用
if
(
LocalDateTimeUtils
.
betweenMin
(
calcExpectTime
,
LocalDateTime
.
now
())
>
10
){
log
.
info
(
"运单号:{} 从缓存中查询到对应的预计时间信息超过10分钟,不进行使用"
,
item
.
getChildNo
());
return
;
}
OrderChildExpectTimeDTO
dto
=
new
OrderChildExpectTimeDTO
();
dto
.
setOrderNo
(
item
.
getOrderNo
());
dto
.
setChildNo
(
item
.
getChildNo
());
dto
.
setStatus
(
item
.
getStatus
());
if
(
item
.
getStatus
()
<
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()){
//到达货源地之前
dto
.
setExpectArriveTime
(
orderChildExpect
.
getExpectArriveTime
());
}
else
{
//到达货源地之后 && 到达目的地之前
dto
.
setExpectArriveTime
(
orderChildExpect
.
getExpectReceiveTime
());
}
syncExpectList
.
add
(
dto
);
}
});
if
(
CollectionUtils
.
isNotEmpty
(
syncExpectList
)){
OrderChildExpectTimeMessage
message
=
new
OrderChildExpectTimeMessage
();
message
.
setList
(
syncExpectList
);
String
data
=
JSON
.
toJSONString
(
message
);
OpenCallBackClient
openCallBackClient
=
thirdAppConfig
.
getOpenCallBackClient
(
SyncPlatformEnum
.
Source
.
TRADE_PLATFORM
.
getCode
().
toString
());
log
.
info
(
"运单预计时间信息同步开始,请求参数:{}"
,
data
);
Result
<?>
result
=
openCallBackClient
.
encryptPost
(
data
,
message
.
topic
());
log
.
info
(
"运单预计时间信息同步,响应结果:{}"
,
JSON
.
toJSONString
(
result
));
}
}
}
}
performance-web/src/main/java/com/clx/performance/job/TruckTraceJob.java
浏览文件 @
5f873144
...
...
@@ -3,7 +3,6 @@ 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
;
...
...
@@ -13,6 +12,7 @@ import com.msl.common.result.Result;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
...
...
@@ -20,6 +20,9 @@ import org.springframework.stereotype.Component;
import
java.time.LocalDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Component
...
...
@@ -32,8 +35,6 @@ public class TruckTraceJob {
@Autowired
RedisTemplate
redisTemplate
;
@Autowired
private
TruckTraceMqService
truckTraceMqService
;
/**
...
...
@@ -44,7 +45,7 @@ public class TruckTraceJob {
try
{
getPlatformTruckTrace
();
}
catch
(
Exception
e
)
{
log
.
warn
(
"定时任务获取平台车辆定位信息失败,异常原因:{}"
,
e
);
log
.
warn
(
"定时任务获取平台车辆定位信息失败,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
)
);
JobLog
.
error
(
"定时任务获取平台车辆定位信息失败,异常原因====================="
,
e
);
}
}
...
...
@@ -59,7 +60,7 @@ public class TruckTraceJob {
Result
<
List
<
String
>>
result
=
userClxFeign
.
getPlatformTruckList
();
log
.
info
(
"通过clx-user服务获取平台认证成功车辆,返回结果:{}"
,
JSON
.
toJSONString
(
result
));
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
beginTime
=
now
.
plus
(-
5
,
ChronoUnit
.
MINUTES
);
LocalDateTime
beginTime
=
now
.
minusMinutes
(
5
);
if
(
Objects
.
equals
(
result
.
getCode
(),
ResultCodeEnum
.
SUCCESS
.
getCode
())){
//本次拉取定位信息成功的车辆
...
...
@@ -74,9 +75,7 @@ public class TruckTraceJob {
LocalDateTimeUtils
.
formatTime
(
beginTime
),
LocalDateTimeUtils
.
formatTime
(
now
));
if
(
CollectionUtils
.
isNotEmpty
(
truckTrace
)){
//排序获取最新的定位位置
truckTrace
.
stream
().
sorted
(
Comparator
.
comparing
(
TruckTraceDTO:
:
getGpsTime
));
TruckTraceDTO
truckTraceDTO
=
truckTrace
.
get
(
0
);
TruckTraceDTO
truckTraceDTO
=
truckTrace
.
get
(
truckTrace
.
size
()-
1
);
truckTraceDTO
.
setTruckNo
(
truckNo
);
redisTemplate
.
opsForHash
().
put
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
,
truckNo
,
truckTraceDTO
);
log
.
info
(
"放入缓存成功,滚存 key:{},车牌号{}"
,
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
,
truckNo
);
...
...
@@ -84,10 +83,12 @@ public class TruckTraceJob {
}
}
//获取上次拉取的车辆
if
(
redisTemplate
.
hasKey
(
RedisConstants
.
ZJXL_LAST_PULL_TRUCK
)){
if
(
Objects
.
equals
(
Boolean
.
TRUE
,
redisTemplate
.
hasKey
(
RedisConstants
.
ZJXL_LAST_PULL_TRUCK
)
)){
List
<
String
>
lastTimeTruck
=
redisTemplate
.
opsForList
().
range
(
RedisConstants
.
ZJXL_LAST_PULL_TRUCK
,
0
,-
1
);
//获取上次拉取的车辆列表
//上次拉取的车辆 去除掉 本次拉运的车辆 = 本次没有拉取的车辆(可能车辆过期,删除了,所以此类数据不需要在缓存中存在了)
lastTimeTruck
.
removeAll
(
pullTruckList
);
if
(
CollectionUtils
.
isNotEmpty
(
lastTimeTruck
)){
lastTimeTruck
.
removeAll
(
pullTruckList
);
}
if
(
CollectionUtils
.
isNotEmpty
(
lastTimeTruck
)){
//移除掉本次没拉运的定位信息
redisTemplate
.
opsForHash
().
delete
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
,
lastTimeTruck
.
toArray
());
...
...
performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
5f873144
...
...
@@ -13,25 +13,33 @@ import com.clx.order.feign.OrderFeign;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.config.ThirdAppConfig
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderChildImageDao
;
import
com.clx.performance.dto.dts.DataTransportDTO
;
import
com.clx.performance.enums.DtsOperationTypeEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.OrderChildPoundAuditEnum
;
import
com.clx.performance.event.OrderChildCancelEvent
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChildImage
;
import
com.clx.performance.service.LastTruckService
;
import
com.clx.user.feign.TruckFeign
;
import
com.clx.user.vo.feign.FeignDriverTruckModelVo
;
import
com.clx.user.vo.feign.TruckInfoFeignVo
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DtsMapConvertUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
...
...
@@ -44,6 +52,8 @@ public class OrderChildDtsListener {
private
final
DriverService
driverService
;
private
final
ApplicationEventPublisher
applicationEventPublisher
;
private
final
ThirdAppConfig
thirdAppConfig
;
private
final
TruckFeign
truckFeign
;
private
final
OrderChildImageDao
orderChildImageDao
;
...
...
@@ -71,7 +81,8 @@ public class OrderChildDtsListener {
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
(!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())
||
!
Objects
.
equals
(
before
.
getLoadNet
(),
after
.
getLoadNet
()))
||
!
Objects
.
equals
(
before
.
getUnloadNet
(),
after
.
getUnloadNet
())
!
Objects
.
equals
(
before
.
getUnloadNet
(),
after
.
getUnloadNet
())
||
!
Objects
.
equals
(
before
.
getPoundStatus
(),
after
.
getPoundStatus
())
){
orderChildChangeAfter
(
after
);
}
...
...
@@ -91,6 +102,7 @@ public class OrderChildDtsListener {
}
}
public
void
orderChildChangeAfter
(
OrderChildMessage
after
){
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
after
.
getOrderNo
());
if
(
orderInfoFeign
==
null
)
{
...
...
@@ -104,6 +116,8 @@ public class OrderChildDtsListener {
FeignDriverTruckModelVo
dumpType
=
driverService
.
getDumpType
(
truckModel
).
orElseThrow
(
ResultCodeEnum
.
FAIL
);
after
.
setDumpType
(
dumpType
.
getDumpType
());
}
buildOrderOtherInfo
(
after
);
//同步after数据
Optional
<
OrderChildEnum
.
Status
>
option
=
OrderChildEnum
.
Status
.
getByCode
(
after
.
getStatus
());
String
statusName
=
option
.
isPresent
()?
option
.
get
().
getName
():
"未知状态"
;
...
...
@@ -146,6 +160,42 @@ public class OrderChildDtsListener {
}
}
}
//构建运单其它信息
public
void
buildOrderOtherInfo
(
OrderChildMessage
after
){
//查询挂车车牌号
if
(
Objects
.
nonNull
(
after
.
getTruckId
())){
log
.
info
(
"通过车辆id:{} 开始查找运单号:{},车牌号:{} 对应的车辆信息开始查询==="
,
after
.
getTruckId
(),
after
.
getChildNo
(),
after
.
getTruckNo
());
Result
<
TruckInfoFeignVo
>
result
=
truckFeign
.
getTruckInfo
(
after
.
getTruckId
());
if
(!
result
.
succeed
()){
log
.
warn
(
"通过车辆id:{} 开始查找运单号:{},车牌号:{} 的车辆信息未查询到,响应结果:{}"
,
after
.
getTruckId
(),
after
.
getChildNo
(),
after
.
getTruckNo
(),
result
);
}
else
{
log
.
warn
(
"通过车辆id:{} 开始查找运单号:{},车牌号:{} 查询到对应的车辆信息,响应结果:{}"
,
after
.
getTruckId
(),
after
.
getChildNo
(),
after
.
getTruckNo
(),
result
);
after
.
setTruckNo2
(
result
.
getData
().
getTruckNo2
());
}
}
//查询收发货地对应的磅单图片信息,
if
(
Objects
.
equals
(
after
.
getPoundStatus
(),
OrderChildPoundAuditEnum
.
Status
.
APPROVED
.
getCode
())){
List
<
OrderChildImage
>
orderChildImages
=
orderChildImageDao
.
listByField
(
OrderChildImage:
:
getChildNo
,
after
.
getChildNo
());
if
(
CollectionUtils
.
isNotEmpty
(
orderChildImages
)){
List
<
String
>
sendAddressPoundPicList
=
new
ArrayList
<>();
List
<
String
>
receiveAddressPoundPicList
=
new
ArrayList
<>();
orderChildImages
.
forEach
(
item
->{
if
(
Objects
.
equals
(
item
.
getType
(),
OrderChildImage
.
Type
.
LOAD
.
getCode
())){
sendAddressPoundPicList
.
add
(
item
.
getImage
());
}
if
(
Objects
.
equals
(
item
.
getType
(),
OrderChildImage
.
Type
.
UNLOAD
.
getCode
())){
receiveAddressPoundPicList
.
add
(
item
.
getImage
());
}
});
after
.
setSendAddressPoundPicList
(
sendAddressPoundPicList
);
after
.
setReceiveAddressPoundPicList
(
receiveAddressPoundPicList
);
}
}
}
public
void
syncLastTruck
(
FeignOrderVO
orderInfoFeign
,
OrderChildMessage
after
){
//当运单状态为到达目的地之后的状态时候,需要判断最后一车的逻辑
...
...
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
5f873144
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dto.OrderChildExpectDTO
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.app.*
;
...
...
@@ -101,4 +102,8 @@ public interface OrderChildService {
void
cancelOrderChilds
(
CancelOrderGoodsParam
param
);
OcrRecognitionResultVO
ocrRecognition
(
OcrRecognitionParam
param
);
List
<
OrderChildExpectDTO
>
getOrderChildExpect
(
String
orderChildNo
);
void
cacheOrderChildExpectData
(
String
childNo
,
OrderChildExpectDTO
expect
);
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
5f873144
...
...
@@ -2538,13 +2538,13 @@ public class OrderChildServiceImpl implements OrderChildService {
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
//查询平台未完结的运单
List
<
Integer
>
list
=
Arrays
.
asList
(
new
Integer
[]{
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
(),
OrderChildEnum
.
Status
.
UNSETTLE
.
getCode
()}
);
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listOrderChild
(
list
);
List
<
Integer
>
list
=
Arrays
.
asList
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
(),
OrderChildEnum
.
Status
.
UNSETTLE
.
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
();
...
...
@@ -2606,6 +2606,7 @@ public class OrderChildServiceImpl implements OrderChildService {
expect
.
setExpectReceiveTime
(
DateUtils
.
formatDateTime
(
expectTime
).
get
());
expect
.
setExpectReceiveTimeSecond
(
plusTime
);
}
expect
.
setCreateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
()).
get
());
cacheOrderChildExpectData
(
childNo
,
expect
);
}
}
...
...
@@ -2628,6 +2629,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* @Description 缓存实时计算的运单预计时间
* @Param [orderChildNo, expect]
**/
@Override
public
void
cacheOrderChildExpectData
(
String
orderChildNo
,
OrderChildExpectDTO
expect
)
{
String
orderChildExpectDataKey
=
getOrderChildExpectDataKey
(
orderChildNo
);
//计算结果20分钟过期。定时每5分钟执行一次。所以在此记录过期前,该运单会生成四条记录。保留最新的两条记录即可,剩下两条不再结果集中记录。
...
...
@@ -2657,6 +2659,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* @Param [orderChildNo]
* @return
**/
@Override
public
List
<
OrderChildExpectDTO
>
getOrderChildExpect
(
String
orderChildNo
){
List
<
String
>
keyList
=
(
List
<
String
>)
redisTemplate
.
opsForHash
().
get
(
RedisConstants
.
ORDER_CHILD_EXPECT_TIME_DATA_KEY_MAP
,
orderChildNo
);
...
...
performance-web/src/main/java/com/clx/performance/struct/OrderChildStruct.java
浏览文件 @
5f873144
...
...
@@ -38,4 +38,5 @@ public interface OrderChildStruct {
List
<
LineWarnTruckTraceInfoVO
>
convertLineWarnTruckTraceInfoVO
(
List
<
OrderChild
>
list
);
OrderChildMessage
convert2Message
(
OrderChild
item
);
}
刘海泉
@liuhaiquan
被提及 commit
e7a67172
·
11月 12, 2024
被提及 commit
e7a67172
被提及 commit e7a67172918edd4b2cbd3f0529f8d43bd48779b8
切换提交列表
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论