|
|
@@ -4108,12 +4108,30 @@ public class KwtLogisticsConsignmentService {
|
|
|
logisticsOrder = logisticsOrderRepository.queryByTradeOrderId(req.getTradeOrderId());
|
|
|
} else {
|
|
|
//查询物流订单
|
|
|
- logisticsOrder =
|
|
|
- logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
|
|
|
+ logisticsOrder = logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
|
|
|
}
|
|
|
if (CollectionUtils.isEmpty(logisticsOrder)) {
|
|
|
throw new BusinessException("未找到该物流订单信息");
|
|
|
}
|
|
|
+
|
|
|
+ // 校验是否都是同种物流订单
|
|
|
+ boolean isOrderInconsistent = logisticsOrder.stream()
|
|
|
+ .map(KwtLogisticsOrder::getOrderType)
|
|
|
+ .distinct().count() > 1;
|
|
|
+ if (isOrderInconsistent) {
|
|
|
+ throw new BusinessException("订单类型不一致,集合中同时存在order=0和order=1的数据");
|
|
|
+ }
|
|
|
+ // 原矿订单完结
|
|
|
+ if (Objects.equals(logisticsOrder.get(0).getOrderType(), 1)) {
|
|
|
+ return rawOreLogisticOrderFinish(logisticsOrder);
|
|
|
+ } else {
|
|
|
+ // 正常订单完结
|
|
|
+ return normallogisticOrderFinish(logisticsOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Boolean normallogisticOrderFinish(List<KwtLogisticsOrder> logisticsOrder) {
|
|
|
List<KwtLogisticsOrder> logisticsOrders = Lists.newArrayList();
|
|
|
List<KwtLogisticsOrder> completedLogisticsOrders = Lists.newArrayList();
|
|
|
Set<Long> tradeIds = Sets.newHashSet();
|
|
|
@@ -4172,11 +4190,6 @@ public class KwtLogisticsConsignmentService {
|
|
|
|
|
|
private void calculateFreight(List<KwtLogisticsOrder> completedLogisticsOrders) {
|
|
|
for (KwtLogisticsOrder logisticsOrder : completedLogisticsOrders) {
|
|
|
- // 原矿运输的不需要计算运费
|
|
|
- if (Objects.equals(logisticsOrder.getOrderType(),1)) {
|
|
|
- log.info("原矿运输订单不需要计算费用!");
|
|
|
- return;
|
|
|
- }
|
|
|
//物流订单已完结,计算待付运费
|
|
|
if (Objects.equals(logisticsOrder.getSettlement(), 1)) {
|
|
|
//todo 普通结算
|
|
|
@@ -4232,15 +4245,11 @@ public class KwtLogisticsConsignmentService {
|
|
|
* @param req
|
|
|
* @return
|
|
|
*/
|
|
|
- public Boolean rawOreLogisticOrderFinish(OrderFinishReq req) {
|
|
|
- log.info("[原矿]物流订单-完结中订单传递参数信息:{}", JSONObject.toJSONString(req));
|
|
|
- //查询物流订单
|
|
|
- List<KwtLogisticsOrder> logisticsOrder = logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
|
|
|
-
|
|
|
+ public Boolean rawOreLogisticOrderFinish(List<KwtLogisticsOrder> logisticsOrder) {
|
|
|
+ log.info("[原矿]物流订单-完结中订单传递参数信息:{}", JSONObject.toJSONString(logisticsOrder));
|
|
|
if (CollectionUtils.isEmpty(logisticsOrder)) {
|
|
|
throw new BusinessException("未找到该物流订单信息!");
|
|
|
}
|
|
|
-
|
|
|
// 校验批量物流订单是否都是原矿订单
|
|
|
boolean hasInvalidOrder = logisticsOrder.stream().anyMatch(order -> !Objects.equals(order.getOrderType(), 1));
|
|
|
if (hasInvalidOrder) {
|