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

取消接口

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