| 
					
				 | 
			
			
				@@ -701,6 +701,23 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             payOrderResultInfo.setCardOilsType(map.get("cardOilsType")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(oilLiters.toString().equals("0.0000")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrderResultInfo.setDzkAmt("0.01"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String dzkAmt = payOrderResultInfo.getDzkAmt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) == 1 ? oilPrice : dzkDiscountPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return payOrderResultInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -875,8 +892,16 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 payOrderResultInfo.setDzkAmt("0.01"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 payOrderResultInfo.setDzkDiscountPrice(oilPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return  payOrderResultInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1093,9 +1118,17 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) == 1 ? oilPrice : dzkDiscountPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return  payOrderResultInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1243,9 +1276,17 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) ==1 ? oilPrice : dzkDiscountPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return  payOrderResultInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1396,9 +1437,17 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) ==1 ? oilPrice : dzkDiscountPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return payOrderResultInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1528,9 +1577,18 @@ public class PayOrderController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果电子卡的支付金额与微信支付金额相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(amt.compareTo(new BigDecimal(dzkAmt)) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(discountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //此处重新计算油升数原因:电子卡在计算支付0.01时优惠价格时,如果保留小数位数过低则会出现误差; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal oilLiters_dzk = receivableAmt.divide(oilPrice,7, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal dzkDiscountPrice = oilLiters_dzk.toString().equals("0.0000000") ? oilPrice: new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //BigDecimal dzkDiscountPrice = new BigDecimal(dzkAmt).divide(oilLiters_dzk, 2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dzkDiscountPrice = dzkDiscountPrice.compareTo(oilPrice) ==1 ? oilPrice : dzkDiscountPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payOrderResultInfo.setDzkDiscountPrice(dzkDiscountPrice.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return  payOrderResultInfo; 
			 |