订单四舍五入

This commit is contained in:
yuyang 2022-02-21 16:30:39 +08:00
parent a8f5d5f5aa
commit c770797b61
7 changed files with 124 additions and 126 deletions

View File

@ -174,7 +174,7 @@ public class CheckChargeOrders extends CoreDispatcher {
totalPower = totalPower + cacheOrderData.getT4PowerQuantity(); totalPower = totalPower + cacheOrderData.getT4PowerQuantity();
powerPrice = powerPrice.add(multiply); powerPrice = powerPrice.add(multiply);
} }
powerPrice = powerPrice.setScale(2, BigDecimal.ROUND_DOWN); powerPrice = powerPrice.setScale(2, BigDecimal.ROUND_UP);
//总服务费 //总服务费
BigDecimal servicePrice = money.subtract(powerPrice); BigDecimal servicePrice = money.subtract(powerPrice);

View File

@ -307,7 +307,7 @@ public class XhpcPileOrderController extends BaseController {
totalPower =totalPower+cacheOrderData.getT4PowerQuantity(); totalPower =totalPower+cacheOrderData.getT4PowerQuantity();
powerPrice=powerPrice.add(multiply); powerPrice=powerPrice.add(multiply);
} }
powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_DOWN); powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_UP);
//总服务费 //总服务费
BigDecimal servicePrice = money.subtract(powerPrice); BigDecimal servicePrice = money.subtract(powerPrice);
//剩余的电费 //剩余的电费

View File

