结算订单优化

This commit is contained in:
yuyang 2022-05-05 16:05:09 +08:00
parent c95150946a
commit 7bf2c90aca

View File

@ -408,78 +408,48 @@ public class XhpcPileOrderController extends BaseController {
BigDecimal powerPrice =new BigDecimal(0);
Integer totalPower =0;
BigDecimal servicePrice =new BigDecimal(0);
if(xhpcChargeOrder.getUserId()==4 && xhpcChargeOrder.getSource()==1){
//因桩有误差电费和服务费重新计算
if(!"0".equals(cacheOrderData.getT1PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT1PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(t1powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(t1serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT2PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT2PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(t2powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(t2serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT3PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT3PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(t3powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(t3serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT4PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT4PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(t4powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(t4serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_HALF_UP);
//总服务费
servicePrice =servicePrice.setScale(2,BigDecimal.ROUND_HALF_UP);
//防止出现负数
if(powerPrice.add(servicePrice).compareTo(money)==-1){
if(powerPrice.compareTo(money)==1){
powerPrice =money;
servicePrice = money.subtract(powerPrice);
}else{
servicePrice = money.subtract(powerPrice);
}
}
}else{
if(!"0".equals(cacheOrderData.getT1PowerQuantity().toString())){
BigDecimal multiply = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(t1powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
totalPower =totalPower+cacheOrderData.getT1PowerQuantity();
powerPrice=powerPrice.add(multiply);
}
if(!"0".equals(cacheOrderData.getT2PowerQuantity().toString())){
BigDecimal multiply = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(t2powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
totalPower =totalPower+cacheOrderData.getT2PowerQuantity();
powerPrice=powerPrice.add(multiply);
}
if(!"0".equals(cacheOrderData.getT3PowerQuantity().toString())){
BigDecimal multiply = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(t3powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
totalPower =totalPower+cacheOrderData.getT3PowerQuantity();
powerPrice=powerPrice.add(multiply);
}
if(!"0".equals(cacheOrderData.getT4PowerQuantity().toString())){
BigDecimal multiply = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(t4powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
totalPower =totalPower+cacheOrderData.getT4PowerQuantity();
powerPrice=powerPrice.add(multiply);
}
powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_HALF_UP);
//总服务费
servicePrice = money.subtract(powerPrice);
//防止出现负数
//因桩有误差电费和服务费重新计算
if(!"0".equals(cacheOrderData.getT1PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT1PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(t1powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(t1serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT2PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT2PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(t2powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(t2serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT3PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT3PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(t3powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(t3serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
if(!"0".equals(cacheOrderData.getT4PowerQuantity().toString())){
totalPower =totalPower+cacheOrderData.getT4PowerQuantity();
BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(t4powerFee).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(t4serviceFee).setScale(2, BigDecimal.ROUND_HALF_UP);
powerPrice=powerPrice.add(multiply1);
servicePrice=servicePrice.add(multiply2);
}
powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_HALF_UP);
//总服务费
servicePrice =servicePrice.setScale(2,BigDecimal.ROUND_HALF_UP);
//防止出现负数
if(powerPrice.add(servicePrice).compareTo(money)==-1){
if(powerPrice.compareTo(money)==1){
powerPrice =money;
servicePrice = money.subtract(powerPrice);
}else{
servicePrice = money.subtract(powerPrice);
}
}else{
money = powerPrice.add(servicePrice);
}
//剩余的电费
BigDecimal surplusPowerPrice = powerPrice;