小改一下
parent
d59789fb9e
commit
ca40e8260f
|
|
@ -1306,7 +1306,6 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
// 更新订单表的优惠金额; 手动修正金额;结算金额;总金额;
|
// 更新订单表的优惠金额; 手动修正金额;结算金额;总金额;
|
||||||
if (isChange) {
|
if (isChange) {
|
||||||
orderInfoEntity.setChangeMoney(totalChangeMoney);
|
orderInfoEntity.setChangeMoney(totalChangeMoney);
|
||||||
orderInfoEntity.setPaymentStatus(PaymentStatus.WeiZhiFu);
|
|
||||||
} else {
|
} else {
|
||||||
orderInfoEntity.setDiscountMoney(totalDiscountMoney);
|
orderInfoEntity.setDiscountMoney(totalDiscountMoney);
|
||||||
orderInfoEntity.setReviseMoney(totalReviseMoney);
|
orderInfoEntity.setReviseMoney(totalReviseMoney);
|
||||||
|
|
@ -1747,14 +1746,13 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
public void changePrice(ChangePriceParam param) {
|
public void changePrice(ChangePriceParam param) {
|
||||||
OrderInfoEntity order = this.getById(param.getOrderId());
|
OrderInfoEntity order = this.getById(param.getOrderId());
|
||||||
Assert.notNull(order, () -> Exceptions.clierr("订单不存在"));
|
Assert.notNull(order, () -> Exceptions.clierr("订单不存在"));
|
||||||
|
Assert.isFalse(null == order.getGoodsId(), () -> Exceptions.clierr("订单商品信息不存在"));
|
||||||
|
OrderGoodsEntity orderGoodsEntity = orderGoodsService.getById(order.getGoodsId());
|
||||||
|
String oldMoneyWay = orderGoodsEntity.getMoneyWay();
|
||||||
if (ChangePriceType.GOODS.getVal().equals(param.getChangePriceType())) {
|
if (ChangePriceType.GOODS.getVal().equals(param.getChangePriceType())) {
|
||||||
// 变更产品与单价,单价如果为空当0计算,依然不加入订单付费项
|
// 变更产品与单价,单价如果为空当0计算,依然不加入订单付费项
|
||||||
Assert.isFalse(null == param.getGoodsId(), () -> Exceptions.clierr("产品ID不可为空"));
|
Assert.isFalse(null == param.getGoodsId(), () -> Exceptions.clierr("产品ID不可为空"));
|
||||||
// 删除原来的订单产品数据
|
// 删除原来的订单产品数据
|
||||||
Assert.isFalse(null == order.getGoodsId(), () -> Exceptions.clierr("订单商品信息不存在"));
|
|
||||||
OrderGoodsEntity orderGoodsEntity = orderGoodsService.getById(order.getGoodsId());
|
|
||||||
String oldMoneyWay = orderGoodsEntity.getMoneyWay();
|
|
||||||
|
|
||||||
orderGoodsService.removeById(order.getGoodsId());
|
orderGoodsService.removeById(order.getGoodsId());
|
||||||
// 添加新的订单产品
|
// 添加新的订单产品
|
||||||
Long orderGoodsId = orderGoodsService.add(param.getGoodsId(), param.getUnitPrice());
|
Long orderGoodsId = orderGoodsService.add(param.getGoodsId(), param.getUnitPrice());
|
||||||
|
|
@ -1862,7 +1860,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
} else if (MoneyWay.IN.getVal().equals(oldMoneyWay) && MoneyWay.IN.getVal().equals(newMoneyWay)) {
|
} else if (MoneyWay.IN.getVal().equals(oldMoneyWay) && MoneyWay.IN.getVal().equals(newMoneyWay)) {
|
||||||
// 重新计算,多退少补
|
// 重新计算,多退少补
|
||||||
reSettlement(order);
|
reSettlement(order, oldMoneyWay);
|
||||||
}
|
}
|
||||||
// 更新产品不用考虑出厂问题,在称重时会重新计算费用并付费
|
// 更新产品不用考虑出厂问题,在称重时会重新计算费用并付费
|
||||||
} else if (ChangePriceType.SERVICE_FEE_PRICE.getVal().equals(param.getChangePriceType())) {
|
} else if (ChangePriceType.SERVICE_FEE_PRICE.getVal().equals(param.getChangePriceType())) {
|
||||||
|
|
@ -1876,7 +1874,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
orderExpenseItemsService.updateById(itemsEntity);
|
orderExpenseItemsService.updateById(itemsEntity);
|
||||||
}
|
}
|
||||||
// 重新计算,多退少补
|
// 重新计算,多退少补
|
||||||
reSettlement(order);
|
reSettlement(order, oldMoneyWay);
|
||||||
} else {
|
} else {
|
||||||
throw Exceptions.clierr("清运服务费不可为空");
|
throw Exceptions.clierr("清运服务费不可为空");
|
||||||
}
|
}
|
||||||
|
|
@ -1894,15 +1892,17 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
/**
|
/**
|
||||||
* 重新计算,多退少补
|
* 重新计算,多退少补
|
||||||
*/
|
*/
|
||||||
public void reSettlement(OrderInfoEntity order) {
|
public void reSettlement(OrderInfoEntity order, String oldMoneyWay) {
|
||||||
// 计算费用
|
// 计算费用
|
||||||
updateOrderItems(order.getId(), 0, Boolean.TRUE);
|
updateOrderItems(order.getId(), 0, Boolean.TRUE);
|
||||||
|
|
||||||
// 多退少补 获取改价后的订单信息
|
// 多退少补 获取改价后的订单信息
|
||||||
OrderInfoEntity newOrder = this.getById(order.getId());
|
OrderInfoEntity newOrder = this.getById(order.getId());
|
||||||
BigDecimal changeMoney = newOrder.getChangeMoney() == null ? BigDecimal.ZERO : newOrder.getChangeMoney();
|
BigDecimal changeMoney = newOrder.getChangeMoney() == null ? BigDecimal.ZERO : newOrder.getChangeMoney();
|
||||||
BigDecimal settleMoney = newOrder.getSettleMoney() == null ? BigDecimal.ZERO : newOrder.getSettleMoney();
|
BigDecimal settleMoney = newOrder.getSettleMoney() == null ? BigDecimal.ZERO : newOrder.getSettleMoney();
|
||||||
// 只有当订单已支付时,才需要多退少补
|
// 如果之前的计费方式就是入场付费,并且订单为已支付时,才需要多退少补;
|
||||||
if (PaymentStatus.YiZhiFu.getVal().equals(order.getPaymentStatus().getVal())) {
|
// 如果之前的计费方式就是出场付费,勘料时一定是未支付,所以不必走下面的多退少补流程
|
||||||
|
if (MoneyWay.IN.getVal().equals(oldMoneyWay) && PaymentStatus.YiZhiFu.getVal().equals(order.getPaymentStatus().getVal())) {
|
||||||
// 比较改价后金额和结算金额
|
// 比较改价后金额和结算金额
|
||||||
if (changeMoney.compareTo(settleMoney) > 0) {
|
if (changeMoney.compareTo(settleMoney) > 0) {
|
||||||
// 改价后金额大于结算金额,需要付款(多付)
|
// 改价后金额大于结算金额,需要付款(多付)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue