| 
					
				 | 
			
			
				@@ -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()); 
			 |