|
@@ -171,13 +171,16 @@ public class PayOrderController {
|
|
|
resultMap.put("oilsCardFlag", payOrderResultInfo.getOilsCardFlag());
|
|
|
resultMap.put("discountAmt", payOrderResultInfo.getDiscountAmt()); //优惠金额
|
|
|
resultMap.put("amt", payOrderResultInfo.getAmt()); //实收价格
|
|
|
+ resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
|
|
|
if(payOrderRequest.getIsLngFlagGroup() !=null && payOrderRequest.getIsLngFlagGroup().equals("1")){
|
|
|
payOrder.setSellAmt(Double.valueOf(payOrderResultInfo.getSellAmt()));
|
|
|
payOrder.setSellDiscountAmt(Double.valueOf(payOrderResultInfo.getSellDiscountAmt()));
|
|
|
+ payOrder.setSellOilPrice(Double.valueOf(payOrderResultInfo.getSellPrice()));
|
|
|
+ payOrder.setDriverOilPrice(Double.valueOf(payOrderResultInfo.getDiscountPrice()));
|
|
|
+ //resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
|
|
|
}
|
|
|
resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt()); //应收价格
|
|
|
resultMap.put("oilLiters", payOrderResultInfo.getOilLiters());
|
|
|
- resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
|
|
|
resultMap.put("amt_dzk", payOrderResultInfo.getDzkAmt());
|
|
|
resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt()); //电子卡优惠金额
|
|
|
resultMap.put("balance", payOrderResultInfo.getBalance()); //电子卡余额
|
|
@@ -297,15 +300,15 @@ public class PayOrderController {
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
BigDecimal sellDiscountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //电子卡优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0); //司机价后支付金额
|
|
|
+ BigDecimal amt = receivableAmt; //司机价后支付金额
|
|
|
BigDecimal sellAmt = new BigDecimal(0); //油站结算价支付金额
|
|
|
BigDecimal discountPrice = oilPrice; //司机销售价
|
|
|
BigDecimal sellPrice = discountPrice; //油站销售价
|
|
|
//加油升数
|
|
|
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);
|
|
|
- }
|
|
|
+// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
|
+// oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_UP);
|
|
|
+// }
|
|
|
// settlementType:结算价类型(1.直降,2.折扣); settlementPrice:结算价; driverPrice:司机价;
|
|
|
String settlementType = params.get("settlementType").toString();
|
|
|
if(params.containsKey("settlementType") && params.get("settlementType") !=null && params.get("settlementType").toString() !=""){
|
|
@@ -313,17 +316,21 @@ public class PayOrderController {
|
|
|
case "1": //直降
|
|
|
//优惠价(销售价)
|
|
|
if(params.containsKey("settlementPrice") && params.get("settlementPrice").toString() !=null && params.get("settlementPrice").toString() !=""){
|
|
|
- discountPrice = oilPrice.subtract(new BigDecimal(params.get("settlementPrice").toString()));
|
|
|
- discountAmt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ sellPrice = oilPrice.subtract(new BigDecimal(params.get("settlementPrice").toString()));
|
|
|
+ sellAmt = new BigDecimal(params.get("settlementPrice").toString()).multiply(oilLiters);
|
|
|
+ sellDiscountAmt = receivableAmt.subtract(sellAmt);
|
|
|
+ sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //sellPrice = sellPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
|
case "2": //折扣
|
|
|
//优惠价(销售价)
|
|
|
if(params.containsKey("settlementPrice") && params.get("settlementPrice").toString() !=null && params.get("settlementPrice").toString() !=""){
|
|
|
- discountPrice = oilPrice.multiply(new BigDecimal(params.get("settlementPrice").toString())).divide(new BigDecimal("100"));
|
|
|
- discountAmt = discountPrice.multiply(oilLiters);
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ sellPrice = oilPrice.multiply(new BigDecimal(params.get("settlementPrice").toString())).divide(new BigDecimal("100"));
|
|
|
+ sellAmt =sellPrice.multiply(oilLiters);
|
|
|
+ sellDiscountAmt = receivableAmt.subtract(sellAmt);
|
|
|
+ sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //sellPrice = sellPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -331,29 +338,29 @@ public class PayOrderController {
|
|
|
|
|
|
if(params.containsKey("driverPrice") && params.get("driverPrice").toString() !=null && params.get("driverPrice").toString() !=""){
|
|
|
//司机价
|
|
|
- sellPrice = discountPrice.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
|
|
|
- sellDiscountAmt = sellPrice.multiply(oilLiters);
|
|
|
- sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ discountPrice = sellPrice.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
|
|
|
+ amt = discountPrice.multiply(oilLiters); //二次折扣优惠金额
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ discountPrice = discountPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
- sellAmt = receivableAmt.subtract(sellDiscountAmt); //司机价实收金额
|
|
|
- sellAmt =sellAmt.signum() == -1 ? new BigDecimal("0.01"): sellAmt;
|
|
|
- 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);
|
|
|
- //司机价
|
|
|
- sellPrice = oilLiters.equals(new BigDecimal("0.00")) ? sellPrice : sellAmt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //sellAmt = receivableAmt.subtract(sellDiscountAmt); //销售价实收金额 = 应收金额-销售价优惠金额
|
|
|
+ sellAmt =sellAmt.signum() == -1 ? new BigDecimal("0.01"): sellAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //amt = receivableAmt.subtract(discountAmt).subtract(sellDiscountAmt); //司机价实收金额 = 应收金额-司机价优惠金额-销售价优惠金额
|
|
|
+ amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
payOrderResultInfo.setReceivableAmt(receivableAmt.toString()); //应收金额
|
|
|
- payOrderResultInfo.setOilPrice(oilPrice.toString()); //油机价
|
|
|
- payOrderResultInfo.setAmt(amt.toString()); //销售价后时候金额
|
|
|
- payOrderResultInfo.setDiscountPrice(discountPrice.toString()); //销售价
|
|
|
- payOrderResultInfo.setDiscountAmt(discountAmt.toString()); //销售价后优惠金额
|
|
|
+ payOrderResultInfo.setOilLiters(oilLiters.toString()); //加油升数
|
|
|
|
|
|
- payOrderResultInfo.setSellAmt(sellAmt.toString()); //司机价后支付金额
|
|
|
- payOrderResultInfo.setSellPrice(sellPrice.toString()); //司机价
|
|
|
- payOrderResultInfo.setSellDiscountAmt(sellDiscountAmt.toString()); //司机价后优惠金额
|
|
|
+ payOrderResultInfo.setOilPrice(oilPrice.toString()); //油机价
|
|
|
+ payOrderResultInfo.setAmt(amt.toString()); //司机价后时候金额
|
|
|
+ payOrderResultInfo.setDiscountPrice(discountPrice.toString()); //司机价
|
|
|
+ payOrderResultInfo.setDiscountAmt(discountAmt.toString()); //司机价后优惠金额
|
|
|
|
|
|
- payOrderResultInfo.setOilLiters(oilLiters.toString()); //加油升数
|
|
|
+ payOrderResultInfo.setSellAmt(sellDiscountAmt.toString()); //销售价后支付金额
|
|
|
+ sellPrice.setScale(2, BigDecimal.ROUND_HALF_UP); //销售价
|
|
|
+ payOrderResultInfo.setSellPrice(sellPrice.toString()); //销售价
|
|
|
+ payOrderResultInfo.setSellDiscountAmt(sellAmt.toString()); //销售价后优惠金额
|
|
|
|
|
|
//LNG加气平台没有电子卡功能:此下参数无用用作填充参数值 0:代表否;4:代表LNG油品
|
|
|
payOrderResultInfo.setDzkAmt(amt.toString()); //电子卡支付金额
|