fix(order): 优化收货托盘状态校验逻辑

- 在查询托盘编号时增加状态筛选,仅获取运输中的托盘
- 移除冗余的待收货托盘存在性校验,改为直接判断托盘列表是否为空
- 校验请求中的托盘编号集合是否与实际托盘集合匹配,确保托盘齐套
- 更新托盘状态时,设置为已收货并记录接收人信息
This commit is contained in:
曹鹏飞 2026-05-30 10:42:35 +08:00
parent ac8e64884d
commit 54d3bcd2f0
1 changed files with 2 additions and 5 deletions

View File

@ -1164,17 +1164,14 @@ public class StructuralPackageOrderController extends BaseController {
List<String> trayNos = structuralPackageOrderTrayService.lambdaQuery()
.select(WmsStructuralPackageOrderTray::getNo)
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
.list()
.stream()
.map(WmsStructuralPackageOrderTray::getNo)
.toList();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trayNos)).throwMessage("没有需要收货的数据");
VUtil.trueThrowBusinessError(!new HashSet<>(trayNos).equals(new HashSet<>(request.getTrayNos())))
.throwMessage("托盘未齐套");
VUtil.trueThrowBusinessError(!structuralPackageOrderTrayService.lambdaQuery()
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
.exists())
.throwMessage("没有需要收货的数据");
structuralPackageOrderTrayService.lambdaUpdate()
.set(WmsStructuralPackageOrderTray::getState, OrderState.Received.getState())
.set(WmsStructuralPackageOrderTray::getReceiveBy, UserUtil.getUserName())