From d0ddb09a7cad52bcc54f6b5bb92b42978a62dcb1 Mon Sep 17 00:00:00 2001 From: yuyang Date: Thu, 3 Mar 2022 11:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E5=9B=9B?= =?UTF-8?q?=E8=88=8D=E4=BA=94=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evcs/notification/CheckChargeOrders.java | 2 +- .../order/api/XhpcPileOrderController.java | 2 +- .../XhpcHistoryOrderController.java | 82 ++++++++--------- .../impl/XhpcChargeOrderServiceImpl.java | 2 +- .../impl/XhpcHistoryOrderServiceImpl.java | 90 +++++++++---------- .../impl/XhpcRealTimeOrderServiceImpl.java | 70 +++++++-------- 6 files changed, 124 insertions(+), 124 deletions(-) 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 dc6644f2..f143ed01 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_UP); + powerPrice = powerPrice.setScale(2, BigDecimal.ROUND_HALF_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 39f635dc..0711bcc7 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_UP); + powerPrice =powerPrice.setScale(2,BigDecimal.ROUND_HALF_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 0c02dc15..bc1d9e69 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_UP); +// BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_HALF_UP); // if(decimal.compareTo(new BigDecimal(0)) !=1){ // continue; // } -// BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_UP); +// BigDecimal divide = xhpc.getChargingDegree().divide(decimal,2,BigDecimal.ROUND_HALF_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_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)); +// timeInterval =timeInterval.add(new BigDecimal((DateUtil.parse(endTime1).getTime()-DateUtil.parse(startTime1).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_HALF_UP)); +// powerPriceTotal1 = powerPriceTotal1.add(powerFee.multiply(divide).setScale(2, BigDecimal.ROUND_HALF_UP)); +// servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_HALF_UP)); +// chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(2,BigDecimal.ROUND_HALF_UP)); // } // XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); // xhpcSt.setChargingDegree(chargingDegree2); -// xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_UP)); +// xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_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_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)); +// xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_HALF_UP)); +// xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_HALF_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_UP); + //BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_HALF_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_UP)); + xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_HALF_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_UP); + BigDecimal v = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),2,BigDecimal.ROUND_HALF_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_UP)); + xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600),2, BigDecimal.ROUND_HALF_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_UP); + BigDecimal time = new BigDecimal((xhpc.getEndTime().getTime()-xhpc.getStartTime().getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_HALF_UP); //每分钟多少度电 - BigDecimal decimal = chargingDegree.divide(time,2,BigDecimal.ROUND_UP); + BigDecimal decimal = chargingDegree.divide(time,2,BigDecimal.ROUND_HALF_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_UP); + timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_HALF_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_UP); + timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_HALF_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_UP); + timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_HALF_UP); } XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); xhpcSt.setStatus(i+1); - xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_UP)); + xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_UP)); //电量 - BigDecimal decimal1 = timeInterval.multiply(decimal).setScale(2, BigDecimal.ROUND_UP); + BigDecimal decimal1 = timeInterval.multiply(decimal).setScale(2, BigDecimal.ROUND_HALF_UP); xhpcSt.setChargingDegree(decimal1); xhpcSt.setChargingNumber(1); - 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)); + xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); + xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(new BigDecimal(number),2,BigDecimal.ROUND_HALF_UP)); if(i!=endHour || type==2){ - xhpcSt.setPowerPrice(powerFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_UP)); - xhpcSt.setServicePrice(serviceFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_UP)); + xhpcSt.setPowerPrice(powerFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcSt.setServicePrice(serviceFee.multiply(decimal1).setScale(2, BigDecimal.ROUND_HALF_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_UP)); - servicePrice=servicePrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP)); + powerPrice =powerPrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_UP)); + servicePrice=servicePrice.multiply(internetCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_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_UP)); - servicePrice=servicePrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP)); + powerPrice =powerPrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_UP)); + servicePrice=servicePrice.multiply(platformCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_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_UP)); - servicePrice=servicePrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_UP)); + powerPrice =powerPrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_UP)); + servicePrice=servicePrice.multiply(operationCommission.divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_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_UP)); + xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()).divide(new BigDecimal(3600), 2, BigDecimal.ROUND_HALF_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 72fff6a4..4710f594 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 @@ -106,7 +106,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_UP)); + map.put("actPrice", new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_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 f65db22d..3da3d868 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_UP); + chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); stringObjectMap.put("chargingDegree",chargingDegree); - amountCharged = new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_UP); + amountCharged = new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_HALF_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_UP); - BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_UP); + BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); + BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_HALF_UP); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); if(betweenDay==0){ powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime), DateUtil.formatTime(endTime), powerPriceTotal, divide); @@ -425,8 +425,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_UP)); - xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal, 2, BigDecimal.ROUND_UP)); + xhpcChargeOrder.setChargingDegree(new BigDecimal(cacheRealtimeData.getChargingDegree()).divide(decimal, 2, BigDecimal.ROUND_HALF_UP)); + xhpcChargeOrder.setAmountCharged(new BigDecimal(cacheRealtimeData.getAmountCharged()).divide(decimal, 2, BigDecimal.ROUND_HALF_UP)); xhpcChargeOrder.setChargingTimeNumber(Long.valueOf(cacheRealtimeData.getChargingTime())); @@ -513,19 +513,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_UP); - BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP); + BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_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_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_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_UP); + internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_HALF_UP); //减服务费 surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission); } @@ -548,12 +548,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_UP); + promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_HALF_UP); //剩余的总金额 actPrice = money.subtract(promotionDiscount); - BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP); - BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP); + BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); if("1".equals(state)){ //总金额 actPrice =actPrice.subtract(decimal1.add(decimal2)); @@ -588,17 +588,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_UP); + BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP); //平台提成 - BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP); + BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP); //提成类型(0总金额提成 1服务费提成) if(commissionType==0){ //平台总抽成 - BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); - BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //运维总抽成 - BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); - BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //平台总金额抽成 platformCommission = multiply1.add(multiply2); @@ -613,8 +613,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_UP); - BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //平台服务费抽成金额 platformSvcCommission=multiply1; //剩下的服务费钱 @@ -654,18 +654,18 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis xhpcHistoryOrder.setSortingStatus(0); xhpcHistoryOrder.setType(1); //订单总价---运维服务费抽成 - 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.setTotalPrice(money.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); xhpcHistoryOrder.setReconciliationStatus(0); @@ -828,7 +828,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis return map; } //每分钟多少度 - BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_UP); + BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_HALF_UP); //获取费率时间段 String startTime = DateUtil.formatTime(startTime2); String endTime = DateUtil.formatTime(updateTime2); @@ -837,10 +837,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_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); + BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + //powerPriceTotal = powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + //servicePriceTotal=servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); map1.put("time", startTime + "-" + endTime); map1.put("powerPrice", powerFee); map1.put("servicePrice", servicePrice); @@ -850,8 +850,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_UP); - BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_UP); + BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); String startTime1 = objectMap.get("startTime").toString(); String endTime1 = objectMap.get("endTime").toString(); if("00:00:00".equals(endTime1)){ @@ -885,7 +885,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_UP); + BigDecimal multiply = powerPrice.add(servicePrice).multiply(v).setScale(2, BigDecimal.ROUND_HALF_UP); map.put("time", startTime + "-" + endTime); map.put("powerPrice", powerPrice); map.put("servicePrice", servicePrice); @@ -905,7 +905,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_UP); + BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_HALF_UP); BigDecimal powerPriceTotal = new BigDecimal(0); //获取费率时间段 String startTime = DateUtil.formatTime(startTime2); @@ -915,7 +915,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_UP)); + powerPriceTotal = powerPriceTotal.add(powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP)); } else { for (int i = 0; i < reatTimeList.size(); i++) { Map objectMap = reatTimeList.get(i); @@ -974,8 +974,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_UP).multiply(degree).setScale(4,BigDecimal.ROUND_UP); - BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_UP); + BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_HALF_UP).multiply(degree).setScale(4,BigDecimal.ROUND_HALF_UP); + BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_HALF_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 652ed6ff..e128ee88 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 @@ -206,7 +206,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_UP); + BigDecimal chargingDegree = new BigDecimal(endData.getChargingDegree()).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); message.put("chargingDegree",chargingDegree); chargeOrder.setStartTime(startTime); @@ -216,7 +216,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_UP)); + chargeOrder.setAmountCharged(new BigDecimal(endData.getAmountCharged()).divide(new BigDecimal(10000),2,BigDecimal.ROUND_HALF_UP)); }else{ //当没有缓存数据时,查询数据库 XhpcRealTimeOrder startRealTimeOrder = xhpcRealTimeOrderMapper.getChargingOrderId(chargeOrder.getChargeOrderId(), 1); @@ -270,8 +270,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_UP); - BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_UP); + BigDecimal decimal = new BigDecimal((updateTime2.getTime() - startTime2.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); + BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_HALF_UP); long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); if(betweenDay==0){ powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime2), DateUtil.formatTime(updateTime2), powerPriceTotal, divide); @@ -420,19 +420,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_UP); - BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_UP); + BigDecimal decimal1 = surplusPowerPrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_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_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_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_UP); + internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_HALF_UP); //减服务费 surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission); } @@ -455,12 +455,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_UP); + promotionDiscount=money.multiply(discount).setScale(2,BigDecimal.ROUND_HALF_UP); //剩余的总金额 actPrice = money.subtract(promotionDiscount); - BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP); - BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_UP); + BigDecimal decimal1 = surplusPowerPrice.multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal decimal2 = surplusServicePrice.multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); if("1".equals(state)){ //总金额 actPrice =actPrice.subtract(decimal1.add(decimal2)); @@ -495,17 +495,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_UP); + BigDecimal maintenanceCommissionRate = new BigDecimal(operatorMessage.get("maintenanceCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP); //平台提成 - BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_UP); + BigDecimal platformCommissionRate = new BigDecimal(operatorMessage.get("platformCommissionRate").toString()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP); //提成类型(0总金额提成 1服务费提成) if(commissionType==0){ //平台总抽成 - BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); - BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply1 = surplusPowerPrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //运维总抽成 - BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); - BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply3 = surplusPowerPrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply4 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //平台总金额抽成 platformCommission = multiply1.add(multiply2); @@ -520,8 +520,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_UP); - BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_UP); + BigDecimal multiply1 = surplusServicePrice.multiply(platformCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = surplusServicePrice.multiply(maintenanceCommissionRate).setScale(2,BigDecimal.ROUND_HALF_UP); //平台服务费抽成金额 platformSvcCommission=multiply1; //剩下的服务费钱 @@ -569,18 +569,18 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcHistoryOrder.setReconciliationStatus(0); xhpcHistoryOrder.setSortingStatus(0); //订单总价---运维服务费抽成 - 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.setTotalPrice(money.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPromotionDiscount(promotionDiscount.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActPrice(actPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActPowerPrice(surplusPowerPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setOperationSvcCommission(operationSvcCommission.setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); xhpcHistoryOrder.setReconciliationStatus(0); @@ -817,7 +817,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_UP); + BigDecimal decimal1 = v.multiply(c).setScale(2, BigDecimal.ROUND_HALF_UP); xhpcRealTimeOrder.setVoltage(v); xhpcRealTimeOrder.setElectricCurrent(c); xhpcRealTimeOrder.setGunLineTemperature(cacheRealtimeData.getGunLineTemperature()); @@ -897,7 +897,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_UP)); + data.put("power", decimal1.divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP)); data.put("chargingDegree", chargingDegree); data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime()); data.put("serialNumber",orderNo.substring(0,16)); @@ -949,8 +949,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_UP).multiply(degree).setScale(4,BigDecimal.ROUND_UP); - BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_UP); + BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_HALF_UP).multiply(degree).setScale(4,BigDecimal.ROUND_HALF_UP); + BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_HALF_UP); return bigDecimal; }