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

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

上级 0377945b
......@@ -30,4 +30,12 @@ public class OrderChildPCVO {
@ApiModelProperty("司机手机号")
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 {
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
vehicleUsageMap.put(1, BigDecimal.ZERO);
vehicleUsageMap.put(2, BigDecimal.ZERO);
RollbackOrderWeightParam rollbackOrderWeightParam = new RollbackOrderWeightParam();
String orderNo = param.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
......@@ -515,25 +514,19 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<OrderGoods> orderGoodsList = null;
switch (param.getCancelType()) {
case 1: //单纯取消订单及货单
orderGoodsList = getOrderGoods(orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand);
orderGoodsList = getOrderGoods(orderNo);
break;
case 2: //取消未拉运吨数的货单及订单
orderGoodsList = getGoods(orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand);
orderGoodsList = getGoods(orderNo);
break;
case 3: //取消未拉运+未到达货源地吨数
orderGoodsList = getOrderGoods(param, orderNo, orderInfoFeign, truckDemandMap, vehicleUsageMap, rollbackOrderWeightParam, truckDemand);
orderGoodsList = getOrderGoods(param, orderNo);
break;
default:
return;
}
if (!orderFeign.rollbackOrderWeight(rollbackOrderWeightParam).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "远程调用更新订单余量失败");
}
// if (!orderFeign.saveOrderSettlementJobRecord(orderNo).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用结算单锁定失败");
// }
//订单取消恢复货单的剩余吨数为0
orderGoodsService.batchUpdateResidueWeight(orderGoodsList);
......@@ -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;
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = new HashMap<>();
......@@ -550,162 +543,27 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<OrderChild> orderChildren = orderChildDao.selectInOrderChildNoList(param.getChildNoList());
orderChildMap = orderChildren.stream().collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
}
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.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));
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.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;
}
private List<OrderGoods> getGoods(String orderNo, FeignOrderVO orderInfoFeign, Map<Integer, BigDecimal> truckDemandMap, Map<Integer, BigDecimal> vehicleUsageMap, RollbackOrderWeightParam rollbackOrderWeightParam, Integer truckDemand) {
List<OrderGoods> 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;
private List<OrderGoods> getGoods(String orderNo) {
return orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
}
private List<OrderGoods> getOrderGoods(String orderNo, FeignOrderVO orderInfoFeign, Map<Integer, BigDecimal> truckDemandMap, Map<Integer, BigDecimal> vehicleUsageMap, RollbackOrderWeightParam rollbackOrderWeightParam, Integer truckDemand) {
List<OrderGoods> orderGoodsList;
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;
private List<OrderGoods> getOrderGoods(String orderNo) {
return orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
}
//订单取消增加自动冻结的消息触发
......
......@@ -2014,7 +2014,10 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsStatus = orderGoods.getOrderGoodsStatus();
}
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);
orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), dif, orderGoodsStatus);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论