|
@@ -566,17 +566,17 @@ public class PayOrderController {
|
|
|
public PayOrderResultInfo calculateLabelDiscount(Map<String ,Object> params){
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //标签方案优惠金额
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //电子卡优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
|
|
|
//加油升数
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
//获取该油站的标签规则
|
|
|
LabelRule labelRule = new LabelRule();
|
|
@@ -679,6 +679,7 @@ public class PayOrderController {
|
|
|
if(isLabel.equals("1")){
|
|
|
//电子卡支付金额 = 应收金额 - 标签优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt; //如果为负数,则默认设置0.01元
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
BigDecimal dzkDiscountAmtSum = dzkDiscountAmt; //电子卡总优惠金额
|
|
@@ -709,7 +710,7 @@ public class PayOrderController {
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo(); //计算结果存放值
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //营销方案优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
@@ -719,10 +720,10 @@ public class PayOrderController {
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
|
|
|
//加油升数
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
//计算等级优惠
|
|
|
PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
|
gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
|
|
@@ -739,10 +740,15 @@ public class PayOrderController {
|
|
|
if(discountTerm.equals("1")){
|
|
|
if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
- //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) ==0){
|
|
|
+ amt = receivableAmt;
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
String vipDiscountyPlus = m.get("vipDiscountyPlus").toString();
|
|
|
//该营销方案是否叠加等级优惠
|
|
@@ -757,10 +763,15 @@ public class PayOrderController {
|
|
|
}else if(discountTerm.equals("2")){
|
|
|
if(receivableAmt.compareTo(discountAmt_b) ==1 || receivableAmt.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
- //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) == 0){
|
|
|
+ amt = receivableAmt;
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
String vipDiscountyPlus = m.get("vipDiscountyPlus").toString();
|
|
|
//该营销方案是否叠加等级优惠
|
|
@@ -820,6 +831,7 @@ public class PayOrderController {
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡优惠金额
|
|
@@ -827,6 +839,7 @@ public class PayOrderController {
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
@@ -835,6 +848,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
@@ -857,7 +871,8 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
String dzkAmt = payOrderResultInfo.getDzkAmt();
|
|
|
- if(oilLiters.toString().equals("0.00")){
|
|
|
+ if(oilLiters.toString().equals("0.0000")){
|
|
|
+ payOrderResultInfo.setDzkAmt("0.01");
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
}else {
|
|
|
BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -871,7 +886,7 @@ public class PayOrderController {
|
|
|
public PayOrderResultInfo calculateZhiJiangDiscount(Map<String ,Object> params){
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //营销方案优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
@@ -881,10 +896,10 @@ public class PayOrderController {
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
|
|
|
//加油升数
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo(); //计算结果存放值
|
|
|
//计算等级优惠
|
|
|
PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
@@ -903,10 +918,14 @@ public class PayOrderController {
|
|
|
case "1": //按加油升数
|
|
|
if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
-// discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) ==0){
|
|
|
+ amt = receivableAmt;
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
//会员活动是否开启:1是;0否'
|
|
|
if(customerMarkertPlanList.get(0).containsKey("discountSettingFlag") && customerMarkertPlanList.get(0).get("discountSettingFlag").toString() !="") {
|
|
|
discountSettingFlag = customerMarkertPlanList.get(0).get("discountSettingFlag").toString();
|
|
@@ -919,10 +938,15 @@ public class PayOrderController {
|
|
|
boolean b = isActivityDay(discountType, discountDate);
|
|
|
if (b) {
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(discountActivityAmt));
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
- //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) == 0){
|
|
|
+ amt = amt;
|
|
|
+ discountAmt = discountAmt;
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -932,10 +956,14 @@ public class PayOrderController {
|
|
|
case "2": //按加油金额
|
|
|
if(receivableAmt.compareTo(discountAmt_b) ==1 || receivableAmt.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
- //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) == 0){
|
|
|
+ amt = receivableAmt;
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
//会员活动是否开启:1是;0否'
|
|
|
if(customerMarkertPlanList.get(0).containsKey("discountSettingFlag") && customerMarkertPlanList.get(0).get("discountSettingFlag").toString() !="") {
|
|
|
discountSettingFlag = customerMarkertPlanList.get(0).get("discountSettingFlag").toString();
|
|
@@ -948,12 +976,16 @@ public class PayOrderController {
|
|
|
boolean b = isActivityDay(discountType, discountDate);
|
|
|
if (b) {
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(discountActivityAmt));
|
|
|
- amt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = receivableAmt.subtract(amt);
|
|
|
- //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) == 0){
|
|
|
+ amt = amt;
|
|
|
+ discountAmt = discountAmt;
|
|
|
+ }else {
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1016,6 +1048,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//都叠加 电子卡支付金额 = 应收金额 - 营销优惠金额 - 等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt; //如果为负数,则默认设置0.01元
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡总优惠金额
|
|
@@ -1023,6 +1056,7 @@ public class PayOrderController {
|
|
|
}else {
|
|
|
//叠加营销方案不叠加等级优惠: 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
@@ -1031,6 +1065,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//不叠加营销方案叠加等级优惠:电子卡支付金额 =应收金额-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
@@ -1054,10 +1089,12 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
String dzkAmt = payOrderResultInfo.getDzkAmt();
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
- if(oilLiters.toString().equals("0.00")){
|
|
|
+ if(oilLiters.toString().equals("0.0000")){
|
|
|
+ payOrderResultInfo.setDzkAmt("0.01");
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
}else {
|
|
|
BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) == 1 ? oilPrice : dzkDiscountPrice;
|
|
|
payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString());
|
|
|
}
|
|
|
}
|
|
@@ -1068,7 +1105,7 @@ public class PayOrderController {
|
|
|
public PayOrderResultInfo calculateLiJianDiscount(Map<String ,Object> params){
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
@@ -1076,10 +1113,10 @@ public class PayOrderController {
|
|
|
BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
//加油升数
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
|
|
|
//计算等级优惠
|
|
@@ -1110,6 +1147,11 @@ public class PayOrderController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt = amt.toString().equals("0.00") ? new BigDecimal("0.01") : amt;
|
|
|
+ amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
+ discountPrice = oilLiters.equals(new BigDecimal("0.0000")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
+ discountPrice =discountPrice.compareTo(oilPrice) == 1 ? oilPrice: discountPrice;
|
|
|
}
|
|
|
dzkDiscountAmt = discountAmt;
|
|
|
String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
|
|
@@ -1118,9 +1160,7 @@ public class PayOrderController {
|
|
|
discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
}
|
|
|
- amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
- amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
- discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
+
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
@@ -1159,6 +1199,7 @@ public class PayOrderController {
|
|
|
if(isMarket.equals("1")){
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡优惠金额
|
|
@@ -1166,6 +1207,7 @@ public class PayOrderController {
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
@@ -1174,6 +1216,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
@@ -1196,10 +1239,12 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
String dzkAmt = payOrderResultInfo.getDzkAmt();
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
- if(oilLiters.toString().equals("0.00")){
|
|
|
+ if(oilLiters.toString().equals("0.0000")){
|
|
|
+ payOrderResultInfo.setDzkAmt("0.01");
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
}else {
|
|
|
BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) ==1 ? oilPrice : dzkDiscountPrice;
|
|
|
payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString());
|
|
|
}
|
|
|
}
|
|
@@ -1210,7 +1255,7 @@ public class PayOrderController {
|
|
|
public PayOrderResultInfo calculateManJianDiscount(Map<String ,Object> params){
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
@@ -1219,10 +1264,10 @@ public class PayOrderController {
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需营销优惠金额值
|
|
|
|
|
|
//加油升数
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
//计算等级优惠
|
|
|
PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
|
|
@@ -1254,6 +1299,11 @@ public class PayOrderController {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+ amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt = amt.toString().equals("0.00") ? new BigDecimal("0.01") : amt;
|
|
|
+ amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
+ discountPrice = oilLiters.equals(new BigDecimal("0.0000")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
+ discountPrice =discountPrice.compareTo(oilPrice) == 1 ? oilPrice : discountPrice;
|
|
|
}
|
|
|
dzkDiscountAmt = discountAmt;
|
|
|
//是否共享会员等级优惠叠加: 1 代表是; 2 代表否;
|
|
@@ -1263,9 +1313,6 @@ public class PayOrderController {
|
|
|
discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
}
|
|
|
}
|
|
|
- amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
- amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
- discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
|
payOrderResultInfo.setDiscountAmt(discountAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(discountAmt.toString());
|
|
@@ -1305,6 +1352,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt).subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
BigDecimal dzkDiscountAmtSum = dzkDiscountAmt.add(dzkGradeDiscountAmt); //电子卡优惠金额
|
|
@@ -1312,6 +1360,7 @@ public class PayOrderController {
|
|
|
}else {
|
|
|
//如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());
|
|
@@ -1320,6 +1369,7 @@ public class PayOrderController {
|
|
|
if(isGradeSetting.equals("1")){
|
|
|
//如果电子卡设置不执行营销方案执行等级优惠 则 电子卡支付金额 =应收金额-等级优惠金额
|
|
|
BigDecimal dzkAmt = receivableAmt.subtract(dzkGradeDiscountAmt);
|
|
|
+ dzkAmt =dzkAmt.toString().equals("0.00") ? new BigDecimal("0.01"): dzkAmt;
|
|
|
dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
|
|
|
payOrderResultInfo.setDzkAmt(dzkAmt.toString());
|
|
|
payOrderResultInfo.setDzkDiscountAmt(dzkGradeDiscountAmt.toString());
|
|
@@ -1342,10 +1392,12 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
String dzkAmt = payOrderResultInfo.getDzkAmt();
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
- if(oilLiters.toString().equals("0.00")){
|
|
|
+ if(oilLiters.toString().equals("0.0000")){
|
|
|
+ payOrderResultInfo.setDzkAmt("0.01");
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
}else {
|
|
|
BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountPrice =dzkDiscountPrice.compareTo(oilPrice) == 1 ? oilPrice: dzkDiscountPrice;
|
|
|
payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString());
|
|
|
}
|
|
|
}
|
|
@@ -1358,18 +1410,18 @@ public class PayOrderController {
|
|
|
String stationId = params.get("stationId").toString();
|
|
|
BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
- BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.0000"); //加油升数
|
|
|
+ BigDecimal discountAmt = new BigDecimal("0.00"); //优惠金额
|
|
|
BigDecimal dzkDiscountAmt = discountAmt; //优惠金额
|
|
|
BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
- BigDecimal gradeDiscountPriceAmt = new BigDecimal("0"); //价格优惠金额
|
|
|
+ BigDecimal gradeDiscountPriceAmt = new BigDecimal("0.00"); //价格优惠金额
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
- oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
- }
|
|
|
+ oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_HALF_UP);
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("0000")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,4, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
//当前客户是否已存在当前油站客户信息中
|
|
|
CustomerManage customerManage = new CustomerManage();
|
|
|
//customerManage.setPhoneNumber(params.get("mobilePhone").toString());
|
|
@@ -1386,8 +1438,12 @@ public class PayOrderController {
|
|
|
if(amtSum >= Double.valueOf(m.get("memberConditStart").toString())){
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(m.get("discountAmt").toString()));
|
|
|
gradeDiscountPriceAmt = new BigDecimal(m.get("discountAmt").toString());
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(m.get("discountAmt").toString()));
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) ==0){
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ discountAmt = oilLiters.multiply(new BigDecimal(m.get("discountAmt").toString()));
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1398,11 +1454,16 @@ public class PayOrderController {
|
|
|
if(customerGradeList !=null && customerGradeList.size() >0){
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(customerGradeList.get(0).get("discountAmt").toString()));
|
|
|
gradeDiscountPriceAmt = new BigDecimal(customerGradeList.get(0).get("discountAmt").toString());
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("discountAmt").toString()));
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(discountPrice.compareTo(oilPrice) == 0){
|
|
|
+ discountAmt = new BigDecimal("0.00");
|
|
|
+ }else {
|
|
|
+ discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("discountAmt").toString()));
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt =amt.toString().equals("0.00") ? new BigDecimal("0.01"): amt;
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
//discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
|
|
@@ -1463,10 +1524,12 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
|
|
|
String dzkAmt = payOrderResultInfo.getDzkAmt();
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
- if(oilLiters.toString().equals("0.00")){
|
|
|
+ if(oilLiters.toString().equals("0.0000")){
|
|
|
+ payOrderResultInfo.setDzkAmt("0.01");
|
|
|
payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString());
|
|
|
}else {
|
|
|
BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ dzkDiscountPrice =dzkDiscountPrice.compareTo(oilPrice) == 1 ? oilPrice: dzkDiscountPrice;
|
|
|
payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString());
|
|
|
}
|
|
|
}
|
|
@@ -1597,7 +1660,7 @@ public class PayOrderController {
|
|
|
case "1":
|
|
|
amtNew = new BigDecimal(amt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
@@ -1610,7 +1673,7 @@ public class PayOrderController {
|
|
|
discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
amtNew = amtNew.subtract(zheKouAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1625,7 +1688,7 @@ public class PayOrderController {
|
|
|
case "1":
|
|
|
amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
@@ -1641,7 +1704,7 @@ public class PayOrderController {
|
|
|
discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
amtNew = amtNew.subtract(discountAmtNew);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1660,7 +1723,7 @@ public class PayOrderController {
|
|
|
case "1":
|
|
|
amtNew = new BigDecimal(amt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
@@ -1673,7 +1736,7 @@ public class PayOrderController {
|
|
|
discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
amtNew = amtNew.subtract(zheKouAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1690,7 +1753,7 @@ public class PayOrderController {
|
|
|
amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
//优惠券后的优惠价格
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = new BigDecimal("0.00");
|
|
@@ -1707,7 +1770,7 @@ public class PayOrderController {
|
|
|
amtNew = amtNew.subtract(discountAmtNew);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
//优惠券后的优惠价格
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1726,7 +1789,7 @@ public class PayOrderController {
|
|
|
case "1":
|
|
|
amtNew = new BigDecimal(amt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
|
|
@@ -1739,7 +1802,7 @@ public class PayOrderController {
|
|
|
discountAmtNew = discountAmtNew.add(zheKouAmt);
|
|
|
amtNew = amtNew.subtract(zheKouAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1755,7 +1818,7 @@ public class PayOrderController {
|
|
|
amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
//优惠券后的优惠价格
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = new BigDecimal("0.00");
|
|
@@ -1772,7 +1835,7 @@ public class PayOrderController {
|
|
|
amtNew = amtNew.subtract(discountAmtNew);
|
|
|
amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
//优惠券后的优惠价格
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
discountAmtNew = discountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
@@ -1795,7 +1858,7 @@ public class PayOrderController {
|
|
|
dzkDiscountAmtNew = dzkDiscountAmtNew.add(couponAmt);
|
|
|
couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
@@ -1809,7 +1872,7 @@ public class PayOrderController {
|
|
|
dzkDiscountAmtNew = dzkDiscountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
@@ -1825,7 +1888,7 @@ public class PayOrderController {
|
|
|
dzkDiscountAmtNew = dzkDiscountAmtNew.add(couponAmt);
|
|
|
couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|
|
@@ -1839,7 +1902,7 @@ public class PayOrderController {
|
|
|
dzkDiscountAmtNew = dzkDiscountAmtNew.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
|
|
|
couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
|
|
|
- if(!oilLiters.equals("0.00")){
|
|
|
+ if(!oilLiters.equals("0.0000")){
|
|
|
dzkDiscountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2 ,BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
couponReckonAmt.setDzkDiscountPrice(dzkDiscountPriceNew.toString());
|