|
|
|
|
@ -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); |
|
|
|
|
} |
|
|
|
|
|