diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CheckChargeOrders.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CheckChargeOrders.java index 122d8954..dc6644f2 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CheckChargeOrders.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/CheckChargeOrders.java @@ -174,7 +174,7 @@ public class CheckChargeOrders extends CoreDispatcher { totalPower = totalPower + cacheOrderData.getT4PowerQuantity(); powerPrice = powerPrice.add(multiply); } - powerPrice = powerPrice.setScale(2, BigDecimal.ROUND_DOWN); + powerPrice = powerPrice.setScale(2, BigDecimal.ROUND_UP); //总服务费 BigDecimal servicePrice = money.subtract(powerPrice); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java index 4fffc84a..39f635dc 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java @@ -307,7 +307,7 @@ public class XhpcPileOrderController extends BaseController { totalPower =totalPower+cacheOrderData.getT4PowerQuantity(); powerPrice=powerPrice.add(multiply); } - powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_DOWN); + powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_UP); //总服务费 BigDecimal servicePrice = money.subtract(powerPrice); //剩余的电费 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java index ffb4c08a..0c02dc15 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java @@ -166,11 +166,11 @@ public class XhpcHistoryOrderController extends BaseController { // 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){ // continue; // } -// BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_DOWN); +// BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_UP); // // if(betweenDay==0){ // XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); @@ -300,14 +300,14 @@ public class XhpcHistoryOrderController extends BaseController { // serviceFee =new BigDecimal(map.get("serviceFee").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)); -// powerPriceTotal1 = powerPriceTotal1.add(powerFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); -// servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); -// chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(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_UP)); +// servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_UP)); +// chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(2,BigDecimal.ROUND_UP)); // } // XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); // 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.setPowerPrice(powerPriceTotal1); // xhpcSt.setServicePrice(servicePriceTotal1); @@ -316,13 +316,13 @@ public class XhpcHistoryOrderController extends BaseController { // xhpcSt.setTotalPrice(powerPriceTotal1.add(servicePriceTotal1)); // BigDecimal actPrice2 =powerPriceTotal1.add(servicePriceTotal1); // BigDecimal promotion =new BigDecimal(2); -// xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); -// xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().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_UP)); +// xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_UP)); +// xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_UP)); +// xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_UP)); +// xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_UP)); +// xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_UP)); // if(number==1){ // BigDecimal internetCommission = xhpcSt.getInternetCommission(); // if(internetCommission.compareTo(new BigDecimal(0))!=0){ @@ -450,7 +450,7 @@ public class XhpcHistoryOrderController extends BaseController { // 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){ // continue; // } @@ -460,7 +460,7 @@ public class XhpcHistoryOrderController extends BaseController { xhpcSt.setStatus(endHour+1); xhpcSt.setChargingDegree(xhpc.getChargingDegree()); 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.setPowerPrice(xhpc.getPowerPriceTotal()); @@ -531,7 +531,7 @@ public class XhpcHistoryOrderController extends BaseController { 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){ continue; } @@ -549,7 +549,7 @@ public class XhpcHistoryOrderController extends BaseController { XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); xhpcSt.setStatus(endHour+1); 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.setPowerPrice(xhpc.getPowerPriceTotal()); xhpcSt.setServicePrice(xhpc.getServicePriceTotal()); @@ -665,9 +665,9 @@ public class XhpcHistoryOrderController extends BaseController { 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 serviceFee =new BigDecimal(0); BigDecimal timeInterval = new BigDecimal(0); @@ -682,40 +682,40 @@ public class XhpcHistoryOrderController extends BaseController { Map map =getReatTimeList(srt,endt,rateModelId); powerFee =new BigDecimal(map.get("powerFee").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) { srt = end + ":00:00"; endt = end + ":59:59"; Map map =getReatTimeList(srt,endt,rateModelId); powerFee =new BigDecimal(map.get("powerFee").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 { srt = end + ":00:00"; endt = DateUtil.formatTime(endTime); Map map =getReatTimeList(srt,endt,rateModelId); powerFee =new BigDecimal(map.get("powerFee").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(); 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.setChargingNumber(1); - xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().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_UP)); + xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP)); + xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP)); + xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP)); + xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP)); + xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_UP)); if(i!=endHour || type==2){ - xhpcSt.setPowerPrice(powerFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_DOWN)); - xhpcSt.setServicePrice(serviceFee.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_UP)); BigDecimal powerPrice =xhpcSt.getPowerPrice(); BigDecimal servicePrice =xhpcSt.getServicePrice(); xhpcSt.setTotalPrice(powerPrice.add(servicePrice)); @@ -725,8 +725,8 @@ public class XhpcHistoryOrderController extends BaseController { BigDecimal actPrice2 = powerPrice.add(servicePrice); if(internetCommission.compareTo(new BigDecimal(0))!=0){ - powerPrice =powerPrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); - servicePrice=servicePrice.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_UP)); actPrice2 = actPrice2.subtract(internetCommission); }else{ servicePrice=servicePrice.multiply(xhpcSt.getInternetSvcCommission()); @@ -734,16 +734,16 @@ public class XhpcHistoryOrderController extends BaseController { } BigDecimal platformCommission = xhpcSt.getPlatformCommission(); if(platformCommission.compareTo(new BigDecimal(0))!=0){ - powerPrice =powerPrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); - servicePrice=servicePrice.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_UP)); }else{ servicePrice=servicePrice.multiply(xhpcSt.getPlatformSvcCommisssion()); } BigDecimal operationCommission = xhpcSt.getOperationCommission(); if(operationCommission.compareTo(new BigDecimal(0))!=0){ - powerPrice =powerPrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_DOWN)); - servicePrice=servicePrice.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_UP)); }else{ servicePrice=servicePrice.multiply(xhpcSt.getOperationSvcCommission()); } @@ -936,7 +936,7 @@ public class XhpcHistoryOrderController extends BaseController { XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); xhpcSt.setChargingDegree(xhpc.getChargingDegree()); 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.setPowerPrice(xhpc.getPowerPriceTotal()); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java index ab0f4340..6a5a430d 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java @@ -109,7 +109,7 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar if(CacheRealtimeDataList !=null && CacheRealtimeDataList.size()>0){ CacheRealtimeData endData = CacheRealtimeDataList.get(list.size() - 1); 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{ diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index f1b99429..9d14f02a 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -148,9 +148,9 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis double mins = (double) (tiem / 60); 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); - 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); }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 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 divide = chargingDegree.divide(decimal,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_UP); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); if(betweenDay==0){ 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) + "分"); } BigDecimal decimal = new BigDecimal(10000); - xhpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal, 2, BigDecimal.ROUND_DOWN)); - xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).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_UP)); 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)){ - BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal decimal2 = surplusServicePrice.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_UP); internetCommission = decimal1.add(decimal2); surplusPowerPrice =surplusPowerPrice.subtract(decimal1); surplusServicePrice =surplusServicePrice.subtract(decimal2); }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; surplusServicePrice = surplusServicePrice.subtract(decimal2); }else{ //电量抽成 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); } @@ -543,12 +543,12 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis if(discount.compareTo(new BigDecimal(0))==1){ 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); - BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal decimal2 = surplusServicePrice.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_UP); if("1".equals(state)){ //总金额 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){ 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服务费提成) if(commissionType==0){ //平台总抽成 - BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply2 = surplusServicePrice.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_UP); //运维总抽成 - BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply4 = surplusServicePrice.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_UP); //平台总金额抽成 platformCommission = multiply1.add(multiply2); @@ -608,8 +608,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis surplusServicePrice = surplusServicePrice.subtract(multiply4); }else if(commissionType==1){ - BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); + BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); //平台服务费抽成金额 platformSvcCommission=multiply1; //剩下的服务费钱 @@ -649,18 +649,18 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis xhpcHistoryOrder.setSortingStatus(0); xhpcHistoryOrder.setType(1); //订单总价---运维服务费抽成 - xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); + xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_UP)); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); xhpcHistoryOrder.setReconciliationStatus(0); @@ -823,7 +823,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis 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 endTime = DateUtil.formatTime(updateTime2); @@ -832,10 +832,10 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis Map map1 = new HashMap<>(); int size = reatTimeList.size(); if (size == 1) { - BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); - //powerPriceTotal = powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); - //servicePriceTotal=servicePrice.multiply(chargingDegree).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_UP); + BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_UP); + //servicePriceTotal=servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_UP); map1.put("time", startTime + "-" + endTime); map1.put("powerPrice", powerFee); map1.put("servicePrice", servicePrice); @@ -845,8 +845,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis } else { for (int i = 0; i < reatTimeList.size(); i++) { Map objectMap = reatTimeList.get(i); - BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").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_UP); String startTime1 = objectMap.get("startTime").toString(); String endTime1 = objectMap.get("endTime").toString(); if("00:00:00".equals(endTime1)){ @@ -880,7 +880,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis Map map = new HashMap<>(); 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("powerPrice", powerPrice); 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 degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_DOWN); + BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_UP); BigDecimal powerPriceTotal = new BigDecimal(0); //获取费率时间段 String startTime = DateUtil.formatTime(startTime2); @@ -910,7 +910,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis int size = reatTimeList.size(); if (size == 1) { 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 { for (int i = 0; i < reatTimeList.size(); i++) { Map 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) { long time = DateUtil.parse(endTime).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 bigDecimal = multiply.multiply(powerPrice).setScale(2, 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_UP); return bigDecimal; } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 5a5f71dd..2eb50e79 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -199,7 +199,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe message.put("chargingTime",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); chargeOrder.setStartTime(startTime); @@ -209,7 +209,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe chargeOrder.setChargingTimeNumber(tiem); chargeOrder.setChargingDegree(chargingDegree); 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{ //当没有缓存数据时,查询数据库 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 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 divide = chargingDegree.divide(decimal,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_UP); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); if(betweenDay==0){ 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)){ - BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal decimal2 = surplusServicePrice.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_UP); internetCommission = decimal1.add(decimal2); surplusPowerPrice =surplusPowerPrice.subtract(decimal1); surplusServicePrice =surplusServicePrice.subtract(decimal2); }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; surplusServicePrice = surplusServicePrice.subtract(decimal2); }else{ //电量抽成 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); } @@ -448,12 +448,12 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe if(discount.compareTo(new BigDecimal(0))==1){ 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); - BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal decimal2 = surplusServicePrice.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_UP); if("1".equals(state)){ //总金额 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){ 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服务费提成) if(commissionType==0){ //平台总抽成 - BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply2 = surplusServicePrice.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_UP); //运维总抽成 - BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply4 = surplusServicePrice.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_UP); //平台总金额抽成 platformCommission = multiply1.add(multiply2); @@ -513,8 +513,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe surplusServicePrice = surplusServicePrice.subtract(multiply4); }else if(commissionType==1){ - BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_DOWN); + BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); //平台服务费抽成金额 platformSvcCommission=multiply1; //剩下的服务费钱 @@ -562,18 +562,18 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setSortingStatus(0); //订单总价---运维服务费抽成 - xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_DOWN)); - xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_DOWN)); + xhpcHistoryOrder.setTotalPrice(money.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_UP)); + xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_UP)); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); 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 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.setElectricCurrent(c); xhpcRealTimeOrder.setGunLineTemperature(cacheRealtimeData.getGunLineTemperature()); @@ -888,7 +888,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe data.put("chargingTime",xhpcRealTimeOrder.getChargingTime()); data.put("electricCurrent",c); 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("remainingTime",xhpcRealTimeOrder.getRemainingTime()); 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) { long time = DateUtil.parse(endTime).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 bigDecimal = multiply.multiply(powerPrice).setScale(2, 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_UP); return bigDecimal; } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index 1dc9a092..2eaf3dc8 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -649,9 +649,7 @@ apu.phone as appUserPhone, ho.power_price_total as powerPriceTotal, ho.service_price_total as servicePriceTotal, - ho.total_price as totalPrice, ho.promotion_discount as promotionDiscount, - ho.act_price as actPrice, ho.act_power_price as actPowerPrice, ho.act_service_price as actServicePrice, (ho.act_power_price+ho.act_service_price) as actSumPrice,