@ -166,11 +166,11 @@ public class XhpcHistoryOrderController extends BaseController {
// continue; // continue;
// } // }
// //每分钟多少度电 // //每分钟多少度电
// BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_DOWN); // BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_UP);
// if(decimal.compareTo(new BigDecimal(0)) !=1){ // if(decimal.compareTo(new BigDecimal(0)) !=1){
// continue; // continue;
// } // }
// BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_DOWN); // BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_UP);
// //
// if(betweenDay==0){ // if(betweenDay==0){
// XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); // XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation();
@ -300,14 +300,14 @@ public class XhpcHistoryOrderController extends BaseController {
// serviceFee =new BigDecimal(map.get("serviceFee").toString()); // serviceFee =new BigDecimal(map.get("serviceFee").toString());
// startTime1 = map.get("startTime").toString(); // startTime1 = map.get("startTime").toString();
// } // }
// timeInterval =timeInterval.add(new BigDecimal((DateUtil.parse(endTime1).getTime()-DateUtil.parse(startTime1).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN)); // timeInterval =timeInterval.add(new BigDecimal((DateUtil.parse(endTime1).getTime()-DateUtil.parse(startTime1).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_UP));
// powerPriceTotal1 = powerPriceTotal1.add(powerFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); // powerPriceTotal1 = powerPriceTotal1.add(powerFee.multiply(divide).setScale(2, BigDecimal.ROUND_UP));
// servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); // servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_UP));
// chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(2,BigDecimal.ROUND_DOWN)); // chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(2,BigDecimal.ROUND_UP));
// } // }
// XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); // XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation();
// xhpcSt.setChargingDegree(chargingDegree2); // xhpcSt.setChargingDegree(chargingDegree2);
// xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_DOWN)); // xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_UP));
// xhpcSt.setChargingNumber(1); // xhpcSt.setChargingNumber(1);
// xhpcSt.setPowerPrice(powerPriceTotal1); // xhpcSt.setPowerPrice(powerPriceTotal1);
// xhpcSt.setServicePrice(servicePriceTotal1); // xhpcSt.setServicePrice(servicePriceTotal1);
@ -316,13 +316,13 @@ public class XhpcHistoryOrderController extends BaseController {
// xhpcSt.setTotalPrice(powerPriceTotal1.add(servicePriceTotal1)); // xhpcSt.setTotalPrice(powerPriceTotal1.add(servicePriceTotal1));
// BigDecimal actPrice2 =powerPriceTotal1.add(servicePriceTotal1); // BigDecimal actPrice2 =powerPriceTotal1.add(servicePriceTotal1);
// BigDecimal promotion =new BigDecimal(2); // BigDecimal promotion =new BigDecimal(2);
// xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_UP));
// xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); // xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_UP));
// if(number==1){ // if(number==1){
// BigDecimal internetCommission = xhpcSt.getInternetCommission(); // BigDecimal internetCommission = xhpcSt.getInternetCommission();
// if(internetCommission.compareTo(new BigDecimal(0))!=0){ // if(internetCommission.compareTo(new BigDecimal(0))!=0){
@ -450,7 +450,7 @@ public class XhpcHistoryOrderController extends BaseController {
// continue; // continue;
// } // }
//每分钟多少度电 //每分钟多少度电
//BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_DOWN); //BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_UP);
// if(v.compareTo(new BigDecimal(0)) !=1){ // if(v.compareTo(new BigDecimal(0)) !=1){
// continue; // continue;
// } // }
@ -460,7 +460,7 @@ public class XhpcHistoryOrderController extends BaseController {
xhpcSt.setStatus(endHour+1); xhpcSt.setStatus(endHour+1);
xhpcSt.setChargingDegree(xhpc.getChargingDegree()); xhpcSt.setChargingDegree(xhpc.getChargingDegree());
if(xhpc.getChargingTimeNumber() !=null){ if(xhpc.getChargingTimeNumber() !=null){
xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_DOWN)); xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_UP));
} }
xhpcSt.setChargingNumber(1); xhpcSt.setChargingNumber(1);
xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal()); xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal());
@ -531,7 +531,7 @@ public class XhpcHistoryOrderController extends BaseController {
continue; continue;
} }
//每分钟多少度电 //每分钟多少度电
BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_DOWN); BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_UP);
if(v.compareTo(new BigDecimal(0)) !=1){ if(v.compareTo(new BigDecimal(0)) !=1){
continue; continue;
} }
@ -549,7 +549,7 @@ public class XhpcHistoryOrderController extends BaseController {
XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval();
xhpcSt.setStatus(endHour+1); xhpcSt.setStatus(endHour+1);
xhpcSt.setChargingDegree(xhpc.getChargingDegree()); xhpcSt.setChargingDegree(xhpc.getChargingDegree());
xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600),2, BigDecimal.ROUND_DOWN)); xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600),2, BigDecimal.ROUND_UP));
xhpcSt.setChargingNumber(1); xhpcSt.setChargingNumber(1);
xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal()); xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal());
xhpcSt.setServicePrice(xhpc.getServicePriceTotal()); xhpcSt.setServicePrice(xhpc.getServicePriceTotal());
@ -665,9 +665,9 @@ public class XhpcHistoryOrderController extends BaseController {
actPrice = xhpc.getActPrice(); actPrice = xhpc.getActPrice();
} }
//总时长 //总时长
BigDecimal time = new BigDecimal((xhpc.getEndTime().getTime()-xhpc.getStartTime().getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); BigDecimal time = new BigDecimal((xhpc.getEndTime().getTime()-xhpc.getStartTime().getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_UP);
//每分钟多少度电 //每分钟多少度电
BigDecimal decimal = chargingDegree.divide(time,2,BigDecimal.ROUND_DOWN); BigDecimal decimal = chargingDegree.divide(time,2,BigDecimal.ROUND_UP);
BigDecimal powerFee =new BigDecimal(0); BigDecimal powerFee =new BigDecimal(0);
BigDecimal serviceFee =new BigDecimal(0); BigDecimal serviceFee =new BigDecimal(0);
BigDecimal timeInterval = new BigDecimal(0); BigDecimal timeInterval = new BigDecimal(0);
@ -682,40 +682,40 @@ public class XhpcHistoryOrderController extends BaseController {
Map<String, Object> map =getReatTimeList(srt,endt,rateModelId); Map<String, Object> map =getReatTimeList(srt,endt,rateModelId);
powerFee =new BigDecimal(map.get("powerFee").toString()); powerFee =new BigDecimal(map.get("powerFee").toString());
serviceFee =new BigDecimal(map.get("serviceFee").toString()); serviceFee =new BigDecimal(map.get("serviceFee").toString());
timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_UP);
} else if (i != endHour) { } else if (i != endHour) {
srt = end + ":00:00"; srt = end + ":00:00";
endt = end + ":59:59"; endt = end + ":59:59";
Map<String, Object> map =getReatTimeList(srt,endt,rateModelId); Map<String, Object> map =getReatTimeList(srt,endt,rateModelId);
powerFee =new BigDecimal(map.get("powerFee").toString()); powerFee =new BigDecimal(map.get("powerFee").toString());
serviceFee =new BigDecimal(map.get("serviceFee").toString()); serviceFee =new BigDecimal(map.get("serviceFee").toString());
timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_UP);
} else { } else {
srt = end + ":00:00"; srt = end + ":00:00";
endt = DateUtil.formatTime(endTime); endt = DateUtil.formatTime(endTime);
Map<String, Object> map =getReatTimeList(srt,endt,rateModelId); Map<String, Object> map =getReatTimeList(srt,endt,rateModelId);
powerFee =new BigDecimal(map.get("powerFee").toString()); powerFee =new BigDecimal(map.get("powerFee").toString());
serviceFee =new BigDecimal(map.get("serviceFee").toString()); serviceFee =new BigDecimal(map.get("serviceFee").toString());
timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_UP);
} }
XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval();
xhpcSt.setStatus(i+1); xhpcSt.setStatus(i+1);
xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_DOWN)); xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_UP));
//电量 //电量
BigDecimal decimal1 = timeInterval.multiply(decimal).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = timeInterval.multiply(decimal).setScale(2, BigDecimal.ROUND_UP);
xhpcSt.setChargingDegree(decimal1); xhpcSt.setChargingDegree(decimal1);
xhpcSt.setChargingNumber(1); xhpcSt.setChargingNumber(1);
xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP));
if(i!=endHour || type==2){ if(i!=endHour || type==2){
xhpcSt.setPowerPrice(powerFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_DOWN)); xhpcSt.setPowerPrice(powerFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_UP));
xhpcSt.setServicePrice(serviceFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_DOWN)); xhpcSt.setServicePrice(serviceFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_UP));
BigDecimal powerPrice =xhpcSt.getPowerPrice(); BigDecimal powerPrice =xhpcSt.getPowerPrice();
BigDecimal servicePrice =xhpcSt.getServicePrice(); BigDecimal servicePrice =xhpcSt.getServicePrice();
xhpcSt.setTotalPrice(powerPrice.add(servicePrice)); xhpcSt.setTotalPrice(powerPrice.add(servicePrice));
@ -725,8 +725,8 @@ public class XhpcHistoryOrderController extends BaseController {
BigDecimal actPrice2 = powerPrice.add(servicePrice); BigDecimal actPrice2 = powerPrice.add(servicePrice);
if(internetCommission.compareTo(new BigDecimal(0))!=0){ if(internetCommission.compareTo(new BigDecimal(0))!=0){
powerPrice =powerPrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); powerPrice =powerPrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
servicePrice=servicePrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); servicePrice=servicePrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
actPrice2 = actPrice2.subtract(internetCommission); actPrice2 = actPrice2.subtract(internetCommission);
}else{ }else{
servicePrice=servicePrice.multiply(xhpcSt.getInternetSvcCommission()); servicePrice=servicePrice.multiply(xhpcSt.getInternetSvcCommission());
@ -734,16 +734,16 @@ public class XhpcHistoryOrderController extends BaseController {
} }
BigDecimal platformCommission = xhpcSt.getPlatformCommission(); BigDecimal platformCommission = xhpcSt.getPlatformCommission();
if(platformCommission.compareTo(new BigDecimal(0))!=0){ if(platformCommission.compareTo(new BigDecimal(0))!=0){
powerPrice =powerPrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); powerPrice =powerPrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
servicePrice=servicePrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); servicePrice=servicePrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
}else{ }else{
servicePrice=servicePrice.multiply(xhpcSt.getPlatformSvcCommisssion()); servicePrice=servicePrice.multiply(xhpcSt.getPlatformSvcCommisssion());
} }
BigDecimal operationCommission = xhpcSt.getOperationCommission(); BigDecimal operationCommission = xhpcSt.getOperationCommission();
if(operationCommission.compareTo(new BigDecimal(0))!=0){ if(operationCommission.compareTo(new BigDecimal(0))!=0){
powerPrice =powerPrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); powerPrice =powerPrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
servicePrice=servicePrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); servicePrice=servicePrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP));
}else{ }else{
servicePrice=servicePrice.multiply(xhpcSt.getOperationSvcCommission()); servicePrice=servicePrice.multiply(xhpcSt.getOperationSvcCommission());
} }
@ -936,7 +936,7 @@ public class XhpcHistoryOrderController extends BaseController {
XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation();
xhpcSt.setChargingDegree(xhpc.getChargingDegree()); xhpcSt.setChargingDegree(xhpc.getChargingDegree());
if(xhpc.getChargingTimeNumber() !=null){ if(xhpc.getChargingTimeNumber() !=null){
xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_DOWN)); xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_UP));
} }
xhpcSt.setChargingNumber(1); xhpcSt.setChargingNumber(1);
xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal()); xhpcSt.setPowerPrice(xhpc.getPowerPriceTotal());

