Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mini-wms
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
周海峰
mini-wms
Commits
1ce3e891
Commit
1ce3e891
authored
Dec 19, 2025
by
yubin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
45790555
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
19 行增加
和
4 行删除
+19
-4
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/OutboundOrdersServiceImpl.java
+19
-4
没有找到文件。
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/OutboundOrdersServiceImpl.java
View file @
1ce3e891
...
@@ -237,9 +237,23 @@ public class OutboundOrdersServiceImpl implements IOutboundOrdersService {
...
@@ -237,9 +237,23 @@ public class OutboundOrdersServiceImpl implements IOutboundOrdersService {
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
hasLocKeys
.
sort
((
k1
,
k2
)
->
{
hasLocKeys
.
sort
((
k1
,
k2
)
->
{
Long
qty1
=
inventoryGroupMap
.
get
(
k1
).
stream
().
mapToLong
(
inv
->
Optional
.
ofNullable
(
inv
.
getQuantity
()).
orElse
(
0L
)).
sum
();
// 处理k1的最后入库时间:转时间戳,null则用极小值(确保无入库时间的排在最前面)
Long
qty2
=
inventoryGroupMap
.
get
(
k2
).
stream
().
mapToLong
(
inv
->
Optional
.
ofNullable
(
inv
.
getQuantity
()).
orElse
(
0L
)).
sum
();
Long
time1
=
inventoryGroupMap
.
get
(
k1
).
stream
()
return
Long
.
compare
(
qty2
,
qty1
);
.
map
(
inv
->
Optional
.
ofNullable
(
inv
.
getLastInboundTime
())
// 无入库时间时,用Long.MIN_VALUE(比所有正常时间戳都小)
.
map
(
Date:
:
getTime
)
// 将Date转成毫秒级时间戳(Long)
.
orElse
(
Long
.
MIN_VALUE
))
.
max
(
Long:
:
compare
)
// 取该key下所有库存的最晚入库时间(业务合理)
.
orElse
(
Long
.
MIN_VALUE
);
// 若该key无库存数据,也兜底为极小值
// 处理k2的最后入库时间(逻辑同k1)
Long
time2
=
inventoryGroupMap
.
get
(
k2
).
stream
()
.
map
(
inv
->
Optional
.
ofNullable
(
inv
.
getLastInboundTime
())
.
map
(
Date:
:
getTime
)
.
orElse
(
Long
.
MIN_VALUE
))
.
max
(
Long:
:
compare
)
.
orElse
(
Long
.
MIN_VALUE
);
return
Long
.
compare
(
time1
,
time2
);
});
});
for
(
String
hasLocKey
:
hasLocKeys
)
{
for
(
String
hasLocKey
:
hasLocKeys
)
{
...
@@ -392,7 +406,8 @@ public class OutboundOrdersServiceImpl implements IOutboundOrdersService {
...
@@ -392,7 +406,8 @@ public class OutboundOrdersServiceImpl implements IOutboundOrdersService {
* @return 剩余未扣减数量
* @return 剩余未扣减数量
*/
*/
private
Long
deductByInventoryGroup
(
String
inventoryKey
,
Long
deductQty
,
String
updateUser
,
Date
updateTime
,
private
Long
deductByInventoryGroup
(
String
inventoryKey
,
Long
deductQty
,
String
updateUser
,
Date
updateTime
,
Map
<
String
,
List
<
Inventory
>>
inventoryGroupMap
,
Map
<
String
,
Inventory
>
toUpdateInventoryMap
,
Map
<
String
,
List
<
Inventory
>>
inventoryGroupMap
,
Map
<
String
,
Inventory
>
toUpdateInventoryMap
,
List
<
Map
<
String
,
Object
>>
tempDeductRecords
)
{
List
<
Map
<
String
,
Object
>>
tempDeductRecords
)
{
List
<
Inventory
>
invList
=
inventoryGroupMap
.
getOrDefault
(
inventoryKey
,
new
ArrayList
<>());
List
<
Inventory
>
invList
=
inventoryGroupMap
.
getOrDefault
(
inventoryKey
,
new
ArrayList
<>());
if
(
CollectionUtils
.
isEmpty
(
invList
))
{
if
(
CollectionUtils
.
isEmpty
(
invList
))
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论