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