提交 5cac8194 authored 作者: 刘海泉's avatar 刘海泉

货单下的运单列表增加接单时间和完成时间字段

上级 0377945b
...@@ -30,4 +30,12 @@ public class OrderChildPCVO { ...@@ -30,4 +30,12 @@ public class OrderChildPCVO {
@ApiModelProperty("司机手机号") @ApiModelProperty("司机手机号")
private String driverMobile; private String driverMobile;
@ApiModelProperty("接单时间")
private String createTime;
@ApiModelProperty("完成时间")
private String finishTime;
} }
\ No newline at end of file
...@@ -507,7 +507,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -507,7 +507,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>(); Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
vehicleUsageMap.put(1, BigDecimal.ZERO); vehicleUsageMap.put(1, BigDecimal.ZERO);
vehicleUsageMap.put(2, BigDecimal.ZERO); vehicleUsageMap.put(2, BigDecimal.ZERO);
RollbackOrderWeightParam rollbackOrderWeightParam = new RollbackOrderWeightParam();
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
...@@ -515,25 +514,19 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -515,25 +514,19 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<OrderGoods> orderGoodsList = null; List<OrderGoods> orderGoodsList = null;
switch (param.getCancelType()) { switch (param.getCancelType()) {
case 1: //单纯取消订单及货单 case 1: //单纯取消订单及货单
orderGoodsList = getOrderGoods(orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand); orderGoodsList = getOrderGoods(orderNo);
break; break;
case 2: //取消未拉运吨数的货单及订单 case 2: //取消未拉运吨数的货单及订单
orderGoodsList = getGoods(orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand); orderGoodsList = getGoods(orderNo);
break; break;
case 3: //取消未拉运+未到达货源地吨数 case 3: //取消未拉运+未到达货源地吨数
orderGoodsList = getOrderGoods(param, orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand); orderGoodsList = getOrderGoods(param, orderNo);
break; break;
default: default:
return; return;
} }
if (!orderFeign.rollbackOrderWeight(rollbackOrderWeightParam).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "远程调用更新订单余量失败");
}
// if (!orderFeign.saveOrderSettlementJobRecord(orderNo).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用结算单锁定失败");
// }
//订单取消恢复货单的剩余吨数为0 //订单取消恢复货单的剩余吨数为0
orderGoodsService.batchUpdateResidueWeight(orderGoodsList); orderGoodsService.batchUpdateResidueWeight(orderGoodsList);
...@@ -542,7 +535,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -542,7 +535,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
private List<OrderGoods> getOrderGoods(OrderCancelParam param, String orderNo, FeignOrderVO orderInfoFeign, Map<Integer, BigDecimal> truckDemandMap, Map<Integer, BigDecimal> vehicleUsageMap, RollbackOrderWeightParam rollbackOrderWeightParam, Integer truckDemand) { private List<OrderGoods> getOrderGoods(OrderCancelParam param, String orderNo) {
List<OrderGoods> orderGoodsList; List<OrderGoods> orderGoodsList;
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = new HashMap<>(); Map<String, List<OrderChild>> orderChildMap = new HashMap<>();
...@@ -550,162 +543,27 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -550,162 +543,27 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<OrderChild> orderChildren = orderChildDao.selectInOrderChildNoList(param.getChildNoList()); List<OrderChild> orderChildren = orderChildDao.selectInOrderChildNoList(param.getChildNoList());
orderChildMap = orderChildren.stream().collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); orderChildMap = orderChildren.stream().collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
} }
for (OrderGoods orderGoods : orderGoodsList) {
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) { OrderGoods update = new OrderGoods();
for (OrderGoods orderGoods : orderGoodsList) { update.setId(orderGoods.getId());
OrderGoods update = new OrderGoods(); if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
update.setId(orderGoods.getId()); BigDecimal childSum = orderChildMap.get(orderGoods.getOrderGoodsNo()).stream()
truckDemandMap.put(orderGoods.getTruckDemand(), .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
truckDemandMap.get(orderGoods.getTruckDemand()) update.setAlreadyTransportWeight(orderGoods.getAlreadyTransportWeight().subtract(childSum)
.add(orderGoods.getResidueTransportWeight())); );
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) { update.setResidueTransportWeight(orderGoods.getResidueTransportWeight().add(childSum));
BigDecimal childSum = orderChildMap.get(orderGoods.getOrderGoodsNo()).stream() orderGoodsDao.updateEntityByKey(update);
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
update.setAlreadyTransportWeight(
orderGoods.getAlreadyTransportWeight()
.subtract(
childSum
)
);
update.setResidueTransportWeight(orderGoods.getResidueTransportWeight().add(childSum));
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(childSum));
orderGoodsDao.updateEntityByKey(update);
}
}
} else {
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
BigDecimal childSum = orderChildMap.get(orderGoods.getOrderGoodsNo()).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
update.setAlreadyTransportWeight(
orderGoods.getAlreadyTransportWeight()
.subtract(
childSum
)
);
update.setResidueTransportWeight(orderGoods.getResidueTransportWeight().add(childSum));
vehicleUsageMap.put(orderGoods.getTruckDemand(),
vehicleUsageMap.get(orderGoods.getTruckDemand())
.add(childSum));
orderGoodsDao.updateEntityByKey(update);
}
} }
} }
//归还吨数
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
rollbackOrderWeightParam.setOrderNo(orderNo);
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
}
return orderGoodsList; return orderGoodsList;
} }
private List<OrderGoods> getGoods(String orderNo, FeignOrderVO orderInfoFeign, Map<Integer, BigDecimal> truckDemandMap, Map<Integer, BigDecimal> vehicleUsageMap, RollbackOrderWeightParam rollbackOrderWeightParam, Integer truckDemand) { private List<OrderGoods> getGoods(String orderNo) {
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); return orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
}
} else {
for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
}
}
//归还吨数
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
rollbackOrderWeightParam.setOrderNo(orderNo);
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
}
return orderGoodsList;
} }
private List<OrderGoods> getOrderGoods(String orderNo, FeignOrderVO orderInfoFeign, Map<Integer, BigDecimal> truckDemandMap, Map<Integer, BigDecimal> vehicleUsageMap, RollbackOrderWeightParam rollbackOrderWeightParam, Integer truckDemand) { private List<OrderGoods> getOrderGoods(String orderNo) {
List<OrderGoods> orderGoodsList; return orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
}
} else {
for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
}
}
//归还吨数
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
rollbackOrderWeightParam.setOrderNo(orderNo);
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
}
return orderGoodsList;
} }
//订单取消增加自动冻结的消息触发 //订单取消增加自动冻结的消息触发
......
...@@ -2014,7 +2014,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2014,7 +2014,10 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsStatus = orderGoods.getOrderGoodsStatus(); orderGoodsStatus = orderGoods.getOrderGoodsStatus();
} }
if (dif.compareTo(BigDecimal.ZERO) != 0) { if (dif.compareTo(BigDecimal.ZERO) != 0) {
BigDecimal orderResidueWeight = orderWeightService.getOrderResidueWeight(orderGoods.getOrderNo());
if(orderResidueWeight.compareTo(dif) < 0){
throw new ServiceSystemException(ORDER_WEIGHT_LACK);
}
//运单修改装车吨数,从货单进行扣减 //运单修改装车吨数,从货单进行扣减
log.info("货单号:{},运单号 :{},扣减吨数:{}",orderGoods.getOrderGoodsNo(),childNo, dif); log.info("货单号:{},运单号 :{},扣减吨数:{}",orderGoods.getOrderGoodsNo(),childNo, dif);
orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), dif, orderGoodsStatus); orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), dif, orderGoodsStatus);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论