Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
2c9c66d2
提交
2c9c66d2
authored
9月 26, 2023
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加货单失效逻辑处理
上级
d8554657
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
21 行增加
和
4 行删除
+21
-4
OrderGoodsStatusLazyComponent.java
.../performance/component/OrderGoodsStatusLazyComponent.java
+19
-4
OrderGoodsDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
+2
-0
没有找到文件。
performance-web/src/main/java/com/clx/performance/component/OrderGoodsStatusLazyComponent.java
浏览文件 @
2c9c66d2
...
@@ -46,6 +46,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
...
@@ -46,6 +46,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
@XxlJob
(
"OrderGoodsSuccess"
)
@XxlJob
(
"OrderGoodsSuccess"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
consuming
()
{
public
void
consuming
()
{
log
.
info
(
"货单已完结定时器启动"
);
long
nowTimeMillis
=
System
.
currentTimeMillis
();
long
nowTimeMillis
=
System
.
currentTimeMillis
();
LocalDateTime
nowDateTime
=
new
Date
(
nowTimeMillis
).
toInstant
().
atOffset
(
ZoneOffset
.
of
(
"+8"
)).
toLocalDateTime
();
LocalDateTime
nowDateTime
=
new
Date
(
nowTimeMillis
).
toInstant
().
atOffset
(
ZoneOffset
.
of
(
"+8"
)).
toLocalDateTime
();
Set
<
ZSetOperations
.
TypedTuple
<
String
>>
orderGoodsIds
=
stringRedisTemplate
.
opsForZSet
().
rangeByScoreWithScores
(
Set
<
ZSetOperations
.
TypedTuple
<
String
>>
orderGoodsIds
=
stringRedisTemplate
.
opsForZSet
().
rangeByScoreWithScores
(
...
@@ -53,36 +54,50 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
...
@@ -53,36 +54,50 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
0
,
nowTimeMillis
//延时任务score最小值
0
,
nowTimeMillis
//延时任务score最小值
//延时任务score最大值(当前时间)
//延时任务score最大值(当前时间)
);
);
if
(
orderGoodsIds
==
null
)
{
log
.
info
(
"货单已完结定时器查询redis条数为null"
);
return
;
}
if
(!
CollectionUtil
.
isEmpty
(
orderGoodsIds
))
{
if
(!
CollectionUtil
.
isEmpty
(
orderGoodsIds
))
{
log
.
info
(
"货单已完结定时器查询redis条数:{}"
,
orderGoodsIds
.
size
());
for
(
ZSetOperations
.
TypedTuple
<
String
>
orderGoodsId
:
orderGoodsIds
)
{
for
(
ZSetOperations
.
TypedTuple
<
String
>
orderGoodsId
:
orderGoodsIds
)
{
log
.
info
(
"货单"
+
orderGoodsId
+
"过了最晚拉运时间"
);
log
.
info
(
"货单"
+
orderGoodsId
+
"过了最晚拉运时间"
);
String
orderGoodsNo
=
orderGoodsId
.
getValue
();
String
orderGoodsNo
=
orderGoodsId
.
getValue
();
log
.
info
(
"处理当前货单编号:{}"
,
orderGoodsNo
);
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
get
();
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
get
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderGoods
.
getOrderNo
());
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderGoods
.
getOrderNo
());
if
(!
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())
&&
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
().
equals
(
orderGoods
.
getOrderGoodsStatus
()))
{
if
(
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
().
equals
(
orderGoods
.
getOrderGoodsStatus
()))
{
log
.
info
(
"当前货单状态为已完成"
);
//如果当前货单已完成,则判断之前所有货单是否等于订单总吨数,等于则更新订单为已完成
//如果当前货单已完成,则判断之前所有货单是否等于订单总吨数,等于则更新订单为已完成
List
<
OrderGoods
>
list
=
orderGoodsDao
.
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
orderGoods
.
getOrderNo
(),
nowDateTime
);
List
<
OrderGoods
>
list
=
orderGoodsDao
.
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
orderGoods
.
getOrderNo
(),
nowDateTime
);
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
childSum
.
compareTo
(
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()))
==
0
)
{
if
(
childSum
.
compareTo
(
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()))
==
0
)
{
//补充更新订单状态 已完成
log
.
info
(
"已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成"
);
//已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成
UpdateOrderInfoParam
updateOrderInfoParam
=
new
UpdateOrderInfoParam
();
UpdateOrderInfoParam
updateOrderInfoParam
=
new
UpdateOrderInfoParam
();
updateOrderInfoParam
.
setOrderId
(
orderInfoFeign
.
getId
());
updateOrderInfoParam
.
setOrderId
(
orderInfoFeign
.
getId
());
updateOrderInfoParam
.
setOrderStatus
(
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
());
updateOrderInfoParam
.
setOrderStatus
(
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
());
orderFeign
.
updateOrderInfo
(
updateOrderInfoParam
);
orderFeign
.
updateOrderInfo
(
updateOrderInfoParam
);
}
}
}
else
{
}
else
{
//更新货单已完结,并返还货单吨数
log
.
info
(
"当前货单状态为已完结"
);
//更新货单已完结
orderGoodsDao
.
updateOrderGoodsStatusByOrderGoodsNo
(
orderGoodsNo
,
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
orderGoodsDao
.
updateOrderGoodsStatusByOrderGoodsNo
(
orderGoodsNo
,
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
BigDecimal
residueTransportWeight
=
orderGoods
.
getResidueTransportWeight
();
BigDecimal
residueTransportWeight
=
orderGoods
.
getResidueTransportWeight
();
UpdateOrderInfoParam
updateOrderInfoParam
=
new
UpdateOrderInfoParam
();
UpdateOrderInfoParam
updateOrderInfoParam
=
new
UpdateOrderInfoParam
();
updateOrderInfoParam
.
setOrderId
(
orderInfoFeign
.
getId
());
updateOrderInfoParam
.
setOrderId
(
orderInfoFeign
.
getId
());
updateOrderInfoParam
.
setResidueWeight
(
residueTransportWeight
);
updateOrderInfoParam
.
setResidueWeight
(
residueTransportWeight
);
log
.
info
(
"订单ID:{},返还订单剩余吨数{}"
,
orderInfoFeign
.
getId
(),
residueTransportWeight
);
//返还订单剩余吨数
//返还订单剩余吨数
orderFeign
.
updateOrderInfo
(
updateOrderInfoParam
);
orderFeign
.
updateOrderInfo
(
updateOrderInfoParam
);
}
}
stringRedisTemplate
.
opsForZSet
().
remove
(
RedisConstants
.
ORDER_GOODS_STATUS_LAZY
,
orderGoodsId
.
getValue
());
stringRedisTemplate
.
opsForZSet
().
remove
(
RedisConstants
.
ORDER_GOODS_STATUS_LAZY
,
orderGoodsId
.
getValue
());
log
.
info
(
"删除redis ORDER_GOODS_STATUS_LAZY id: {}"
,
orderGoodsId
.
getValue
());
}
}
}
}
}
}
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
浏览文件 @
2c9c66d2
...
@@ -108,7 +108,9 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
...
@@ -108,7 +108,9 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
@Override
@Override
public
List
<
OrderGoods
>
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
String
orderNo
,
LocalDateTime
lastArriveSendTime
)
{
public
List
<
OrderGoods
>
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
String
orderNo
,
LocalDateTime
lastArriveSendTime
)
{
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderGoods:
:
getOrderNo
,
orderNo
)
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderGoods:
:
getOrderNo
,
orderNo
)
.
eq
(
OrderGoods:
:
getOrderGoodsStatus
,
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
())
.
le
(
OrderGoods:
:
getLastArriveSendTime
,
lastArriveSendTime
)
.
le
(
OrderGoods:
:
getLastArriveSendTime
,
lastArriveSendTime
)
);
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论