liweidong-hj 2 weeks ago
commit 21e0b15daa
  1. 69
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java

@ -521,60 +521,8 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
return R.success();
}
/**
* 校验订单是否存在根据流程卡号
*
* @param orderCardNoList 流程卡号列表
* @return R<?> 校验结果成功返回订单列表失败返回错误信息
*/
private R<?> validateOrderExist(List<String> orderCardNoList) {
List<YieldOrder> yieldOrderList = yieldOrderService.list(
new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, orderCardNoList)
);
// 订单不存在校验
if (CollectionUtils.isEmpty(yieldOrderList)) {
return R.fail("流程卡号输入错误");
}
// 未知订单校验
if (yieldOrderList.size() != orderCardNoList.size()) {
List<String> notExistList = findNotExistInBByStream(yieldOrderList, orderCardNoList);
return R.fail("以下订单未知:" + notExistList);
}
//判断wcid是否一致
boolean allFieldSame = isAllFieldSame(yieldOrderList, YieldOrder::getWorkCenterId);
if (!allFieldSame) {
return R.fail("订单所属的作业中心不一致");
}
if (yieldOrderList.get(0).getWorkCenterId() == null) {
return R.fail("订单所属的作业中心不能为空");
}
return R.data(yieldOrderList);
}
/**
* 计算订单列表总重量
* <p>累加订单的实际称重值过滤null值初始值为0</p>
*
* @param orderIdList 订单ID列表
* @return BigDecimal 订单总重量单位千克
*/
private BigDecimal calculateOrderTotalWeight(List<Long> orderIdList) {
log.info("【订单重量计算】开始计算订单ID列表{}的总重量", orderIdList);
List<YieldOrder> orderList = yieldOrderService.list(
new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getId, orderIdList)
);
log.info("【订单重量计算】查询到订单列表:{}", orderList);
return orderList.stream()
.map(YieldOrder::getActualWeighing)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
/**
* 计算订单列表总重量
@ -961,28 +909,19 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
return R.success();
}
// 过滤已绑定的订单ID
List<Long> boundOrderIds = bindList.stream()
List<String> getCardNoLists = bindList.stream()
.filter(bind -> OrderBind.STATUS_BOUND.equals(bind.getBindingStatus()))
.map(OrderBind::getOrderId)
.map(OrderBind::getCardNo)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(boundOrderIds)) {
if (CollectionUtils.isEmpty(getCardNoLists)) {
return R.success();
}
// 查询已绑定订单的流程卡号
List<String> boundCardNos = yieldOrderService.list(
new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getId, boundOrderIds)
).stream()
.map(YieldOrder::getCardNo)
.filter(Objects::nonNull)
.collect(Collectors.toList());
String errorMsg = String.format("以下流程卡号处于绑定状态,绑定异常:{%s}",
String.join(",", boundCardNos));
String.join(",", getCardNoLists));
log.warn("【订单绑定校验】{}", errorMsg);
return R.fail(errorMsg);
}

Loading…
Cancel
Save