提交 f97dea79 authored 作者: huyufan's avatar huyufan

取消接口

上级 b7f42fb9
......@@ -3,17 +3,16 @@ package com.clx.performance.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.OrderChildService;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
......@@ -38,7 +37,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OrderGoodsDao orderGoodsDao;
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(String orderNo) {
......@@ -71,7 +69,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
} else {
BigDecimal orderChildResidueWeight = orderChildrenList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal orderChildResidueWeight = orderChildrenList.stream()
.map(OrderChild::getWeight)
.reduce(BigDecimal.ZERO, BigDecimal::add);
if (orderChildResidueWeight.compareTo(orderTransportWeight) == 0) {
throw new RuntimeException("当前订单已无余量可取消");
}
......@@ -92,14 +92,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrder(String orderNo) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeign.getTruckDemand())) {
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeign.getOrderStatus())) {
if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo);
......@@ -110,15 +110,22 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
}
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream().collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream().collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
String orderGoodsNo = entry.getKey();
OrderGoods orderGoods = entry.getValue().get(0);
BigDecimal sum = orderChildMap.get(orderGoodsNo).stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
truckDemandMap.put(orderGoods.getTruckDemand(), truckDemandMap.get(orderGoods.getTruckDemand()).add(orderGoods.getResidueTransportWeight().add(sum)));
BigDecimal sum = orderChildMap.get(orderGoodsNo).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
......@@ -127,10 +134,12 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderGoodsDao.updateEntityByKey(update);
}
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeign.getOrderStatus())) {
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(), truckDemandMap.get(orderGoods.getTruckDemand()).add(orderGoods.getResidueTransportWeight()));
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
......@@ -139,9 +148,26 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderGoodsDao.updateEntityByKey(update);
}
}
Integer truckDemand = orderInfoFeignVO.getTruckDemand();
BigDecimal residueWeight = truckDemandMap.get(truckDemand);
UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam();
param.setOrderId(orderInfoFeignVO.getId());
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
param.setUpdateType("2");
param.setResidueWeight(residueWeight.add(new BigDecimal(orderInfoFeignVO.getResidueWeight())));
param.setPlatWeight(residueWeight);
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
param.setUpdateType("3");
param.setResidueWeight(residueWeight.add(new BigDecimal(orderInfoFeignVO.getResidueWeight())));
param.setOwnWeight(residueWeight);
}
orderFeign.updateOrderInfoResidueWeight(param);
} else {
Map<Integer,BigDecimal> vehicleUsageMap = new HashMap<>();
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeign.getOrderStatus())) {
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo);
......@@ -153,16 +179,21 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderChildDao.updateEntityByKey(update);
}
//货单
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream().collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//运单
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream().collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
String orderGoodsNo = entry.getKey();
OrderGoods orderGoods = entry.getValue().get(0);
BigDecimal sum = orderChildMap.get(orderGoodsNo).stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
vehicleUsageMap.put(orderGoods.getVehicleUsage(), vehicleUsageMap.get(orderGoods.getVehicleUsage()).add(orderGoods.getResidueTransportWeight().add(sum)));
BigDecimal sum = orderChildMap.get(orderGoodsNo).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
......@@ -172,10 +203,12 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeign.getOrderStatus())) {
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(), vehicleUsageMap.get(orderGoods.getVehicleUsage()).add(orderGoods.getResidueTransportWeight()));
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
......@@ -185,13 +218,19 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
String platformResidueCarryWeight = orderInfoFeign.getPlatformResidueCarryWeight();
String ownResidueCarryWeight = orderInfoFeign.getOwnResidueCarryWeight();
String platformResidueCarryWeight = orderInfoFeignVO.getPlatformResidueCarryWeight();
String ownResidueCarryWeight = orderInfoFeignVO.getOwnResidueCarryWeight();
BigDecimal platformResidueSum = new BigDecimal(platformResidueCarryWeight).add(vehicleUsageMap.get(1));
BigDecimal ownResidueSum = new BigDecimal(ownResidueCarryWeight).add(vehicleUsageMap.get(2));
BigDecimal residueSum = new BigDecimal(orderInfoFeign.getResidueWeight()).add(platformResidueSum).add(ownResidueSum);
BigDecimal residueSum = new BigDecimal(orderInfoFeignVO.getResidueWeight()).add(platformResidueSum).add(ownResidueSum);
UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam();
param.setOrderId(orderInfoFeignVO.getId());
param.setUpdateType("4");
param.setResidueWeight(residueSum);
param.setPlatWeight(platformResidueSum);
param.setOwnWeight(ownResidueSum);
orderFeign.updateOrderInfoResidueWeight(param);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论