View File

@ -109,7 +109,7 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
if(CacheRealtimeDataList !=null && CacheRealtimeDataList.size()>0){ if(CacheRealtimeDataList !=null && CacheRealtimeDataList.size()>0){
CacheRealtimeData endData = CacheRealtimeDataList.get(list.size() - 1); CacheRealtimeData endData = CacheRealtimeDataList.get(list.size() - 1);
if (endData != null) { if (endData != null) {
map.put("actPrice", new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_DOWN)); map.put("actPrice", new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_UP));
} }
} }
}else{ }else{

View File

@ -148,9 +148,9 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
double mins = (double) (tiem / 60); double mins = (double) (tiem / 60);
stringObjectMap.put("chargingTime",new BigDecimal(mins).setScale(0) + ""); stringObjectMap.put("chargingTime",new BigDecimal(mins).setScale(0) + "");
} }
chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_DOWN); chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_UP);
stringObjectMap.put("chargingDegree",chargingDegree); stringObjectMap.put("chargingDegree",chargingDegree);
amountCharged = new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_DOWN); amountCharged = new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_UP);
stringObjectMap.put("actPrice",amountCharged); stringObjectMap.put("actPrice",amountCharged);
}else{ }else{
//当没有缓存数据时查询数据库 //当没有缓存数据时查询数据库
@ -173,8 +173,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
DateTime parse = DateUtil.parse(DateUtil.format(startTime, "yyyy-MM-dd"), "yyyy-MM-dd"); DateTime parse = DateUtil.parse(DateUtil.format(startTime, "yyyy-MM-dd"), "yyyy-MM-dd");
DateTime parse1 = DateUtil.parse(DateUtil.format(endTime, "yyyy-MM-dd"), "yyyy-MM-dd"); DateTime parse1 = DateUtil.parse(DateUtil.format(endTime, "yyyy-MM-dd"), "yyyy-MM-dd");
//每分钟多少度电 //每分钟多少度电
BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_DOWN); BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_UP);
BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_DOWN); BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_UP);
long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY);
if(betweenDay==0){ if(betweenDay==0){
powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime), DateUtil.formatTime(endTime), powerPriceTotal, divide); powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime), DateUtil.formatTime(endTime), powerPriceTotal, divide);
@ -420,8 +420,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
xhpcChargeOrder.setChargingTime(new BigDecimal(mins).setScale(0) + ""); xhpcChargeOrder.setChargingTime(new BigDecimal(mins).setScale(0) + "");
} }
BigDecimal decimal = new BigDecimal(10000); BigDecimal decimal = new BigDecimal(10000);
xhpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal, 2, BigDecimal.ROUND_DOWN)); xhpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal, 2, BigDecimal.ROUND_UP));
xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal, 2, BigDecimal.ROUND_DOWN)); xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal, 2, BigDecimal.ROUND_UP));
xhpcChargeOrder.setChargingTimeNumber(Long.valueOf(cacheRealtimeData.getChargingTime())); xhpcChargeOrder.setChargingTimeNumber(Long.valueOf(cacheRealtimeData.getChargingTime()));
@ -508,19 +508,19 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
if("0".equals(commissionType) || "1".equals(commissionType)|| "2".equals(commissionType)){ if("0".equals(commissionType) || "1".equals(commissionType)|| "2".equals(commissionType)){
//流量方的钱 //流量方的钱
if("0".equals(commissionType)){ if("0".equals(commissionType)){
BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
internetCommission = decimal1.add(decimal2); internetCommission = decimal1.add(decimal2);
surplusPowerPrice =surplusPowerPrice.subtract(decimal1); surplusPowerPrice =surplusPowerPrice.subtract(decimal1);
surplusServicePrice =surplusServicePrice.subtract(decimal2); surplusServicePrice =surplusServicePrice.subtract(decimal2);
}else if("1".equals(commissionType)){ }else if("1".equals(commissionType)){
BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
internetSvcCommission = decimal2; internetSvcCommission = decimal2;
surplusServicePrice = surplusServicePrice.subtract(decimal2); surplusServicePrice = surplusServicePrice.subtract(decimal2);
}else{ }else{
//电量抽成 //电量抽成
BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree(); BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree();
internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_DOWN); internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_UP);
//减服务费 //减服务费
surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission); surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission);
} }
@ -543,12 +543,12 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
if(discount.compareTo(new BigDecimal(0))==1){ if(discount.compareTo(new BigDecimal(0))==1){
if("1".equals(state) || "2".equals(state) || "3".equals(state)){ if("1".equals(state) || "2".equals(state) || "3".equals(state)){
//折扣的钱 //折扣的钱
promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_DOWN); promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_UP);
//剩余的总金额 //剩余的总金额
actPrice = money.subtract(promotionDiscount); actPrice = money.subtract(promotionDiscount);
BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP);
BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP);
if("1".equals(state)){ if("1".equals(state)){
//总金额 //总金额
actPrice =actPrice.subtract(decimal1.add(decimal2)); actPrice =actPrice.subtract(decimal1.add(decimal2));
@ -583,17 +583,17 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){ if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){
Integer commissionType = (Integer) operatorMessage.get("commissionType"); Integer commissionType = (Integer) operatorMessage.get("commissionType");
//运维提成 //运维提成
BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN); BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP);
//平台提成 //平台提成
BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN); BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP);
//提成类型0总金额提成 1服务费提成 //提成类型0总金额提成 1服务费提成
if(commissionType==0){ if(commissionType==0){
//平台总抽成 //平台总抽成
BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//运维总抽成 //运维总抽成
BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//平台总金额抽成 //平台总金额抽成
platformCommission = multiply1.add(multiply2); platformCommission = multiply1.add(multiply2);
@ -608,8 +608,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
surplusServicePrice = surplusServicePrice.subtract(multiply4); surplusServicePrice = surplusServicePrice.subtract(multiply4);
}else if(commissionType==1){ }else if(commissionType==1){
BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//平台服务费抽成金额 //平台服务费抽成金额
platformSvcCommission=multiply1; platformSvcCommission=multiply1;
//剩下的服务费钱 //剩下的服务费钱
@ -649,18 +649,18 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
xhpcHistoryOrder.setSortingStatus(0); xhpcHistoryOrder.setSortingStatus(0);
xhpcHistoryOrder.setType(1); xhpcHistoryOrder.setType(1);
//订单总价---运维服务费抽成 //订单总价---运维服务费抽成
xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc());
xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setReconciliationStatus(0);
@ -823,7 +823,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
return map; return map;
} }
//每分钟多少度 //每分钟多少度
BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_DOWN); BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_UP);
//获取费率时间段 //获取费率时间段
String startTime = DateUtil.formatTime(startTime2); String startTime = DateUtil.formatTime(startTime2);
String endTime = DateUtil.formatTime(updateTime2); String endTime = DateUtil.formatTime(updateTime2);
@ -832,10 +832,10 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
Map<String, Object> map1 = new HashMap<>(); Map<String, Object> map1 = new HashMap<>();
int size = reatTimeList.size(); int size = reatTimeList.size();
if (size == 1) { if (size == 1) {
BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(2, BigDecimal.ROUND_UP);
//powerPriceTotal = powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_DOWN); //powerPriceTotal = powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_UP);
BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_UP);
//servicePriceTotal=servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_DOWN); //servicePriceTotal=servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_UP);
map1.put("time", startTime + "-" + endTime); map1.put("time", startTime + "-" + endTime);
map1.put("powerPrice", powerFee); map1.put("powerPrice", powerFee);
map1.put("servicePrice", servicePrice); map1.put("servicePrice", servicePrice);
@ -845,8 +845,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
} else { } else {
for (int i = 0; i < reatTimeList.size(); i++) { for (int i = 0; i < reatTimeList.size(); i++) {
Map<String, Object> objectMap = reatTimeList.get(i); Map<String, Object> objectMap = reatTimeList.get(i);
BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(2, BigDecimal.ROUND_UP);
BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_UP);
String startTime1 = objectMap.get("startTime").toString(); String startTime1 = objectMap.get("startTime").toString();
String endTime1 = objectMap.get("endTime").toString(); String endTime1 = objectMap.get("endTime").toString();
if("00:00:00".equals(endTime1)){ if("00:00:00".equals(endTime1)){
@ -880,7 +880,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
BigDecimal v = new BigDecimal((DateUtil.parse(endTime).getTime() - DateUtil.parse(startTime).getTime()) / 60000).multiply(degree); BigDecimal v = new BigDecimal((DateUtil.parse(endTime).getTime() - DateUtil.parse(startTime).getTime()) / 60000).multiply(degree);
BigDecimal multiply = powerPrice.add(servicePrice).multiply(v).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal multiply = powerPrice.add(servicePrice).multiply(v).setScale(2, BigDecimal.ROUND_UP);
map.put("time", startTime + "-" + endTime); map.put("time", startTime + "-" + endTime);
map.put("powerPrice", powerPrice); map.put("powerPrice", powerPrice);
map.put("servicePrice", servicePrice); map.put("servicePrice", servicePrice);
@ -900,7 +900,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
//算出相差时间, //算出相差时间,
BigDecimal decimal = new BigDecimal((updateTime2.getTime() - startTime2.getTime()) / 60000).setScale(2); BigDecimal decimal = new BigDecimal((updateTime2.getTime() - startTime2.getTime()) / 60000).setScale(2);
//每分钟多少度 //每分钟多少度
BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_DOWN); BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_UP);
BigDecimal powerPriceTotal = new BigDecimal(0); BigDecimal powerPriceTotal = new BigDecimal(0);
//获取费率时间段 //获取费率时间段
String startTime = DateUtil.formatTime(startTime2); String startTime = DateUtil.formatTime(startTime2);
@ -910,7 +910,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
int size = reatTimeList.size(); int size = reatTimeList.size();
if (size == 1) { if (size == 1) {
BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()); BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString());
powerPriceTotal = powerPriceTotal.add(powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_DOWN)); powerPriceTotal = powerPriceTotal.add(powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_UP));
} else { } else {
for (int i = 0; i < reatTimeList.size(); i++) { for (int i = 0; i < reatTimeList.size(); i++) {
Map<String, Object> objectMap = reatTimeList.get(i); Map<String, Object> objectMap = reatTimeList.get(i);
@ -969,8 +969,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
private BigDecimal getRateTimeList(String startTime, String endTime, BigDecimal degree, BigDecimal powerPrice) { private BigDecimal getRateTimeList(String startTime, String endTime, BigDecimal degree, BigDecimal powerPrice) {
long time = DateUtil.parse(endTime).getTime(); long time = DateUtil.parse(endTime).getTime();
long time1= DateUtil.parse(startTime).getTime(); long time1= DateUtil.parse(startTime).getTime();
BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_DOWN).multiply(degree).setScale(4,BigDecimal.ROUND_DOWN); BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_UP).multiply(degree).setScale(4,BigDecimal.ROUND_UP);
BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_UP);
return bigDecimal; return bigDecimal;
} }

