Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
7533ad18
提交
7533ad18
authored
10月 12, 2023
作者:
liuhaiquan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交全量运单监控功能
上级
b0dd1f3d
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
160 行增加
和
120 行删除
+160
-120
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+11
-0
OrderChildExpectDTO.java
...ain/java/com/clx/performance/dto/OrderChildExpectDTO.java
+2
-0
OrderChild.java
...b/src/main/java/com/clx/performance/model/OrderChild.java
+1
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+144
-120
没有找到文件。
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
7533ad18
...
@@ -64,4 +64,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
...
@@ -64,4 +64,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
);
List
<
OrderChild
>
listOrderChild
(
List
<
Integer
>
status
);
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
);
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
);
boolean
updateArriveSendAddress
(
OrderChild
orderChild
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
7533ad18
...
@@ -216,6 +216,17 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
...
@@ -216,6 +216,17 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
}
@Override
public
boolean
updateArriveSendAddress
(
OrderChild
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
OrderChild:
:
getId
,
item
.
getId
())
.
set
(
OrderChild:
:
getStatus
,
item
.
getStatus
())
.
set
(
OrderChild
::
getArriveSendTime
,
item
.
getArriveSendTime
())
);
}
@Override
@Override
public
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
)
{
public
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
)
{
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
...
...
performance-web/src/main/java/com/clx/performance/dto/OrderChildExpectDTO.java
浏览文件 @
7533ad18
...
@@ -22,5 +22,7 @@ public class OrderChildExpectDTO implements Serializable {
...
@@ -22,5 +22,7 @@ public class OrderChildExpectDTO implements Serializable {
private
LocalDateTime
expectReceiveTime
;
//预计到达目的地时间
private
LocalDateTime
expectReceiveTime
;
//预计到达目的地时间
private
Integer
expectReceiveTimeSecond
;
//预计到达目的地时间
private
Integer
expectReceiveTimeSecond
;
//预计到达目的地时间
private
Integer
expectTransportTimeSecond
;
//预计运输时间
private
Integer
expectTransportTimeSecond
;
//预计运输时间
private
String
expectTransportTime
;
//预计运输时间(转化秒 为几小时几分钟)
}
}
performance-web/src/main/java/com/clx/performance/model/OrderChild.java
浏览文件 @
7533ad18
...
@@ -72,6 +72,7 @@ public class OrderChild implements HasKey<Integer> {
...
@@ -72,6 +72,7 @@ public class OrderChild implements HasKey<Integer> {
private
Integer
status
;
//状态
private
Integer
status
;
//状态
private
LocalDateTime
payTime
;
//支付时间(抢单时间)
private
LocalDateTime
payTime
;
//支付时间(抢单时间)
private
LocalDateTime
arriveSendTime
;
//到达货源地时间
private
LocalDateTime
loadTime
;
//装车时间
private
LocalDateTime
loadTime
;
//装车时间
private
LocalDateTime
unloadTime
;
//卸车时间
private
LocalDateTime
unloadTime
;
//卸车时间
private
LocalDateTime
settleTime
;
//结算时间
private
LocalDateTime
settleTime
;
//结算时间
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
7533ad18
package
com
.
clx
.
performance
.
service
.
impl
;
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignAddressVO
;
...
@@ -251,6 +252,10 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -251,6 +252,10 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
());
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
());
orderChild
.
setCreateTime
(
now
);
orderChild
.
setCreateTime
(
now
);
//计算预计时间
LocalDateTime
[]
times
=
calcExpectTime
(
truckNo
,
orderGoods
);
orderChild
.
setExpectSendTime
(
times
[
0
]);
orderChild
.
setExpectReceiveTime
(
times
[
1
]);
// 更新货单数据
// 更新货单数据
updateOrderGoodsAmount
(
orderGoods
,
truckLoad
);
updateOrderGoodsAmount
(
orderGoods
,
truckLoad
);
...
@@ -272,6 +277,43 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -272,6 +277,43 @@ public class OrderChildServiceImpl implements OrderChildService {
return
result
;
return
result
;
}
}
/**
* @Author kavin
* @Description 计算接单时,车辆距离发货地和收货地的用时时间
* @Param [truckNo, orderGoods]
* @return [预计到达发货地时间,预计到达收货地时间]
**/
public
LocalDateTime
[]
calcExpectTime
(
String
truckNo
,
OrderGoods
orderGoods
){
LocalDateTime
now
=
LocalDateTime
.
now
();
Map
<
String
,
TruckTraceDTO
>
truckTraceMap
=
redisTemplate
.
opsForHash
().
entries
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
BigDecimal
truckLongitudeX
=
null
;
BigDecimal
truckLatitudeY
=
null
;
TruckTraceDTO
truckTraceDTO
=
truckTraceMap
.
get
(
truckNo
);
if
(
Objects
.
nonNull
(
truckTraceDTO
))
{
truckLongitudeX
=
truckTraceDTO
.
getLocation
()[
0
];
truckLatitudeY
=
truckTraceDTO
.
getLocation
()[
1
];
}
else
{
//TODO 如果新增的车辆,缓存中没有中交兴路的位置信息,需要实时获取,否则这里无法获得预计时间了。
}
List
<
GdRouteDTO
>
sendGdRouteDTOS
=
getRoute
(
truckNo
,
truckLongitudeX
,
truckLatitudeY
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
());
Integer
sendPlusTime
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
sendGdRouteDTOS
))
{
sendPlusTime
=
sendGdRouteDTOS
.
get
(
0
).
getDuration
();
}
List
<
GdRouteDTO
>
receiveGdRouteDTOS
=
getRoute
(
truckNo
,
truckLongitudeX
,
truckLatitudeY
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
());
Integer
receivePlusTime
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
receiveGdRouteDTOS
))
{
receivePlusTime
=
receiveGdRouteDTOS
.
get
(
0
).
getDuration
();
}
return
new
LocalDateTime
[]{
now
.
plusSeconds
(
sendPlusTime
),
now
.
plusSeconds
(
receivePlusTime
)};
}
@Override
@Override
public
void
updateReject
(
OrderChildRejectParam
param
)
{
public
void
updateReject
(
OrderChildRejectParam
param
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
...
@@ -374,8 +416,8 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -374,8 +416,8 @@ public class OrderChildServiceImpl implements OrderChildService {
}
}
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
orderChild
Dao
.
updateStatus
(
orderChild
);
orderChild
.
setArriveSendTime
(
LocalDateTime
.
now
()
);
orderChildDao
.
updateArriveSendAddress
(
orderChild
);
// 日志
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
ARRIVE_SEND
.
getCode
(),
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
ARRIVE_SEND
.
getCode
(),
OrderChildLogEnum
.
Type
.
ARRIVE_SEND
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
OrderChildLogEnum
.
Type
.
ARRIVE_SEND
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
...
@@ -1413,167 +1455,102 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1413,167 +1455,102 @@ public class OrderChildServiceImpl implements OrderChildService {
@Override
@Override
public
IPage
<
OutputMonitorOrderChildVO
>
getMonitorOrerChildListsByParam
(
PageMonitorOrderChildQCParam
param
)
{
public
IPage
<
OutputMonitorOrderChildVO
>
getMonitorOrerChildListsByParam
(
PageMonitorOrderChildQCParam
param
)
{
Integer
loadWarningTime
=
40
;
/* Integer loadWarningTime = 40 ;
Integer
arriveWarningTime
=
10
;
Integer
arriveWarningTime
=
10
;
Integer
receiveWarningTime
=
60
;
Integer
receiveWarningTime
=
60
;
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
Page
<
OrderChild
>
page
=
orderChildDao
.
pageOrderChild
(
param
);
Page
<
OrderChild
>
page
=
orderChildDao
.
pageOrderChild
(
param
);
List
<
OrderChild
>
records
=
page
.
getRecords
();
List
<
OrderChild
>
records
=
page
.
getRecords
();
List<OrderChildPCVO> list = orderChildStruct.convertList(page.getRecords());
Result<List<OutputMonitorOrderChildDTO>> result = new Result<>();
PageHelper.startPage(qc.getPage(), qc.getPageSize(), qc.getPage() == 1);
PageInfo<OrderChild> pageInfo = new PageInfo<>(orderChildList);
result.setPageNum(pageInfo.getPages());
result.setTotal(pageInfo.getTotal());
if(CollectionUtils.isEmpty(orderChildList)){
result.setData(null);
return result;
}
//聚合合同 获取热值
List<String> contractNos = orderChildList.stream().map(it -> it.getContractNo()).collect(Collectors.toList());
List<OrderContractQualityIndicator> orderContractQualityIndicators = orderContractQualityIndicatorDao
.getListOfCalorificValueByContractNoList(contractNos, "calorificValue");
Map<String, OrderContractQualityIndicator> contractQualityIndicatorMap = orderContractQualityIndicators
.stream().collect(Collectors.toMap(OrderContractQualityIndicator::getContractNo, o -> o, (v1, v2) -> v2));
//聚合运单 获取运单预估时间
List<String> childNoList = orderChildList.stream().map(OrderChild::getChildNo).collect(Collectors.toList());
List<OrderChildExpect> orderChildExpect = orderChildExpectDao.getOrderChildExpectByChildNos(childNoList,0);
Map<String, OrderChildExpect> orderChildExpectMap = orderChildExpect.stream().collect(Collectors.toMap
(OrderChildExpect::getChildNo, o -> o, (v1, v2) -> v2));
List
<
OutputMonitorOrderChildVO
>
monitorOrderChildList
=
records
.
stream
().
map
(
child
->
{
List
<
OutputMonitorOrderChildVO
>
monitorOrderChildList
=
records
.
stream
().
map
(
child
->
{
OutputMonitorOrderChildVO
monitorOrderChild
=
new
OutputMonitorOrderChildVO
();
OutputMonitorOrderChildVO
monitorOrderChild
=
new
OutputMonitorOrderChildVO
();
monitorOrderChild
.
setChildNo
(
child
.
getChildNo
());
monitorOrderChild
.
setChildNo
(
child
.
getChildNo
());
monitorOrderChild
.
setDriverMobile
(
child
.
getDriverMobile
());
monitorOrderChild
.
setDriverMobile
(
child
.
getDriverMobile
());
monitorOrderChild
.
setDriverName
(
child
.
getDriverName
());
monitorOrderChild
.
setDriverName
(
child
.
getDriverName
());
monitorOrderChild
.
setLoadTime
(
DateUtils
.
formatDateTime
(
child
.
getLoadTime
()).
get
());
monitorOrderChild
.
setLoadTime
(
DateUtils
.
formatDateTime
(
child
.
getLoadTime
()).
get
());
monitorOrderChild.setPayTime(DateUtils.formatDateTime(child.get
Pay
Time()).get());
monitorOrderChild
.
setPayTime
(
DateUtils
.
formatDateTime
(
child
.
get
Create
Time
()).
get
());
monitorOrderChild
.
setTruckNo
(
child
.
getTruckNo
());
monitorOrderChild
.
setTruckNo
(
child
.
getTruckNo
());
monitorOrderChild
.
setSendAddress
(
child
.
getSendAddress
());
monitorOrderChild
.
setSendAddress
(
child
.
getSendAddress
());
monitorOrderChild
.
setSendAddressId
(
child
.
getSendAddressId
());
monitorOrderChild
.
setSendAddressId
(
child
.
getSendAddressId
());
monitorOrderChild
.
setStatus
(
child
.
getStatus
());
monitorOrderChild
.
setStatus
(
child
.
getStatus
());
monitorOrderChild
.
setExpectArriveTime
(
DateUtils
.
formatDateTime
(
child
.
getExpectSendTime
()).
get
());
monitorOrderChild
.
setExpectReceiveTime
(
DateUtils
.
formatDateTime
(
child
.
getExpectReceiveTime
()).
get
());
BigDecimal
poundTonnage
=
child
.
getLoadNet
();
BigDecimal
poundTonnage
=
child
.
getLoadNet
();
if
(
BigDecimal
.
ZERO
.
compareTo
(
child
.
getLoadNet
())
<=
0
){
if
(
BigDecimal
.
ZERO
.
compareTo
(
child
.
getLoadNet
())
<=
0
){
poundTonnage
=
child
.
getUnloadNet
();
poundTonnage
=
child
.
getUnloadNet
();
}
}
monitorOrderChild
.
setLoadNet
(
poundTonnage
);
monitorOrderChild
.
setLoadNet
(
poundTonnage
);
//获取缓存实时计算的位置信息
List
<
OrderChildExpectDTO
>
orderChildExpect
=
getOrderChildExpect
(
child
.
getChildNo
());
if
(
CollectionUtils
.
isNotEmpty
(
orderChildExpect
)){
OrderChildExpectDTO
oneExpect
=
orderChildExpect
.
get
(
0
);
if(null != orderChildExpectMap.get(child.getChildNo())){
OrderChildExpect expect = orderChildExpectMap.get(child.getChildNo());
if(StringUtil.isNotEmpty(expect.getExpectArriveTime())){
//预计到货源地趋势
monitorOrderChild.setExpectArriveTime(expect.getExpectArriveTime());
if
(
orderChildExpect
.
size
()
>=
2
){
LocalDateTime expectArriveTime = LocalDateTimeUtils.parseTime(expect.getExpectArriveTime());
OrderChildExpectDTO
twoExpect
=
orderChildExpect
.
get
(
1
);
LocalDateTime expectArriveWarringTime = LocalDateTimeUtils.plus(expectArriveTime,
if
(
oneExpect
.
getExpectArriveTimeSecond
()
<
twoExpect
.
getExpectArriveTimeSecond
()){
arriveWarningTime, ChronoUnit.MINUTES);
monitorOrderChild
.
setArriveTrend
(
0
);
if(expectArriveWarringTime.isBefore(now)
}
else
{
&& child.getStatus() < OrderChildStatusEnum.ARRIVE_SEND.getValue()){
monitorOrderChild
.
setArriveTrend
(
1
);
}
if
(
oneExpect
.
getExpectReceiveTimeSecond
()
<
twoExpect
.
getExpectReceiveTimeSecond
()){
monitorOrderChild
.
setReceiveTrend
(
0
);
}
else
{
monitorOrderChild
.
setReceiveTrend
(
1
);
}
}
if
(
Objects
.
nonNull
(
oneExpect
.
getExpectArriveTime
())){
monitorOrderChild
.
setExpectArriveTimeRealTime
(
DateUtils
.
formatDateTime
(
oneExpect
.
getExpectArriveTime
()).
get
());
}
if
(
Objects
.
nonNull
(
oneExpect
.
getExpectReceiveTime
())){
monitorOrderChild
.
setExpectReceiveTimeRealTime
(
DateUtils
.
formatDateTime
(
oneExpect
.
getExpectReceiveTime
()).
get
());
}
monitorOrderChild
.
setExpectTransportTime
(
oneExpect
.
getExpectTransportTime
());
LocalDateTime
expectArriveTime
=
oneExpect
.
getExpectArriveTime
();
LocalDateTime
expectArriveWarringTime
=
expectArriveTime
.
plusMinutes
(
arriveWarningTime
);
if
(
expectArriveWarringTime
.
isBefore
(
now
)
&&
child
.
getStatus
()
<
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()){
monitorOrderChild
.
setArriveWarning
(
1
);
monitorOrderChild
.
setArriveWarning
(
1
);
}
else
{
}
else
{
monitorOrderChild
.
setArriveWarning
(
0
);
monitorOrderChild
.
setArriveWarning
(
0
);
}
}
}
if(StringUtil.isNotEmpty(expect.getExpectReceiveTime())){
LocalDateTime
expectReceiveTime
=
oneExpect
.
getExpectReceiveTime
();
monitorOrderChild.setExpectReceiveTime(expect.getExpectReceiveTime());
LocalDateTime
expectReceiveWarringTime
=
expectReceiveTime
.
plusMinutes
(
receiveWarningTime
);
LocalDateTime expectReceiveTime = LocalDateTimeUtils.parseTime(expect.getExpectReceiveTime());
LocalDateTime expectReceiveWarringTime = LocalDateTimeUtils.plus(expectReceiveTime,
receiveWarningTime, ChronoUnit.MINUTES);
if
(
expectReceiveWarringTime
.
isBefore
(
now
)
if
(
expectReceiveWarringTime
.
isBefore
(
now
)
&& child.getStatus() >= OrderChildStatusEnum.OWNER_LOAD.getValu
e()
&&
child
.
getStatus
()
>=
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCod
e
()
&& child.getStatus() < OrderChildStatusEnum.ARRIVE_RECEIVE.getValu
e()){
&&
child
.
getStatus
()
<
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCod
e
()){
monitorOrderChild
.
setReceiveWarning
(
1
);
monitorOrderChild
.
setReceiveWarning
(
1
);
}
else
{
}
else
{
monitorOrderChild
.
setReceiveWarning
(
0
);
monitorOrderChild
.
setReceiveWarning
(
0
);
}
}
}
}
monitorOrderChild.setExpectTransportTime(expect.getExpectTransportTime());
}
if(StringUtil.isNotEmpty(child.getArriveTime())
if
(
Objects
.
nonNull
(
child
.
getArriveSendTime
())
&& child.getStatus() >= OrderChildStatusEnum.ARRIVE_SEND.getValue()
&&
child
.
getStatus
()
>=
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()
&& child.getStatus() < OrderChildStatusEnum.OWNER_LOAD.getValue()){
&&
child
.
getStatus
()
<
OrderChildEnum
.
Status
.
LOAD
.
getCode
()){
LocalDateTime arriveTime = LocalDateTimeUtils.parseTime(child.getArriveTime());
LocalDateTime
arriveTime
=
child
.
getArriveSendTime
();
LocalDateTime arriveWarringTime = LocalDateTimeUtils.plus(arriveTime, loadWarningTime, ChronoUnit
LocalDateTime
arriveWarringTime
=
arriveTime
.
plusMinutes
(
loadWarningTime
);
.MINUTES);
if
(
arriveWarringTime
.
isBefore
(
now
)){
if
(
arriveWarringTime
.
isBefore
(
now
)){
monitorOrderChild
.
setLoadWarning
(
1
);
monitorOrderChild
.
setLoadWarning
(
1
);
}
else
{
}
else
{
monitorOrderChild
.
setLoadWarning
(
0
);
monitorOrderChild
.
setLoadWarning
(
0
);
}
}
}
}
List<OrderChildExpect> orderChildExpects = orderChildExpectDao.getOrderChildExpectByChildNo(child
.getChildNo(),1);
boolean expectFlag = true ;
if(CollectionUtils.isNotEmpty(orderChildExpects)){
String exceptTime = orderChildExpects.get(0).getCreateTime();
LocalDateTime beginTime = LocalDateTimeUtils.plus(now,-5, ChronoUnit.MINUTES);
if(beginTime.isBefore(LocalDateTimeUtils.parseTime(exceptTime))){
expectFlag = false;
}
}
if(expectFlag){
orderChildExpectService.orderChildExpect(child.getChildNo(),child.getTruckNo(),child.getStatus(),
child.getOrderNo(),1);
orderChildExpects = orderChildExpectDao.getOrderChildExpectByChildNo(child.getChildNo(),1);
}
if(CollectionUtils.isNotEmpty(orderChildExpects) && orderChildExpects.size() > 1){
OrderChildExpect oneExpect = orderChildExpects.get(0);
if(StringUtil.isNotEmpty(oneExpect.getExpectArriveTime())){
monitorOrderChild.setExpectArriveTimeRealTime(oneExpect.getExpectArriveTime());
}
if(StringUtil.isNotEmpty(oneExpect.getExpectReceiveTime())){
monitorOrderChild.setExpectReceiveTimeRealTime(oneExpect.getExpectReceiveTime());
}
OrderChildExpect twoExpect = orderChildExpects.get(1);
if(Objects.nonNull(oneExpect.getExpectArriveTimeSecond()) && Objects.nonNull(twoExpect
.getExpectArriveTimeSecond())){
if(twoExpect.getExpectArriveTimeSecond() < oneExpect.getExpectArriveTimeSecond()){
monitorOrderChild.setArriveTrend(0);
}else{
monitorOrderChild.setArriveTrend(1);
}
}
if(Objects.nonNull(oneExpect.getExpectReceiveTimeSecond()) && Objects.nonNull(twoExpect
.getExpectReceiveTimeSecond())) {
if(oneExpect.getExpectReceiveTimeSecond() < twoExpect.getExpectReceiveTimeSecond()){
monitorOrderChild.setReceiveTrend(0);
}else{
monitorOrderChild.setReceiveTrend(1);
}
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return
monitorOrderChild
;
return
monitorOrderChild
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
result.setData(monitorOrderChildList);
return result;*/
IPage
<
OutputMonitorOrderChildVO
>
newPage
=
new
Page
<>();
return
null
;
newPage
.
setRecords
(
monitorOrderChildList
).
setTotal
(
page
.
getTotal
()).
setPages
(
page
.
getPages
());
return
newPage
;
}
}
/**
/**
...
@@ -1635,6 +1612,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1635,6 +1612,7 @@ public class OrderChildServiceImpl implements OrderChildService {
plusTime
=
gdRouteDTOS
.
get
(
0
).
getDuration
();
plusTime
=
gdRouteDTOS
.
get
(
0
).
getDuration
();
}
}
expect
.
setExpectTransportTimeSecond
(
plusTime
);
expect
.
setExpectTransportTimeSecond
(
plusTime
);
expect
.
setExpectTransportTime
(
formatTimeStr
(
plusTime
));
LocalDateTime
expectTime
=
now
.
plusSeconds
(
plusTime
);
LocalDateTime
expectTime
=
now
.
plusSeconds
(
plusTime
);
if
(
childStatus
<
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
{
if
(
childStatus
<
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
{
...
@@ -1677,6 +1655,30 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1677,6 +1655,30 @@ public class OrderChildServiceImpl implements OrderChildService {
redisTemplate
.
opsForHash
().
put
(
RedisConstants
.
ORDER_CHILD_EXPECT_TIME_DATA_KEY_MAP
,
orderChildNo
,
keyList
);
redisTemplate
.
opsForHash
().
put
(
RedisConstants
.
ORDER_CHILD_EXPECT_TIME_DATA_KEY_MAP
,
orderChildNo
,
keyList
);
}
}
}
}
/**
* @Author kavin
* @Description 获取运单监控实时位置到达时间计算集合
* @Param [orderChildNo]
* @return
**/
public
List
<
OrderChildExpectDTO
>
getOrderChildExpect
(
String
orderChildNo
){
List
<
String
>
keyList
=
(
List
<
String
>)
redisTemplate
.
opsForHash
().
get
(
RedisConstants
.
ORDER_CHILD_EXPECT_TIME_DATA_KEY_MAP
,
orderChildNo
);
List
<
OrderChildExpectDTO
>
list
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
keyList
)){
keyList
.
forEach
(
item
->{
OrderChildExpectDTO
dto
=
(
OrderChildExpectDTO
)
redisTemplate
.
opsForValue
().
get
(
item
);
if
(
Objects
.
nonNull
(
dto
)){
list
.
add
(
dto
);
}
});
}
return
list
;
}
/**
/**
* @Author kavin
* @Author kavin
* @Description 获取运单实时监控位置计算时间的数据key
* @Description 获取运单实时监控位置计算时间的数据key
...
@@ -1703,4 +1705,26 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1703,4 +1705,26 @@ public class OrderChildServiceImpl implements OrderChildService {
}
}
return
gdRouteDTOS
;
return
gdRouteDTOS
;
}
}
private
static
String
formatTimeStr
(
Integer
n
)
{
if
(
n
>
Long
.
MAX_VALUE
)
{
return
"--"
;
}
if
(
n
<=
60
)
{
// 一分钟以下
return
"1分钟"
;
}
else
if
(
n
>
60
&&
n
<
3600
)
{
//一小时以下
int
minute
=
n
/
60
;
return
minute
+
"分钟"
;
}
else
if
(
n
>=
3600
)
{
// 一小时及以上
int
hour
=
n
/
3600
;
int
minute
=
(
n
-
3600
*
hour
)
/
60
;
if
(
minute
==
0
){
return
hour
+
"小时"
;
}
else
{
return
hour
+
"小时"
+
minute
+
"分钟"
;
}
}
return
"--"
;
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论