View File

@ -199,7 +199,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
message.put("chargingTime",new BigDecimal(mins).setScale(0) + ""); message.put("chargingTime",new BigDecimal(mins).setScale(0) + "");
chargeOrder.setChargingTime(new BigDecimal(mins).setScale(0) + ""); chargeOrder.setChargingTime(new BigDecimal(mins).setScale(0) + "");
} }
BigDecimal chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_DOWN); BigDecimal chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_UP);
message.put("chargingDegree",chargingDegree); message.put("chargingDegree",chargingDegree);
chargeOrder.setStartTime(startTime); chargeOrder.setStartTime(startTime);
@ -209,7 +209,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
chargeOrder.setChargingTimeNumber(tiem); chargeOrder.setChargingTimeNumber(tiem);
chargeOrder.setChargingDegree(chargingDegree); chargeOrder.setChargingDegree(chargingDegree);
chargeOrder.setType(0); chargeOrder.setType(0);
chargeOrder.setAmountCharged(new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_DOWN)); chargeOrder.setAmountCharged(new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_UP));
}else{ }else{
//当没有缓存数据时查询数据库 //当没有缓存数据时查询数据库
XhpcRealTimeOrder startRealTimeOrder = xhpcRealTimeOrderMapper.getChargingOrderId(chargeOrder.getChargeOrderId(), 1); XhpcRealTimeOrder startRealTimeOrder = xhpcRealTimeOrderMapper.getChargingOrderId(chargeOrder.getChargeOrderId(), 1);
@ -263,8 +263,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
DateTime parse = DateUtil.parse(DateUtil.format(startTime2, "yyyy-MM-dd"), "yyyy-MM-dd"); DateTime parse = DateUtil.parse(DateUtil.format(startTime2, "yyyy-MM-dd"), "yyyy-MM-dd");
DateTime parse1 = DateUtil.parse(DateUtil.format(updateTime2, "yyyy-MM-dd"), "yyyy-MM-dd"); DateTime parse1 = DateUtil.parse(DateUtil.format(updateTime2, "yyyy-MM-dd"), "yyyy-MM-dd");
//每分钟多少度电 //每分钟多少度电
BigDecimal decimal = new BigDecimal((updateTime2.getTime() - startTime2.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_DOWN); BigDecimal decimal = new BigDecimal((updateTime2.getTime() - startTime2.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_UP);
BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_DOWN); BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_UP);
long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY);
if(betweenDay==0){ if(betweenDay==0){
powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime2), DateUtil.formatTime(updateTime2), powerPriceTotal, divide); powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime2), DateUtil.formatTime(updateTime2), powerPriceTotal, divide);
@ -413,19 +413,19 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
if("0".equals(commissionType) || "1".equals(commissionType)|| "2".equals(commissionType)){ if("0".equals(commissionType) || "1".equals(commissionType)|| "2".equals(commissionType)){
//流量方的钱 //流量方的钱
if("0".equals(commissionType)){ if("0".equals(commissionType)){
BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
internetCommission = decimal1.add(decimal2); internetCommission = decimal1.add(decimal2);
surplusPowerPrice =surplusPowerPrice.subtract(decimal1); surplusPowerPrice =surplusPowerPrice.subtract(decimal1);
surplusServicePrice =surplusServicePrice.subtract(decimal2); surplusServicePrice =surplusServicePrice.subtract(decimal2);
}else if("1".equals(commissionType)){ }else if("1".equals(commissionType)){
BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP);
internetSvcCommission = decimal2; internetSvcCommission = decimal2;
surplusServicePrice = surplusServicePrice.subtract(decimal2); surplusServicePrice = surplusServicePrice.subtract(decimal2);
}else{ }else{
//电量抽成 //电量抽成
BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree(); BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree();
internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_DOWN); internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_UP);
//减服务费 //减服务费
surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission); surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission);
} }
@ -448,12 +448,12 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
if(discount.compareTo(new BigDecimal(0))==1){ if(discount.compareTo(new BigDecimal(0))==1){
if("1".equals(state) || "2".equals(state) || "3".equals(state)){ if("1".equals(state) || "2".equals(state) || "3".equals(state)){
//折扣的钱 //折扣的钱
promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_DOWN); promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_UP);
//剩余的总金额 //剩余的总金额
actPrice = money.subtract(promotionDiscount); actPrice = money.subtract(promotionDiscount);
BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP);
BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP);
if("1".equals(state)){ if("1".equals(state)){
//总金额 //总金额
actPrice =actPrice.subtract(decimal1.add(decimal2)); actPrice =actPrice.subtract(decimal1.add(decimal2));
@ -488,17 +488,17 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){ if(operatorMessage.get("maintenanceCommissionRate") !=null && operatorMessage.get("commissionType") !=null && operatorMessage.get("platformCommissionRate") !=null){
Integer commissionType = (Integer) operatorMessage.get("commissionType"); Integer commissionType = (Integer) operatorMessage.get("commissionType");
//运维提成 //运维提成
BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN); BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP);
//平台提成 //平台提成
BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN); BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP);
//提成类型0总金额提成 1服务费提成 //提成类型0总金额提成 1服务费提成
if(commissionType==0){ if(commissionType==0){
//平台总抽成 //平台总抽成
BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//运维总抽成 //运维总抽成
BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//平台总金额抽成 //平台总金额抽成
platformCommission = multiply1.add(multiply2); platformCommission = multiply1.add(multiply2);
@ -513,8 +513,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
surplusServicePrice = surplusServicePrice.subtract(multiply4); surplusServicePrice = surplusServicePrice.subtract(multiply4);
}else if(commissionType==1){ }else if(commissionType==1){
BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP);
BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP);
//平台服务费抽成金额 //平台服务费抽成金额
platformSvcCommission=multiply1; platformSvcCommission=multiply1;
//剩下的服务费钱 //剩下的服务费钱
@ -562,18 +562,18 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setSortingStatus(0); xhpcHistoryOrder.setSortingStatus(0);
//订单总价---运维服务费抽成 //订单总价---运维服务费抽成
xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_UP));
xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc());
xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setReconciliationStatus(0);
@ -808,7 +808,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
} }
BigDecimal v = new BigDecimal(cacheRealtimeData.getWorkingVoltage()).divide(new BigDecimal(10)); BigDecimal v = new BigDecimal(cacheRealtimeData.getWorkingVoltage()).divide(new BigDecimal(10));
BigDecimal c = new BigDecimal(cacheRealtimeData.getWorkingCurrent()).divide(new BigDecimal(10)); BigDecimal c = new BigDecimal(cacheRealtimeData.getWorkingCurrent()).divide(new BigDecimal(10));
BigDecimal decimal1 = v.multiply(c).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal decimal1 = v.multiply(c).setScale(2, BigDecimal.ROUND_UP);
xhpcRealTimeOrder.setVoltage(v); xhpcRealTimeOrder.setVoltage(v);
xhpcRealTimeOrder.setElectricCurrent(c); xhpcRealTimeOrder.setElectricCurrent(c);
xhpcRealTimeOrder.setGunLineTemperature(cacheRealtimeData.getGunLineTemperature()); xhpcRealTimeOrder.setGunLineTemperature(cacheRealtimeData.getGunLineTemperature());
@ -888,7 +888,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
data.put("chargingTime",xhpcRealTimeOrder.getChargingTime()); data.put("chargingTime",xhpcRealTimeOrder.getChargingTime());
data.put("electricCurrent",c); data.put("electricCurrent",c);
data.put("voltage", v); data.put("voltage", v);
data.put("power", decimal1.divide(new BigDecimal(1000),2,BigDecimal.ROUND_DOWN)); data.put("power", decimal1.divide(new BigDecimal(1000),2,BigDecimal.ROUND_UP));
data.put("chargingDegree", chargingDegree); data.put("chargingDegree", chargingDegree);
data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime()); data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime());
data.put("serialNumber",orderNo.substring(0,16)); data.put("serialNumber",orderNo.substring(0,16));
@ -940,8 +940,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
private BigDecimal getRateTimeList(String startTime, String endTime, BigDecimal degree, BigDecimal powerPrice) { private BigDecimal getRateTimeList(String startTime, String endTime, BigDecimal degree, BigDecimal powerPrice) {
long time = DateUtil.parse(endTime).getTime(); long time = DateUtil.parse(endTime).getTime();
long time1= DateUtil.parse(startTime).getTime(); long time1= DateUtil.parse(startTime).getTime();
BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_DOWN).multiply(degree).setScale(4,BigDecimal.ROUND_DOWN); BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_UP).multiply(degree).setScale(4,BigDecimal.ROUND_UP);
BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_UP);
return bigDecimal; return bigDecimal;
} }

View File

@ -649,9 +649,7 @@
apu.phone as appUserPhone, apu.phone as appUserPhone,
ho.power_price_total as powerPriceTotal, ho.power_price_total as powerPriceTotal,
ho.service_price_total as servicePriceTotal, ho.service_price_total as servicePriceTotal,
ho.total_price as totalPrice,
ho.promotion_discount as promotionDiscount, ho.promotion_discount as promotionDiscount,
ho.act_price as actPrice,
ho.act_power_price as actPowerPrice, ho.act_power_price as actPowerPrice,
ho.act_service_price as actServicePrice, ho.act_service_price as actServicePrice,
(ho.act_power_price+ho.act_service_price) as actSumPrice, (ho.act_power_price+ho.act_service_price) as actSumPrice,